| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Working with input files
| 3.3.1 LilyPond-Dateien einfügen | ||
| 3.3.2 Verschiedene Editionen aus einer Quelldatei | ||
| 3.3.3 sonderzeichen |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Including LilyPond files
Ein größeres Projekt kann in einzelne Dateien aufgeteilt werden. Um eine andere Datei einzubinden, kann der Befehl
\include "andereDatei.ly" |
benutzt werden.
Die Zeile \include "andereDatei.ly" benimmt sich genauso,
also ob der Inhalt der Datei ‘andereDatei.ly’ komplett in die
Hauptdatei eingefügt werden würde. So kann man für ein größeres
Projekt die einzelnen Stimmen der Instrumente getrennt notieren
und sie dann in einer Partitur-Datei benutzen. Meistens werden
in den eingefügten Dateien einige Variablen definiert, die dann
auch in der Hauptdatei eingesetzt werden können. Mit Marken (Tags)
gekennzeichnete Abschnitte können eingesetzt werden, um die
entsprechenden Noten etc. an verschiedenen Stellen in der Datei
zur Verfügung zu stellen. Siehe auch Verschiedene Editionen aus einer Quelldatei.
Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
nach dem \include-Befehl verwiesen werden. Dateien an anderen
Stellen können eingebunden werden, indem entweder ein vollständiger
Pfad oder ein relativer Pfad zu der Datei angegeben wird. Hierbei
sollten die für UNIX typischen Schrägstriche (/) und nicht die
rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
zu trennen. Wenn etwa die Datei ‘kram.ly’ ein Verzeichnis
höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
aussehen:
\include "../kram.ly" |
Wenn die Orchesterstimmen andererseits in einem Unterordner mit
der Bezeichnung stimmen liegen, sieht er folgendermaßen
aus:
\include "stimmen/VI.ly" \include "stimmen/VII.ly" ... etc |
Dateien, die eingebunden werden sollen, können selber auch wiederum
ein \include enthalten. Diese Einbindung zweiter Ebene
werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
sondern relativ zur Hauptdatei gesetzt werden müssen. Dieses Verhalten
kann jedoch auch verändert werden, indem man lilypond die Option
‘-drelative-includes’ auf der Kommandozeile zuweist (oder indem
man den Befehl #(ly:set-option 'relative-includes #t) an den
Beginn der Quelldatei schreibt). Mit relative-includes wird
der Pfad jedes \include-Befehls als relativ zu der Datei angenommen,
in der sich der Befehl befindet. Dieses Verhalten wird empfohlen und wird
in zukünftigen Versionen von LilyPond den Standard darstellen.
Dateien können auch aus einem Verzeichnis eingebunden werden, dass im Suchpfad von LilyPond liegt. Hierzu muss auf der Kommandozeile das entsprechende Verzeichnis angegeben werden und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen notiert sein. Wenn etwa die Datei ‘Haupt.ly’ kompiliert werden soll, die Dateien aus dem Unterverzeichnis ‘stimmen’ einbindet, müssen sie sich im Verzeichnis von ‘Haupt.ly’ befinden und dann LilyPond folgendermaßen aufrufen:
lilypond --include=stimmen Haupt.ly |
In ‘Haupt.ly’ steht:
\include "VI.ly" \include "VII.ly" ... usw. |
Dateien, die in vielen Partituren verwendet werden sollen, können im LilyPond-Verzeichnis ‘../ly’ gespeichert werden. (Die Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem ab, siehe hierzu (learning)Mehr Information in Abschnitt ‘Mehr Information’ in Handbuch zum Lernen). Dateien in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden. So werden auch die Sprachdateien wie etwa ‘deutsch.ly’ eingefügt.
LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
können identifiziert werden, indem LilyPond auf der Kommandozeile mit
Option aufgerufen wird: lilypond --verbose. Hiermit wird
neben anderer Information auch eine Liste von Pfaden und Dateien
aufgeführt, die LilyPond benutzt. Die wichtigeren Dateien werden
im Abschnitt
(learning)Mehr Information in Abschnitt ‘Mehr Information’ in Handbuch zum Lernen besprochen.
Diese Dateien können verändert werden, aber Änderungen gehen verloren,
wenn eine neue LilyPond-Version installiert wird.
Einige einfache Beispiele, die die Benutzung von \include demonstrieren,
sind dargestellt in
(learning)Partituren und Stimmen in Abschnitt ‘Partituren und Stimmen’ in Handbuch zum Lernen.
Handbuch zum Lernen: (learning)Mehr Information in Abschnitt ‘Mehr Information’ in Handbuch zum Lernen, (learning)Partituren und Stimmen in Abschnitt ‘Partituren und Stimmen’ in Handbuch zum Lernen.
Wenn eine Datei eingebunden wird, deren Name einer Datei aus dem Installationsverzeichnis von LilyPond entspricht, wird die installierte Datei anstelle der eigenen verwendet.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Different editions from one source
Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche Versionen einer Partitur aus der gleichen Quelldatei zu produzieren. Variablen werden am besten eingesetzt, wenn es darum geht, längere Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf verschiedene Weise zu kombinieren. Tag-Marken dagegen werden am besten eingesetzt, wenn eine von mehreren kurzen alternativen Notenabschnitten ausgewählt werden soll und können auch eingesetzt werden, um Musikabschnitte an unterschiedlichen Stellen zusammenzufügen.
Egal welche Methode am Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn die eigentlichen Noten und die Struktur der Partitur voneinander getrennt notiert werden – so kann die Struktur geändert werden, ohne dass man Änderungen an den Noten vornehmen muss.
| Variablen benutzen | ||
| Marken benutzen | ||
| Globale Einstellungen benutzen |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Using variables
Wenn Notenabschnitt in Variablen definiert werden, können sie an unterschiedlichen Stellen in der Partitur eingesetzt werden, siehe auch (learning)Stücke durch Variablen organisieren in Abschnitt ‘Stücke durch Variablen organisieren’ in Handbuch zum Lernen. Zum Beispiel enthält eine Vokalpartitur für ein a cappella Stück oft einen Klavierauszug, der das Einüben einfacher macht. Der Klavierauszug enthält die gleichen Noten, sodass man sie nur einmal notieren muss. Noten aus zwei Variablen können auf einem System kombiniert werden, siehe Automatische Kombination von Stimmen. Hier ein Beispiel:
sopranoMusic = \relative { a'4 b c b8( a) } altoMusic = \relative { e'4 e e f } tenorMusic = \relative { c'4 b e d8( c) } bassMusic = \relative { a4 gis a d, } allLyrics = \lyricmode {King of glo -- ry } << \new Staff = "Soprano" \sopranoMusic \new Lyrics \allLyrics \new Staff = "Alto" \altoMusic \new Lyrics \allLyrics \new Staff = "Tenor" { \clef "treble_8" \tenorMusic } \new Lyrics \allLyrics \new Staff = "Bass" { \clef "bass" \bassMusic } \new Lyrics \allLyrics \new PianoStaff << \new Staff = "RH" { \set Staff.printPartCombineTexts = ##f \partCombine \sopranoMusic \altoMusic } \new Staff = "LH" { \set Staff.printPartCombineTexts = ##f \clef "bass" \partCombine \tenorMusic \bassMusic } >> >>
Unterschiedliche Partituren, die entweder nur den Chor oder das Klavier zeigen, können produziert werden, indem die Struktur verändert wird; die Noten müssen dazu nicht verändert werden.
Für längere Partituren können Variablen in eigene Dateien notiert werden, die dann eingebunden werden, siehe LilyPond-Dateien einfügen.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Using tags
Der \tag #'TeilA-Befehl markiert einen musikalischen
Ausdruck mit der Bezeichnung TeilA. Ausdrücke, die auf diese
Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
bzw. ausgefiltert werden. Das geschieht mit den Befehlen
\keepWithTag #'Bezeichnung bzw. \removeWithTag #'Bezeichnung.
Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
wie folgt:
| Filter | Resultat |
|---|---|
Markierte Noten mit vorgesetztem \keepWithTag #'Bezeichnung | Unmarkierte Noten und Noten mit der Marke Bezeichnung werden gesetzt, Noten mit einer anderen Marke werden nicht angezeigt. |
Markierte Noten mit vorgesetztem \removeWithTag #'Bezeichnung | Unmarkierte Noten und Noten mit einer anderen Marke als Bezeichnung wird angezeigt, Noten markiert mit Bezeichnung werden nicht angezeigt. |
Markierte Noten, weder mit vorgesetztem \keepWithTag noch
\removeWithTag | Alle markierten und unmarkierten Noten werden angezeigt. |
Die Argumente der Befehle \tag, \keepWithTag und
\removeWithTag sollten ein Symbol sein (wie etwa
#'score oder #'part), gefolgt von einem musikalischen
Ausdruck.
Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
music = \relative { g'8. c32 d \tag #'trills { d8.\trill } \tag #'expand { \repeat unfold 3 { e32 d } } c32 d } \score { \keepWithTag #'trills \music } \score { \keepWithTag #'expand \music }
Entsprechend können auch Abschnitte ausgeschlossen werden; das erfordert manchmal weniger Schreibarbeit:
music = \relative { g'8. c32 d \tag #'trills { d8.\trill } \tag #'expand {\repeat unfold 3 { e32 d } } c32 d } \score { \removeWithTag #'expand \music } \score { \removeWithTag #'trills \music }
Marken können auch auf Artikulationen, Text usw angewendet werden, indem man ihnen
-\tag #'your-tag |
voranstellt (jedoch nach der Note, an die sie gebunden sind). Mit diesem Code etwa könnte man entweder Fingersatz oder aber einen Text ausgeben:
c1-\tag #'finger ^4 c1-\tag #'warn ^"Achtung!" |
Mehrfache Marken können mithilfe von mehreren \tag-Befehlen
notiert werden:
music = \relative c'' { \tag #'a \tag #'both { a4 a a a } \tag #'b \tag #'both { b4 b b b } } << \keepWithTag #'a \music \keepWithTag #'b \music \keepWithTag #'both \music >>
Mehrfache \removeWithTag-Filter können auf einen
musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
markierte Abschnitte aus dem Druckbild zu entfernen.
music = \relative c'' { \tag #'A { a4 a a a } \tag #'B { b4 b b b } \tag #'C { c4 c c c } \tag #'D { d4 d d d } } { \removeWithTag #'B \removeWithTag #'C \music }
Zwei oder mehr \keepWithTag-Filter in einem musikalischen
Ausdruck bewirken, dass alle markierten Abschnitte entfernt
werden, weil der erste Befehl alle markierten Abschnitt außer dem
im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
eben genannten zusätzlich entfernt.
Manchmal will man Noten an einem bestimmen Platz in existierenden
Noten einfügen. Dafür kann entweder \pushToTag oder
\appendToTag benutzt werden, um Material hinter bzw. vor den
Elementen (elements) der existierenden Noten einzufügen. Nicht
alle musikalischen Konstruktionen haben Elemente, aber sequentielle und
simultane Noten sind ziemlich gute Kandidaten:
test = { \tag #'here { \tag #'here <<c''>> } } { \pushToTag #'here c' \pushToTag #'here e' \pushToTag #'here g' \test \appendToTag #'here c' \appendToTag #'here e' \appendToTag #'here g' \test }
Beide Befehle erhalten einen Tag, das Material, das bei jedem Auftreten
des Tags eingefügt werden soll und den Ausdruck, der mit dem Tag versehen
ist. Der Befehl stellt sicher, dass alle Änderungen kopiert werden, sodass
das ursprüngliche \test seine Bedeutung behält.
Handbuch zum Lernen: (learning)Stücke durch Variablen organisieren in Abschnitt ‘Stücke durch Variablen organisieren’ in Handbuch zum Lernen.
Notationsreferenz: Automatische Kombination von Stimmen, LilyPond-Dateien einfügen.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Using global settings
Man kann globale Einstellungen aus einer externen Datei einfügen:
lilypond -dinclude-settings=MY_SETTINGS.ly MY_SCORE.ly |
Einstellungsgruppen, wie etwa Seitengröße, Schriftart oder Schriftschnitt, können in eigenen Dateien gespeichert werden. Das ermöglicht es, aus der gleichen Partitur unterschiedliche Editionen zu erstellen bzw. Standardeinstellungen für eine ganze Anzahl von Partituren wiederzuverwenden, indem man einfach die entsprechende Einstellungsdatei angibt.
Diese Technik funktioniert auch gut für Formatvorlagen, wie in (learning)Formatvorlagen in Abschnitt ‘Formatvorlagen’ in Handbuch zum Lernen behandelt.
Handbuch zum Lernen: (learning)Stücke durch Variablen organisieren in Abschnitt ‘Stücke durch Variablen organisieren’ in Handbuch zum Lernen, (learning)Formatvorlagen in Abschnitt ‘Formatvorlagen’ in Handbuch zum Lernen.
Notationsreferenz: LilyPond-Dateien einfügen.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Special characters
| Zeichenkodierung | ||
| Unicode | ||
| ASCII-Aliase |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Text encoding
LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium und ISO/IEC 10646 definiert sind. Hiermit wird den Zeichen fast aller Schriftsysteme der Welt ein eindeutiger Name und ein Code-Punkt zugewiesen, mit dem sie identifizierbar sind. Unicode kann mit mehreren Zeichenkodierungen verwirklicht werden. LilyPond benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format), in der die normalen Zeichen des lateinischen Alphabets mit einem Byte dargestellt werden, während alle anderen Zeichen zwischen zwei und vier Byte Länge haben.
Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte Schriftart (engl. font). In einer Schriftartdatei werden die Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet. LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte und komplexe Skripte korrekt zu setzen.
LilyPond verändert die Kodierung der Eingabedatei nicht. Das heißt, dass jeder Text – Überschriften, Gesangstext, Spielanweisungen etc. – der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein musst. Am einfachsten geht das, indem man einen Texteditor einsetzt, der mit Unicode-Zeichen umgehen kann. Die meisten modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung, wie etwa vim, Emacs, jEdit oder GEdit. Alle MS Windows-Systeme nach NT benutzen Unicode intern, sodass sogar Notepad Dateien in UTF-8 lesen und speichern kann. Ein Editor mit mehr Funktionen unter Windows ist BabelPad oder Notepad++.
Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
FT_Get_Glyph_Name () error: invalid argument |
Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Unicode
Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
der Befehl \char ##xhhhh oder \char #dddd innerhalb einer
\markup-Umgebung benutzt werden. Hierbei bedeutet hhhh die
hexadezimale Zahl und ddd die entsprechende dezimale Zahl
für das erforderliche Zeichen. Nullen zu Beginn können ausgelassen werden,
aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
notiert. (Achten Sie darauf, dass Sie nicht UTF-8-Codepunkte
einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.) Unicode-Tabellen und ein Verzeichnis der Zeichenbezeichnungen
mit einer hexadezimalen Verweiszahl finden sich auf der Internetseite
des Unicode Consortiums: http://www.unicode.org/.
Mit \char ##x03BE und \char #958 wird
beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
Unicode-Bezeichnung „Greek Small Letter Xi“ hat.
Alle existierenden Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format gespeichert werden. Es muss natürlich auch noch eine Schriftart auf dem System installiert sein, die die notierten Zeichen darstellen kann.
Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen, im Gesangstext und als normaler Text außerhalb der Partitur.
\score { \relative { c''1 \mark \markup { \char ##x03EE } c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } } } \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } } } \markup { "Copyright 2008--2020" \char ##x00A9 }
Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
\header {
copyright = \markup { \char ##x00A9 "2008" }
}
|
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof ASCII aliases
Eine Liste von ASCII-Befehlen für Sonderzeichen kann eingefügt werden:
\paper { #(include-special-characters) } \markup "&flqq; – &OE;uvre incomplète… &frqq;" \score { \new Staff { \repeat unfold 9 a'4 } \addlyrics { This is al -- so wor -- kin'~in ly -- rics: –_&OE;… } } \markup \column { "The replacement can be disabled:" "– &OE; …" \override #'(replacement-alist . ()) "– &OE; …" }
Man kann auch eigen Aliase erstellen, entweder global:
\paper { #(add-text-replacements! '(("100" . "hundred") ("dpi" . "dots per inch"))) } \markup "A 100 dpi."
oder lokal:
\markup \replace #'(("100" . "hundred") ("dpi" . "dots per inch")) "A 100 dpi."
Notationsreferenz: Liste der Sonderzeichen.
Installierte Dateien: ‘ly/text-replacements.ly’.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] |
Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.
Andere Sprachen: English, català, español, français, italiano, 日本語.
Über die automatische Sprachauswahl.