1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: 5cf864d550e7148412d594cf336841791bff6f76
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
12 @c Translators: Till Paala
14 @node Allgemeine Eingabe und Ausgabe
15 @chapter Allgemeine Eingabe und Ausgabe
16 @translationof General input and output
18 Dieses Kapitel erklärt allgemeine Fragen zur Eingabe und Ausgabe von
19 Notation mit LilyPond und weniger direkte Fragen der Notation.
24 * Arbeiten an Eingabe-Dateien::
25 * Ausgabe kontrollieren::
31 @section Eingabestruktur
32 @translationof Input structure
34 Das hauptsächliche Eingabeformat von LilyPond sind Textdateien.
35 Üblicherweise werden diese Dateien mit der Endung @code{.ly}
39 * Struktur einer Partitur::
40 * Mehrere Partituren in einem Buch::
45 @node Struktur einer Partitur
46 @subsection Struktur einer Partitur
47 @translationof Structure of a score
51 Eine @code{\score}-Umgebung muss einen einzelnen musikalischen
52 Ausdruck beinhalten, der durch geschweifte Klammern begrenzt wird:
60 @warning{Es darf @strong{nur ein} äußerer musikalischer Ausdruck
61 in der @code{\score}-Umgebung geschrieben werden, und er @strong{muss}
62 von geschweiften Klammern umgeben sein.}
64 Dieser einzelne musikalische Ausdruck kann beliebige Größe annehmen und
65 andere musikalische Ausdrücke von beliebiger Komplexität beinhalten.
66 Alle diese Beispielse sind musikalische Ausdrücke:
72 @lilypond[verbatim,quote]
79 @lilypond[verbatim,quote]
81 \new Staff { c'4 c' c' c' }
82 \new Staff { d'4 d' d' d' }
90 \new Staff @{ \Flöte @}
91 \new Staff @{ \Oboe @}
94 \new Staff @{ \GeigeI @}
95 \new Staff @{ \GeigeII @}
101 Kommentare bilden eine Ausnahme dieser Regel. (Andere Ausnahmen
102 siehe @ref{Die Dateistruktur}.) Sowohl einzeilige als auch
103 Blockkommentare (eingegrenzt durch @code{%@{ .. %@}}) können
104 an beliebiger Stelle einer Eingabedatei geschrieben werden. Sie
105 können innerhalb oder außerhalb der @code{\score}-Umgebung vorkommen,
106 und innerhalb oder außerhalb des einzelnen musikalischen Ausdrucks
107 innerhalb der @code{\score}-Umgebung.
112 @rlearning{Arbeiten an Eingabe-Dateien},
113 @rlearning{Musikalische Ausdrücke erklärt},
114 @rlearning{Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck}.
117 @node Mehrere Partituren in einem Buch
118 @subsection Mehrere Partituren in einem Buch
119 @translationof Multiple scores in a book
122 @cindex Sätze, mehrere
124 Eine Partitur kann mehrere musikalische Stücke und verschiedene
125 Texte beinhalten. Beispiele hierzu sind etwa eine Etüdensammlung
126 oder ein Orchesterstück mit mehreren Sätzen. Jeder Satz wird
127 in einer eigenen @code{\score}-Umgebung notiert:
136 und Texte werden mit einer @code{\markup}-Umgebung geschrieben:
146 Alle Sätze und Texte, die in derselben @code{.ly}-Datei vorkommen,
147 werden normalerweise in eine einzige Ausgabedatei gesetzt.
161 Wenn Sie aber mehrere Ausgabedateien aus einer einzigen @code{.ly}-Datei
162 erstellen wollen, können Sie mehrere @code{\book}-Umgebungen notieren.
163 Wenn Sie keine @code{\book}-Umgebung in Ihrer Datei angeben, interpretiert
164 LilyPond die gesamte Datei als eine große @code{\book}-Umgebung (siehe
165 auch @ref{Die Dateistruktur}. Eine wichtige Ausnahme stellen Dokumente dar,
166 die mit lilypond-book erstellt werden, für die Sie explizit
167 @code{\book}-Umgebungen notieren müssen, weil sonst nur die erste
168 @code{\score}- bzw. @code{\markup}-Umgebung angezeigt wird.
170 Der Kopfbereich für jedes Musikstück kann innerhalb der @code{\score}-Umgebung
171 definiert werden. Die @code{piece}-(Stück)-Bezeichnung aus dieser
172 @code{\header}-Umgebung wird vor jedem Satz ausgegeben. Die Überschrift für
173 ein ganzes Buch kann innerhalb von @code{\book} notiert werden, aber wenn
174 diese Umgebung fehlt, wird die @code{\header}-Umgebung genommen, die auf
175 erster Ebene der Datei notiert ist.
179 title = "Acht Miniaturen"
180 composer = "Igor Stravinsky"
184 \header @{ piece = "Romanze" @}
187 ..Text der zweiten Strophe..
190 ..Text der dritten Strophe..
194 \header @{ piece = "Menuetto" @}
200 Stücke können innerhalb eines Buches mit @code{\bookpart} gruppiert
201 werden. Derartige Buchabschnitte werden durch einen Seitenumbruch
202 voneinander getrennt und können wie auch das ganze Buch selber mit
203 einem Titel innerhalb einer @code{\header}-Umgebung beginnen.
209 subtitle = "Erster Teil"
216 subtitle = "Zweiter Teil"
223 @node Die Dateistruktur
224 @subsection Die Dateistruktur
225 @translationof File structure
235 @cindex Dateistruktur
236 @cindex Struktur, Datei
237 @cindex Eingabedatei, Struktur
238 @cindex Quelldatei, Struktur
240 Eine @code{.ly}-Datei kann eine belibige Anzahl an Ausdrücken
241 auf der obersten Ebene beinhalten, wobei ein Ausdrück der obersten
242 Ebene einer der folgenden sein kann:
246 Eine Ausgabedefinition, wie @code{\paper}, @code{\midi} und
247 @code{\layout}. Derartige Definitionen auf oberster Ebene verändern
248 die globalen Einstellungen für das ganze @qq{Buch}. Wenn mehr
249 als eine derarte Definition desselben Typs angegeben wird, hat
253 Ein direkter Scheme-Ausdruck, wie etwa
254 @code{#(set-default-paper-size "a7" 'landscape)} oder
255 @code{#(ly:set-option 'point-and-click #f)}.
258 Eine @code{\header}-Umgebung. Damit wird die globale Titelei
259 eingestellt. Das ist die Umgebung, in der sich Definition für
260 das ganze Buch befinden, wie Komponist, Titel usw.
263 Eine @code{\score}-Umgebung. Die in ihr enthaltene Partitur wird
264 zusammen mit anderen vorkommenden @code{\score}-Umgebungen gesammelt
265 und in ein @code{\book} zusammengefasst. Dieses Verhalten kann
266 verändert werden, indem die Variable @code{toplevel-score-handler}
267 auf höchster Ebene gesetzt wird. Die Definition des Standards findet sich
268 in der Datei @file{../scm/@/lily@/.scm}.
271 Eine @code{\book}-Umgebung fasst mehrere Sätze (d. h. mehrere
272 @code{\score}-Umgebungen) logisch in ein Dokument zusammen.
273 Wenn mehrere @code{\score}-Partituren vorkommen, wird für jede
274 @code{\book}-Umgebung eine eigene Ausgabedatei erstellt, in der
275 alle in der Umgebung enthaltenen Partituren zusammengefasst sind.
276 Der einzige Grund, explizit eine @code{\book}-Umgebung zu setzen,
277 ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei
278 erstellt werden sollen. Eine Ausnahme sind lilypond-book-Dokumente,
279 in denen eine @code{\book}-Umgebung explizit hinzugefügt werden
280 muss, wenn mehr als eine @code{\score}- oder @code{\markup}-Umgebung
281 im gleichen Beispiel angezeigt werden soll. Dieses Verhalten
282 kann verändert werden, indem die Variable @code{toplevel-book-handler}
283 auf höchster Ebene gesetzt wird. Die Definition des Standards
284 findet sich in der Datei @file{../scm/@/lily@/.scm}.
287 Eine @code{\bookpart}-Umgebung. Ein Buch (@code{\book}) kann in
288 mehrere Teile untergliedert sein, indem @code{\bookpart}-Umgebungen
289 eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen
290 Seite und kann eigene Papierdefinitionen in einer @code{\paper}-Umgebung
294 Ein zusammengesetzter musikalischer Ausdruck wie etwa
299 Dieses Beispiel wird von LilyPond automatisch in einer
300 @code{\score}-Umgebung in einem Buch interpretiert und
301 mit anderen @code{\score}-Umgebungen und musikalischen
302 Ausdrücken auf der höchsten Ebene zusammen ausgegeben.
303 Anders gesagt: eine Datei, die nur das obige Beispiel
304 beinhaltet, wird übersetzt zu
320 Dieses Verhalten kann verändert werden, indem die Variable
321 @code{toplevel-music-handler} auf der oberseten Ebene gesetzt
322 wird. Die Definition des Standards findet sich in der Datei
323 @file{../scm/@/lily@/.scm}.
326 Eine Textbeschriftung, eine Strophe etwa:
329 2. Die erste Zeile der zweiten Strophe.
333 Textbeschriftungen werden über, zwischen oder unter musikalischen
334 Ausdrücken gesetzt, so wie sie notiert werde.
344 Sie kann dann später in der Datei eingesetzt werden, indem @code{\foo}
345 geschrieben wird. Die Beizeichnung der Variable darf nur aus
346 alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.
350 Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene
351 notiert werden können:
355 % Zeilen rechtsbündig setzen
366 An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen
367 Anweisungen notiert werden:
370 @item @code{\version}
371 @item @code{\include}
372 @item @code{\sourcefilename}
373 @item @code{\sourcefileline}
375 Ein einzeiliger Kommentar, beginnend mit @code{%}.
378 Ein mehrzeiliger Kommentar, umgeben von @code{%@{ .. %@}}.
384 Leerzeichen zwischen Einheiten in der Eingabe werden generell ignoriert
385 und können nach Belieben weggelassen werden oder hinzugefügt werden,
386 um die Lesbarkeit des Codes zu verbessern. Mindestens ein Leerzeichen
387 sollte jedoch unter folgenden Umständen immer eingesetzt werden, um
392 Vor und hinter jeder schließenden oder öffnenden Klammer,
394 nach jedem Befehl oder jeder Variable, also jeder Einheit, die mit
397 nach jeder Einheit, die als Scheme-Ausdruck interpretiert werden,
398 also alle Einheiten, die mit @code{#} beginnen.
400 Alle Einheiten von Scheme-Ausdrücken müssen mit Leerzeichen getrennt
403 in Gesangstextabschnitten (@code{lyricmode}) müssen Leerzeichen
404 zwischen alle Ausdrücke in @code{\override}- und @code{\set}-Befehlen
405 gesetzt werden. Insbesondere müssen um Punkte und Gleichzeitszeichen
406 in Befehlen wie @code{\override Score . LyricTex #'font-size = #5)}
407 und vor dem gesamten Befehl geschrieben werden.
413 @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
418 @translationof Titles and headers
420 Fast alle gedruckten Noten beinhalten einen Titel und den Namen
421 des Komponisten, teilweise wird auch noch sehr viel mehr Information
422 zur Verfügung gestellt.
427 * Verweis auf die Seitenzahlen::
428 * Inhaltsverzeichnis::
432 @node Titel erstellen
433 @subsection Titel erstellen
434 @translationof Creating titles
436 Überschriften können für jede @code{\score}-Umgebung erstellt werden, sowohl
437 für die gesamte Datei (oder eine @code{\book}-Umgebung) als auch für
438 einzelne Buchabschnitte (innerhalb einer @code{\bookpart}-Umgebung).
440 Der Inhalt der Titelei wird aus der @code{\header}-Umgebung übernommen. Die
441 @code{\header}-Umgebung eines Buches unterstützt folgende Felder:
446 Die Widmung der Noten, wird auf oben auf der ersten Seite gesetzt.
450 Die Überschrift der Noten, wird unter der Widmung zentriert gesetzt.
454 Untertitel, zentriert unter der Überschrift.
456 @funindex subsubtitle
458 Unteruntertitel, zentriert unter dem Untertitel.
462 Name des Dichters, linksbündig unter dem Unteruntertitel.
466 Bezeichnung des Instruments, zentriert unter dem Unteruntertitel.
467 Auch oben auf der Seite zentriert (andere als erste Seite).
471 Name des Komponisten, rechtsbüngig unter dem Unteruntertitel.
475 Metrum, linksbündig unter dem Dichter.
479 Name des Bearbeiters/Arrangeurs, rechtsbündig unter dem Komponisten.
483 Bezeichnung des Stückes, linksbündig unter dem Metrum.
487 Bezeichnung des Opus, rechtsbündig unter dem Bearbeiter.
489 @cindex Seitenumbruch, erzwingen
490 @funindex breakbefore
493 Hiermit beginnt der Titel auf einer neuen Steite. (Kann die Werte
494 ##t (wahr) oder ##f (falsch) haben.)
498 Anzeige eines Copyright, zentriert unten auf der ersten Seite. Um das
499 Copyright-Symbol zu notieren, siehe @ref{Zeichenkodierung}.
503 Zentriert unten auf der letzten Seite. Enthält standardmäßig: @qq{Music
504 engraving by LilyPond (@var{version})---www.lilypond.org}
508 Hier eine Demonstration der möglichen Felder. Beliebige
509 Formatierungsbefehle für Textbeschriftung können in der Titelei
510 eingesetzt werden. Siehe hierzu auch @ref{Text formatieren}.
513 @lilypond[quote,verbatim,line-width=11.0\cm]
516 paper-height = 10.0\cm
521 dedication = "mir gewidmet"
522 title = \markup \center-column { "Titel erste Zeile" "Titel zweite Zeile, länger" }
523 subtitle = "Untertitel"
524 subsubtitle = #(string-append "Unteruntertitel LilyPond-Version "
527 composer = \markup \center-column { "Komponist" \small "(1847-1973)" }
528 texttranslator = "Übersetzer"
529 meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "r" \huge
531 arranger = \markup { \fontsize #8.5 "Be" \fontsize #2.5 "ar" \fontsize
532 #-2.5 "be" \fontsize #-5.3 "i" \fontsize #7.5 "ter" }
533 instrument = \markup \bold \italic "Instrument"
557 Wie schon oben gezeigt, können mehrfache @code{\header}-Umgebungen
558 eingesetzt werden. Wenn das gleiche Feld in mehreren
559 Umgebungen, wird die letzte vorkommende
560 Version benutzt. Hier ein kurzes Beispiel:
564 composer = "Komponist"
572 piece = "Neues Stück" % überschreibt die die vorige Definition
577 Wenn @code{\header} innerhalb der @code{\score}-Umgebung definiert wird,
578 wird normalerweise nur die Information von @code{piece} und @code{opus}
579 ausgegeben. Musikalische Ausdrücke innerhalb von @code{\score} müssen
580 vor @code{\header} gesetzt werden.
582 @lilypond[quote,verbatim,line-width=11.0\cm]
586 title = "title" % not printed
593 @funindex print-all-headers
596 Dieses Verhalten kann verändert werden (sodass alle Angaben aus der
597 überschrift gesetzt werden, wenn sich @code{\header} innerhalb von
598 @code{\score} befindet), indem man schreibt:
602 print-all-headers = ##t
609 Die Standardfußzeile ist leer mit Ausnahme der ersten Seite, auf der
610 das @code{copyright}-Feld aus der @code{\header}-Umgebung eingefügt wird,
611 und die letzte Seite, auf der das @code{tagline}-Feld eingefügt wird.
612 Der Standardinhalt von @code{tagline} ist @qq{Music engraving by
613 LilyPond (@var{version})---www.lilypond.org}. Gut gesetzte Noten werben sehr effektiv
614 für LilyPond, darum bitten wir darum, diese Zeile stehen zu lassen,
617 Ein Titelfeld kann vollständig entfernt werden, indem es auf
629 @subsection Eigene Titel
630 @translationof Custom titles
632 Kompliziertere Anpassungen können vorgenommen werden, indem die
633 folgenden Variablen innerhalb der @code{\paper}-Umgebung geändert
634 werden. Die Init-Datei @file{../ly/titling-init.ly} enthält das
639 @funindex bookTitleMarkup
641 @item bookTitleMarkup
642 Das ist die Überschrift, die für das gesamte Dokument gilt. Üblicherweise
643 wird hier der Komponist und die Überschrift des Werkes genannt.
645 @funindex scoreTitleMarkup
647 @item scoreTitleMarkup
648 Das ist die Überschrift, die vor jede @code{\score}-Umgebung gesetzt wird.
649 Überlicherweise wird hier etwa die Bezeichnung eines Satzes notiert
650 (im @code{piece}-Feld).
652 @funindex oddHeaderMarkup
654 @item oddHeaderMarkup
655 Das ist der Seitenkopf für ungerade Seiten.
657 @funindex evenHeaderMarkup
659 @item evenHeaderMarkup
660 Das ist der Seitenkopf für gerade Seiten. Wenn undefiniert, wird der
661 ungerade Seitenkopf eingesetzt.
663 Standardmäßig werden die Kopfzeilen so definiert, dass die Seitennummer
664 sich außen befindet und das Instrument zentriert gesetzt wird.
666 @funindex oddFooterMarkup
668 @item oddFooterMarkup
669 Das ist die Fußzeile für ungerade Seiten.
671 @funindex evenFooterMarkup
673 @item evenFooterMarkup
674 Das ist die Fußzeile für gerade Seiten. Wenn undefiniert, wird die
675 ungerade Fußzeile eingesetzt.
677 Standardmäßig wird in der Fußzeile auf der ersten Seite das Copyright
678 und auf der letzten Seite die Tag-Zeile gesetzt.
687 @cindex Layout der Seite
689 @cindex Überschriften
691 Die folgende Definition setzt die Überschrift linksbündig und
692 den Komponisten rechtsbündig auf einer einzelnen Zeile:
696 bookTitleMarkup = \markup {
698 \fromproperty #'header:title
699 \fromproperty #'header:composer
706 @node Verweis auf die Seitenzahlen
707 @subsection Verweis auf die Seitenzahlen
708 @translationof Reference to page numbers
710 Eine bestimmte Stelle der Partitur kann mit einem @code{\label}-Befehl
711 markiert werden, sowohl auf oberster Ebene als auch innerhalb eines
712 musikalischen Ausdrucks. Auf diese Marke kann dann verwiesen werden,
713 um die Seitenzahl zu erhalten, auf der die Marke vorkommt. Der
714 Verweis wird mit dem Befehl @code{\page-ref} gefordert (innerhalb
718 @lilypond[verbatim,line-width=11.0\cm]
719 \header { tagline = ##f }
721 \label #'ErstePartitur
725 \pageBreak \mark A \label #'ZeichenA
730 \markup { Die erste Partitur fängt auf
731 Seite \page-ref #'ErstePartitur "0" "?" an.}
732 \markup { Zeichen A befindet sich auf Seite
733 \concat { \page-ref #'ZeichenA "0" "?" . } }
737 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
741 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
742 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
743 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekann ist.
746 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
747 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
748 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
749 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
750 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
751 schon vorher bekannt sein. Die Größe wird mithilfe des Platzhalters
752 bestimmt. Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
753 "00" schreiben, also eine zweistellige Zahl.
764 @node Inhaltsverzeichnis
765 @subsection Inhaltsverzeichnis
766 @translationof Table of contents
768 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
769 @code{\markuplines \table-of-contents}. Die Elemente, die im
770 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
771 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
772 Ebene als auch in einem musikalischen Ausdruck verwendet werden
776 \markuplines \table-of-contents
779 \tocItem \markup "Erste Partitur"
783 \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
788 \tocItem \markup "zweite Partitur"
796 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
797 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
798 Die Standardformatierungselemente sind @code{tocTitleMarkup}
799 um die Überschrift zu formatieren und @code{tocItemMarkup} um
800 die einzelnen Inhaltselemente zu formatieren, bestehend aus
801 dem Titelelement und einer Seitenzahl. Die Variablen können
802 durch den Benutzer geändert werden:
806 %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
807 tocTitleMarkup = \markup \huge \column {
808 \fill-line { \null "Table des matières" \null }
811 %% hier größere Schriftarten
812 tocItemMarkup = \markup \large \fill-line {
813 \fromproperty #'toc:text \fromproperty #'toc:page
818 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
819 in der Definition von @code{tocItemMarkup} aufgerufen mit
820 @code{#'toc:text} und @code{#'toc:page}.
822 Neue Befehle und Beschriftungen können auch definiert werden,
823 um eigene Inhaltsverzeichnisse zu gestalten:
827 @item zuerst muss eine neue Beschriftungsvariable in der
828 @code{\paper}-Umgebung definiert werden
830 @item dann muss die musikalische Funktion definiert werden, die
831 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
832 Variable benutzt wird.
836 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
837 einer Oper in das Inhaltsverzeichnis aufzunehmen:
841 tocActMarkup = \markup \large \column {
843 \fill-line { \null \italic \fromproperty #'toc:text \null }
849 #(define-music-function (parser location text) (markup?)
850 (add-toc-item! 'tocActMarkup text))
853 @lilypond[line-width=11.0\cm]
854 \header { tagline = ##f }
856 tocActMarkup = \markup \large \column {
858 \fill-line { \null \italic \fromproperty #'toc:text \null }
864 #(define-music-function (parser location text) (markup?)
865 (add-toc-item! 'tocActMarkup text))
868 \markuplines \table-of-contents
869 \tocAct \markup { Atto Primo }
870 \tocItem \markup { Coro. Viva il nostro Alcide }
871 \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
872 \tocAct \markup { Atto Secondo }
873 \tocItem \markup { Sinfonia }
874 \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
881 Installierte Dateien: @file{../ly/@/toc@/-init@/.ly}.
883 @funindex \table-of-contents
887 @code{\table-of-contents},
892 @node Arbeiten an Eingabe-Dateien
893 @section Arbeiten an Eingabe-Dateien
894 @translationof Working with input files
897 * LilyPond-Dateien einfügen::
898 * Verschiedene Editionen aus einer Quelldatei::
900 * LilyPond-Notation anzeigen::
904 @node LilyPond-Dateien einfügen
905 @subsection LilyPond-Dateien einfügen
906 @translationof Including LilyPond files
909 @cindex einfügen von Dateien
910 @cindex Dateien einfügen
912 Ein größeres Projekt kann in einzelne Dateien aufteteilt werden.
913 Um eine andere Datei einzubinden, kann der Befehl
916 \include "andereDatei.ly"
922 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
923 also ob der Inhalt der Datei @code{andereDatei.ly} komplett in die
924 Hauptdatei eingefügt werden würde. So kann man für ein größeres
925 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
926 und sie dann in einer Partitur-Datei benutzen. Meistens werden
927 in den eingefügten Dateien einige Variablen definiert, die dann
928 auch in der Hauptdatei eingesetzt werden können. Mit Marken (Tags)
929 gekennzeichnete Abschnitte können eingesetzt werden, um die
930 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
931 zur Verfügung zu stellen. Siehe auch @ref{Verschiedene Editionen aus einer Quelldatei}.
933 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
934 nach dem @code{\include}-Befehl verwiesen werden. Dateien an anderen
935 Stellen können eingebunden werden, indem entweder ein vollständiger
936 Pfad oder ein relativer Pfad zu der Datei angegeben wird. Hierbei
937 sollten die für UNIX typischen Schrägstriche (/) und nicht die
938 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
939 zu trennen. Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
940 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
944 \include "../kram.ly"
948 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
949 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
953 \include "stimmen/VI.ly"
954 \include "stimmen/VII.ly"
958 Dateien, die eingebunden werden sollen, können selber auch wiederum
959 ein @code{\include} enthalten. Diese Einbindung zweiter Ebene
960 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
961 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
962 sondern relativ zur Hauptdatei gesetzt werden müssen. Dieses Verhalten
963 kann jedoch auch verändert werden, indem man lilypond die Option
964 @code{-drelative-includes} auf der Kommandozeile zuweist (oder indem
965 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
966 Beginn der Quelldatei schreibt). Mit @code{relative-includes} wird
967 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
968 in der sich der Befehl befindet. Dieses Verhalten wird empfohlen und wird
969 in zukünftigen Versionen von LilyPond den Standard darstellen.
971 Dateien können auch aus einem Verzeichnis eingebunden werden,
972 dass im Suchpfad von LilyPond liegt. Hierzu muss auf der
973 Kommandozeile das entsprechende Verzeichnis angegeben werden
974 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
975 notiert sein. Wenn etwa die Datei @file{Haupt.ly} kompiliert
976 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
977 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
978 befinden und dann LilyPond folgendermaßen aufrufen:
981 lilypond --include=stimmen Haupt.ly
985 In @file{Haupt.ly} steht:
993 Dateien, die in vielen Partituren verwendet werden sollen, können
994 im LilyPond-Verzeichnis @file{../ly} gespeichert werden. (Die
995 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
996 ab, siehe hierzu @rlearning{Mehr Information}). Dateien
997 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
998 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
1000 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
1001 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
1002 können identifiziert werden, indem LilyPond auf der Komandozeile mit
1003 Option aufgerufen wird: @code{lilypond --verbose}. Hiermit wird
1004 neben anderer Information auch eine Liste and Pfaden und Dateien
1005 aufgeführt, die LilyPond benutzt. Die wichtigeren Dateien werden
1006 im Abschnitt @rlearning{Mehr Information} besprochen.
1007 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
1008 wenn eine neue LilyPond-Version installiert wird.
1010 Eine einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
1012 @rlearning{Partituren und Stimmen}.
1015 Handbuch zum Lernen:
1016 @rlearning{Mehr Information},
1017 @rlearning{Partituren und Stimmen}.
1021 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
1022 dem Installationsverzeichnis von LilyPond entspricht, wird die
1023 installierte Datei anstelle der eigenen verwendet.
1026 @node Verschiedene Editionen aus einer Quelldatei
1027 @subsection Verschiedene Editionen aus einer Quelldatei
1028 @translationof Different editions from one source
1030 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
1031 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
1032 Variablen werden am besten eingesetzt, wenn es darum geht, längere
1033 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
1034 verschiedene Weise zu kombinieren. Tag-Marken dagegen werden am
1035 besten eingesetzt, wenn eine von mehreren kurzen alternativen
1036 Notenabschnitten ausgewählt werden soll. Egal welche Methode am
1037 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
1038 die eigentlichen Noten und die Struktur der Paritur voneinander
1039 getrennt notiert werden -- so kann die Struktur geändert werden,
1040 ohne dass man Änderungen an den Noten vornehmen muss.
1043 * Variablen benutzen::
1047 @node Variablen benutzen
1048 @unnumberedsubsubsec Variablen benutzen
1049 @translationof Using variables
1051 @cindex Variablen, Benutzung
1053 Wenn Notenabschnitt in Variablen definiert werden, können sie
1054 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1055 siehe auch @rlearning{Stücke durch Bezeichner organisieren}. Zum
1056 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1057 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1058 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1059 einmal notieren muss. Noten aus zwei Variablen können auf einem
1060 System kombiniert werden, siehe @ref{Automatische Kombination von Stimmen}.
1063 @lilypond[verbatim,quote]
1064 sopranoMusic = \relative c'' { a4 b c b8( a)}
1065 altoMusic = \relative g' { e4 e e f }
1066 tenorMusic = \relative c' { c4 b e d8( c) }
1067 bassMusic = \relative c' { a4 gis a d, }
1068 allLyrics = \lyricmode {King of glo -- ry }
1070 \new Staff = "Soprano" \sopranoMusic
1071 \new Lyrics \allLyrics
1072 \new Staff = "Alto" \altoMusic
1073 \new Lyrics \allLyrics
1074 \new Staff = "Tenor" {
1078 \new Lyrics \allLyrics
1079 \new Staff = "Bass" {
1083 \new Lyrics \allLyrics
1086 \set Staff.printPartCombineTexts = ##f
1092 \set Staff.printPartCombineTexts = ##f
1102 Unterschiedliche Partituren, die entweder nur den Chor oder das
1103 Klavier zeigen, können produziert werden, indem die Struktur
1104 verändert wird; die Noten müssen dazu nicht verändert werden.
1106 Für längere Partituren können Variablen in eigene Dateien notiert
1107 werden, die dann eingebunden werden, siehe @ref{LilyPond-Dateien einfügen}.
1110 @node Marken benutzen
1111 @unnumberedsubsubsec Marken benutzen
1112 @translationof Using tags
1116 @cindex markierte Noten entfernen
1117 @cindex markierte Noten behalten
1120 @funindex \keepWithTag
1121 @funindex \removeWithTag
1123 @funindex keepWithTag
1124 @funindex removeWithTag
1126 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1127 Ausdruck mit der Bezeichnung @var{TeilA}. Ausdrücke, die auf diese
1128 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1129 bzw. ausgefiltert werden. Das geschieht mit den Befehlen
1130 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1131 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1134 @multitable @columnfractions .5 .5
1140 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1141 @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1142 gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1145 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1146 @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1147 @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1148 werden nicht angezeigt.
1151 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1152 @code{\removeWithTag}
1153 @tab Alle markierten und unmarkierten Noten werden angezeigt.
1157 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1158 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1159 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1162 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1163 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1165 @lilypond[verbatim,quote]
1166 music = \relative g' {
1168 \tag #'trills {d8.\trill }
1169 \tag #'expand {\repeat unfold 3 {e32 d} }
1174 \keepWithTag #'trills \music
1177 \keepWithTag #'expand \music
1182 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1183 erfordert manchmal weniger Schreibarbeit:
1185 @lilypond[verbatim,quote]
1186 music = \relative g' {
1188 \tag #'trills {d8.\trill }
1189 \tag #'expand {\repeat unfold 3 {e32 d} }
1194 \removeWithTag #'expand
1198 \removeWithTag #'trills
1203 Marken können auch auf Artikulationen, Text usw angewendet werden,
1207 -\tag #'@var{your-tag}
1211 voranstellt (jedoch nach der Note, an die sie gebunden sind). Mit
1212 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1217 c1-\tag #'warn ^"Achtung!"
1220 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1223 @lilypond[quote,verbatim]
1224 music = \relative c'' {
1225 \tag #'a \tag #'both { a a a a }
1226 \tag #'b \tag #'both { b b b b }
1229 \keepWithTag #'a \music
1230 \keepWithTag #'b \music
1231 \keepWithTag #'both \music
1235 Mehrfache @code{\removeWithTag}-Filter können auf einen
1236 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1237 markierte Abschnitte aus dem Druckbild zu entfernen.
1239 @lilypond[verbatim,quote]
1240 music = \relative c'' {
1241 \tag #'A { a a a a }
1242 \tag #'B { b b b b }
1243 \tag #'C { c c c c }
1244 \tag #'D { d d d d }
1253 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1254 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1255 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1256 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1257 eben genannten zusätzlich entfernt.
1261 Handbuch zum Lernen:
1262 @rlearning{Stücke durch Bezeichner organisieren}.
1265 @ref{Automatische Kombination von Stimmen},
1266 @ref{LilyPond-Dateien einfügen}.
1270 @c This warning is more general than this placement implies.
1271 @c Rests are not merged whether or not they come from tagged sections.
1272 @c Should be deleted? -td
1276 Multiple rests are not merged if you create a score with more
1277 than one tagged section at the same place.
1282 @node Zeichenkodierung
1283 @subsection Zeichenkodierung
1284 @translationof Text encoding
1288 @cindex Nicht-ASCII-Zeichen
1290 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
1291 und ISO/IEC 10646 definiert sind. Hiermit wird den Zeichen
1292 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
1293 Code-Punkt zugewiesen, mit dem sie identifizierbar sind. Unicode
1294 kann mit mehreren Zeichenkodierungen verwirklicht werden. LilyPond
1295 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
1296 in der die normalen Zeichen des lateinischen Alphabets mit einem
1297 Byte dargestellt werden, während alle anderen Zeichen zwischen
1298 zwei und vier Byte Länge haben.
1300 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
1301 Schriftart (engl. font). In einer Schriftartdatei werden die
1302 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
1303 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
1304 und komplexe Skripte korrekt zu setzen.
1306 LilyPond verändert die Kodierung der Eingabedatei nicht. Das heißt,
1307 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
1308 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
1309 musst. Am einfachsten geht das, indem man einen Texteditor
1310 einsetzt, der mit Unicode-Zeichen umgehen kann. Die meisten
1311 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
1312 wie etwa vim, Emacs, jEdit oder GEdit. Alle MS Windows-Systeme
1313 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
1314 in UTF-8 lesen und speichern kann. Ein Editor mit mehr
1315 Funktionen unter Windows ist BabelPad oder Notepad++.
1317 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
1318 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
1321 FT_Get_Glyph_Name () error: invalid argument
1324 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
1327 %c No verbatim here as the code does not display correctly in PDF
1329 bulgarian = \lyricmode {
1330 Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
1334 hebrew = \lyricmode {
1335 זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
1339 portuguese = \lyricmode {
1340 à vo -- cê uma can -- ção legal
1346 \addlyrics { \bulgarian }
1347 \addlyrics { \hebrew }
1348 \addlyrics { \portuguese }
1351 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
1352 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
1353 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
1354 @code{\markup}-Umgebung benutzt werden. Hierbei bedeutet @code{hhhh} die
1355 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
1356 für das erforderliche Zeichen. Nullen zu Beginn können ausgelassen werden,
1357 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
1358 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
1359 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.)
1361 Mit @code{\char ##x03BE} und @code{\char #958} wird
1362 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
1363 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
1366 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
1367 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
1368 gespeichert werden. Es muss natürlich auch noch eine Schriftart auf
1369 dem System installiert sein, die die notierten Zeichen darstellen kann.
1371 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
1372 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
1373 im Gesangstext und als normaler Text außerhalb der Partitur.
1375 @lilypond[quote,verbatim]
1378 c1 \mark \markup { \char ##x03EE }
1379 c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
1381 \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
1383 \markup { "Copyright 2008--2009" \char ##x00A9 }
1386 @cindex Copyright-Zeichen
1388 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
1392 copyright = \markup @{ \char ##x00A9 "2008" @}
1397 @node LilyPond-Notation anzeigen
1398 @subsection LilyPond-Notation anzeigen
1399 @translationof Displaying LilyPond notation
1401 @funindex \displayLilyMusic
1403 Ein musikalischer Ausdruck in LilyPond-Notation kann mit der Funktion
1404 @code{\displayMusic} angezeigt werden. Der Code
1408 \displayLilyMusic \transpose c a, @{ c e g a bes @}
1416 @{ a, cis e fis g @}
1419 Normalerweise werden diese Zeilen zusammen mit allen anderen
1420 Nachrichten auf der Kommandozeile ausgegeben. Um sie separat zu
1421 speichern und das Ergebnis von @code{\displayMusic} weiterzubenutzen,
1422 kann die Ausgabe mit folgendem Befehl in eine Datei umgeleitet werden:
1424 @c TODO What happens under Windows?
1427 lilypond file.ly >display.txt
1432 @node Ausgabe kontrollieren
1433 @section Ausgabe kontrollieren
1434 @translationof Controlling output
1437 * Notationsfragmente extrahieren::
1438 * Korrigierte Musik überspringen::
1442 @node Notationsfragmente extrahieren
1443 @subsection Notationsfragmente extrahieren
1444 @translationof Extracting fragments of music
1446 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
1447 Quelldatei zu erzeugen. Das kann damit verglichen werden, dass man
1448 mit der Schere bestimmte Regionen ausschneidet.
1450 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
1451 (engl. to clip = ausschneiden), extra definiert. Mit folgender
1452 Defintion beispielsweise
1459 (make-rhythmic-location 5 1 2)
1460 (make-rhythmic-location 7 3 4)))
1465 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
1466 beginnt und im siebten Takt endet. Die Bedeutung von @code{5 1 2} ist:
1467 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
1470 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
1471 werden, indem mehrere derartige Paare definiert werden.
1473 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
1474 Parameter @code{-dclip-systems} aufgerufen werden. Die Schnipsel
1475 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
1476 diese Formate auch als Parameter angegeben werden.
1478 Zu mehr Information über Ausgabeformate siehe @rprogram{lilypond aufrufen}.
1481 @node Korrigierte Musik überspringen
1482 @subsection Korrigierte Musik überspringen
1483 @translationof Skipping corrected music
1486 @funindex skipTypesetting
1487 @funindex showFirstLength
1488 @funindex showLastLength
1490 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
1491 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
1492 Korrektur. Um die Korrektur zu beschleunigen, kann eingestellt werden,
1493 dass nur die letzten paar Takte angezeigt werden. Das erreicht man
1497 showLastLength = R1*5
1502 in der Quelldatei. Damit werden nur die letzten fünf Takte (in einem
1503 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt. Besonders
1504 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
1505 kleinen Teil des Stückes zu setzen als die gesamte Länge. Wenn man
1506 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
1507 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
1510 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
1511 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
1512 werden. Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
1513 wird kein Notensatz ausgegeben.
1515 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
1516 kontrollieren. Hiermit werden alle Ereignisse, auch Tempo- und
1517 Instrumentenwechsel ausgelassen. Man muss also sehr genau darauf
1518 achten, dass nichts unerwartetes geschieht.
1520 @lilypond[quote,fragment,ragged-right,verbatim]
1523 \set Score.skipTypesetting = ##t
1525 \set Score.skipTypesetting = ##f
1529 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
1530 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
1531 Übersetzung der Datei gespart wird.
1535 @section MIDI-Ausgabe
1536 @translationof MIDI output
1541 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
1542 Kontrolle und Interaktion mit digitalen Instrumenten. Eine
1543 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
1544 Bändern/Stimmen. Es ist keine eigentliche Klangdatei, denn man
1545 benötigt spezielle Programme die die Notenereignisse in Klang
1548 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
1549 man sich anhören kann, was man notiert hat. Das hilft oft sehr gut
1550 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
1551 lassen sich meist sehr gut hören.
1553 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und einen für
1554 globale Einstellungen. Darum sollte die Quelldatei für eine MIDI-Datei
1555 nicht mehr als 15 Systeme (oder 14 wenn kein Schlagzeug benützt wird)
1556 besitzen. Jedes weitere System bleibt stumm.
1560 * MIDI-Dateien erstellen::
1562 * Was geht in die MIDI-Ausgabe::
1563 * Wiederholungen im MIDI::
1564 * MIDI-Lautstärke kontrollieren::
1565 * Schlagzeug in MIDI::
1569 @node MIDI-Dateien erstellen
1570 @subsection MIDI-Dateien erstellen
1571 @translationof Creating MIDI files
1573 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
1574 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
1584 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
1585 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
1586 Wenn auch die Notation gewünscht ist, muss zusätzlich die
1587 @code{\layout}-Umgebung vorhanden sein:
1597 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
1598 korrekt in das MIDI-Format übersetzt. Dynamikzeichen, Crescendo und
1599 Decrescendo werden in den MIDI-Lautstärkekanal übertragen. Dynamikzeichen
1600 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
1601 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
1602 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
1603 werden. Siehe hierzu @ref{Der MIDI-Block}.
1605 Das Anfangstempo und spätere Tempoänderungen können mit dem
1606 @code{\tempo}-Befehl innerhalb der Notation notiert werden. Er
1607 bewirkt Tempoänderungen auch in der MIDI-Datei. Der Befehl setzt
1608 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
1609 auch unterdrückt werden kann, siehe @ref{Metronomangabe}. Eine
1610 andere möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
1611 unten gezeigt, siehe @ref{Der MIDI-Block}.
1613 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
1614 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
1615 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
1616 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
1617 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
1618 oder @code{\score}-Blocks einfügen:
1621 #(ly:set-option 'midi-extension "midi")
1624 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
1626 Als Alternative kann man diese Option auch als Kommandozeilenparameter
1630 lilypond … -dmidi-extension=midi lilyDatei.ly
1633 @unnumberedsubsubsec Instrumentenbezeichnungn
1635 @cindex Instrumentbezeichnungen
1637 @funindex Staff.midiInstrument
1639 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
1640 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
1641 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
1642 Die Bezeichnungen sind aufgelistet in @ref{MIDI-Instrumente} und müssen
1643 in der dort definierten Schreibweise notiert werden.
1647 \set Staff.midiInstrument = #"glockenspiel"
1653 \new Staff \with @{midiInstrument = #"cello"@} @{
1658 Wenn die Schreibweise nicht genau einem definierten Instrument aus
1659 der Liste entpsricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
1663 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1664 {changing-midi-output-to-one-channel-per-voice.ly}
1668 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
1669 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
1670 nicht geändert werden kann.
1672 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
1673 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
1674 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
1677 @node Der MIDI-Block
1678 @subsection Der MIDI-Block
1679 @translationof MIDI block
1681 @cindex MIDI-Umgebung
1683 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
1684 vorkommen, wenn MIDI-Ausgabe gewünscht ist. Sie entspricht der
1685 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut. Oft wird
1686 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
1687 Kontexte umgeändert werden, neue Kontexte definiert werden oder
1688 neue Werte definiert werden. Das folgende Beispiel etwa definiert
1689 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
1698 tempoWholesPerMinute = #(ly:make-moment 72 4)
1704 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert. Wenn
1705 das Tempo auf diese Weise definiert wird, kann keine punktierte
1706 Note als Einheit angegeben werden. Wenn sie benötigt wird, muss
1707 man sie in kleinere Einheiten auflösen. Ein Tempo von 90 punktierten
1708 Viertelnoten pro Minute kann beispielsweise dargestellt werden
1709 als 270 Achtelnoten pro Minute:
1712 tempoWholesPerMinute = #(ly:make-moment 270 8)
1715 @cindex MIDI-Kontextdefinitionen
1717 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
1718 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
1719 wird. Klangübersetzungsmodule werden @code{performer}
1720 genannt. Die Kontexte für die MIDI-Ausgabe sind in der
1721 Datei @file{../ly/@/performer@/-init@/.ly} definiert, siehe
1722 @rlearning{Mehr Information}. Um beispielsweise
1723 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
1724 entfernen, müssen folgende Zeilen eingefügt werden:
1731 \remove "Dynamic_performer"
1736 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
1737 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
1738 @code{\score} beginnt. Wenn eine Partitur explizit etwa mit
1739 @code{\new Score} begonnen wird, und sich die MIDI-Umgebung hierin
1740 befindet, wird keine Ausgabe produziert. Eine Lösung ist es, sowohl
1741 die @code{\new Score}- als auch die @code{\midi}-Umgebungen in eine
1742 @code{\score}-Umgebung einzuschließen.
1746 \new Score @{ @dots{}Noten@dots{} @}
1752 @node Was geht in die MIDI-Ausgabe
1753 @subsection Was geht in die MIDI-Ausgabe
1754 @translationof What goes into the MIDI output?
1757 @unnumberedsubsubsec In MIDI unterstützt
1759 @cindex Tonhöhen in MIDI
1760 @cindex MIDI, Tonhöhen
1761 @cindex Vierteltöne in MIDI
1762 @cindex MIDI, Vierteltöne
1763 @cindex Mikrotöne in MIDI
1764 @cindex MIDI, Mikrotöne
1765 @cindex Akkordsymbole in MIDI
1766 @cindex MIDI, Akkordsymbole
1767 @cindex Rhythmen in MIDI
1768 @cindex MIDI, Rhythmen
1770 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
1774 @item Mikrotöne (siehe @ref{Versetzungszeichen}. Für die Ausgabe wird ein
1775 Spieler benötigt, der Tonhöhen verändern kann.)
1776 @item Akkorde, die als Symbole notiert werden
1777 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
1778 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
1780 @item Dynamikzeichen
1781 @item Crescendi, decrescendi zu mehreren Noten
1782 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
1787 @unnumberedsubsubsec In MIDI nicht unterstützt
1789 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbeozogen:
1792 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
1793 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
1794 @item Staccato und andere Artikultationen und Ornamente
1795 @item Legato- und Phrasierungsbögen
1796 @item Crescendi, decrescendi zu einer einzelnen Note
1797 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
1798 @item Bezifferter Bass
1799 @item Akkorde mit Mikrotönen
1803 @node Wiederholungen im MIDI
1804 @subsection Wiederholungen im MIDI
1805 @translationof Repeats in MIDI
1807 @cindex Wiederholungen in MIDI
1808 @cindex MIDI und Wiederholungen
1810 @funindex \unfoldRepeats
1812 Mit einigen Veränderungungen im Notentext können alle Wiederholungstypen
1813 auch in der MIDI-Ausgabe wiedergegeben werden. Das wird erreicht, indem
1814 die @code{\unfoldRepeats}-Funktion eingesetzt wird. Diese Funktion
1815 verändert alle Wiederholungen in ausgeschriebene Noten.
1817 @lilypond[quote,verbatim]
1819 \repeat tremolo 8 {c'32 e' }
1820 \repeat percent 2 { c''8 d'' }
1821 \repeat volta 2 {c'4 d' e' f'}
1830 Wenn eine Partitur mit diesem Befehl erstellt wird, ist er notwendig,
1831 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
1832 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
1833 in der anderen werden die Wiederholungen notiert und als Partitur
1834 gesetzt. Das Beispiel gibt einen Hinweis, wie eine derartige Datei
1843 \unfoldRepeats @var{..music..}
1849 @node MIDI-Lautstärke kontrollieren
1850 @subsection MIDI-Lautstärke kontrollieren
1851 @translationof Controlling MIDI dynamics
1853 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
1854 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
1855 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
1856 als auch relative Lautstärken von Dynamikanweisungen und auch
1857 relative Lautstärke von einzelnen Instrumenten einzustellen.
1860 @unnumberedsubsubsec Dynamik-Zeichen
1863 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
1864 zur Verfügung stehenden MIDI-Lautstärke notiert. Die Standardbrüche
1865 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
1866 @notation{fffff}. Diese Anweisung befinden sich in der Datei
1867 @file{../scm/midi.scm}, siehe auch @rlearning{Mehr Information}.
1868 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
1869 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
1870 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
1871 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
1874 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
1875 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann. Gleiches gilt
1876 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
1877 nicht enthalten sind. Die Scheme-Funktion, die hier definiert wird,
1878 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
1879 Standardanweisungen auf:
1881 @lilypond[verbatim,quote]
1882 #(define (myDynamics dynamic)
1883 (if (equal? dynamic "rfz")
1885 (default-dynamic-absolute-volume dynamic)))
1889 \set Staff.midiInstrument = #"cello"
1890 \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
1902 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
1903 umdefiniert werden soll, ist es besser, die
1904 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
1905 @file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
1906 zu benutzen. Das letzte Beispiel dieses Abschnittes zeigt, wie das
1907 gemacht werden kann.
1910 @unnumberedsubsubsec MIDI-Lautstärke
1912 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1913 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
1914 unde @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
1915 werden. Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
1916 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
1917 wenn diese Einstellung von Anfang an Wirkung zeigen soll. Der Bruch,
1918 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
1922 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
1926 errechnet. Im folgenden Beispiel wird die generelle MIDI-Lautstärke
1927 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
1929 @lilypond[verbatim,quote]
1935 \set Staff.midiInstrument = #"flute"
1936 \new Voice \relative c''' {
1944 \set Staff.midiInstrument = #"clarinet"
1945 \new Voice \relative c'' {
1956 tempoWholesPerMinute = #(ly:make-moment 72 2)
1957 midiMinimumVolume = #0.2
1958 midiMaximumVolume = #0.5
1965 @unnumberedsubsubsec Verschiedene Instrumente angleichen (i)
1967 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
1968 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
1969 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
1970 werden. Damit kann man die Qualität der MIDI-Datei
1971 merklich verbessern.
1973 In diesem Beispiel wird die Lautstärke der Klarinette relativ
1974 zur Lautstärke der Flöte verringert. In jeder Stimme muss
1975 eine Dynamikanweisung für die erste Note gesetzt werden, damit
1976 diese Einstellung korrekt funktioniert.
1978 @lilypond[verbatim,quote]
1984 \set Staff.midiInstrument = #"flute"
1985 \set Staff.midiMinimumVolume = #0.7
1986 \set Staff.midiMaximumVolume = #0.9
1987 \new Voice \relative c''' {
1995 \set Staff.midiInstrument = #"clarinet"
1996 \set Staff.midiMinimumVolume = #0.3
1997 \set Staff.midiMaximumVolume = #0.6
1998 \new Voice \relative c'' {
2009 tempoWholesPerMinute = #(ly:make-moment 72 2)
2016 @unnumberedsubsubsec Verschidene Instrumente angleichen (ii)
2018 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2019 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
2020 Anpassungen für die Lautstärken bestimmter Instrumente vor.
2021 Diese Instrumente und ihre entsprechende Veränderung lassen
2022 sich aus der Tabelle @notation{instrument-equalizer-alist}
2023 in der Datei @file{../scm/midi.scm} entnehmen.
2025 Dieser grundlegende Equalizer kann ersetzt werden, indem die
2026 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
2027 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
2028 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
2029 den Höchst- und Mindestwert für die Lautstärke des entpsrechenden
2030 Instruments darstellt. Die Ersetzung der Standardfunktion wird
2031 auf gleiche Weise vorgenommen, wie es schon für die
2032 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
2033 gezeigt wurde. Der Standard-Equalizer,
2034 @notation{default-instrument-equalizer} in der Datei
2035 @file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
2038 Das folgende Beispiel definiert für die Flöte und Klarinette relative
2039 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
2041 @lilypond[verbatim,quote]
2042 #(define my-instrument-equalizer-alist '())
2044 #(set! my-instrument-equalizer-alist
2047 ("flute" . (0.7 . 0.9))
2048 ("clarinet" . (0.3 . 0.6)))
2049 my-instrument-equalizer-alist))
2051 #(define (my-instrument-equalizer s)
2052 (let ((entry (assoc s my-instrument-equalizer-alist)))
2061 \set Score.instrumentEqualizer = #my-instrument-equalizer
2062 \set Staff.midiInstrument = #"flute"
2063 \new Voice \relative c''' {
2071 \set Staff.midiInstrument = #"clarinet"
2072 \new Voice \relative c'' {
2083 tempoWholesPerMinute = #(ly:make-moment 72 2)
2091 @node Schlagzeug in MIDI
2092 @subsection Schlagzeug in MIDI
2093 @translationof Percussion in MIDI
2095 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2096 notiert. Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2097 ausgegeben. Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2098 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2099 in einem @code{Staff}-Kontext notiert. Nur so lässt sich auch hier
2100 eine richtige MIDI-Ausgabe erreichen.
2102 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2103 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2104 einem normalen @code{Staff}-Kontext notiert werden. Es handelt sich
2105 um @code{melodic tom, taiko drum, synth drum} usw.
2107 Viele Schlagzeuginstrumnete sind nicht in den MIDI-Standard aufgenommen,
2108 z. B. Kastagnetten. Die einfachste Methode, derartige Instrumente
2109 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2115 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2116 Schlagstock (sidestick) für diesen Zweck eingesetzt.