1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: c1df40da9f8b2794e173583c363f9e736e5531bd
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes.
13 @c Translators: Till Paala
15 @node Allgemeine Eingabe und Ausgabe
16 @chapter Allgemeine Eingabe und Ausgabe
17 @translationof General input and output
19 Dieses Kapitel erklärt allgemeine Fragen zur Eingabe und Ausgabe von
20 Notation mit LilyPond und weniger direkte Fragen der Notation.
25 * Arbeiten an Eingabe-Dateien::
26 * Ausgabe kontrollieren::
28 * Musikalische Information extrahieren::
33 @section Eingabestruktur
34 @translationof Input structure
36 Das hauptsächliche Eingabeformat von LilyPond sind Textdateien.
37 Üblicherweise werden diese Dateien mit der Endung @file{.ly}
41 * Struktur einer Partitur::
42 * Mehrere Partituren in einem Buch::
43 * Mehrere Ausgabedateien aus einer Eingabedatei::
44 * Dateinamen der Ausgabedateien::
49 @node Struktur einer Partitur
50 @subsection Struktur einer Partitur
51 @translationof Structure of a score
55 Eine @code{\score}-Umgebung muss einen einzelnen musikalischen
56 Ausdruck beinhalten, der durch geschweifte Klammern begrenzt wird:
64 @warning{Es darf @strong{nur ein} äußerer musikalischer Ausdruck
65 in der @code{\score}-Umgebung geschrieben werden, und er @strong{muss}
66 von geschweiften Klammern umgeben sein.}
68 Dieser einzelne musikalische Ausdruck kann beliebige Größe annehmen und
69 andere musikalische Ausdrücke von beliebiger Komplexität beinhalten.
70 Alle diese Beispiele sind musikalische Ausdrücke:
76 @lilypond[verbatim,quote]
83 @lilypond[verbatim,quote]
85 \new Staff { c'4 c' c' c' }
86 \new Staff { d'4 d' d' d' }
94 \new Staff @{ \Flöte @}
95 \new Staff @{ \Oboe @}
98 \new Staff @{ \GeigeI @}
99 \new Staff @{ \GeigeII @}
105 Kommentare bilden eine Ausnahme dieser Regel. (Andere Ausnahmen
106 siehe @ref{Die Dateistruktur}.) Sowohl einzeilige als auch
107 Blockkommentare (eingegrenzt durch @code{%@{ .. %@}}) können
108 an beliebiger Stelle einer Eingabedatei geschrieben werden. Sie
109 können innerhalb oder außerhalb der @code{\score}-Umgebung vorkommen,
110 und innerhalb oder außerhalb des einzelnen musikalischen Ausdrucks
111 innerhalb der @code{\score}-Umgebung.
113 Denken Sie daran, dass auch eine Datei, die nur eine @code{\score}-Umgebung
114 enhält, implizit in eine @code{\book}-Umgebung eingeschlossen wird. Eine
115 @code{\book}-Umgebung in einer Eingabdatei produziert wenigstens eine
116 Ausgabedatei, und standardmäßig wird der Name der Ausagabedatei aus dem
117 Namen der Eingabedatei abgeleitet. @file{fandangoforelephants.ly} produziert
118 also @file{fandangoforelephants.pdf}.
120 Zu weiteren Einzelheiten zu @code{\book}-Umgebungen siehe
121 @ref{Mehrere Partituren in einem Buch},
122 @ref{Mehrere Ausgabedateien aus einer Eingabedatei} und
123 @ref{Die Dateistruktur}.
128 @rlearning{Arbeiten an Eingabe-Dateien},
129 @rlearning{Musikalische Ausdrücke erklärt},
130 @rlearning{Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck}.
133 @ref{Mehrere Partituren in einem Buch},
134 @ref{Mehrere Ausgabedateien aus einer Eingabedatei} und
135 @ref{Die Dateistruktur}.
138 @node Mehrere Partituren in einem Buch
139 @subsection Mehrere Partituren in einem Buch
140 @translationof Multiple scores in a book
143 @cindex Sätze, mehrere
145 Eine Partitur kann mehrere musikalische Stücke und verschiedene
146 Texte beinhalten. Beispiele hierzu sind etwa eine Etüdensammlung
147 oder ein Orchesterstück mit mehreren Sätzen. Jeder Satz wird
148 in einer eigenen @code{\score}-Umgebung notiert:
157 und Texte werden mit einer @code{\markup}-Umgebung geschrieben:
167 Alle Sätze und Texte, die in derselben @file{.ly}-Datei vorkommen,
168 werden normalerweise in eine einzige Ausgabedatei gesetzt.
182 Eine wichtige Ausnahme stellen Dokumente dar,
183 die mit lilypond-book erstellt werden, für die Sie explizit
184 @code{\book}-Umgebungen notieren müssen, weil sonst nur die erste
185 @code{\score}- bzw. @code{\markup}-Umgebung angezeigt wird.
187 Der Kopfbereich für jedes Musikstück kann innerhalb der @code{\score}-Umgebung
188 definiert werden. Die @code{piece}-(Stück)-Bezeichnung aus dieser
189 @code{\header}-Umgebung wird vor jedem Satz ausgegeben. Die Überschrift für
190 ein ganzes Buch kann innerhalb von @code{\book} notiert werden, aber wenn
191 diese Umgebung fehlt, wird die @code{\header}-Umgebung genommen, die auf
192 erster Ebene der Datei notiert ist.
196 title = "Acht Miniaturen"
197 composer = "Igor Stravinsky"
201 \header @{ piece = "Romanze" @}
204 ..Text der zweiten Strophe..
207 ..Text der dritten Strophe..
211 \header @{ piece = "Menuetto" @}
217 Stücke können innerhalb eines Buches mit @code{\bookpart} gruppiert
218 werden. Derartige Buchabschnitte werden durch einen Seitenumbruch
219 voneinander getrennt und können wie auch das ganze Buch selber mit
220 einem Titel innerhalb einer @code{\header}-Umgebung beginnen.
226 subtitle = "Erster Teil"
233 subtitle = "Zweiter Teil"
241 @node Mehrere Ausgabedateien aus einer Eingabedatei
242 @subsection Mehrere Ausgabedateien aus einer Eingabedatei
243 @translationof Multiple output files from one input file
245 Wenn Sie mehrere Ausgabedateien aus derselben @file{.ly}-Datei haben
246 wollen, können Sie mehrere @code{\book}-Umgebungen hinzufügen, wobei
247 jede Umgebung eine neue Ausgabedatei produziert. Wenn Sie keine
248 @code{\book}-Umgebung in der Eingabedatei angeben, wird die Datei von
249 LilyPond implizit als eine große @code{\book}-Umgebung behandelt, siehe
250 auch @ref{Die Dateistruktur}.
252 Wenn man mehrere Dateien aus einer einzigen Eingabedatei erstellt, stellt
253 LilyPond sicher, dass keine der Ausgabedateien der vorhandenen
254 @code{\book}-Umgebungen eine andere Ausgabedatei, etwa von der vorherigen
255 @code{\book}-Umgebung, überschreibt.
257 Dies geschieht, indem ein Suffix an den Ausgabenamen für jede
258 @code{\book}-Umgebung gehängt wird, die den Dateinamen der Eingabdatei
261 Das Standardverhalten ist es, einen Zahlen-Suffix für die Namen hinzuzufügen,
262 die in Konflikt stehen. Der Code
267 \layout @{ @dots{} @}
271 \layout @{ @dots{} @}
275 \layout @{ @dots{} @}
284 @file{eightminiatures.pdf},
286 @file{eightminiatures-1.pdf} and
288 @file{eightminiatures-2.pdf}.
292 @node Dateinamen der Ausgabedateien
293 @subsection Dateinamen der Ausgabedateien
294 @translationof Output file names
296 @funindex \bookOutputSuffix
297 @funindex \bookOutputName
299 LilyPond stellt die Möglichkeit zur Verfügung zu kontrollieren, welche
300 Dateinamen für welche Back-ends benutzt werden sollen, wenn die Ausgabedateien
303 Im vorhergehenden Abschnitt wurde gezeigt, wir LilyPond gleichnamige
304 Ausgabedateien verhindert, wenn mehrere Ausgabedateien aus derselben
305 Eingabedatei erstellt werden. Es gibt auch die Möglichkeit, eigene
306 Suffixe für jeden @code{\book}-Abschnitt zu definieren, sodass man etwa
307 Dateinamen wie @file{eightminiatures-Romanze.pdf}, @file{eightminiatures-Menuetto.pdf}
308 und @file{eightminiatures-Nocturne.pdf} produzieren kann, indem man
309 eine @code{\bookOutputSuffix}-Angabe in jede @code{\book}-Umgebung
314 \bookOutputSuffix "Romanze"
316 \layout @{ @dots{} @}
319 \bookOutputSuffix "Menuetto"
321 \layout @{ @dots{} @}
324 \bookOutputSuffix "Nocturne"
326 \layout @{ @dots{} @}
330 Man kann auch einen anderen Dateinamen für die Ausgabedatei einer
331 @code{\book}-Umgebung erstellen, indem man @code{\bookOutputName}-Angabe
336 \bookOutputName "Romanze"
338 \layout @{ @dots{} @}
341 \bookOutputName "Menuetto"
343 \layout @{ @dots{} @}
346 \bookOutputName "Nocturne"
348 \layout @{ @dots{} @}
352 Die obige Datei produziert folgene Ausgabedateien:
358 @file{Menuetto.pdf} and
362 @node Die Dateistruktur
363 @subsection Die Dateistruktur
364 @translationof File structure
374 @cindex Dateistruktur
375 @cindex Struktur, Datei
376 @cindex Eingabedatei, Struktur
377 @cindex Quelldatei, Struktur
379 Eine @file{.ly}-Datei kann eine beliebige Anzahl an Ausdrücken
380 auf der obersten Ebene beinhalten, wobei ein Ausdruck der obersten
381 Ebene einer der folgenden sein kann:
385 Eine Ausgabedefinition, wie @code{\paper}, @code{\midi} und
386 @code{\layout}. Derartige Definitionen auf oberster Ebene verändern
387 die globalen Einstellungen für das ganze @qq{Buch}. Wenn mehr
388 als eine derartige Definition desselben Typs angegeben wird, hat
392 Ein direkter Scheme-Ausdruck, wie etwa
393 @code{#(set-default-paper-size "a7" 'landscape)} oder
394 @code{#(ly:set-option 'point-and-click #f)}.
397 Eine @code{\header}-Umgebung. Damit wird die globale Titelei
398 eingestellt. Das ist die Umgebung, in der sich Definition für
399 das ganze Buch befinden, wie Komponist, Titel usw.
402 Eine @code{\score}-Umgebung. Die in ihr enthaltene Partitur wird
403 zusammen mit anderen vorkommenden @code{\score}-Umgebungen gesammelt
404 und in ein @code{\book} zusammengefasst. Dieses Verhalten kann
405 verändert werden, indem die Variable @code{toplevel-score-handler}
406 auf höchster Ebene gesetzt wird. Die Definition des Standards findet sich
407 in der Datei @file{../scm/lily.scm}.
410 Eine @code{\book}-Umgebung fasst mehrere Sätze (d. h. mehrere
411 @code{\score}-Umgebungen) logisch in ein Dokument zusammen.
412 Wenn mehrere @code{\score}-Partituren vorkommen, wird für jede
413 @code{\book}-Umgebung eine eigene Ausgabedatei erstellt, in der
414 alle in der Umgebung enthaltenen Partituren zusammengefasst sind.
415 Der einzige Grund, explizit eine @code{\book}-Umgebung zu setzen,
416 ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei
417 erstellt werden sollen. Eine Ausnahme sind lilypond-book-Dokumente,
418 in denen eine @code{\book}-Umgebung explizit hinzugefügt werden
419 muss, wenn mehr als eine @code{\score}- oder @code{\markup}-Umgebung
420 im gleichen Beispiel angezeigt werden soll. Dieses Verhalten
421 kann verändert werden, indem die Variable @code{toplevel-book-handler}
422 auf höchster Ebene gesetzt wird. Die Definition des Standards
423 findet sich in der Datei @file{../scm/lily.scm}.
426 Eine @code{\bookpart}-Umgebung. Ein Buch (@code{\book}) kann in
427 mehrere Teile untergliedert sein, indem @code{\bookpart}-Umgebungen
428 eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen
429 Seite und kann eigene Papierdefinitionen in einer @code{\paper}-Umgebung
433 Ein zusammengesetzter musikalischer Ausdruck wie etwa
438 Dieses Beispiel wird von LilyPond automatisch in einer
439 @code{\score}-Umgebung in einem Buch interpretiert und
440 mit anderen @code{\score}-Umgebungen und musikalischen
441 Ausdrücken auf der höchsten Ebene zusammen ausgegeben.
442 Anders gesagt: eine Datei, die nur das obige Beispiel
443 beinhaltet, wird übersetzt zu
460 Dieses Verhalten kann verändert werden, indem die Variable
461 @code{toplevel-music-handler} auf der obersten Ebene gesetzt
462 wird. Die Definition des Standards findet sich in der Datei
463 @file{../scm/lily.scm}.
466 Eine Textbeschriftung, eine Strophe etwa:
469 2. Die erste Zeile der zweiten Strophe.
473 Textbeschriftungen werden über, zwischen oder unter musikalischen
474 Ausdrücken gesetzt, so wie sie notiert werde.
484 Sie kann dann später in der Datei eingesetzt werden, indem @code{\foo}
485 geschrieben wird. Die Bezeichnung der Variable darf nur aus
486 alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.
490 Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene
491 notiert werden können:
495 % Zeilen rechtsbündig setzen
506 An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen
507 Anweisungen notiert werden:
510 @item @code{\version}
511 @item @code{\include}
512 @item @code{\sourcefilename}
513 @item @code{\sourcefileline}
515 Ein einzeiliger Kommentar, beginnend mit @code{%}.
518 Ein mehrzeiliger Kommentar, umgeben von @code{%@{ .. %@}}.
524 Leerzeichen zwischen Einheiten in der Eingabe werden generell ignoriert
525 und können nach Belieben weggelassen werden oder hinzugefügt werden,
526 um die Lesbarkeit des Codes zu verbessern. Mindestens ein Leerzeichen
527 sollte jedoch unter folgenden Umständen immer eingesetzt werden, um
532 Vor und hinter jeder schließenden oder öffnenden Klammer,
534 nach jedem Befehl oder jeder Variable, also jeder Einheit, die mit
537 nach jeder Einheit, die als Scheme-Ausdruck interpretiert werden,
538 also alle Einheiten, die mit@tie{}@code{#} beginnen.
540 Alle Einheiten von Scheme-Ausdrücken müssen mit Leerzeichen getrennt
543 in Gesangstextabschnitten (@code{lyricmode}) müssen Leerzeichen
544 zwischen alle Ausdrücke in @code{\override}- und @code{\set}-Befehlen
545 gesetzt werden. Insbesondere müssen um Punkte und Gleichzeitszeichen
546 in Befehlen wie @code{\override Score . LyricTex #'font-size = #5)}
547 und vor dem gesamten Befehl geschrieben werden.
553 @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
558 @translationof Titles and headers
560 Fast alle gedruckten Noten beinhalten einen Titel und den Namen
561 des Komponisten, teilweise wird auch noch sehr viel mehr Information
562 zur Verfügung gestellt.
565 * Titel Kopf und Fußzeilen erstellen::
566 * Eigene Kopf und Fußzeilen sowie Titel::
567 * Fußnoten erstellen::
568 * Verweis auf die Seitenzahlen::
569 * Inhaltsverzeichnis::
573 @node Titel Kopf und Fußzeilen erstellen
574 @subsection Titel, Kopf- und Fußzeilen erstellen
575 @translationof Creating titles headers and footers
578 * Wie funktioniert die Titel-Umgebung?::
579 * Standardlayout von book und Partitur Titelumgebungen::
580 * Standardlayout von Kopf und Fußzeilen::
584 @node Wie funktioniert die Titel-Umgebung?
585 @unnumberedsubsubsec Wie funktioniert die Titel-Umgebung?
586 @translationof Title blocks explained
588 @c TODO: figure out how \bookpart titles work
590 Es gibt zwei Arten von Titelumgebungen: die Hauptumgebung, die über
591 der ersten @code{\score}-Umgebung innerhalb eines @qq{book} notiert
592 wird, und individuelle Titelumgebungen, die innerhalb von
593 @code{\score} auftreten können. Textfelder für beide Typen werden
594 in der @code{\header}-Umgebung eingegeben.
596 Wenn in dem @qq{book} nur eine einzelne Partitur vorkommt,
597 kann die @code{\header}-Umgebung innheralb oder außerhalb der
598 @code{\score}-Umgebung geschrieben werden.
600 @warning{Denken Sie daran, dass zuerst ein musikalischer Ausdruck
601 notiert werden muss, wenn Sie eine @bs{}@code{header}-Umgebung innheralb
602 einer @bs{}@code{score}-Umgebung verwenden wollen.}
604 @lilypond[papersize=a5,quote,verbatim,noragged-right]
607 composer = "J. S. Bach."
611 \new Staff \relative g, {
614 \repeat unfold 2 { g16( d' b') a b d, b' d, } |
615 \repeat unfold 2 { g,16( e' c') b c e, c' e, } |
623 \new Staff \relative b {
627 <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
628 d16( b g fis) g( e d c) b(c d e) fis( g a b) |
636 Textfelder der Haupttitelumgebung können in allen @code{\score}-Umgebungen
637 gesetzt oder manuell unterdrückt werden:
639 @lilypond[papersize=a5,quote,verbatim,noragged-right]
642 print-all-headers = ##t
645 title = "DAS WOHLTEMPERIRTE CLAVIER"
647 % Do not display the tagline for this book
650 \markup { \vspace #1 }
654 \new Staff { \clef "bass" s1 }
657 title = "PRAELUDIUM I"
659 % Do not display the subtitle for this score
666 \new Staff { \clef "bass" s1 }
670 subsubtitle = "A 4 VOCI"
672 % Do not display the subtitle for this score
681 @ref{Die Dateistruktur},
682 @ref{Angepasstes Layout für Titelumgebungen}.
685 @node Standardlayout von book und Partitur Titelumgebungen
686 @unnumberedsubsubsec Standardlayout von @code{book}- und Partitur-Titelumgebungen
687 @translationof Default layout of book and score title blocks
689 Layout und Formatierung der Titelfelder wird durch zwei
690 @code{\paper}-Variablen kontrolliert: @code{bookTitleMarkup} für
691 die Hauptumgebung und @code{scoreTitleMarkup} für einzelne
692 @code{\header}-Umgebungen innerhalb von einer @code{\score}-Umgebung.
694 @lilypond[papersize=a6,quote,verbatim,noragged-right]
696 % The following fields are centered
697 dedication = "Dedication"
699 subtitle = "Subtitle"
700 subsubtitle = "Subsubtitle"
701 instrument = "Instrument"
703 % The following fields are left-aligned on the left side
707 % The following fields are right-aligned on the right side
708 composer = "Composer"
709 arranger = "Arranger"
715 % The following fields are placed at opposite ends of the same line
722 @c Is the bit about \null markups true? -mp
724 Textfelder, die in einer @code{\header}-Umgebung nicht benutzt werden,
725 werden durch @code{\null}-Textbeschriftung ersetzt, sodass sie keinen
726 leeren Platz belegen.
728 Die Standardeinstellungen von @code{scoreTitleMarkup} platzieren
729 die Felder @code{piece} (Stück) und @code{opus} zu den gegenüberliegenden
730 Seiten der selben Zeile.
732 @funindex breakbefore
734 Mit der Variable @code{breakbefore} innerhalb einer @code{\header}-Umgebung,
735 die für sich auch eine @code{\score}-Umgebung darstellt, kann man
736 die Hauptüberschriften auf der ersten Seite allein ausgeben, sodass die
737 Noten (in der @code{score}-Umgebung definiert) erst auf der folgenden
740 @lilypond[papersize=a8landscape,verbatim,noragged-right]
743 title = "This is my Title"
744 subtitle = "This is my Subtitle"
745 copyright = "This is the bottom of the first page"
748 \repeat unfold 4 { e'' e'' e'' e'' }
750 piece = "This is the Music"
759 @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert},
762 @ref{Die Dateistruktur}.
764 Installierte Dateien:
765 @file{ly/titling-init.ly}.
768 @node Standardlayout von Kopf und Fußzeilen
769 @unnumberedsubsubsec Standardlayout von Kopf- und Fußzeilen
770 @translationof Default layout of headers and footers
772 @emph{Kopf-} und @emph{Fußzeilen} sind Textzeilen, die ganz oben
773 und ganz unten auf der Seite stehen, unabhängig vom Textbereich eines
774 Buches. Sie können mit folgenden @code{\paper}-Variablen kontrolliert
778 @item @code{oddHeaderMarkup}
779 @item @code{evenHeaderMarkup}
780 @item @code{oddFooterMarkup}
781 @item @code{evenFooterMarkup}
784 Diese Beschriftungsvariablen können nur auf Textfelder einer
785 Haupttitelumgebung (eine @code{\header}-Umgebung auf höchster Ebene, die
786 sich auf alle @code{\score}-Umgebungen einer Datei bezieht)
787 zugreifen und sind definiert in der Datei @file{ly/titling-init.ly}. In
788 den Standardeinstellungen
793 werden Seitenzahlen automatisch ganz oben links (wenn gerade) oder ganz
794 oben rechts (wenn ungerade) gesetzt, beginnend mit der zweiten Seite.
797 wird das @code{instrument}-Textfeld auf jeder Seite zentriert, beginnend
798 mit der zweiten Seite.
801 wird der @code{copyright}-Text unten auf der ersten Zeite zentriert.
804 wird der Inhalt von @code{tagline} unten auf der letzten Seite zentriert
805 und unterhalb des @code{copyright}-Texts, wenn es sich nur um eine Seite
810 @lilypond[papersize=a8landscape]
820 Die Standardeinstellung von @code{tagline} kann verändert werden,
821 indem man ein @code{tagline}-Feld in die @code{\header}-Umgebung auf
822 höchster Ebene schreibt.
824 @lilypond[papersize=a8landscape,verbatim]
827 tagline = "... music notation for Everyone"
837 Um die @emph{tagline} ganz zu entfernen, wird ihr Inhalb als @code{##f}
841 @node Eigene Kopf und Fußzeilen sowie Titel
842 @subsection Eigene Kopf- und Fußzeilen sowie Titel
843 @translationof Custom headers footers and titles
845 @c TODO: somewhere put a link to header spacing info
846 @c (you'll have to explain it more in NR 4).
849 * Angepasste Textformatierung für Titelumgebungen::
850 * Angepasstes Layout für Titelumgebungen::
851 * Angepasstes Layout für Kopf und Fußzeilen::
855 @node Angepasste Textformatierung für Titelumgebungen
856 @unnumberedsubsubsec Angepasste Textformatierung für Titelumgebungen
857 @translationof Custom text formatting for title blocks
859 Standard-@code{\markup}-Befehle können eingesetzt werden, um jeglichen
860 Text in Titeln, Kopf- und Fußzeilen innerhalb der @code{\header}-Umgebung
863 @lilypond[quote,verbatim,noragged-right]
867 piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
868 subtitle = \markup { \italic "(Excerpt)" }
875 @ref{Text formatieren}.
878 @node Angepasstes Layout für Titelumgebungen
879 @unnumberedsubsubsec Angepasstes Layout für Titelumgebungen
880 @translationof Custom layout for title blocks
882 @code{\markup}-Befehle in der @code{\header}-Umgebung sind sinnvoll
883 für einfaches Formatieren von Text, aber sie gewähren keine genaue
884 Kontrolle über die Positionierung von Titeln. Um die Positionierung
885 von Titeltextfeldern vorzunehmen, eignen sich beide oder eine von
886 folgenden Variablen (die man in der @code{\paper}-Umgebung einsetzen muss):
889 @item @code{bookTitleMarkup}
890 @item @code{scoreTitleMarkup}
893 Diese Beschriftungsvariablen sind behandelt in
894 @ref{Standardlayout von book und Partitur Titelumgebungen}.
896 Die Standardeinstellungen von @code{scoreTitleMarkup}, wie in der
897 Datei @file{ly/titling-init.ly} definiert, sind:
900 scoreTitleMarkup = \markup @{ \column @{
901 \on-the-fly #print-all-headers @{ \bookTitleMarkup \hspace #1 @}
903 \fromproperty #'header:piece
904 \fromproperty #'header:opus
910 Dadurch werden die Textfelder @code{piece} (Stück) und @code{opus}
911 an den gegenüberliegenden Enden der gleichen Zeile platziert:
913 @lilypond[quote,verbatim,noragged-right]
917 piece = "PRAELUDIUM I"
923 Das folgende Beispiel verändert die Einstellungen von
924 @code{scoreTitleMarkup}, sodass das Textfeld @code{piece}
925 zentriert wird und in fetter, größerer Schrift erscheint.
927 @lilypond[papersize=a5,quote,verbatim,noragged-right]
931 scoreTitleMarkup = \markup {
934 \fontsize #4 \bold \fromproperty #'header:piece
935 \fromproperty #'header:opus
939 \header { tagline = ##f }
943 piece = "PRAELUDIUM I"
950 Textfelder, die normalerweise nur im Haupttitel ausgegeben werden,
951 können auch in die Titel einzelner Partituren aufgenommen werden,
952 indem man @code{print-all-headers} in die @code{\paper}-Umgebung einfügt.
953 Ein Nachteil dieser Methode ist, dass Textfelder, die tatsächlich nur
954 im Haupttitel erscheinen sollen, manuell für jede Partitur unterdrückt
955 werden müssen. Siehe auch @ref{Wie funktioniert die Titel-Umgebung?}.
957 Um das zu vermeiden, kann das gewünschte Feld zur Definition von
958 @code{scoreTitleMarkup} hinzugefügt werden. Im folgenden Beispiel
959 wird das Komponistenfeld (@code{composer}) (normalerweise mit
960 @code{bookTitleMarkup} assoziiert) zu @code{scoreTitleMarkup}
961 hinzugefügt, sodass jede Partitur einen eigenen Komponisten haben kann.
963 @lilypond[papersize=a5,quote,verbatim,noragged-right]
967 scoreTitleMarkup = \markup {
970 \fontsize #4 \bold \fromproperty #'header:piece
971 \fromproperty #'header:composer
975 \header { tagline = ##f }
980 composer = "Christian Petzold"
987 composer = "François Couperin"
993 Es ist auch möglich, eigene Textfelder zu erstellen und dann auf sie
994 in der Beschriftungsdefinition zu verweisen:
996 @lilypond[papersize=a5,quote,verbatim,noragged-right]
1000 scoreTitleMarkup = \markup {
1003 \override #`(direction . ,UP) {
1005 \center-align \fontsize #-1 \bold
1006 \fromproperty #'header:mycustomtext %% User-defined field
1007 \center-align \fontsize #4 \bold
1008 \fromproperty #'header:piece
1011 \fromproperty #'header:opus
1015 \header { tagline = ##f }
1020 mycustomtext = "A 4 VOCI" %% User-defined field
1029 @ref{Wie funktioniert die Titel-Umgebung?}.
1032 @node Angepasstes Layout für Kopf und Fußzeilen
1033 @unnumberedsubsubsec Angepasstes Layout für Kopf- und Fußzeilen
1034 @translationof Custom layout for headers and footers
1036 @c can make-header and make-footer be removed from
1037 @c paper-defaults-init.ly? -mp
1039 @code{\markup}-Befehle in der @code{\header}-Umgebung sind nützlich
1040 um einfachen Text zu formatieren, erlauben aber keine Kontrolle
1041 über die Positionierung von Kopf- und Fußzeilen. Um die Positionierung
1042 der Textfelder zu ändern, eignen sich beide oder eine von
1043 folgenden Variablen (die man in der @code{\paper}-Umgebung einsetzen muss):
1046 @item @code{oddHeaderMarkup}
1047 @item @code{evenHeaderMarkup}
1048 @item @code{oddFooterMarkup}
1049 @item @code{evenFooterMarkup}
1052 Das folgende Beispiel zentriert die Seitenzahlen unten auf jeder Seite.
1053 Zuerst werden die Standardeinstellungen von @code{oddHeaderMarkup} und
1054 @code{evenHeaderMarkup} entfernt, indem sie als @qq{Null}-Beschriftung
1055 definiert werden. Dann wird @code{oddFooterMarkup} mit zentrierter
1056 Seitennummer neu definiert. Schließlich erhält @code{evenFooterMarkup}
1057 die selbe Layoutdefinition wie @code{\oddFooterMarkup}:
1059 @lilypond[papersize=a8,quote,verbatim,noragged-right]
1062 print-page-number = ##t
1063 print-first-page-number = ##t
1064 oddHeaderMarkup = \markup \null
1065 evenHeaderMarkup = \markup \null
1066 oddFooterMarkup = \markup {
1068 \on-the-fly #print-page-number-check-first
1069 \fromproperty #'page:page-number-string
1072 evenFooterMarkup = \oddFooterMarkup
1075 \new Staff { s1 \break s1 \break s1 }
1082 @ref{Wie funktioniert die Titel-Umgebung?},
1083 @ref{Standardlayout von book und Partitur Titelumgebungen}.
1086 @node Fußnoten erstellen
1087 @subsection Fußnoten erstellen
1088 @translationof Creating footnotes
1090 Zwei Arten an Fußnoten können erstellt werden: automatische und
1094 * Übersicht über Fußnoten::
1095 * Automatische Fußnoten::
1096 * Manuelle Fußnoten::
1099 @node Übersicht über Fußnoten
1100 @unnumberedsubsubsec Übersicht über Fußnoten
1101 @translationof Footnotes overview
1103 Automatische Fußnoten erstellen aufsteigende Zahlenverweise, während
1104 mit manuellen Fußnoten eigene angepasste Verweise erstellt werden
1105 können. Alle Grobs, @code{\markup}-Beschriftung auf höchster Ebene
1106 und zu Akkord zusammengefasste Noten können mit Fußnoten versehen werden.
1108 Die Reihenfolge, in welcher ein Grob erstellt wird, bestimmt die
1109 Reihenfolge der Nummerierung automatischer Fußnoten.
1112 @node Automatische Fußnoten
1113 @unnumberedsubsubsec Automatische Fußnoten
1114 @translationof Automatic footnotes
1116 @cindex Fußnoten, automatisch
1118 Es gibt zwei Befehle, um autmatische Fußnoten zu erstellen:
1119 @code{\footnoteGrob} für einzelne Grobs (etwa Notenköpfe,
1120 Hälse, Bögen, Dynamik (auch @code{\markup} wenn @code{TextScripts}-Dynamik
1121 aktiv ist) sowie @code{\footnote} für Akkordnoten.
1123 Beide Befehle haben drei Argumente: das @var{Layoutobjekt}, das die
1124 Anmerkung erhalten soll, die @var{(x . y)}-Position des Indikators und
1125 eine @code{\markup}-Beschriftung, die den Inhalt der Fußnote enthält.
1127 Der Befehl @code{\footnoteGrob} muss @emph{vor} dem Grob geschrieben
1128 werden, auf den sie sich bezieht.
1131 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1133 \header { tagline = ##f }
1135 \footnote #'(0.5 . -2) #'NoteHead
1136 \markup { Die erste Note }
1138 \footnote #'(0.5 . 1) #'NoteHead
1139 \markup { Die dritte Note }
1145 Bei Noten in Akkorden muss der Befehl @code{\footnote} @emph{nach}
1146 der Note, auf der sie sich bezieht, stehen:
1149 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1151 \header { tagline = ##f }
1154 c-\footnote #'(1 . -1.25) "Hier ein C"
1155 es-\footnote #'(2 . -0.25) \markup { \italic "Ein Ex" }
1156 g-\footnote #'(2 . 3) \markup { \bold "Das ist ein G" }
1162 @warning {Wenn Fußnoten die selbe vertikale Position haben, werden
1163 sie von oben nach unten nummeriert.}
1165 Hier noch einige Beispiele von Grobs, die mit automatischen Fußnoten
1166 versehen sind, wobei auch die Position des Fußnotentextes relativ zu
1167 Tagline und Copyright gezeigt wird.
1170 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1172 \header { copyright = \markup { "Copyright 1970" } }
1174 \footnote #'(-3 . 0) #'DynamicText
1175 \markup { \bold Forte }
1177 \footnote #'(0 . 1.5) #'Slur
1178 \markup { Ein Bogen }
1181 \footnote #'(0 . -2) #'Beam
1185 \footnote #'(1 . -1) #'Stem
1186 \markup { \teeny { Das ist ein Hals } }
1189 \footnote #'(0 . 0.5) #'AccidentalCautionary
1190 \markup \italic { Ein Warnungsversetzungszeichen }
1192 \footnote #'(0.5 . -0.5) #'TextScript
1193 \markup \italic { Langsamer hier }
1199 Für eine @code{\markup}-Beschriftung auf oberster Ebene braucht man
1200 den Befehl @code{\auto-footnote}:
1203 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1205 \header { tagline = ##f }
1206 \markup { \auto-footnote "Eine einfache Melodie" \italic "Von mir" }
1214 @node Manuelle Fußnoten
1215 @unnumberedsubsubsec Manuelle Fußnoten
1216 @translationof Manual footnotes
1219 @funindex \footnoteGrob
1220 @cindex Fußnoten, manuell
1222 Mit zwei Befehlen können manuelle Fußnoten erstellt werden: @code{\footnote}
1223 für @code{\markup}-Beschriftung auf höchster Ebene und Noten in
1224 Akkorden sowie @code{\footnoteGrob} für einzelne Grobs (inklusive
1225 @code{\markup} wenn @code{TextScripts} benutzt wird).
1227 Wenn Fußnoten an Grobs angehänt werden, braucht der
1228 @code{\footnote}-Befehl vier Argumente: das @var{Layoutobjekt}, das
1229 die Anmerkung erhält, die @var{(x . y)}-Position des Indikators
1230 und zwei @code{\markup}-Befehle - der erste ist das Symbol, das
1231 als Indikator an den Grob gehängt wird, der zweite der Inhalt
1234 Der Befehl @code{\footnoteGrob} muss @emph{nach} dem Grob
1235 kommen, an den die Fußnote gehängt wird und als @code{TextScript}
1239 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1241 \header { tagline = ##f }
1244 "1" #'(0.5 . -2) #'NoteHead \markup { \italic "1. Die erste Note" }
1247 \markup { \bold "2" } #'(0.5 . 1) #'NoteHead "2. Die zweite Note"
1249 d\p-\footnote "3" #'(0.5 . -1) #'DynamicText "3. Piano"
1254 Fußnoten für Akkordnoten müssen @emph{nach} der Note, auf die sie sich
1255 beziehen, mit dem Befehl @code{\footnote} als @code{TextScript}
1258 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1260 \header { tagline = ##f }
1263 c-\footnote "1" #'(1 . -1.25) "1. C"
1265 \markup { \bold "b" } #'(2 . -0.25) "b. E-flat"
1266 g-\footnote "3" #'(2 . 3) \markup { \italic "iii. G" }
1272 @warning {Wenn Fußnoten die selbe vertikale Position haben, werden
1273 sie von oben nach unten nummeriert.}
1275 Hier einige Beispiele manueller Fußnoten, die auch die relative
1276 Position der Fußnotentexte zu Tagline und Copyright anzeigen:
1279 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1281 \header { tagline = ##f }
1284 \markup { \teeny 1 } #'(-3 . 0) #'DynamicText
1285 \markup { 1. \bold Forte }
1288 \markup { \teeny b } #'(0 . 1.5) #'Slur
1289 \markup { b. Ein Bogen }
1293 \markup { \teeny 3 } #'(0 . -2) #'Beam
1294 \markup { 3. Balken }
1298 \markup { 4 } #'(1 . -1) #'Stem
1299 \markup { \bold 4. { Das ist ein Hals } }
1303 \markup \concat \teeny { "sharp (v)" } #'(0 . 0.5) #'AccidentalCautionary
1304 \markup \italic { v. Ein Warnungsversetzungszeichen }
1307 \markup \concat \teeny { "a" } #'(0.5 . -0.5) #'TextScript
1308 \markup \italic { a. Langsamer hier }
1313 \markup { \teeny \musicglyph #"rests.4" } #'(1.5 . -0.25) #'BreathingSign
1319 Eine @code{\markup}-Beschriftung der höchsten Ebene wird wie folgt
1322 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1324 \header { tagline = ##f }
1325 \markup { "Eine einfache Melodie" \footnote "*" \italic "* Von mir" }
1333 Handbuch zum Lernen:
1334 @rlearning{Objekte und Schnittstellen}.
1337 @ref{Erklärungen in Ballonform},
1339 @ref{Textartige Zeichen},
1343 Referenz der Interna:
1344 @rinternals{FootnoteEvent},
1345 @rinternals{FootnoteItem},
1346 @rinternals{FootnoteSpanner},
1347 @rinternals{Footnote_engraver}.
1350 Mehrere Fußnoten auf einer Seite können ausschließlich übereinander
1351 gedruckt werden und nicht auf der gleiche Zeile gesetzt werden.
1352 Fußnoten können nicht an @code{MultiMeasureRests} (mehrtaktige Pause)
1353 angehängt werden und können mit @code{Staff}-(Notensystem)-,
1354 @code{\markup}-(Beschriftungs)-Objekten und anderen Fußnoten
1355 zusammenstoßen. Wenn man den manuellen Fußnotenbefehl einsetzt,
1356 braucht man in der @code{\paper}-Umgebung den Eintrag
1357 @code{footnote-auto-number = ##f}.
1360 @node Verweis auf die Seitenzahlen
1361 @subsection Verweis auf die Seitenzahlen
1362 @translationof Reference to page numbers
1364 Eine bestimmte Stelle der Partitur kann mit einem @code{\label}-Befehl
1365 markiert werden, sowohl auf oberster Ebene als auch innerhalb eines
1366 musikalischen Ausdrucks. Auf diese Marke kann dann verwiesen werden,
1367 um die Seitenzahl zu erhalten, auf der die Marke vorkommt. Der
1368 Verweis wird mit dem Befehl @code{\page-ref} gefordert (innerhalb
1369 von @code{\markup}).
1373 \header { tagline = ##f }
1375 \label #'ErstePartitur
1379 \pageBreak \mark A \label #'ZeichenA
1383 \markup { Die erste Partitur fängt auf
1384 Seite \page-ref #'ErstePartitur "0" "?" an.}
1385 \markup { Zeichen A befindet sich auf Seite
1386 \concat { \page-ref #'ZeichenA "0" "?" . } }
1390 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
1394 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
1395 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
1396 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekannt ist.
1399 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
1400 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
1401 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
1402 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
1403 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
1404 schon vorher bekannt sein. Die Größe wird mithilfe des Platzhalters
1405 bestimmt. Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
1406 "00" schreiben, also eine zweistellige Zahl.
1413 @funindex \page-ref.
1417 @node Inhaltsverzeichnis
1418 @subsection Inhaltsverzeichnis
1419 @translationof Table of contents
1421 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
1422 @code{\markuplist \table-of-contents}. Die Elemente, die im
1423 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
1424 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
1425 Ebene als auch in einem musikalischen Ausdruck verwendet werden
1429 \markuplist \table-of-contents
1432 \tocItem \markup "Erste Partitur"
1436 \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
1441 \tocItem \markup "zweite Partitur"
1449 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
1450 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
1451 Die Standardformatierungselemente sind @code{tocTitleMarkup}
1452 um die Überschrift zu formatieren und @code{tocItemMarkup} um
1453 die einzelnen Inhaltselemente zu formatieren, bestehend aus
1454 dem Titelelement und einer Seitenzahl. Die Variablen können
1455 durch den Benutzer geändert werden:
1459 %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
1460 tocTitleMarkup = \markup \huge \column {
1461 \fill-line { \null "Table des matières" \null }
1464 %% hier größere Schriftarten
1465 tocItemMarkup = \markup \large \fill-line {
1466 \fromproperty #'toc:text \fromproperty #'toc:page
1471 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
1472 in der Definition von @code{tocItemMarkup} aufgerufen mit
1473 @code{#'toc:text} und @code{#'toc:page}.
1475 Neue Befehle und Beschriftungen können auch definiert werden,
1476 um eigene Inhaltsverzeichnisse zu gestalten:
1480 @item zuerst muss eine neue Beschriftungsvariable in der
1481 @code{\paper}-Umgebung definiert werden
1483 @item dann muss die musikalische Funktion definiert werden, die
1484 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
1485 Variable benutzt wird.
1489 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
1490 einer Oper in das Inhaltsverzeichnis aufzunehmen:
1494 tocActMarkup = \markup \large \column {
1496 \fill-line { \null \italic \fromproperty #'toc:text \null }
1502 #(define-music-function (parser location text) (markup?)
1503 (add-toc-item! 'tocActMarkup text))
1506 @lilypond[line-width=11.0\cm]
1507 \header { tagline = ##f }
1509 tocActMarkup = \markup \large \column {
1511 \fill-line { \null \italic \fromproperty #'toc:text \null }
1517 #(define-music-function (parser location text) (markup?)
1518 (add-toc-item! 'tocActMarkup text))
1521 \markuplist \table-of-contents
1522 \tocAct \markup { Atto Primo }
1523 \tocItem \markup { Coro. Viva il nostro Alcide }
1524 \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
1525 \tocAct \markup { Atto Secondo }
1526 \tocItem \markup { Sinfonia }
1527 \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
1532 Die Zeile zwischen dem Inhalt und der Seitenzahl kann mit einer gepunkteten
1533 Linie gefüllt werden:
1535 @lilypond[verbatim,quote]
1536 \header { tagline = ##f }
1538 tocItemMarkup = \tocItemWithDotsMarkup
1542 \markuplist \table-of-contents
1543 \tocItem \markup { Allegro }
1544 \tocItem \markup { Largo }
1551 Installierte Dateien:
1552 @file{../ly/toc-init.ly}.
1554 @funindex \table-of-contents
1558 @code{\table-of-contents},
1563 @node Arbeiten an Eingabe-Dateien
1564 @section Arbeiten an Eingabe-Dateien
1565 @translationof Working with input files
1568 * LilyPond-Dateien einfügen::
1569 * Verschiedene Editionen aus einer Quelldatei::
1574 @node LilyPond-Dateien einfügen
1575 @subsection LilyPond-Dateien einfügen
1576 @translationof Including LilyPond files
1579 @cindex einfügen von Dateien
1580 @cindex Dateien einfügen
1582 Ein größeres Projekt kann in einzelne Dateien aufgeteilt werden.
1583 Um eine andere Datei einzubinden, kann der Befehl
1586 \include "andereDatei.ly"
1592 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
1593 also ob der Inhalt der Datei @file{andereDatei.ly} komplett in die
1594 Hauptdatei eingefügt werden würde. So kann man für ein größeres
1595 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
1596 und sie dann in einer Partitur-Datei benutzen. Meistens werden
1597 in den eingefügten Dateien einige Variablen definiert, die dann
1598 auch in der Hauptdatei eingesetzt werden können. Mit Marken (Tags)
1599 gekennzeichnete Abschnitte können eingesetzt werden, um die
1600 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
1601 zur Verfügung zu stellen. Siehe auch @ref{Verschiedene Editionen aus einer Quelldatei}.
1603 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
1604 nach dem @code{\include}-Befehl verwiesen werden. Dateien an anderen
1605 Stellen können eingebunden werden, indem entweder ein vollständiger
1606 Pfad oder ein relativer Pfad zu der Datei angegeben wird. Hierbei
1607 sollten die für UNIX typischen Schrägstriche (/) und nicht die
1608 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
1609 zu trennen. Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
1610 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
1614 \include "../kram.ly"
1618 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
1619 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
1623 \include "stimmen/VI.ly"
1624 \include "stimmen/VII.ly"
1628 Dateien, die eingebunden werden sollen, können selber auch wiederum
1629 ein @code{\include} enthalten. Diese Einbindung zweiter Ebene
1630 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
1631 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
1632 sondern relativ zur Hauptdatei gesetzt werden müssen. Dieses Verhalten
1633 kann jedoch auch verändert werden, indem man lilypond die Option
1634 @option{-drelative-includes} auf der Kommandozeile zuweist (oder indem
1635 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
1636 Beginn der Quelldatei schreibt). Mit @code{relative-includes} wird
1637 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
1638 in der sich der Befehl befindet. Dieses Verhalten wird empfohlen und wird
1639 in zukünftigen Versionen von LilyPond den Standard darstellen.
1641 Dateien können auch aus einem Verzeichnis eingebunden werden,
1642 dass im Suchpfad von LilyPond liegt. Hierzu muss auf der
1643 Kommandozeile das entsprechende Verzeichnis angegeben werden
1644 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
1645 notiert sein. Wenn etwa die Datei @file{Haupt.ly} kompiliert
1646 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
1647 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
1648 befinden und dann LilyPond folgendermaßen aufrufen:
1651 lilypond --include=stimmen Haupt.ly
1655 In @file{Haupt.ly} steht:
1663 Dateien, die in vielen Partituren verwendet werden sollen, können
1664 im LilyPond-Verzeichnis @file{../ly} gespeichert werden. (Die
1665 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
1666 ab, siehe hierzu @rlearning{Mehr Information}). Dateien
1667 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
1668 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
1670 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
1671 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
1672 können identifiziert werden, indem LilyPond auf der Kommandozeile mit
1673 Option aufgerufen wird: @code{lilypond --verbose}. Hiermit wird
1674 neben anderer Information auch eine Liste von Pfaden und Dateien
1675 aufgeführt, die LilyPond benutzt. Die wichtigeren Dateien werden
1676 im Abschnitt @rlearning{Mehr Information} besprochen.
1677 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
1678 wenn eine neue LilyPond-Version installiert wird.
1680 Einige einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
1682 @rlearning{Partituren und Stimmen}.
1685 Handbuch zum Lernen:
1686 @rlearning{Mehr Information},
1687 @rlearning{Partituren und Stimmen}.
1690 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
1691 dem Installationsverzeichnis von LilyPond entspricht, wird die
1692 installierte Datei anstelle der eigenen verwendet.
1695 @node Verschiedene Editionen aus einer Quelldatei
1696 @subsection Verschiedene Editionen aus einer Quelldatei
1697 @translationof Different editions from one source
1699 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
1700 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
1701 Variablen werden am besten eingesetzt, wenn es darum geht, längere
1702 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
1703 verschiedene Weise zu kombinieren. Tag-Marken dagegen werden am
1704 besten eingesetzt, wenn eine von mehreren kurzen alternativen
1705 Notenabschnitten ausgewählt werden soll und können auch eingesetzt
1706 werden, um Musikabschnitte an unterschiedlichen Stellen zusammenzufügen.
1708 Egal welche Methode am
1709 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
1710 die eigentlichen Noten und die Struktur der Partitur voneinander
1711 getrennt notiert werden -- so kann die Struktur geändert werden,
1712 ohne dass man Änderungen an den Noten vornehmen muss.
1715 * Variablen benutzen::
1717 * Globale Einstellungen benutzen::
1720 @node Variablen benutzen
1721 @unnumberedsubsubsec Variablen benutzen
1722 @translationof Using variables
1724 @cindex Variablen, Benutzung
1726 Wenn Notenabschnitt in Variablen definiert werden, können sie
1727 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1728 siehe auch @rlearning{Stücke durch Bezeichner organisieren}. Zum
1729 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1730 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1731 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1732 einmal notieren muss. Noten aus zwei Variablen können auf einem
1733 System kombiniert werden, siehe @ref{Automatische Kombination von Stimmen}.
1736 @lilypond[verbatim,quote]
1737 sopranoMusic = \relative c'' { a4 b c b8( a) }
1738 altoMusic = \relative g' { e4 e e f }
1739 tenorMusic = \relative c' { c4 b e d8( c) }
1740 bassMusic = \relative c' { a4 gis a d, }
1741 allLyrics = \lyricmode {King of glo -- ry }
1743 \new Staff = "Soprano" \sopranoMusic
1744 \new Lyrics \allLyrics
1745 \new Staff = "Alto" \altoMusic
1746 \new Lyrics \allLyrics
1747 \new Staff = "Tenor" {
1751 \new Lyrics \allLyrics
1752 \new Staff = "Bass" {
1756 \new Lyrics \allLyrics
1759 \set Staff.printPartCombineTexts = ##f
1765 \set Staff.printPartCombineTexts = ##f
1775 Unterschiedliche Partituren, die entweder nur den Chor oder das
1776 Klavier zeigen, können produziert werden, indem die Struktur
1777 verändert wird; die Noten müssen dazu nicht verändert werden.
1779 Für längere Partituren können Variablen in eigene Dateien notiert
1780 werden, die dann eingebunden werden, siehe @ref{LilyPond-Dateien einfügen}.
1783 @node Marken benutzen
1784 @unnumberedsubsubsec Marken benutzen
1785 @translationof Using tags
1789 @cindex markierte Noten entfernen
1790 @cindex markierte Noten behalten
1791 @cindex in markierte Noten einfügen
1794 @funindex \keepWithTag
1795 @funindex \removeWithTag
1796 @funindex \pushToTag
1797 @funindex \appendToTag
1799 @funindex keepWithTag
1800 @funindex removeWithTag
1803 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1804 Ausdruck mit der Bezeichnung @var{TeilA}. Ausdrücke, die auf diese
1805 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1806 bzw. ausgefiltert werden. Das geschieht mit den Befehlen
1807 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1808 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1811 @multitable @columnfractions .5 .5
1817 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1818 @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1819 gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1822 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1823 @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1824 @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1825 werden nicht angezeigt.
1828 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1829 @code{\removeWithTag}
1830 @tab Alle markierten und unmarkierten Noten werden angezeigt.
1834 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1835 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1836 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1839 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1840 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1842 @lilypond[verbatim,quote]
1843 music = \relative g' {
1845 \tag #'trills { d8.\trill }
1846 \tag #'expand { \repeat unfold 3 { e32 d } }
1851 \keepWithTag #'trills \music
1854 \keepWithTag #'expand \music
1859 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1860 erfordert manchmal weniger Schreibarbeit:
1862 @lilypond[verbatim,quote]
1863 music = \relative g' {
1865 \tag #'trills { d8.\trill }
1866 \tag #'expand {\repeat unfold 3 { e32 d } }
1871 \removeWithTag #'expand
1875 \removeWithTag #'trills
1880 Marken können auch auf Artikulationen, Text usw angewendet werden,
1884 -\tag #'@var{your-tag}
1888 voranstellt (jedoch nach der Note, an die sie gebunden sind). Mit
1889 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1894 c1-\tag #'warn ^"Achtung!"
1897 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1900 @lilypond[quote,verbatim]
1901 music = \relative c'' {
1902 \tag #'a \tag #'both { a4 a a a }
1903 \tag #'b \tag #'both { b4 b b b }
1906 \keepWithTag #'a \music
1907 \keepWithTag #'b \music
1908 \keepWithTag #'both \music
1912 Mehrfache @code{\removeWithTag}-Filter können auf einen
1913 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1914 markierte Abschnitte aus dem Druckbild zu entfernen.
1916 @lilypond[verbatim,quote]
1917 music = \relative c'' {
1918 \tag #'A { a4 a a a }
1919 \tag #'B { b4 b b b }
1920 \tag #'C { c4 c c c }
1921 \tag #'D { d4 d d d }
1930 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1931 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1932 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1933 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1934 eben genannten zusätzlich entfernt.
1936 Manchmal will man Noten an einem bestimmen Platz in existierenden
1937 Noten einfügen. Dafür kann entweder @code{\pushToTag} oder
1938 @code{\appendToTag} benutzt werden, um Material hinter bzw. vor den
1939 Elementen (@code{elements}) der existierenden Noten einzufügen. Nicht
1940 alle musikalischen Konstruktionen haben Elemente, aber sequentielle und
1941 simultane Noten sind ziemlich gute Kandidaten:
1943 @lilypond[verbatim,quote]
1944 test = { \tag #'here { \tag #'here <<c''>> } }
1947 \pushToTag #'here c'
1948 \pushToTag #'here e'
1949 \pushToTag #'here g' \test
1950 \appendToTag #'here c'
1951 \appendToTag #'here e'
1952 \appendToTag #'here g' \test
1956 Beide Befehle erhalten einen Tag, das Material, das bei jedem Auftreten
1957 des Tags eingefügt werden soll und den Ausdruck, der mit dem Tag versehen
1958 ist. Der Befehl stellt sicher, dass alle Änderungen kopiert werden, sodass
1959 das ursprüngliche @code{\test} seine Bedeutung behält.
1962 Handbuch zum Lernen:
1963 @rlearning{Stücke durch Bezeichner organisieren}.
1966 @ref{Automatische Kombination von Stimmen},
1967 @ref{LilyPond-Dateien einfügen}.
1971 @c This warning is more general than this placement implies.
1972 @c Rests are not merged whether or not they come from tagged sections.
1973 @c Should be deleted? -td
1977 Multiple rests are not merged if you create a score with more
1978 than one tagged section at the same place.
1983 @node Globale Einstellungen benutzen
1984 @unnumberedsubsubsec Globale Einstellungen benutzen
1985 @translationof Using global settings
1987 @funindex include-settings
1989 Man kann globale Einstellungen aus einer externen Datei einfügen:
1992 lilypond -dinclude-settings=MY_SETTINGS.ly MY_SCORE.ly
1996 Einstellungsgruppen, wie etwa Seitengröße, Schriftart oder Schriftschnitt, können
1997 in eigenen Dateien gespeichert werden. Das ermöglicht es, aus der gleichen
1998 Partitur unterschiedliche Editionen zu erstellen bzw. Standardeinstellungen
1999 für eine ganze Anzahl von Partituren wiederzuverwenden, indem man einfach
2000 die entsprechende Einstellungsdatei angibt.
2002 Diese Technik funktioniert auch gut für globale Formatierungen, wie behandelt
2003 in @rlearning{Globale Formatierung}.
2006 Handbuch zum Lernen:
2007 @rlearning{Stücke durch Bezeichner organisieren},
2008 @rlearning{Globale Formatierung}.
2011 @ref{LilyPond-Dateien einfügen}.
2015 @subsection sonderzeichen
2016 @translationof Special characters
2018 @cindex Sonderzeichen
2019 @cindex Nicht-ASCII-Zeichen
2022 * Zeichenkodierung::
2028 @node Zeichenkodierung
2029 @unnumberedsubsubsec Zeichenkodierung
2030 @translationof Text encoding
2035 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
2036 und ISO/IEC 10646 definiert sind. Hiermit wird den Zeichen
2037 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
2038 Code-Punkt zugewiesen, mit dem sie identifizierbar sind. Unicode
2039 kann mit mehreren Zeichenkodierungen verwirklicht werden. LilyPond
2040 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
2041 in der die normalen Zeichen des lateinischen Alphabets mit einem
2042 Byte dargestellt werden, während alle anderen Zeichen zwischen
2043 zwei und vier Byte Länge haben.
2045 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
2046 Schriftart (engl. font). In einer Schriftartdatei werden die
2047 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
2048 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
2049 und komplexe Skripte korrekt zu setzen.
2051 LilyPond verändert die Kodierung der Eingabedatei nicht. Das heißt,
2052 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
2053 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
2054 musst. Am einfachsten geht das, indem man einen Texteditor
2055 einsetzt, der mit Unicode-Zeichen umgehen kann. Die meisten
2056 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
2057 wie etwa vim, Emacs, jEdit oder GEdit. Alle MS Windows-Systeme
2058 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
2059 in UTF-8 lesen und speichern kann. Ein Editor mit mehr
2060 Funktionen unter Windows ist BabelPad oder Notepad++.
2062 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
2063 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
2066 FT_Get_Glyph_Name () error: invalid argument
2069 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
2072 %c No verbatim here as the code does not display correctly in PDF
2074 bulgarian = \lyricmode {
2075 Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
2079 hebrew = \lyricmode {
2080 זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
2084 portuguese = \lyricmode {
2085 à vo -- cê uma can -- ção legal
2091 \addlyrics { \bulgarian }
2092 \addlyrics { \hebrew }
2093 \addlyrics { \portuguese }
2098 @unnumberedsubsubsec Unicode
2099 @translationof Unicode
2103 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
2104 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
2105 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
2106 @code{\markup}-Umgebung benutzt werden. Hierbei bedeutet @code{hhhh} die
2107 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
2108 für das erforderliche Zeichen. Nullen zu Beginn können ausgelassen werden,
2109 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
2110 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
2111 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.) Unicode-Tabellen und ein Verzeichnis der Zeichenbezeichnungen
2112 mit einer hexadezimalen Verweiszahl finden sich auf der Internetseite
2113 des Unicode Consortiums: @uref{http://www.unicode.org/}.
2115 Mit @code{\char ##x03BE} und @code{\char #958} wird
2116 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
2117 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
2120 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
2121 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
2122 gespeichert werden. Es muss natürlich auch noch eine Schriftart auf
2123 dem System installiert sein, die die notierten Zeichen darstellen kann.
2125 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
2126 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
2127 im Gesangstext und als normaler Text außerhalb der Partitur.
2129 @lilypond[quote,verbatim]
2132 c1 \mark \markup { \char ##x03EE }
2133 c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
2135 \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
2137 \markup { "Copyright 2008--2011" \char ##x00A9 }
2140 @cindex Copyright-Zeichen
2142 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
2146 copyright = \markup @{ \char ##x00A9 "2008" @}
2152 @unnumberedsubsubsec ASCII-Aliase
2153 @translationof ASCII aliases
2155 Eine Liste von ASCII-Befehlen für Sonderzeichen kann
2158 @lilypond[quote,verbatim]
2160 #(include-special-characters)
2163 \markup "&flqq; – &OE;uvre incomplète… &frqq;"
2166 \new Staff { \repeat unfold 9 a'4 }
2168 This is al -- so wor -- kin'~in ly -- rics: –_&OE;…
2173 "The replacement can be disabled:"
2174 "– &OE; …"
2175 \override #'(replacement-alist . ()) "– &OE; …"
2179 Man kann auch eigen Aliase erstellen, entweder global:
2181 @lilypond[quote,verbatim]
2183 #(add-text-replacements!
2184 '(("100" . "hundred")
2185 ("dpi" . "dots per inch")))
2187 \markup "A 100 dpi."
2193 @lilypond[quote,verbatim]
2194 \markup \replace #'(("100" . "hundred")
2195 ("dpi" . "dots per inch")) "A 100 dpi."
2200 @ref{Liste der Sonderzeichen}.
2202 Installierte Dateien:
2203 @file{ly/text-replacements.ly}.
2206 @node Ausgabe kontrollieren
2207 @section Ausgabe kontrollieren
2208 @translationof Controlling output
2211 * Notationsfragmente extrahieren::
2212 * Korrigierte Musik überspringen::
2213 * Alternative Ausgabeformate::
2214 * Die Notationsschriftart verändern::
2218 @node Notationsfragmente extrahieren
2219 @subsection Notationsfragmente extrahieren
2220 @translationof Extracting fragments of music
2222 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
2223 Quelldatei zu erzeugen. Das kann damit verglichen werden, dass man
2224 mit der Schere bestimmte Regionen ausschneidet.
2226 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
2227 (engl. to clip = ausschneiden), extra definiert. Mit folgender
2228 Definition beispielsweise
2235 (make-rhythmic-location 5 1 2)
2236 (make-rhythmic-location 7 3 4)))
2241 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
2242 beginnt und im siebten Takt endet. Die Bedeutung von @code{5 1 2} ist:
2243 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
2246 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
2247 werden, indem mehrere derartige Paare definiert werden.
2249 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
2250 Parameter @option{-dclip-systems} aufgerufen werden. Die Schnipsel
2251 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
2252 diese Formate auch als Parameter angegeben werden.
2254 Zu mehr Information über Ausgabeformate siehe @rprogram{lilypond aufrufen}.
2257 @node Korrigierte Musik überspringen
2258 @subsection Korrigierte Musik überspringen
2259 @translationof Skipping corrected music
2262 @funindex skipTypesetting
2263 @funindex showFirstLength
2264 @funindex showLastLength
2266 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
2267 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
2268 Korrektur. Um die Korrektur zu beschleunigen, kann eingestellt werden,
2269 dass nur die letzten paar Takte angezeigt werden. Das erreicht man
2273 showLastLength = R1*5
2278 in der Quelldatei. Damit werden nur die letzten fünf Takte (in einem
2279 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt. Besonders
2280 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
2281 kleinen Teil des Stückes zu setzen als die gesamte Länge. Wenn man
2282 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
2283 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
2286 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
2287 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
2288 werden. Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
2289 wird kein Notensatz ausgegeben.
2291 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
2292 kontrollieren. Hiermit werden alle Ereignisse, auch Tempo- und
2293 Instrumentenwechsel ausgelassen. Man muss also sehr genau darauf
2294 achten, dass nichts unerwartetes geschieht.
2296 @lilypond[quote,relative=2,ragged-right,verbatim]
2298 \set Score.skipTypesetting = ##t
2300 \set Score.skipTypesetting = ##f
2304 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
2305 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
2306 Übersetzung der Datei gespart wird.
2309 @node Alternative Ausgabeformate
2310 @subsection Alternative Ausgabeformate
2311 @translationof Alternative output formats
2313 @cindex scalable vector graphics output
2314 @cindex skalierbare Vektorgraphik-Ausgabe
2316 @cindex encapsulated postscript output
2320 Das Standardausgabeformat für gedruckte Partituren ist PDF (Portable
2321 Document Forma) und PS (PostScript). SVG (Scalable Vector
2322 Graphics), EPS (Encapsulated PostScript) und PNG (Portable
2323 Network Graphics) gibt es auch als Ausgabeformate über die
2324 Kommandozeile. Siehe @rprogram{Optionen auf der Kommandozeile für lilypond}.
2327 @node Die Notationsschriftart verändern
2328 @subsection Die Notationsschriftart verändern
2329 @translationof Replacing the notation font
2331 Gonville ist eine Alternative zu der Feta-Schriftart, die in LilyPond
2332 eingesetzt wird und kann unter der Adresse
2334 @uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
2338 heruntergeladen werden. Hier einige Takte Noten mit der Gonville-Schriftart:
2340 @c NOTE: these images are a bit big, but that's important
2341 @c for the font comparison. -gp
2342 @sourceimage{Gonville_after,,,}
2344 Und hier einige Beispieltakte in der Feta-Schriftart:
2346 @sourceimage{Gonville_before,,,}
2348 @subsubheading Installationsanweisungen für MacOS
2350 Laden Sie die Datei herunter und entpacken Sie die ZIP-Datei.
2351 Kopieren Sie das @code{lilyfonts}-Verzeichnis nach
2352 @file{@var{SHARE_DIR}/lilypond/current}; für mehr Information
2353 siehe @rlearning{Mehr Information}.
2354 Benennen Sie das existierende @code{fonts}-Verzeichnis in
2355 @code{fonts_orig} um und benennen Sie das Verzeichnis
2356 @code{lilyfonts} in @code{fonts}. Das alte Verzeichnis
2357 @code{fonts_orig} können Sie einfach in @code{fonts}
2358 zurückbenennen, um wieder nach Feta zu wechseln.
2361 Handbuch zum Lernen: @rlearning{Mehr Information}.
2365 Gonville kann nicht verwendet werden, um Alte Notation zu setzen und es
2366 ist wahrscheinlich, dass neuere Glyphen in späteren Versionen von
2367 LilyPond nicht in Gonville enthalten sein werden.
2368 Bitte lesen Sie die Webseite des Autoren zu mehr Information hierzu
2369 und zu anderen Einzelheiten, wie auch der Lizenz von Gonville.
2373 @section MIDI-Ausgabe
2374 @translationof MIDI output
2379 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
2380 Kontrolle und Interaktion mit digitalen Instrumenten. Eine
2381 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
2382 Bändern/Stimmen. Es ist keine eigentliche Klangdatei, denn man
2383 benötigt spezielle Programme die die Notenereignisse in Klang
2386 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
2387 man sich anhören kann, was man notiert hat. Das hilft oft sehr gut
2388 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
2389 lassen sich meist sehr gut hören.
2391 Normale MIDI-Ausgabe ist etwas roh; optional kann eine verbesserte und
2392 realistischere MIDI-Ausgabe mit einem @ref{Artikuliere-Skript}
2395 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und reserviert
2396 Kanala 10 für Schlagzeug. Es gibt nur 16 MIDI-Kanäle pro Gerät,
2397 sodass MIDI-Kanäle mehrfach benutzt werden, wenn eine Partitur mehr
2398 als 15 Notensysteme hat.
2401 * MIDI-Dateien erstellen::
2403 * Was geht in die MIDI-Ausgabe::
2404 * Wiederholungen im MIDI::
2405 * MIDI-Lautstärke kontrollieren::
2406 * Schlagzeug in MIDI::
2407 * Artikuliere-Skript::
2411 @node MIDI-Dateien erstellen
2412 @subsection MIDI-Dateien erstellen
2413 @translationof Creating MIDI files
2415 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
2416 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
2426 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
2427 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
2428 Wenn auch die Notation gewünscht ist, muss zusätzlich die
2429 @code{\layout}-Umgebung vorhanden sein:
2439 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
2440 korrekt in das MIDI-Format übersetzt. Dynamikzeichen, Crescendo und
2441 Decrescendo werden in den MIDI-Lautstärkekanal übertragen. Dynamikzeichen
2442 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
2443 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
2444 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
2445 werden. Siehe hierzu @ref{Der MIDI-Block}.
2447 Das Anfangstempo und spätere Tempoänderungen können mit dem
2448 @code{\tempo}-Befehl innerhalb der Notation notiert werden. Er
2449 bewirkt Tempoänderungen auch in der MIDI-Datei. Der Befehl setzt
2450 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
2451 auch unterdrückt werden kann, siehe @ref{Metronomangabe}. Eine
2452 andere Möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
2453 unten gezeigt, siehe @ref{Der MIDI-Block}.
2455 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
2456 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
2457 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
2458 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
2459 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
2460 oder @code{\score}-Blocks einfügen:
2463 #(ly:set-option 'midi-extension "midi")
2466 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
2468 Als Alternative kann man diese Option auch als Kommandozeilenparameter
2472 lilypond … -dmidi-extension=midi lilyDatei.ly
2475 @unnumberedsubsubsec Instrumentenbezeichnungen
2477 @cindex Instrumentbezeichnungen
2479 @funindex Staff.midiInstrument
2481 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
2482 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
2483 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
2484 Die Bezeichnungen sind aufgelistet in @ref{MIDI-Instrumente} und müssen
2485 in der dort definierten Schreibweise notiert werden.
2489 \set Staff.midiInstrument = #"glockenspiel"
2495 \new Staff \with @{midiInstrument = #"cello"@} @{
2500 Wenn die Schreibweise nicht genau einem definierten Instrument aus
2501 der Liste entspricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
2505 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
2506 {changing-midi-output-to-one-channel-per-voice.ly}
2510 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
2511 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
2512 nicht geändert werden kann.
2514 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
2515 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
2516 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
2519 @node Der MIDI-Block
2520 @subsection Der MIDI-Block
2521 @translationof MIDI block
2523 @cindex MIDI-Umgebung
2525 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
2526 vorkommen, wenn MIDI-Ausgabe gewünscht ist. Sie entspricht der
2527 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut. Oft wird
2528 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
2529 Kontexte umgeändert werden, neue Kontexte definiert werden oder
2530 neue Werte definiert werden. Das folgende Beispiel etwa definiert
2531 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
2540 tempoWholesPerMinute = #(ly:make-moment 72 4)
2546 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert. Wenn
2547 das Tempo auf diese Weise definiert wird, kann keine punktierte
2548 Note als Einheit angegeben werden. Wenn sie benötigt wird, muss
2549 man sie in kleinere Einheiten auflösen. Ein Tempo von 90 punktierten
2550 Viertelnoten pro Minute kann beispielsweise dargestellt werden
2551 als 270 Achtelnoten pro Minute:
2554 tempoWholesPerMinute = #(ly:make-moment 270 8)
2557 @cindex MIDI-Kontextdefinitionen
2559 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
2560 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
2561 wird. Klangübersetzungsmodule werden @code{performer}
2562 genannt. Die Kontexte für die MIDI-Ausgabe sind in der
2563 Datei @file{../ly/performer-init.ly} definiert, siehe
2564 @rlearning{Mehr Information}. Um beispielsweise
2565 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
2566 entfernen, müssen folgende Zeilen eingefügt werden:
2573 \remove "Dynamic_performer"
2578 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
2579 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
2580 @code{\score} beginnt.
2584 @{ @dots{}Noten@dots{} @}
2590 @node Was geht in die MIDI-Ausgabe
2591 @subsection Was geht in die MIDI-Ausgabe
2592 @translationof What goes into the MIDI output?
2595 @unnumberedsubsubsec In MIDI unterstützt
2597 @cindex Tonhöhen in MIDI
2598 @cindex MIDI, Tonhöhen
2599 @cindex Vierteltöne in MIDI
2600 @cindex MIDI, Vierteltöne
2601 @cindex Mikrotöne in MIDI
2602 @cindex MIDI, Mikrotöne
2603 @cindex Akkordsymbole in MIDI
2604 @cindex MIDI, Akkordsymbole
2605 @cindex Rhythmen in MIDI
2606 @cindex MIDI, Rhythmen
2607 @cindex Artikuliere-Skript
2608 @cindex MIDI, Artikuliere-Skript
2609 @cindex MIDI, Artikulationen
2610 @cindex Triller in MIDI
2611 @cindex Verzierungen in MIDI
2612 @cindex Rallantando in MIDI
2613 @cindex Accelerando in MIDI
2615 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
2619 @item Mikrotöne (siehe @ref{Versetzungszeichen}. Für die Ausgabe wird ein
2620 Spieler benötigt, der Tonhöhen verändern kann.)
2621 @item Akkorde, die als Symbole notiert werden
2622 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
2623 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
2625 @item Dynamikzeichen
2626 @item Crescendi, decrescendi zu mehreren Noten
2627 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
2631 Durch Einsatz vom @ref{Artikuliere-Skript} können noch einige Elemente
2632 zu der Liste hinzugefügt werden:
2635 @item Artikulationen (Bögen, Staccato usw.)
2637 @item Rallentando und accelerando
2641 @unnumberedsubsubsec In MIDI nicht unterstützt
2643 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbezogen,
2644 außer am setzt das @ref{Artikuliere-Skript} ein:
2647 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
2648 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
2649 @item Staccato und andere Artikulationen und Ornamente
2650 @item Legato- und Phrasierungsbögen
2651 @item Crescendi, decrescendi zu einer einzelnen Note
2652 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
2653 @item Bezifferter Bass
2654 @item Akkorde mit Mikrotönen
2658 @node Wiederholungen im MIDI
2659 @subsection Wiederholungen im MIDI
2660 @translationof Repeats in MIDI
2662 @cindex Wiederholungen in MIDI
2663 @cindex MIDI und Wiederholungen
2665 @funindex \unfoldRepeats
2667 Mit einigen Veränderungen im Notentext können alle Wiederholungstypen
2668 auch in der MIDI-Ausgabe wiedergegeben werden. Das wird erreicht, indem
2669 die @code{\unfoldRepeats}-Funktion eingesetzt wird. Diese Funktion
2670 verändert alle Wiederholungen in ausgeschriebene Noten.
2672 @lilypond[quote,verbatim]
2674 \repeat tremolo 8 { c'32 e' }
2675 \repeat percent 2 { c''8 d'' }
2676 \repeat volta 2 { c'4 d' e' f' }
2685 In Parituren mit mehreren Stimmen funktioniert das Ausschreiben der
2686 Wiederholungen im MIDI nur richtig, wenn @emph{jede} Stimme vollständig
2687 notierte Wiederholungsanweisungen enthält.
2689 Wenn eine Partitur mit diesem @code{\unfoldRepeats}-Befehl erstellt
2690 wird, ist er notwendig,
2691 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
2692 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
2693 in der anderen werden die Wiederholungen notiert und als Partitur
2694 gesetzt. Das Beispiel gibt einen Hinweis, wie eine derartige Datei
2703 \unfoldRepeats @var{..music..}
2709 @node MIDI-Lautstärke kontrollieren
2710 @subsection MIDI-Lautstärke kontrollieren
2711 @translationof Controlling MIDI dynamics
2713 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
2714 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
2715 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
2716 als auch relative Lautstärken von Dynamikanweisungen und auch
2717 relative Lautstärke von einzelnen Instrumenten einzustellen.
2720 @unnumberedsubsubsec Dynamik-Zeichen
2722 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
2723 zur Verfügung stehenden MIDI-Lautstärke notiert. Die Standardbrüche
2724 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
2725 @notation{fffff}. Diese Anweisung befinden sich in der Datei
2726 @file{../scm/midi.scm}, siehe auch @rlearning{Mehr Information}.
2727 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
2728 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
2729 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
2730 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
2733 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
2734 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann. Gleiches gilt
2735 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
2736 nicht enthalten sind. Die Scheme-Funktion, die hier definiert wird,
2737 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
2738 Standardanweisungen auf:
2740 @lilypond[verbatim,quote]
2741 #(define (myDynamics dynamic)
2742 (if (equal? dynamic "rfz")
2744 (default-dynamic-absolute-volume dynamic)))
2748 \set Staff.midiInstrument = #"cello"
2749 \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
2761 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
2762 umdefiniert werden soll, ist es besser, die
2763 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
2764 @file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
2765 zu benutzen. Das letzte Beispiel dieses Abschnittes zeigt, wie das
2766 gemacht werden kann.
2769 @unnumberedsubsubsec MIDI-Lautstärke
2771 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2772 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
2773 und @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
2774 werden. Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
2775 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
2776 wenn diese Einstellung von Anfang an Wirkung zeigen soll. Der Bruch,
2777 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
2781 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
2785 errechnet. Im folgenden Beispiel wird die generelle MIDI-Lautstärke
2786 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
2788 @lilypond[verbatim,quote]
2794 \set Staff.midiInstrument = #"flute"
2795 \new Voice \relative c''' {
2803 \set Staff.midiInstrument = #"clarinet"
2804 \new Voice \relative c'' {
2815 tempoWholesPerMinute = #(ly:make-moment 72 2)
2816 midiMinimumVolume = #0.2
2817 midiMaximumVolume = #0.5
2824 @unnumberedsubsubsec Verschiedene Instrumente angleichen (i)
2826 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
2827 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
2828 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
2829 werden. Damit kann man die Qualität der MIDI-Datei
2830 merklich verbessern.
2832 In diesem Beispiel wird die Lautstärke der Klarinette relativ
2833 zur Lautstärke der Flöte verringert. In jeder Stimme muss
2834 eine Dynamikanweisung für die erste Note gesetzt werden, damit
2835 diese Einstellung korrekt funktioniert.
2837 @lilypond[verbatim,quote]
2843 \set Staff.midiInstrument = #"flute"
2844 \set Staff.midiMinimumVolume = #0.7
2845 \set Staff.midiMaximumVolume = #0.9
2846 \new Voice \relative c''' {
2854 \set Staff.midiInstrument = #"clarinet"
2855 \set Staff.midiMinimumVolume = #0.3
2856 \set Staff.midiMaximumVolume = #0.6
2857 \new Voice \relative c'' {
2868 tempoWholesPerMinute = #(ly:make-moment 72 2)
2875 @unnumberedsubsubsec Verschiedene Instrumente angleichen (ii)
2877 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2878 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
2879 Anpassungen für die Lautstärken bestimmter Instrumente vor.
2880 Diese Instrumente und ihre entsprechende Veränderung lassen
2881 sich aus der Tabelle @notation{instrument-equalizer-alist}
2882 in der Datei @file{../scm/midi.scm} entnehmen.
2884 Dieser grundlegende Equalizer kann ersetzt werden, indem die
2885 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
2886 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
2887 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
2888 den Höchst- und Mindestwert für die Lautstärke des entsprechenden
2889 Instruments darstellt. Die Ersetzung der Standardfunktion wird
2890 auf gleiche Weise vorgenommen, wie es schon für die
2891 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
2892 gezeigt wurde. Der Standard-Equalizer,
2893 @notation{default-instrument-equalizer} in der Datei
2894 @file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
2897 Das folgende Beispiel definiert für die Flöte und Klarinette relative
2898 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
2900 @lilypond[verbatim,quote]
2901 #(define my-instrument-equalizer-alist '())
2903 #(set! my-instrument-equalizer-alist
2906 ("flute" . (0.7 . 0.9))
2907 ("clarinet" . (0.3 . 0.6)))
2908 my-instrument-equalizer-alist))
2910 #(define (my-instrument-equalizer s)
2911 (let ((entry (assoc s my-instrument-equalizer-alist)))
2920 \set Score.instrumentEqualizer = #my-instrument-equalizer
2921 \set Staff.midiInstrument = #"flute"
2922 \new Voice \relative c''' {
2930 \set Staff.midiInstrument = #"clarinet"
2931 \new Voice \relative c'' {
2942 tempoWholesPerMinute = #(ly:make-moment 72 2)
2950 @node Schlagzeug in MIDI
2951 @subsection Schlagzeug in MIDI
2952 @translationof Percussion in MIDI
2954 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2955 notiert. Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2956 ausgegeben. Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2957 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2958 in einem @code{Staff}-Kontext notiert. Nur so lässt sich auch hier
2959 eine richtige MIDI-Ausgabe erreichen.
2961 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2962 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2963 einem normalen @code{Staff}-Kontext mit passenden normalen Tonhöhen
2964 notiert werden. Es handelt sich
2965 um @code{melodic tom, taiko drum, synth drum} u. A.
2967 Viele Schlagzeuginstrumente sind nicht in den MIDI-Standard aufgenommen,
2968 z. B. Kastagnetten. Die einfachste Methode, derartige Instrumente
2969 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2975 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2976 Schlagstock (sidestick) für diesen Zweck eingesetzt.
2979 @node Artikuliere-Skript
2980 @subsection Artikuliere-Skript
2981 @translationof The Articulate script
2983 Eine realistischere MIDI-Ausgabe ist möglich, wenn man das
2984 Artikuliere-Skript einsetzt. Es versucht, Artikulationen
2985 (Bögen, Staccato) mit einzubeziehen, indem Noten mit
2986 sequentieller Musik von passender Verlängerung oder Verkürzung
2987 mit entprechenden Skips ersetzt werden. Es versucht auch,
2988 Triller usw. klingen zu lassen und rallantando und
2989 accelerando wahrzunehmen.
2991 Um das Artikuliere-Skript einzusetzen, muss oben in der
2995 \include "articulate.ly"
2999 eingefügt werden. Im @code{\score}-Abschnitt schreibt man
3002 \unfoldRepeats \articulate <<
3003 der Rest der Partitur...
3007 Wenn die Eingabedatei auf diese Art verändert wurd, wird die
3008 Notenausgabe stark verändert, aber die MIDI-Ausgabe produziert
3009 ein besseres Ergebnis.
3011 Wenn auch nicht unbedingt notwendig, damit das Artikuliere-Skript
3012 funktioniert, bietet es sich an, @code{\unfoldRepeats} wie im
3013 Beispiel oben zu verwenden, weil dadurch Abkürzungen wie etwa
3014 Triller ausgeführt werden.
3018 Articulate verkürzt Akkorde und manche Musik (besonders Orgelmusik)
3019 kann schlechter klingen.
3023 @node Musikalische Information extrahieren
3024 @section Musikalische Information extrahieren
3025 @translationof Extracting musical information
3027 Neben graphischer Ausgabe und MIDI kann LilyPond auch die musikalische
3028 Information als Text anzeigen:
3031 * LilyPond-Notation anzeigen::
3032 * Musikalische Scheme-Ausdrücke anzeigen::
3033 * Musikalische Ereignisse in einer Datei speichern::
3036 @node LilyPond-Notation anzeigen
3037 @subsection LilyPond-Notation anzeigen
3038 @translationof Displaying LilyPond notation
3040 @funindex \displayLilyMusic
3042 Mit der musikalischen Funktion @code{\displayLilyMusic} kann
3043 man einen musikalischen Ausdruck anzeigen. Um die Ausgabe zu
3044 sehen, wird LilyPond üblicherweise auf der Kommandozeile
3045 aufgerufen. Beispielsweise
3049 \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3057 @{ a,4 cis e fis g @}
3060 Standardmäßig gibt LilyPond diese Nachrichten auf die Kommandozeile
3061 aus, zusammen mit all den anderen LilyPond-Nachrichten über die
3062 Kompilation. Um die Nachrichten zu speichern, kann man die Ausgabe
3063 in eine Datei umleiten:
3066 lilypond file.ly >display.txt
3071 LilyPond zeit nicht nur die musikalischen Ausdrücke an, sondern
3072 interpretiert sie auch (weil @code{\displayLilyMusic} sie an das
3073 Programm zurückgibt, zusätzlich zur Anzeige). Das ist sehr
3074 praktisch, denn man kann einfach @code{\displayLilyMusic}
3075 in vorhandene Noten einfügen, um Informationen darüber zu erhalten.
3076 Wenn Sie nicht wollen, dass LilyPond die angezeigten
3077 musikalischen Ausdrücke auch interpretiert, muss @code{\void}
3078 eingesetzt werden, damit der Ausdruck für die Interpretation ignoriert wird:
3082 \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3087 @node Musikalische Scheme-Ausdrücke anzeigen
3088 @subsection Musikalische Scheme-Ausdrücke anzeigen
3089 @translationof Displaying scheme music expressions
3091 Siehe @rextend{Musikalische Funktionen darstellen}.
3094 @node Musikalische Ereignisse in einer Datei speichern
3095 @subsection Musikalische Ereignisse in einer Datei speichern
3096 @translationof Saving music events to a file
3098 Musikereignisse können in einer Datei Notensystem für Notensystem
3099 gespeichert werden, indem eine Datei in die Paritur eingefügt
3103 \include "event-listener.ly"
3106 Das erstellt Dateien mit der Bezeichnung @file{DATEINAME-SYSTEMNAME.notes} oder
3107 @file{DATEINAME-unnamed-staff.notes} für jedes Notensystem.
3108 Wenn mehrere Systeme ohne Bezeichnung auftreten, werden die
3109 Ereignisse aller Notensysteme zusammen in der selben Datei
3110 gemischt. Die Ausgabe sieht folgendermaßen aus:
3113 0.000 note 57 4 p-c 2 12
3115 0.250 note 62 4 p-c 7 12
3116 0.500 note 66 8 p-c 9 12
3117 0.625 note 69 8 p-c 14 12
3122 Die Syntax ist eine durch Tabulatoren getrennte Zeile mit zwei
3123 festen Zellen, gefolgt von optionalen Parametern.
3126 @var{time} @var{type} @var{...params...}
3129 Diese Information kann einfach ein ein anderes Programm wie
3130 etwa ein Python-Skript eingelsen werden und kann nützlich für
3131 Forscher sein, die musikalische Analyse- oder Wiedergabeexperimente
3132 mit LilyPond machen wollen.
3136 Nicht alle musikalischen Ereignisse werden von
3137 @file{event-listener.ly} unterstützt. Es handelt sich eher um ein
3138 gut gemachtes @qq{proof of concept}. Wenn Ereignisse, die Sie
3139 brauchen, nicht in enthalten sind, können Sie @file{event-listener.ly}
3140 in Ihr LilyPond-Verzeichnis kopieren und die Datei verändern,
3141 sodass sie die benötigte Information ausgibt.