LilyPond is not unique in making music notation: there are a lot of programs that print music, and nowadays most of the newly printed music is made with computers. Unfortunately, that also shows: just ask any musician that plays classical music: new scores do not look as nice as old ones.
What is the difference between hand-work and machine work, and what has caused it? How can we improve the situation? This essay explains problems in music notation (software), and our approach to solving them.
· Automatic spacing, line breaking and page breaking.
· Handling of polyphonic collisions for notes, dots, and rests.
· Automatic placement of accidentals, beams, slurs, ties, based on optimal scoring algorithms.
· Users don't need typographical expertise to produce excellent notation.
· No user interaction necessary during running. Running the program can be automated which is convenient for mass converting databases of digitized music and printing algorithmic compositions.
· The Feta font has been tailored especially for LilyPond, and was designed carefully mimicking the finest hand-engraved scores. It is available as a scalable font, but also as a Metafont.
· Accidental cautionaries and suggestions, classic and modern styles
· Arpeggio signs
· Balloon texts (teaching)
· Blanking arbitrary notation elements (teaching)
· Chord names, in English, French or Italian
· Cluster notation and rhythmic grouping signs
· Coloring of arbitrary notation elements
· Cross staff beaming
· Cue-notes (automatic)
· Dashed or dotted bar lines
· Drum notation
· EasyNotation note heads
· Falls and doits
· Feathered beams
· Figured bass
· Fingerings, including guitar right-hand fingering
· Fret diagrams
· Grace notes, acciaccatura and appoggiatura
· Hairpin crescendi and decrescendi, also with circled tips (al niente)
· Laissez vibrer ties
· Ledger lines, including automatic shortening for tight spacing
· Lyric extenders, hyphens, melismata
· Measure repeats ("Percent style")
· Mensural notation
· Metronome markings
· Nested analysis brackets
· Orchestral scores with automatic part combining
· Ornaments; mordents, pralls and combinations thereof
· Ottava brackets (octaviation)
· Part extraction: see Orchestral scores
· Piano pedals
· Polymetric notation
· Proportional notation
· Quarter tone accidentals
· Quoting of other music fragments, including transposing
· Separator slashes between systems
· Shaped note heads
· Starting and stopping staves anywhere
· Staves, tunable number of staff lines, individual positioning of staff lines
· String numbering, also on chords
· System separators
· Tablature notation
· Tie formatting for chords
· Tremolos, both for single notes and chords
· Trills, also running and explicit pitches
· Tuplets in arbitrary ratios, nested, broken with customisable endings
· Vertical staff spacing using a skyline algorithm
· For details and music samples, follow the chain of NEWS entries and have a look at the regression tests.
· Robust design
· No arbitrary limits: unlimited number of staves, voices, measures, lengths of texts, etc.
· Pluggable output backend: output in EPS, PDF, PNG, PostScript, MIDI, SVG.
· Lyrics in any language.
· Text-based input with versatile music language.
· Programmable and extensible with built-in LISP interpreter.