4.3.1 Vysvětlení prostředí

Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe hinzugefügt werden, die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie etwa den Quellcode und die Notenausgabe des folgenden Beispiels:

\relative { cis''4 cis2. | a4 a2. | }

[image of music]

Der Quellcode ist sehr kurz und knapp, während in der Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und eine Taktart hinzugefügt wurden. Während LilyPond den Eingabetext interpretiert, wird die musikalische Information von rechts nach links gelesen, in etwa, wie man eine Partitur von links nach rechts liest. Während das Programm den Code liest, merkt es sich, wo sich Taktgrenzen befinden und für welche Tonhöhen Versetzungszeichen gesetzt werden müssen. Diese Information muss auf mehreren Ebenen gehandhabt werden, denn Versetzungszeichen etwa beziehen sich nur auf ein System, Taktlinien dagegen üblicherweise auf die gesamte Partitur.

Innerhalb von LilyPond sind diese Regeln und Informationshappen in Kontexten (engl. contexts) gruppiert. Der Voice (Stimmen)-Kontext wurde schon vorgestellt. Daneben gibt es noch die Staff (Notensystem-) und Score (Partitur)-Kontexte. Kontexte sind hierarchisch geschichtet um die hierarchische Struktur einer Partitur zu spiegeln. Ein Staff-Kontext kann zum Beispiel viele Voice-Kontexte beinhalten, und ein Score-Kontext kann viele Staff-Kontexte beinhalten.

context-example

Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln zu erzwingen, bestimmte Notationsobjekte zu erstellen und verbundene Elemente zu ordnen. Der Voice-Kontext zum Beispiel kann eine Vorzeichenregel einführen und der Staff-Kontext hält diese Regel dann aufrecht, um einzuordnen, ob ein Versetzungszeichen gesetzt werden muss oder nicht.

Ein anderes Beispiel: die Synchronisation der Taktlinien ist standardmäßig im Score-Kontext verankert. Manchmal sollen die Systeme einer Partitur aber unterschiedliche Taktarten enthalten, etwa in einer polymetrischen Partitur mit 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen der Score- und Staff-Kontexte verändert werden.

In einfachen Partituren werden die Kontexte implizit erstellt, und es kann sein, dass Sie sich dessen gar nicht bewusst sind. Für etwas größere Projekte, etwa mit vielen Systemen, müssen die Kontexte aber explizit erstellt werden, um sicher zu gehen, dass man auch wirklich die erwünschte Zahl an Systemen in der richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter Notation gesetzt werden sollen, ist es üblich, die existierenden Kontexte zu verändern oder gar gänzlich neue zu definieren.

Zusätzlich zu den Score, Staff und Voice-Kontexten gibt es noch Kontexte, die zwischen der Partitur- und Systemebene liegen und Gruppen von Systemen kontrollieren. Das sind beispielsweise der PianoStaff und ChoirStaff-Kontext. Es gibt zusätzlich alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.

Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren englischen Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich angeschlossen, etwa GregorianTranscriptionStaff.

Podívejte se také na

Notationreferenz: Vysvětlení prostředí.


LilyPond – Learning Manual v2.23.82 (Vývojářská větev).