Das Eingabeformat
Wie oben besprochen liegt dem Eingabeformat der Inhalt, also die Musik, zu Grunde. Damit aber entsteht ein großes Problem: Wie können wir denn definieren, was Musik eigentlich ist? Wir nähern uns der Lösung von hinten. Anstatt zu definieren, was Musik ist, lassen wir unser Programm als Definition gelten. Wir schreiben ein Programm, das Noten setzen kann, und halten das Format so einfach wie möglich. Wenn das Format nicht mehr abgespeckt werden kann, bleibt nur noch der reine Inhalt übrig.
Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond, darum soll sie einfach zu schreiben sein; z. B. bedeutet
c'4 d'8eine Viertel c' und eine Achtel d', wie in diesem Beispiel:
In kleinem Rahmen ist diese Syntax sehr einfach zu benutzen. In größeren Zusammenhängen aber brauchen wir Struktur. Wie sonst kann man große Open oder Symphonien notieren? Diese Struktur wird gewährleistet durch sog. „music expressions“ (Musikausdrücke): indem kleine Fragmente zu größeren kombiniert werden, kann mehr Komplexität ausgedrückt werden. So etwa hier:
| c4 |
|
Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in << und >> einschließt.
<<c4 d4 e4>> |
|
{ <<c4 d4 e4>> f4 }
|
|
<< { <<c4 d4 e4>> f4 } g2 >>
|
|
Solche geschachtelten Strukturen können sehr gut in einer kontextunabhängigen Grammatik beschrieben werden. Der Programmcode für den Satz ist auch mit solch einer Grammatik erstellt. Die Syntax von LilyPond ist also klar und ohne Zweideutigkeiten definiert.
Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer wahrgenommen. Teilweise ist es eine Frage des Geschmackes und auch ein Objekt vieler Diskussionen. Auch wenn Geschmacksfragen ihre Berechtigung haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel schwieriger. Das kann auch die Zeilenzahl der Programmzeilen zeigen: Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:
| Analyse + Darstellung | gesamt |
|---|---|
| 6000 Zeilen C++ | 61500 Zeilen C++ |
Weiter: So kann es also gehen, ein Schlusswort