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äng auf Seite \page-ref #'ErstePartitur "0" "?" an.}
731 \markup { Zeichen A befindet sich auf Seite \page-ref #'ZeichenA "0" "?". }
735 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
739 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
740 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
741 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekann ist.
744 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
745 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
746 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
747 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
748 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
749 schon vorher bekannt sein. Die Größe wird mithilfe des Platzhalters
750 bestimmt. Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
751 "00" schreiben, also eine zweistellige Zahl.
762 @node Inhaltsverzeichnis
763 @subsection Inhaltsverzeichnis
764 @translationof Table of contents
766 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
767 @code{\markuplines \table-of-contents}. Die Elemente, die im
768 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
769 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
770 Ebene als auch in einem musikalischen Ausdruck verwendet werden
774 \markuplines \table-of-contents
777 \tocItem \markup "Erste Partitur"
781 \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
786 \tocItem \markup "zweite Partitur"
794 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
795 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
796 Die Standardformatierungselemente sind @code{tocTitleMarkup}
797 um die Überschrift zu formatieren und @code{tocItemMarkup} um
798 die einzelnen Inhaltselemente zu formatieren, bestehend aus
799 dem Titelelement und einer Seitenzahl. Die Variablen können
800 durch den Benutzer geändert werden:
804 %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
805 tocTitleMarkup = \markup \huge \column {
806 \fill-line { \null "Table des matières" \null }
809 %% hier größere Schriftarten
810 tocItemMarkup = \markup \large \fill-line {
811 \fromproperty #'toc:text \fromproperty #'toc:page
816 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
817 in der Definition von @code{tocItemMarkup} aufgerufen mit
818 @code{#'toc:text} und @code{#'toc:page}.
820 Neue Befehle und Beschriftungen können auch definiert werden,
821 um eigene Inhaltsverzeichnisse zu gestalten:
825 @item zuerst muss eine neue Beschriftungsvariable in der
826 @code{\paper}-Umgebung definiert werden
828 @item dann muss die musikalische Funktion definiert werden, die
829 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
830 Variable benutzt wird.
834 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
835 einer Oper in das Inhaltsverzeichnis aufzunehmen:
839 tocActMarkup = \markup \large \column {
841 \fill-line { \null \italic \fromproperty #'toc:text \null }
847 #(define-music-function (parser location text) (markup?)
848 (add-toc-item! 'tocActMarkup text))
851 @lilypond[line-width=11.0\cm]
852 \header { tagline = ##f }
854 tocActMarkup = \markup \large \column {
856 \fill-line { \null \italic \fromproperty #'toc:text \null }
862 #(define-music-function (parser location text) (markup?)
863 (add-toc-item! 'tocActMarkup text))
866 \markuplines \table-of-contents
867 \tocAct \markup { Atto Primo }
868 \tocItem \markup { Coro. Viva il nostro Alcide }
869 \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
870 \tocAct \markup { Atto Secondo }
871 \tocItem \markup { Sinfonia }
872 \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
879 Installierte Dateien: @file{../ly/@/toc@/-init@/.ly}.
881 @funindex \table-of-contents
885 @code{\table-of-contents},
890 @node Arbeiten an Eingabe-Dateien
891 @section Arbeiten an Eingabe-Dateien
892 @translationof Working with input files
895 * LilyPond-Dateien einfügen::
896 * Verschiedene Editionen aus einer Quelldatei::
898 * LilyPond-Notation anzeigen::
902 @node LilyPond-Dateien einfügen
903 @subsection LilyPond-Dateien einfügen
904 @translationof Including LilyPond files
907 @cindex einfügen von Dateien
908 @cindex Dateien einfügen
910 Ein größeres Projekt kann in einzelne Dateien aufteteilt werden.
911 Um eine andere Datei einzubinden, kann der Befehl
914 \include "andereDatei.ly"
920 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
921 also ob der Inhalt der Datei @code{andereDatei.ly} komplett in die
922 Hauptdatei eingefügt werden würde. So kann man für ein größeres
923 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
924 und sie dann in einer Partitur-Datei benutzen. Meistens werden
925 in den eingefügten Dateien einige Variablen definiert, die dann
926 auch in der Hauptdatei eingesetzt werden können. Mit Marken (Tags)
927 gekennzeichnete Abschnitte können eingesetzt werden, um die
928 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
929 zur Verfügung zu stellen. Siehe auch @ref{Verschiedene Editionen aus einer Quelldatei}.
931 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
932 nach dem @code{\include}-Befehl verwiesen werden. Dateien an anderen
933 Stellen können eingebunden werden, indem entweder ein vollständiger
934 Pfad oder ein relativer Pfad zu der Datei angegeben wird. Hierbei
935 sollten die für UNIX typischen Schrägstriche (/) und nicht die
936 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
937 zu trennen. Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
938 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
942 \include "../kram.ly"
946 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
947 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
951 \include "stimmen/VI.ly"
952 \include "stimmen/VII.ly"
956 Dateien, die eingebunden werden sollen, können selber auch wiederum
957 ein @code{\include} enthalten. Diese Einbindung zweiter Ebene
958 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
959 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
960 sondern relativ zur Hauptdatei gesetzt werden müssen. Dieses Verhalten
961 kann jedoch auch verändert werden, indem man lilypond die Option
962 @code{-drelative-includes} auf der Kommandozeile zuweist (oder indem
963 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
964 Beginn der Quelldatei schreibt). Mit @code{relative-includes} wird
965 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
966 in der sich der Befehl befindet. Dieses Verhalten wird empfohlen und wird
967 in zukünftigen Versionen von LilyPond den Standard darstellen.
969 Dateien können auch aus einem Verzeichnis eingebunden werden,
970 dass im Suchpfad von LilyPond liegt. Hierzu muss auf der
971 Kommandozeile das entsprechende Verzeichnis angegeben werden
972 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
973 notiert sein. Wenn etwa die Datei @file{Haupt.ly} kompiliert
974 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
975 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
976 befinden und dann LilyPond folgendermaßen aufrufen:
979 lilypond --include=stimmen Haupt.ly
983 In @file{Haupt.ly} steht:
991 Dateien, die in vielen Partituren verwendet werden sollen, können
992 im LilyPond-Verzeichnis @file{../ly} gespeichert werden. (Die
993 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
994 ab, siehe hierzu @rlearning{Mehr Information}). Dateien
995 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
996 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
998 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
999 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
1000 können identifiziert werden, indem LilyPond auf der Komandozeile mit
1001 Option aufgerufen wird: @code{lilypond --verbose}. Hiermit wird
1002 neben anderer Information auch eine Liste and Pfaden und Dateien
1003 aufgeführt, die LilyPond benutzt. Die wichtigeren Dateien werden
1004 im Abschnitt @rlearning{Mehr Information} besprochen.
1005 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
1006 wenn eine neue LilyPond-Version installiert wird.
1008 Eine einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
1010 @rlearning{Partituren und Stimmen}.
1013 Handbuch zum Lernen:
1014 @rlearning{Mehr Information},
1015 @rlearning{Partituren und Stimmen}.
1019 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
1020 dem Installationsverzeichnis von LilyPond entspricht, wird die
1021 installierte Datei anstelle der eigenen verwendet.
1024 @node Verschiedene Editionen aus einer Quelldatei
1025 @subsection Verschiedene Editionen aus einer Quelldatei
1026 @translationof Different editions from one source
1028 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
1029 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
1030 Variablen werden am besten eingesetzt, wenn es darum geht, längere
1031 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
1032 verschiedene Weise zu kombinieren. Tag-Marken dagegen werden am
1033 besten eingesetzt, wenn eine von mehreren kurzen alternativen
1034 Notenabschnitten ausgewählt werden soll. Egal welche Methode am
1035 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
1036 die eigentlichen Noten und die Struktur der Paritur voneinander
1037 getrennt notiert werden -- so kann die Struktur geändert werden,
1038 ohne dass man Änderungen an den Noten vornehmen muss.
1041 * Variablen benutzen::
1045 @node Variablen benutzen
1046 @unnumberedsubsubsec Variablen benutzen
1047 @translationof Using variables
1049 @cindex Variablen, Benutzung
1051 Wenn Notenabschnitt in Variablen definiert werden, können sie
1052 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1053 siehe auch @rlearning{Stücke durch Bezeichner organisieren}. Zum
1054 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1055 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1056 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1057 einmal notieren muss. Noten aus zwei Variablen können auf einem
1058 System kombiniert werden, siehe @ref{Automatische Kombination von Stimmen}.
1061 @lilypond[verbatim,quote]
1062 sopranoMusic = \relative c'' { a4 b c b8( a)}
1063 altoMusic = \relative g' { e4 e e f }
1064 tenorMusic = \relative c' { c4 b e d8( c) }
1065 bassMusic = \relative c' { a4 gis a d, }
1066 allLyrics = \lyricmode {King of glo -- ry }
1068 \new Staff = "Soprano" \sopranoMusic
1069 \new Lyrics \allLyrics
1070 \new Staff = "Alto" \altoMusic
1071 \new Lyrics \allLyrics
1072 \new Staff = "Tenor" {
1076 \new Lyrics \allLyrics
1077 \new Staff = "Bass" {
1081 \new Lyrics \allLyrics
1084 \set Staff.printPartCombineTexts = ##f
1090 \set Staff.printPartCombineTexts = ##f
1100 Unterschiedliche Partituren, die entweder nur den Chor oder das
1101 Klavier zeigen, können produziert werden, indem die Struktur
1102 verändert wird; die Noten müssen dazu nicht verändert werden.
1104 Für längere Partituren können Variablen in eigene Dateien notiert
1105 werden, die dann eingebunden werden, siehe @ref{LilyPond-Dateien einfügen}.
1108 @node Marken benutzen
1109 @unnumberedsubsubsec Marken benutzen
1110 @translationof Using tags
1114 @cindex markierte Noten entfernen
1115 @cindex markierte Noten behalten
1118 @funindex \keepWithTag
1119 @funindex \removeWithTag
1121 @funindex keepWithTag
1122 @funindex removeWithTag
1124 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1125 Ausdruck mit der Bezeichnung @var{TeilA}. Ausdrücke, die auf diese
1126 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1127 bzw. ausgefiltert werden. Das geschieht mit den Befehlen
1128 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1129 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1132 @multitable @columnfractions .5 .5
1138 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1139 @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1140 gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1143 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1144 @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1145 @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1146 werden nicht angezeigt.
1149 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1150 @code{\removeWithTag}
1151 @tab Alle markierten und unmarkierten Noten werden angezeigt.
1155 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1156 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1157 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1160 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1161 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1163 @lilypond[verbatim,quote]
1164 music = \relative g' {
1166 \tag #'trills {d8.\trill }
1167 \tag #'expand {\repeat unfold 3 {e32 d} }
1172 \keepWithTag #'trills \music
1175 \keepWithTag #'expand \music
1180 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1181 erfordert manchmal weniger Schreibarbeit:
1183 @lilypond[verbatim,quote]
1184 music = \relative g' {
1186 \tag #'trills {d8.\trill }
1187 \tag #'expand {\repeat unfold 3 {e32 d} }
1192 \removeWithTag #'expand
1196 \removeWithTag #'trills
1201 Marken können auch auf Artikulationen, Text usw angewendet werden,
1205 -\tag #'@var{your-tag}
1209 voranstellt (jedoch nach der Note, an die sie gebunden sind). Mit
1210 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1215 c1-\tag #'warn ^"Achtung!"
1218 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1221 @lilypond[quote,verbatim]
1222 music = \relative c'' {
1223 \tag #'a \tag #'both { a a a a }
1224 \tag #'b \tag #'both { b b b b }
1227 \keepWithTag #'a \music
1228 \keepWithTag #'b \music
1229 \keepWithTag #'both \music
1233 Mehrfache @code{\removeWithTag}-Filter können auf einen
1234 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1235 markierte Abschnitte aus dem Druckbild zu entfernen.
1237 @lilypond[verbatim,quote]
1238 music = \relative c'' {
1239 \tag #'A { a a a a }
1240 \tag #'B { b b b b }
1241 \tag #'C { c c c c }
1242 \tag #'D { d d d d }
1251 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1252 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1253 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1254 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1255 eben genannten zusätzlich entfernt.
1259 Handbuch zum Lernen:
1260 @rlearning{Stücke durch Bezeichner organisieren}.
1263 @ref{Automatische Kombination von Stimmen},
1264 @ref{LilyPond-Dateien einfügen}.
1268 @c This warning is more general than this placement implies.
1269 @c Rests are not merged whether or not they come from tagged sections.
1270 @c Should be deleted? -td
1274 Multiple rests are not merged if you create a score with more
1275 than one tagged section at the same place.
1280 @node Zeichenkodierung
1281 @subsection Zeichenkodierung
1282 @translationof Text encoding
1286 @cindex Nicht-ASCII-Zeichen
1288 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
1289 und ISO/IEC 10646 definiert sind. Hiermit wird den Zeichen
1290 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
1291 Code-Punkt zugewiesen, mit dem sie identifizierbar sind. Unicode
1292 kann mit mehreren Zeichenkodierungen verwirklicht werden. LilyPond
1293 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
1294 in der die normalen Zeichen des lateinischen Alphabets mit einem
1295 Byte dargestellt werden, während alle anderen Zeichen zwischen
1296 zwei und vier Byte Länge haben.
1298 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
1299 Schriftart (engl. font). In einer Schriftartdatei werden die
1300 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
1301 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
1302 und komplexe Skripte korrekt zu setzen.
1304 LilyPond verändert die Kodierung der Eingabedatei nicht. Das heißt,
1305 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
1306 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
1307 musst. Am einfachsten geht das, indem man einen Texteditor
1308 einsetzt, der mit Unicode-Zeichen umgehen kann. Die meisten
1309 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
1310 wie etwa vim, Emacs, jEdit oder GEdit. Alle MS Windows-Systeme
1311 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
1312 in UTF-8 lesen und speichern kann. Ein Editor mit mehr
1313 Funktionen unter Windows ist BabelPad oder Notepad++.
1315 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
1316 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
1319 FT_Get_Glyph_Name () error: invalid argument
1322 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
1325 %c No verbatim here as the code does not display correctly in PDF
1327 bulgarian = \lyricmode {
1328 Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
1332 hebrew = \lyricmode {
1333 זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
1337 portuguese = \lyricmode {
1338 à vo -- cê uma can -- ção legal
1344 \addlyrics { \bulgarian }
1345 \addlyrics { \hebrew }
1346 \addlyrics { \portuguese }
1349 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
1350 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
1351 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
1352 @code{\markup}-Umgebung benutzt werden. Hierbei bedeutet @code{hhhh} die
1353 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
1354 für das erforderliche Zeichen. Nullen zu Beginn können ausgelassen werden,
1355 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
1356 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
1357 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.)
1359 Mit @code{\char ##x03BE} und @code{\char #958} wird
1360 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
1361 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
1364 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
1365 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
1366 gespeichert werden. Es muss natürlich auch noch eine Schriftart auf
1367 dem System installiert sein, die die notierten Zeichen darstellen kann.
1369 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
1370 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
1371 im Gesangstext und als normaler Text außerhalb der Partitur.
1373 @lilypond[quote,verbatim]
1376 c1 \mark \markup { \char ##x03EE }
1377 c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
1379 \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
1381 \markup { "Copyright 2008--2009" \char ##x00A9 }
1384 @cindex Copyright-Zeichen
1386 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
1390 copyright = \markup @{ \char ##x00A9 "2008" @}
1395 @node LilyPond-Notation anzeigen
1396 @subsection LilyPond-Notation anzeigen
1397 @translationof Displaying LilyPond notation
1399 @funindex \displayLilyMusic
1401 Ein musikalischer Ausdruck in LilyPond-Notation kann mit der Funktion
1402 @code{\displayMusic} angezeigt werden. Der Code
1406 \displayLilyMusic \transpose c a, @{ c e g a bes @}
1414 @{ a, cis e fis g @}
1417 Normalerweise werden diese Zeilen zusammen mit allen anderen
1418 Nachrichten auf der Kommandozeile ausgegeben. Um sie separat zu
1419 speichern und das Ergebnis von @code{\displayMusic} weiterzubenutzen,
1420 kann die Ausgabe mit folgendem Befehl in eine Datei umgeleitet werden:
1422 @c TODO What happens under Windows?
1425 lilypond file.ly >display.txt
1430 @node Ausgabe kontrollieren
1431 @section Ausgabe kontrollieren
1432 @translationof Controlling output
1435 * Notationsfragmente extrahieren::
1436 * Korrigierte Musik überspringen::
1440 @node Notationsfragmente extrahieren
1441 @subsection Notationsfragmente extrahieren
1442 @translationof Extracting fragments of music
1444 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
1445 Quelldatei zu erzeugen. Das kann damit verglichen werden, dass man
1446 mit der Schere bestimmte Regionen ausschneidet.
1448 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
1449 (engl. to clip = ausschneiden), extra definiert. Mit folgender
1450 Defintion beispielsweise
1457 (make-rhythmic-location 5 1 2)
1458 (make-rhythmic-location 7 3 4)))
1463 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
1464 beginnt und im siebten Takt endet. Die Bedeutung von @code{5 1 2} ist:
1465 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
1468 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
1469 werden, indem mehrere derartige Paare definiert werden.
1471 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
1472 Parameter @code{-dclip-systems} aufgerufen werden. Die Schnipsel
1473 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
1474 diese Formate auch als Parameter angegeben werden.
1476 Zu mehr Information über Ausgabeformate siehe @rprogram{lilypond aufrufen}.
1479 @node Korrigierte Musik überspringen
1480 @subsection Korrigierte Musik überspringen
1481 @translationof Skipping corrected music
1484 @funindex skipTypesetting
1485 @funindex showFirstLength
1486 @funindex showLastLength
1488 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
1489 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
1490 Korrektur. Um die Korrektur zu beschleunigen, kann eingestellt werden,
1491 dass nur die letzten paar Takte angezeigt werden. Das erreicht man
1495 showLastLength = R1*5
1500 in der Quelldatei. Damit werden nur die letzten fünf Takte (in einem
1501 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt. Besonders
1502 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
1503 kleinen Teil des Stückes zu setzen als die gesamte Länge. Wenn man
1504 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
1505 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
1508 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
1509 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
1510 werden. Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
1511 wird kein Notensatz ausgegeben.
1513 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
1514 kontrollieren. Hiermit werden alle Ereignisse, auch Tempo- und
1515 Instrumentenwechsel ausgelassen. Man muss also sehr genau darauf
1516 achten, dass nichts unerwartetes geschieht.
1518 @lilypond[quote,fragment,ragged-right,verbatim]
1521 \set Score.skipTypesetting = ##t
1523 \set Score.skipTypesetting = ##f
1527 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
1528 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
1529 Übersetzung der Datei gespart wird.
1533 @section MIDI-Ausgabe
1534 @translationof MIDI output
1539 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
1540 Kontrolle und Interaktion mit digitalen Instrumenten. Eine
1541 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
1542 Bändern/Stimmen. Es ist keine eigentliche Klangdatei, denn man
1543 benötigt spezielle Programme die die Notenereignisse in Klang
1546 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
1547 man sich anhören kann, was man notiert hat. Das hilft oft sehr gut
1548 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
1549 lassen sich meist sehr gut hören.
1551 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und einen für
1552 globale Einstellungen. Darum sollte die Quelldatei für eine MIDI-Datei
1553 nicht mehr als 15 Systeme (oder 14 wenn kein Schlagzeug benützt wird)
1554 besitzen. Jedes weitere System bleibt stumm.
1558 * MIDI-Dateien erstellen::
1560 * Was geht in die MIDI-Ausgabe::
1561 * Wiederholungen im MIDI::
1562 * MIDI-Lautstärke kontrollieren::
1563 * Schlagzeug in MIDI::
1567 @node MIDI-Dateien erstellen
1568 @subsection MIDI-Dateien erstellen
1569 @translationof Creating MIDI files
1571 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
1572 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
1582 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
1583 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
1584 Wenn auch die Notation gewünscht ist, muss zusätzlich die
1585 @code{\layout}-Umgebung vorhanden sein:
1595 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
1596 korrekt in das MIDI-Format übersetzt. Dynamikzeichen, Crescendo und
1597 Decrescendo werden in den MIDI-Lautstärkekanal übertragen. Dynamikzeichen
1598 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
1599 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
1600 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
1601 werden. Siehe hierzu @ref{Der MIDI-Block}.
1603 Das Anfangstempo und spätere Tempoänderungen können mit dem
1604 @code{\tempo}-Befehl innerhalb der Notation notiert werden. Er
1605 bewirkt Tempoänderungen auch in der MIDI-Datei. Der Befehl setzt
1606 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
1607 auch unterdrückt werden kann, siehe @ref{Metronomangabe}. Eine
1608 andere möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
1609 unten gezeigt, siehe @ref{Der MIDI-Block}.
1611 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
1612 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
1613 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
1614 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
1615 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
1616 oder @code{\score}-Blocks einfügen:
1619 #(ly:set-option 'midi-extension "midi")
1622 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
1624 Als Alternative kann man diese Option auch als Kommandozeilenparameter
1628 lilypond … -dmidi-extension=midi lilyDatei.ly
1631 @unnumberedsubsubsec Instrumentenbezeichnungn
1633 @cindex Instrumentbezeichnungen
1635 @funindex Staff.midiInstrument
1637 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
1638 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
1639 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
1640 Die Bezeichnungen sind aufgelistet in @ref{MIDI-Instrumente} und müssen
1641 in der dort definierten Schreibweise notiert werden.
1645 \set Staff.midiInstrument = #"glockenspiel"
1651 \new Staff \with @{midiInstrument = #"cello"@} @{
1656 Wenn die Schreibweise nicht genau einem definierten Instrument aus
1657 der Liste entpsricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
1661 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1662 {changing-midi-output-to-one-channel-per-voice.ly}
1666 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
1667 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
1668 nicht geändert werden kann.
1670 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
1671 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
1672 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
1675 @node Der MIDI-Block
1676 @subsection Der MIDI-Block
1677 @translationof MIDI block
1679 @cindex MIDI-Umgebung
1681 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
1682 vorkommen, wenn MIDI-Ausgabe gewünscht ist. Sie entspricht der
1683 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut. Oft wird
1684 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
1685 Kontexte umgeändert werden, neue Kontexte definiert werden oder
1686 neue Werte definiert werden. Das folgende Beispiel etwa definiert
1687 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
1696 tempoWholesPerMinute = #(ly:make-moment 72 4)
1702 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert. Wenn
1703 das Tempo auf diese Weise definiert wird, kann keine punktierte
1704 Note als Einheit angegeben werden. Wenn sie benötigt wird, muss
1705 man sie in kleinere Einheiten auflösen. Ein Tempo von 90 punktierten
1706 Viertelnoten pro Minute kann beispielsweise dargestellt werden
1707 als 270 Achtelnoten pro Minute:
1710 tempoWholesPerMinute = #(ly:make-moment 270 8)
1713 @cindex MIDI-Kontextdefinitionen
1715 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
1716 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
1717 wird. Klangübersetzungsmodule werden @code{performer}
1718 genannt. Die Kontexte für die MIDI-Ausgabe sind in der
1719 Datei @file{../ly/@/performer@/-init@/.ly} definiert, siehe
1720 @rlearning{Mehr Information}. Um beispielsweise
1721 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
1722 entfernen, müssen folgende Zeilen eingefügt werden:
1729 \remove "Dynamic_performer"
1734 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
1735 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
1736 @code{\score} beginnt. Wenn eine Partitur explizit etwa mit
1737 @code{\new Score} begonnen wird, und sich die MIDI-Umgebung hierin
1738 befindet, wird keine Ausgabe produziert. Eine Lösung ist es, sowohl
1739 die @code{\new Score}- als auch die @code{\midi}-Umgebungen in eine
1740 @code{\score}-Umgebung einzuschließen.
1744 \new Score @{ @dots{}Noten@dots{} @}
1750 @node Was geht in die MIDI-Ausgabe
1751 @subsection Was geht in die MIDI-Ausgabe
1752 @translationof What goes into the MIDI output?
1755 @unnumberedsubsubsec In MIDI unterstützt
1757 @cindex Tonhöhen in MIDI
1758 @cindex MIDI, Tonhöhen
1759 @cindex Vierteltöne in MIDI
1760 @cindex MIDI, Vierteltöne
1761 @cindex Mikrotöne in MIDI
1762 @cindex MIDI, Mikrotöne
1763 @cindex Akkordsymbole in MIDI
1764 @cindex MIDI, Akkordsymbole
1765 @cindex Rhythmen in MIDI
1766 @cindex MIDI, Rhythmen
1768 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
1772 @item Mikrotöne (siehe @ref{Versetzungszeichen}. Für die Ausgabe wird ein
1773 Spieler benötigt, der Tonhöhen verändern kann.)
1774 @item Akkorde, die als Symbole notiert werden
1775 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
1776 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
1778 @item Dynamikzeichen
1779 @item Crescendi, decrescendi zu mehreren Noten
1780 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
1785 @unnumberedsubsubsec In MIDI nicht unterstützt
1787 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbeozogen:
1790 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
1791 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
1792 @item Staccato und andere Artikultationen und Ornamente
1793 @item Legato- und Phrasierungsbögen
1794 @item Crescendi, decrescendi zu einer einzelnen Note
1795 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
1796 @item Bezifferter Bass
1797 @item Akkorde mit Mikrotönen
1801 @node Wiederholungen im MIDI
1802 @subsection Wiederholungen im MIDI
1803 @translationof Repeats in MIDI
1805 @cindex Wiederholungen in MIDI
1806 @cindex MIDI und Wiederholungen
1808 @funindex \unfoldRepeats
1810 Mit einigen Veränderungungen im Notentext können alle Wiederholungstypen
1811 auch in der MIDI-Ausgabe wiedergegeben werden. Das wird erreicht, indem
1812 die @code{\unfoldRepeats}-Funktion eingesetzt wird. Diese Funktion
1813 verändert alle Wiederholungen in ausgeschriebene Noten.
1815 @lilypond[quote,verbatim]
1817 \repeat tremolo 8 {c'32 e' }
1818 \repeat percent 2 { c''8 d'' }
1819 \repeat volta 2 {c'4 d' e' f'}
1828 Wenn eine Partitur mit diesem Befehl erstellt wird, ist er notwendig,
1829 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
1830 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
1831 in der anderen werden die Wiederholungen notiert und als Partitur
1832 gesetzt. Das Beispiel gibt einen Hinweis, wie eine derartige Datei
1841 \unfoldRepeats @var{..music..}
1847 @node MIDI-Lautstärke kontrollieren
1848 @subsection MIDI-Lautstärke kontrollieren
1849 @translationof Controlling MIDI dynamics
1851 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
1852 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
1853 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
1854 als auch relative Lautstärken von Dynamikanweisungen und auch
1855 relative Lautstärke von einzelnen Instrumenten einzustellen.
1858 @unnumberedsubsubsec Dynamik-Zeichen
1861 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
1862 zur Verfügung stehenden MIDI-Lautstärke notiert. Die Standardbrüche
1863 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
1864 @notation{fffff}. Diese Anweisung befinden sich in der Datei
1865 @file{../scm/midi.scm}, siehe auch @rlearning{Mehr Information}.
1866 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
1867 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
1868 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
1869 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
1872 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
1873 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann. Gleiches gilt
1874 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
1875 nicht enthalten sind. Die Scheme-Funktion, die hier definiert wird,
1876 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
1877 Standardanweisungen auf:
1879 @lilypond[verbatim,quote]
1880 #(define (myDynamics dynamic)
1881 (if (equal? dynamic "rfz")
1883 (default-dynamic-absolute-volume dynamic)))
1887 \set Staff.midiInstrument = #"cello"
1888 \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
1900 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
1901 umdefiniert werden soll, ist es besser, die
1902 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
1903 @file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
1904 zu benutzen. Das letzte Beispiel dieses Abschnittes zeigt, wie das
1905 gemacht werden kann.
1908 @unnumberedsubsubsec MIDI-Lautstärke
1910 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1911 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
1912 unde @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
1913 werden. Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
1914 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
1915 wenn diese Einstellung von Anfang an Wirkung zeigen soll. Der Bruch,
1916 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
1920 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
1924 errechnet. Im folgenden Beispiel wird die generelle MIDI-Lautstärke
1925 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
1927 @lilypond[verbatim,quote]
1933 \set Staff.midiInstrument = #"flute"
1934 \new Voice \relative c''' {
1942 \set Staff.midiInstrument = #"clarinet"
1943 \new Voice \relative c'' {
1954 tempoWholesPerMinute = #(ly:make-moment 72 2)
1955 midiMinimumVolume = #0.2
1956 midiMaximumVolume = #0.5
1963 @unnumberedsubsubsec Verschiedene Instrumente angleichen (i)
1965 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
1966 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
1967 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
1968 werden. Damit kann man die Qualität der MIDI-Datei
1969 merklich verbessern.
1971 In diesem Beispiel wird die Lautstärke der Klarinette relativ
1972 zur Lautstärke der Flöte verringert. In jeder Stimme muss
1973 eine Dynamikanweisung für die erste Note gesetzt werden, damit
1974 diese Einstellung korrekt funktioniert.
1976 @lilypond[verbatim,quote]
1982 \set Staff.midiInstrument = #"flute"
1983 \set Staff.midiMinimumVolume = #0.7
1984 \set Staff.midiMaximumVolume = #0.9
1985 \new Voice \relative c''' {
1993 \set Staff.midiInstrument = #"clarinet"
1994 \set Staff.midiMinimumVolume = #0.3
1995 \set Staff.midiMaximumVolume = #0.6
1996 \new Voice \relative c'' {
2007 tempoWholesPerMinute = #(ly:make-moment 72 2)
2014 @unnumberedsubsubsec Verschidene Instrumente angleichen (ii)
2016 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2017 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
2018 Anpassungen für die Lautstärken bestimmter Instrumente vor.
2019 Diese Instrumente und ihre entsprechende Veränderung lassen
2020 sich aus der Tabelle @notation{instrument-equalizer-alist}
2021 in der Datei @file{../scm/midi.scm} entnehmen.
2023 Dieser grundlegende Equalizer kann ersetzt werden, indem die
2024 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
2025 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
2026 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
2027 den Höchst- und Mindestwert für die Lautstärke des entpsrechenden
2028 Instruments darstellt. Die Ersetzung der Standardfunktion wird
2029 auf gleiche Weise vorgenommen, wie es schon für die
2030 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
2031 gezeigt wurde. Der Standard-Equalizer,
2032 @notation{default-instrument-equalizer} in der Datei
2033 @file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
2036 Das folgende Beispiel definiert für die Flöte und Klarinette relative
2037 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
2039 @lilypond[verbatim,quote]
2040 #(define my-instrument-equalizer-alist '())
2042 #(set! my-instrument-equalizer-alist
2045 ("flute" . (0.7 . 0.9))
2046 ("clarinet" . (0.3 . 0.6)))
2047 my-instrument-equalizer-alist))
2049 #(define (my-instrument-equalizer s)
2050 (let ((entry (assoc s my-instrument-equalizer-alist)))
2059 \set Score.instrumentEqualizer = #my-instrument-equalizer
2060 \set Staff.midiInstrument = #"flute"
2061 \new Voice \relative c''' {
2069 \set Staff.midiInstrument = #"clarinet"
2070 \new Voice \relative c'' {
2081 tempoWholesPerMinute = #(ly:make-moment 72 2)
2089 @node Schlagzeug in MIDI
2090 @subsection Schlagzeug in MIDI
2091 @translationof Percussion in MIDI
2093 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2094 notiert. Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2095 ausgegeben. Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2096 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2097 in einem @code{Staff}-Kontext notiert. Nur so lässt sich auch hier
2098 eine richtige MIDI-Ausgabe erreichen.
2100 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2101 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2102 einem normalen @code{Staff}-Kontext notiert werden. Es handelt sich
2103 um @code{melodic tom, taiko drum, synth drum} usw.
2105 Viele Schlagzeuginstrumnete sind nicht in den MIDI-Standard aufgenommen,
2106 z. B. Kastagnetten. Die einfachste Methode, derartige Instrumente
2107 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2113 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2114 Schlagstock (sidestick) für diesen Zweck eingesetzt.