1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: 5131c3292d30cabdf08839daa02a006e4d3c96c5
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
12 @node General input and output
13 @chapter General input and output
15 Dieses Kapitel erklärt allgemeine Fragen zur Eingabe und Ausgabe von
16 Notation mit LilyPond und weniger direkte Fragen der Notation.
20 * Titles and headers::
21 * Working with input files::
22 * Controlling output::
28 @section Input structure
30 Das hauptsächliche Eingabeformat von LilyPond sind Textdateien.
31 Üblicherweise werden diese Dateien mit der Endung @code{.ly}
35 * Structure of a score::
36 * Multiple scores in a book::
41 @node Structure of a score
42 @subsection Structure of a score
46 Eine @code{\score}-Umgebung muss einen einzelnen musikalischen
47 Ausdruck beinhalten, der durch geschweifte Klammern begrenzt wird:
55 @warning{Es darf @strong{nur ein} äußerer musikalischer Ausdruck
56 in der @code{\score}-Umgebung geschrieben werden, und er @strong{muss}
57 von geschweiften Klammern umgeben sein.}
59 Dieser einzelne musikalische Ausdruck kann beliebige Größe annehmen und
60 andere musikalische Ausdrücke von beliebiger Komplexität beinhalten.
61 Alle diese Beispielse sind musikalische Ausdrücke:
67 @lilypond[verbatim,quote]
74 @lilypond[verbatim,quote]
76 \new Staff { c'4 c' c' c' }
77 \new Staff { d'4 d' d' d' }
85 \new Staff @{ \Flöte @}
86 \new Staff @{ \Oboe @}
89 \new Staff @{ \GeigeI @}
90 \new Staff @{ \GeigeII @}
96 Kommentare bilden eine Ausnahme dieser Regel. (Andere Ausnahmen
97 siehe @ref{File structure}.) Sowohl einzeilige als auch
98 Blockkommentare (eingegrenzt durch @code{%@{ .. %@}}) können
99 an beliebiger Stelle einer Eingabedatei geschrieben werden. Sie
100 können innerhalb oder außerhalb der @code{\score}-Umgebung vorkommen,
101 und innerhalb oder außerhalb des einzelnen musikalischen Ausdrucks
102 innerhalb der @code{\score}-Umgebung.
107 @rlearning{Working on input files},
108 @rlearning{Music expressions explained},
109 @rlearning{Score is a (single) compound musical expression}.
112 @node Multiple scores in a book
113 @subsection Multiple scores in a book
116 @cindex Sätze, mehrere
118 Eine Partitur kann mehrere musikalische Stücke und verschiedene
119 Texte beinhalten. Beispiele hierzu sind etwa eine Etüdensammlung
120 oder ein Orchesterstück mit mehreren Sätzen. Jeder Satz wird
121 in einer eigenen @code{\score}-Umgebung notiert:
130 und Texte werden mit einer @code{\markup}-Umgebung geschrieben:
140 Alle Sätze und Texte, die in derselben @code{.ly}-Datei vorkommen,
141 werden normalerweise in eine einzige Ausgabedatei gesetzt.
155 Wenn Sie aber mehrere Ausgabedateien aus einer einzigen @code{.ly}-Datei
156 erstellen wollen, können Sie mehrere @code{\book}-Umgebungen notieren.
157 Wenn Sie keine @code{\book}-Umgebung in Ihrer Datei angeben, interpretiert
158 LilyPond die gesamte Datei als eine große @code{\book}-Umgebung (siehe
159 auch @ref{File structure}. Eine wichtige Ausnahme stellen Dokumente dar,
160 die mit lilypond-book erstellt werden, für die Sie explizit
161 @code{\book}-Umgebungen notieren müssen, weil sonst nur die erste
162 @code{\score}- bzw. @code{\markup}-Umgebung angezeigt wird.
164 Der Kopfbereich für jedes Musikstück kann innerhalb der @code{\score}-Umgebung
165 definiert werden. Die @code{piece}-(Stück)-Bezeichnung aus dieser
166 @code{\header}-Umgebung wird vor jedem Satz ausgegeben. Die Überschrift für
167 ein ganzes Buch kann innerhalb von @code{\book} notiert werden, aber wenn
168 diese Umgebung fehlt, wird die @code{\header}-Umgebung genommen, die auf
169 erster Ebene der Datei notiert ist.
173 title = "Acht Miniaturen"
174 composer = "Igor Stravinsky"
178 \header @{ piece = "Romanze" @}
181 ..Text der zweiten Strophe..
184 ..Text der dritten Strophe..
188 \header @{ piece = "Menuetto" @}
194 Stücke können innerhalb eines Buches mit @code{\bookpart} gruppiert
195 werden. Derartige Buchabschnitte werden durch einen Seitenumbruch
196 voneinander getrennt und können wie auch das ganze Buch selber mit
197 einem Titel innerhalb einer @code{\header}-Umgebung beginnen.
203 subtitle = "Erster Teil"
210 subtitle = "Zweiter Teil"
218 @subsection File structure
228 @cindex Dateistruktur
229 @cindex Struktur, Datei
230 @cindex Eingabedatei, Struktur
231 @cindex Quelldatei, Struktur
233 Eine @code{.ly}-Datei kann eine belibige Anzahl an Ausdrücken
234 auf der obersten Ebene beinhalten, wobei ein Ausdrück der obersten
235 Ebene einer der folgenden sein kann:
239 Eine Ausgabedefinition, wie @code{\paper}, @code{\midi} und
240 @code{\layout}. Derartige Definitionen auf oberster Ebene verändern
241 die globalen Einstellungen für das ganze @qq{Buch}. Wenn mehr
242 als eine derarte Definition desselben Typs angegeben wird, hat
246 Ein direkter Scheme-Ausdruck, wie etwa
247 @code{#(set-default-paper-size "a7" 'landscape)} oder
248 @code{#(ly:set-option 'point-and-click #f)}.
251 Eine @code{\header}-Umgebung. Damit wird die globale Titelei
252 eingestellt. Das ist die Umgebung, in der sich Definition für
253 das ganze Buch befinden, wie Komponist, Titel usw.
256 Eine @code{\score}-Umgebung. Die in ihr enthaltene Partitur wird
257 zusammen mit anderen vorkommenden @code{\score}-Umgebungen gesammelt
258 und in ein @code{\book} zusammengefasst. Dieses Verhalten kann
259 verändert werden, indem die Variable @code{toplevel-score-handler}
260 auf höchster Ebene gesetzt wird. Die Definition des Standards findet sich
261 in der Datei @file{../scm/@/lily@/.scm}.
264 Eine @code{\book}-Umgebung fasst mehrere Sätze (d. h. mehrere
265 @code{\score}-Umgebungen) logisch in ein Dokument zusammen.
266 Wenn mehrere @code{\score}-Partituren vorkommen, wird für jede
267 @code{\book}-Umgebung eine eigene Ausgabedatei erstellt, in der
268 alle in der Umgebung enthaltenen Partituren zusammengefasst sind.
269 Der einzige Grund, explizit eine @code{\book}-Umgebung zu setzen,
270 ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei
271 erstellt werden sollen. Eine Ausnahme sind lilypond-book-Dokumente,
272 in denen eine @code{\book}-Umgebung explizit hinzugefügt werden
273 muss, wenn mehr als eine @code{\score}- oder @code{\markup}-Umgebung
274 im gleichen Beispiel angezeigt werden soll. Dieses Verhalten
275 kann verändert werden, indem die Variable @code{toplevel-book-handler}
276 auf höchster Ebene gesetzt wird. Die Definition des Standards
277 findet sich in der Datei @file{../scm/@/lily@/.scm}.
280 Eine @code{\bookpart}-Umgebung. Ein Buch (@code{\book}) kann in
281 mehrere Teile untergliedert sein, indem @code{\bookpart}-Umgebungen
282 eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen
283 Seite und kann eigene Papierdefinitionen in einer @code{\paper}-Umgebung
287 Ein zusammengesetzter musikalischer Ausdruck wie etwa
292 Dieses Beispiel wird von LilyPond automatisch in einer
293 @code{\score}-Umgebung in einem Buch interpretiert und
294 mit anderen @code{\score}-Umgebungen und musikalischen
295 Ausdrücken auf der höchsten Ebene zusammen ausgegeben.
296 Anders gesagt: eine Datei, die nur das obige Beispiel
297 beinhaltet, wird übersetzt zu
313 Dieses Verhalten kann verändert werden, indem die Variable
314 @code{toplevel-music-handler} auf der oberseten Ebene gesetzt
315 wird. Die Definition des Standards findet sich in der Datei
316 @file{../scm/@/lily@/.scm}.
319 Eine Textbeschriftung, eine Strophe etwa:
322 2. Die erste Zeile der zweiten Strophe.
326 Textbeschriftungen werden über, zwischen oder unter musikalischen
327 Ausdrücken gesetzt, so wie sie notiert werde.
337 Sie kann dann später in der Datei eingesetzt werden, indem @code{\foo}
338 geschrieben wird. Die Beizeichnung der Variable darf nur aus
339 alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.
343 Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene
344 notiert werden können:
348 % Zeilen rechtsbündig setzen
359 An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen
360 Anweisungen notiert werden:
363 @item @code{\version}
364 @item @code{\include}
365 @item @code{\sourcefilename}
366 @item @code{\sourcefileline}
368 Ein einzeiliger Kommentar, beginnend mit @code{%}.
371 Ein mehrzeiliger Kommentar, umgeben von @code{%@{ .. %@}}.
377 @rlearning{How LilyPond input files work}.
380 @node Titles and headers
381 @section Titles and headers
383 Fast alle gedruckten Noten beinhalten einen Titel und den Namen
384 des Komponisten, teilweise wird auch noch sehr viel mehr Information
385 zur Verfügung gestellt.
390 * Reference to page numbers::
391 * Table of contents::
395 @node Creating titles
396 @subsection Creating titles
398 Überschriften können für jede @code{\score}-Umgebung erstellt werden, sowohl
399 für die gesamte Datei (oder eine @code{\book}-Umgebung) als auch für
400 einzelne Buchabschnitte (innerhalb einer @code{\bookpart}-Umgebung).
402 Der Inhalt der Titelei wird aus der @code{\header}-Umgebung übernommen. Die
403 @code{\header}-Umgebung eines Buches unterstützt folgende Felder:
408 Die Widmung der Noten, wird auf oben auf der ersten Seite gesetzt.
412 Die Überschrift der Noten, wird unter der Widmung zentriert gesetzt.
416 Untertitel, zentriert unter der Überschrift.
418 @funindex subsubtitle
420 Unteruntertitel, zentriert unter dem Untertitel.
424 Name des Dichters, linksbündig unter dem Unteruntertitel.
428 Bezeichnung des Instruments, zentriert unter dem Unteruntertitel.
429 Auch oben auf der Seite zentriert (andere als erste Seite).
433 Name des Komponisten, rechtsbüngig unter dem Unteruntertitel.
437 Metrum, linksbündig unter dem Dichter.
441 Name des Bearbeiters/Arrangeurs, rechtsbündig unter dem Komponisten.
445 Bezeichnung des Stückes, linksbündig unter dem Metrum.
449 Bezeichnung des Opus, rechtsbündig unter dem Bearbeiter.
451 @cindex Seitenumbruch, erzwingen
452 @funindex breakbefore
455 Hiermit beginnt der Titel auf einer neuen Steite. (Kann die Werte
456 ##t (wahr) oder ##f (falsch) haben.)
460 Anzeige eines Copyright, zentriert unten auf der ersten Seite. Um das
461 Copyright-Symbol zu notieren, siehe @ref{Text encoding}.
465 Zentriert unten auf der letzten Seite. Enthält standardmäßig: @qq{Music
466 engraving by LilyPond (@var{version})---www.lilypond.org}
470 Hier eine Demonstration der möglichen Felder. Beliebige
471 Formatierungsbefehle für Textbeschriftung können in der Titelei
472 eingesetzt werden. Siehe hierzu auch @ref{Formatting text}.
475 @lilypond[quote,verbatim,line-width=11.0\cm]
478 paper-height = 10.0\cm
483 dedication = "mir gewidmet"
484 title = \markup \center-column { "Titel erste Zeile" "Titel zweite Zeile, länger" }
485 subtitle = "Untertitel"
486 subsubtitle = #(string-append "Unteruntertitel LilyPond-Version "
489 composer = \markup \center-column { "Komponist" \small "(1847-1973)" }
490 texttranslator = "Übersetzer"
491 meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "r" \huge
493 arranger = \markup { \fontsize #8.5 "Be" \fontsize #2.5 "ar" \fontsize
494 #-2.5 "be" \fontsize #-5.3 "i" \fontsize #7.5 "ter" }
495 instrument = \markup \bold \italic "Instrument"
519 Wie schon oben gezeigt, können mehrfache @code{\header}-Umgebungen
520 eingesetzt werden. Wenn das gleiche Feld in mehreren
521 Umgebungen, wird die letzte vorkommende
522 Version benutzt. Hier ein kurzes Beispiel:
526 composer = "Komponist"
534 piece = "Neues Stück" % überschreibt die die vorige Definition
539 Wenn @code{\header} innerhalb der @code{\score}-Umgebung definiert wird,
540 wird normalerweise nur die Information von @code{piece} und @code{opus}
541 ausgegeben. Musikalische Ausdrücke innerhalb von @code{\score} müssen
542 vor @code{\header} gesetzt werden.
544 @lilypond[quote,verbatim,line-width=11.0\cm]
548 title = "title" % not printed
555 @funindex print-all-headers
558 Dieses Verhalten kann verändert werden (sodass alle Angaben aus der
559 überschrift gesetzt werden, wenn sich @code{\header} innerhalb von
560 @code{\score} befindet), indem man schreibt:
564 print-all-headers = ##t
571 Die Standardfußzeile ist leer mit Ausnahme der ersten Seite, auf der
572 das @code{copyright}-Feld aus der @code{\header}-Umgebung eingefügt wird,
573 und die letzte Seite, auf der das @code{tagline}-Feld eingefügt wird.
574 Der Standardinhalt von @code{tagline} ist @qq{Music engraving by
575 LilyPond (@var{version})---www.lilypond.org}. Gut gesetzte Noten werben sehr effektiv
576 für LilyPond, darum bitten wir darum, diese Zeile stehen zu lassen,
579 Ein Titelfeld kann vollständig entfernt werden, indem es auf
591 @subsection Custom titles
593 Kompliziertere Anpassungen können vorgenommen werden, indem die
594 folgenden Variablen innerhalb der @code{\paper}-Umgebung geändert
595 werden. Die Init-Datei @file{../ly/titling-init.ly} enthält das
600 @funindex bookTitleMarkup
602 @item bookTitleMarkup
603 Das ist die Überschrift, die für das gesamte Dokument gilt. Üblicherweise
604 wird hier der Komponist und die Überschrift des Werkes genannt.
606 @funindex scoreTitleMarkup
608 @item scoreTitleMarkup
609 Das ist die Überschrift, die vor jede @code{\score}-Umgebung gesetzt wird.
610 Überlicherweise wird hier etwa die Bezeichnung eines Satzes notiert
611 (im @code{piece}-Feld).
613 @funindex oddHeaderMarkup
615 @item oddHeaderMarkup
616 Das ist der Seitenkopf für ungerade Seiten.
618 @funindex evenHeaderMarkup
620 @item evenHeaderMarkup
621 Das ist der Seitenkopf für gerade Seiten. Wenn undefiniert, wird der
622 ungerade Seitenkopf eingesetzt.
624 Standardmäßig werden die Kopfzeilen so definiert, dass die Seitennummer
625 sich außen befindet und das Instrument zentriert gesetzt wird.
627 @funindex oddFooterMarkup
629 @item oddFooterMarkup
630 Das ist die Fußzeile für ungerade Seiten.
632 @funindex evenFooterMarkup
634 @item evenFooterMarkup
635 Das ist die Fußzeile für gerade Seiten. Wenn undefiniert, wird die
636 ungerade Fußzeile eingesetzt.
638 Standardmäßig wird in der Fußzeile auf der ersten Seite das Copyright
639 und auf der letzten Seite die Tag-Zeile gesetzt.
648 @cindex Layout der Seite
650 @cindex Überschriften
652 Die folgende Definition setzt die Überschrift linksbündig und
653 den Komponisten rechtsbündig auf einer einzelnen Zeile:
657 bookTitleMarkup = \markup {
659 \fromproperty #'header:title
660 \fromproperty #'header:composer
667 @node Reference to page numbers
668 @subsection Reference to page numbers
670 Eine bestimmte Stelle der Partitur kann mit einem @code{\label}-Befehl
671 markiert werden, sowohl auf oberster Ebene als auch innerhalb eines
672 musikalischen Ausdrucks. Auf diese Marke kann dann verwiesen werden,
673 um die Seitenzahl zu erhalten, auf der die Marke vorkommt. Der
674 Verweis wird mit dem Befehl @code{\page-ref} gefordert (innerhalb
678 @lilypond[verbatim,line-width=11.0\cm]
679 \header { tagline = ##f }
681 \label #'ErstePartitur
685 \pageBreak \mark A \label #'ZeichenA
690 \markup { Die erste Partitur fäng auf Seite \page-ref #'ErstePartitur "0" "?" an.}
691 \markup { Zeichen A befindet sich auf Seite \page-ref #'ZeichenA "0" "?". }
695 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
699 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
700 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
701 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekann ist.
704 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
705 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
706 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
707 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
708 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
709 schon vorher bekannt sein. Die Größe wird mithilfe des Platzhalters
710 bestimmt. Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
711 "00" schreiben, also eine zweistellige Zahl.
722 @node Table of contents
723 @subsection Table of contents
725 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
726 @code{\markuplines \table-of-contents}. Die Elemente, die im
727 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
728 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
729 Ebene als auch in einem musikalischen Ausdruck verwendet werden
733 \markuplines \table-of-contents
736 \tocItem \markup "Erste Partitur"
740 \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
745 \tocItem \markup "zweite Partitur"
753 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
754 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
755 Die Standardformatierungselemente sind @code{tocTitleMarkup}
756 um die Überschrift zu formatieren und @code{tocItemMarkup} um
757 die einzelnen Inhaltselemente zu formatieren, bestehend aus
758 dem Titelelement und einer Seitenzahl. Die Variablen können
759 durch den Benutzer geändert werden:
763 %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
764 tocTitleMarkup = \markup \huge \column {
765 \fill-line { \null "Table des matières" \null }
768 %% hier größere Schriftarten
769 tocItemMarkup = \markup \large \fill-line {
770 \fromproperty #'toc:text \fromproperty #'toc:page
775 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
776 in der Definition von @code{tocItemMarkup} aufgerufen mit
777 @code{#'toc:text} und @code{#'toc:page}.
779 Neue Befehle und Beschriftungen können auch definiert werden,
780 um eigene Inhaltsverzeichnisse zu gestalten:
784 @item zuerst muss eine neue Beschriftungsvariable in der
785 @code{\paper}-Umgebung definiert werden
787 @item dann muss die musikalische Funktion definiert werden, die
788 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
789 Variable benutzt wird.
793 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
794 einer Oper in das Inhaltsverzeichnis aufzunehmen:
798 tocActMarkup = \markup \large \column {
800 \fill-line { \null \italic \fromproperty #'toc:text \null }
806 #(define-music-function (parser location text) (markup?)
807 (add-toc-item! 'tocActMarkup text))
810 @lilypond[line-width=11.0\cm]
811 \header { tagline = ##f }
813 tocActMarkup = \markup \large \column {
815 \fill-line { \null \italic \fromproperty #'toc:text \null }
821 #(define-music-function (parser location text) (markup?)
822 (add-toc-item! 'tocActMarkup text))
825 \markuplines \table-of-contents
826 \tocAct \markup { Atto Primo }
827 \tocItem \markup { Coro. Viva il nostro Alcide }
828 \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
829 \tocAct \markup { Atto Secondo }
830 \tocItem \markup { Sinfonia }
831 \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
838 Installierte Dateien: @file{../ly/@/toc@/-init@/.ly}.
840 @funindex \table-of-contents
844 @code{\table-of-contents},
849 @node Working with input files
850 @section Working with input files
853 * Including LilyPond files::
854 * Different editions from one source::
856 * Displaying LilyPond notation::
860 @node Including LilyPond files
861 @subsection Including LilyPond files
864 @cindex einfügen von Dateien
865 @cindex Dateien einfügen
867 Ein größeres Projekt kann in einzelne Dateien aufteteilt werden.
868 Um eine andere Datei einzubinden, kann der Befehl
871 \include "andereDatei.ly"
877 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
878 also ob der Inhalt der Datei @code{andereDatei.ly} komplett in die
879 Hauptdatei eingefügt werden würde. So kann man für ein größeres
880 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
881 und sie dann in einer Partitur-Datei benutzen. Meistens werden
882 in den eingefügten Dateien einige Variablen definiert, die dann
883 auch in der Hauptdatei eingesetzt werden können. Mit Marken (Tags)
884 gekennzeichnete Abschnitte können eingesetzt werden, um die
885 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
886 zur Verfügung zu stellen. Siehe auch @ref{Different editions from
889 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
890 nach dem @code{\include}-Befehl verwiesen werden. Dateien an anderen
891 Stellen können eingebunden werden, indem entweder ein vollständiger
892 Pfad oder ein relativer Pfad zu der Datei angegeben wird. Hierbei
893 sollten die für UNIX typischen Schrägstriche (/) und nicht die
894 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
895 zu trennen. Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
896 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
900 \include "../kram.ly"
904 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
905 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
909 \include "stimmen/VI.ly"
910 \include "stimmen/VII.ly"
914 Dateien, die eingebunden werden sollen, können selber auch wiederum
915 ein @code{\include} enthalten. Diese Einbindung zweiter Ebene
916 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
917 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
918 sondern relativ zur Hauptdatei gesetzt werden müssen. Dieses Verhalten
919 kann jedoch auch verändert werden, indem man lilypond die Option
920 @code{-drelative-includes} auf der Kommandozeile zuweist (oder indem
921 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
922 Beginn der Quelldatei schreibt). Mit @code{relative-includes} wird
923 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
924 in der sich der Befehl befindet. Dieses Verhalten wird empfohlen und wird
925 in zukünftigen Versionen von LilyPond den Standard darstellen.
927 Dateien können auch aus einem Verzeichnis eingebunden werden,
928 dass im Suchpfad von LilyPond liegt. Hierzu muss auf der
929 Kommandozeile das entsprechende Verzeichnis angegeben werden
930 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
931 notiert sein. Wenn etwa die Datei @file{Haupt.ly} kompiliert
932 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
933 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
934 befinden und dann LilyPond folgendermaßen aufrufen:
937 lilypond --include=stimmen Haupt.ly
941 In @file{Haupt.ly} steht:
949 Dateien, die in vielen Partituren verwendet werden sollen, können
950 im LilyPond-Verzeichnis @file{../ly} gespeichert werden. (Die
951 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
952 ab, siehe hierzu @rlearning{Other sources of information}). Dateien
953 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
954 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
956 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
957 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
958 können identifiziert werden, indem LilyPond auf der Komandozeile mit
959 Option aufgerufen wird: @code{lilypond --verbose}. Hiermit wird
960 neben anderer Information auch eine Liste and Pfaden und Dateien
961 aufgeführt, die LilyPond benutzt. Die wichtigeren Dateien werden
962 im Abschnitt @rlearning{Other sources of information} besprochen.
963 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
964 wenn eine neue LilyPond-Version installiert wird.
966 Eine einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
968 @rlearning{Scores and parts}.
972 @rlearning{Other sources of information},
973 @rlearning{Scores and parts}.
977 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
978 dem Installationsverzeichnis von LilyPond entspricht, wird die
979 installierte Datei anstelle der eigenen verwendet.
982 @node Different editions from one source
983 @subsection Different editions from one source
985 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
986 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
987 Variablen werden am besten eingesetzt, wenn es darum geht, längere
988 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
989 verschiedene Weise zu kombinieren. Tag-Marken dagegen werden am
990 besten eingesetzt, wenn eine von mehreren kurzen alternativen
991 Notenabschnitten ausgewählt werden soll. Egal welche Methode am
992 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
993 die eigentlichen Noten und die Struktur der Paritur voneinander
994 getrennt notiert werden -- so kann die Struktur geändert werden,
995 ohne dass man Änderungen an den Noten vornehmen muss.
1002 @node Using variables
1003 @unnumberedsubsubsec Using variables
1005 @cindex Variablen, Benutzung
1007 Wenn Notenabschnitt in Variablen definiert werden, können sie
1008 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1009 siehe auch @rlearning{Organizing pieces with variables}. Zum
1010 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1011 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1012 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1013 einmal notieren muss. Noten aus zwei Variablen können auf einem
1014 System kombiniert werden, siehe @ref{Automatic part combining}.
1017 @lilypond[verbatim,quote]
1018 sopranoMusic = \relative c'' { a4 b c b8( a)}
1019 altoMusic = \relative g' { e4 e e f }
1020 tenorMusic = \relative c' { c4 b e d8( c) }
1021 bassMusic = \relative c' { a4 gis a d, }
1022 allLyrics = \lyricmode {King of glo -- ry }
1024 \new Staff = "Soprano" \sopranoMusic
1025 \new Lyrics \allLyrics
1026 \new Staff = "Alto" \altoMusic
1027 \new Lyrics \allLyrics
1028 \new Staff = "Tenor" {
1032 \new Lyrics \allLyrics
1033 \new Staff = "Bass" {
1037 \new Lyrics \allLyrics
1040 \set Staff.printPartCombineTexts = ##f
1046 \set Staff.printPartCombineTexts = ##f
1056 Unterschiedliche Partituren, die entweder nur den Chor oder das
1057 Klavier zeigen, können produziert werden, indem die Struktur
1058 verändert wird; die Noten müssen dazu nicht verändert werden.
1060 Für längere Partituren können Variablen in eigene Dateien notiert
1061 werden, die dann eingebunden werden, siehe @ref{Including
1066 @unnumberedsubsubsec Using tags
1070 @cindex markierte Noten entfernen
1071 @cindex markierte Noten behalten
1074 @funindex \keepWithTag
1075 @funindex \removeWithTag
1077 @funindex keepWithTag
1078 @funindex removeWithTag
1080 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1081 Ausdruck mit der Bezeichnung @var{TeilA}. Ausdrücke, die auf diese
1082 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1083 bzw. ausgefiltert werden. Das geschieht mit den Befehlen
1084 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1085 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1088 @multitable @columnfractions .5 .5
1094 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1095 @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1096 gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1099 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1100 @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1101 @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1102 werden nicht angezeigt.
1105 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1106 @code{\removeWithTag}
1107 @tab Alle markierten und unmarkierten Noten werden angezeigt.
1111 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1112 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1113 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1116 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1117 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1119 @lilypond[verbatim,quote]
1120 music = \relative g' {
1122 \tag #'trills {d8.\trill }
1123 \tag #'expand {\repeat unfold 3 {e32 d} }
1128 \keepWithTag #'trills \music
1131 \keepWithTag #'expand \music
1136 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1137 erfordert manchmal weniger Schreibarbeit:
1139 @lilypond[verbatim,quote]
1140 music = \relative g' {
1142 \tag #'trills {d8.\trill }
1143 \tag #'expand {\repeat unfold 3 {e32 d} }
1148 \removeWithTag #'expand
1152 \removeWithTag #'trills
1157 Marken können auch auf Artikulationen, Text usw angewendet werden,
1161 -\tag #'@var{your-tag}
1165 voranstellt (jedoch nach der Note, an die sie gebunden sind). Mit
1166 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1171 c1-\tag #'warn ^"Achtung!"
1174 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1177 @lilypond[quote,verbatim]
1178 music = \relative c'' {
1179 \tag #'a \tag #'both { a a a a }
1180 \tag #'b \tag #'both { b b b b }
1183 \keepWithTag #'a \music
1184 \keepWithTag #'b \music
1185 \keepWithTag #'both \music
1189 Mehrfache @code{\removeWithTag}-Filter können auf einen
1190 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1191 markierte Abschnitte aus dem Druckbild zu entfernen.
1193 @lilypond[verbatim,quote]
1194 music = \relative c'' {
1195 \tag #'A { a a a a }
1196 \tag #'B { b b b b }
1197 \tag #'C { c c c c }
1198 \tag #'D { d d d d }
1207 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1208 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1209 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1210 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1211 eben genannten zusätzlich entfernt.
1215 Handbuch zum Lernen:
1216 @rlearning{Organizing pieces with variables}.
1219 @ref{Automatic part combining},
1220 @ref{Including LilyPond files}.
1224 @c This warning is more general than this placement implies.
1225 @c Rests are not merged whether or not they come from tagged sections.
1226 @c Should be deleted? -td
1230 Multiple rests are not merged if you create a score with more
1231 than one tagged section at the same place.
1237 @subsection Text encoding
1239 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
1240 und ISO/IEC 10646 definiert sind. Hiermit wird den Zeichen
1241 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
1242 Code-Punkt zugewiesen, mit dem sie identifizierbar sind. Unicode
1243 kann mit mehreren Zeichenkodierungen verwirklicht werden. LilyPond
1244 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
1245 in der die normalen Zeichen des lateinischen Alphabets mit einem
1246 Byte dargestellt werden, während alle anderen Zeichen zwischen
1247 zwei und vier Byte Länge haben.
1249 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
1250 Schriftart (engl. font). In einer Schriftartdatei werden die
1251 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
1252 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
1253 und komplexe Skripte korrekt zu setzen.
1255 LilyPond verändert die Kodierung der Eingabedatei nicht. Das heißt,
1256 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
1257 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
1258 musst. Am einfachsten geht das, indem man einen Texteditor
1259 einsetzt, der mit Unicode-Zeichen umgehen kann. Die meisten
1260 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
1261 wie etwa vim, Emacs, jEdit oder GEdit. Alle MS Windows-Systeme
1262 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
1263 in UTF-8 lesen und speichern kann. Ein Editor mit mehr
1264 Funktionen unter Windows ist BabelPad oder Notepad++.
1266 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
1267 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
1270 FT_Get_Glyph_Name () error: invalid argument
1273 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
1276 %c No verbatim here as the code does not display correctly in PDF
1278 bulgarian = \lyricmode {
1279 Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
1283 hebrew = \lyricmode {
1284 זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
1288 portuguese = \lyricmode {
1289 à vo -- cê uma can -- ção legal
1295 \addlyrics { \bulgarian }
1296 \addlyrics { \hebrew }
1297 \addlyrics { \portuguese }
1300 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
1301 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
1302 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
1303 @code{\markup}-Umgebung benutzt werden. Hierbei bedeutet @code{hhhh} die
1304 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
1305 für das erforderliche Zeichen. Nullen zu Beginn können ausgelassen werden,
1306 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
1307 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
1308 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.)
1310 Mit @code{\char ##x03BE} und @code{\char #958} wird
1311 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
1312 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
1315 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
1316 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
1317 gespeichert werden. Es muss natürlich auch noch eine Schriftart auf
1318 dem System installiert sein, die die notierten Zeichen darstellen kann.
1320 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
1321 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
1322 im Gesangstext und als normaler Text außerhalb der Partitur.
1324 @lilypond[quote,verbatim]
1327 c1 \mark \markup { \char ##x03EE }
1328 c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
1330 \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
1332 \markup { "Copyright 2008--2009" \char ##x00A9 }
1335 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
1339 copyright = \markup @{ \char ##x00A9 "2008" @}
1344 @node Displaying LilyPond notation
1345 @subsection Displaying LilyPond notation
1347 @funindex \displayLilyMusic
1349 Ein musikalischer Ausdruck in LilyPond-Notation kann mit der Funktion
1350 @code{\displayMusic} angezeigt werden. Der Code
1354 \displayLilyMusic \transpose c a, @{ c e g a bes @}
1362 @{ a, cis e fis g @}
1365 Normalerweise werden diese Zeilen zusammen mit allen anderen
1366 Nachrichten auf der Kommandozeile ausgegeben. Um sie separat zu
1367 speichern und das Ergebnis von @code{\displayMusic} weiterzubenutzen,
1368 kann die Ausgabe mit folgendem Befehl in eine Datei umgeleitet werden:
1370 @c TODO What happens under Windows?
1373 lilypond file.ly >display.txt
1378 @node Controlling output
1379 @section Controlling output
1382 * Extracting fragments of music::
1383 * Skipping corrected music::
1387 @node Extracting fragments of music
1388 @subsection Extracting fragments of music
1390 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
1391 Quelldatei zu erzeugen. Das kann damit verglichen werden, dass man
1392 mit der Schere bestimmte Regionen ausschneidet.
1394 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
1395 (engl. to clip = ausschneiden), extra definiert. Mit folgender
1396 Defintion beispielsweise
1403 (make-rhythmic-location 5 1 2)
1404 (make-rhythmic-location 7 3 4)))
1409 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
1410 beginnt und im siebten Takt endet. Die Bedeutung von @code{5 1 2} ist:
1411 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
1414 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
1415 werden, indem mehrere derartige Paare definiert werden.
1417 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
1418 Parameter @code{-dclip-systems} aufgerufen werden. Die Schnipsel
1419 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
1420 diese Formate auch als Parameter angegeben werden.
1422 Zu mehr Information über Ausgabeformate siehe @rprogram{Invoking lilypond}.
1425 @node Skipping corrected music
1426 @subsection Skipping corrected music
1429 @funindex skipTypesetting
1430 @funindex showFirstLength
1431 @funindex showLastLength
1433 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
1434 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
1435 Korrektur. Um die Korrektur zu beschleunigen, kann eingestellt werden,
1436 dass nur die letzten paar Takte angezeigt werden. Das erreicht man
1440 showLastLength = R1*5
1445 in der Quelldatei. Damit werden nur die letzten fünf Takte (in einem
1446 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt. Besonders
1447 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
1448 kleinen Teil des Stückes zu setzen als die gesamte Länge. Wenn man
1449 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
1450 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
1453 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
1454 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
1455 werden. Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
1456 wird kein Notensatz ausgegeben.
1458 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
1459 kontrollieren. Hiermit werden alle Ereignisse, auch Tempo- und
1460 Instrumentenwechsel ausgelassen. Man muss also sehr genau darauf
1461 achten, dass nichts unerwartetes geschieht.
1463 @lilypond[quote,fragment,ragged-right,verbatim]
1466 \set Score.skipTypesetting = ##t
1468 \set Score.skipTypesetting = ##f
1472 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
1473 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
1474 Übersetzung der Datei gespart wird.
1478 @section MIDI output
1483 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
1484 Kontrolle und Interaktion mit digitalen Instrumenten. Eine
1485 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
1486 Bändern/Stimmen. Es ist keine eigentliche Klangdatei, denn man
1487 benötigt spezielle Programme die die Notenereignisse in Klang
1490 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
1491 man sich anhören kann, was man notiert hat. Das hilft oft sehr gut
1492 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
1493 lassen sich meist sehr gut hören.
1495 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und einen für
1496 globale Einstellungen. Darum sollte die Quelldatei für eine MIDI-Datei
1497 nicht mehr als 15 Systeme (oder 14 wenn kein Schlagzeug benützt wird)
1498 besitzen. Jedes weitere System bleibt stumm.
1502 * Creating MIDI files::
1504 * What goes into the MIDI output?::
1506 * Controlling MIDI dynamics::
1507 * Percussion in MIDI::
1511 @node Creating MIDI files
1512 @subsection Creating MIDI files
1514 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
1515 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
1525 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
1526 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
1527 Wenn auch die Notation gewünscht ist, muss zusätzlich die
1528 @code{\layout}-Umgebung vorhanden sein:
1538 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
1539 korrekt in das MIDI-Format übersetzt. Dynamikzeichen, Crescendo und
1540 Decrescendo werden in den MIDI-Lautstärkekanal übertragen. Dynamikzeichen
1541 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
1542 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
1543 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
1544 werden. Siehe hierzu @ref{MIDI block}.
1546 Das Anfangstempo und spätere Tempoänderungen können mit dem
1547 @code{\tempo}-Befehl innerhalb der Notation notiert werden. Er
1548 bewirkt Tempoänderungen auch in der MIDI-Datei. Der Befehl setzt
1549 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
1550 auch unterdrückt werden kann, siehe @ref{Metronome marks}. Eine
1551 andere möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
1552 unten gezeigt, siehe @ref{MIDI block}.
1554 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
1555 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
1556 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
1557 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
1558 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
1559 oder @code{\score}-Blocks einfügen:
1562 #(ly:set-option 'midi-extension "midi")
1565 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
1567 Als Alternative kann man diese Option auch als Kommandozeilenparameter
1571 lilypond … -dmidi-extension=midi lilyDatei.ly
1574 @unnumberedsubsubsec Instrument names
1576 @cindex Instrumentbezeichnungen
1578 @funindex Staff.midiInstrument
1580 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
1581 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
1582 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
1583 Die Bezeichnungen sind aufgelistet in @ref{MIDI instruments} und müssen
1584 in der dort definierten Schreibweise notiert werden.
1588 \set Staff.midiInstrument = #"glockenspiel"
1594 \new Staff \with @{midiInstrument = #"cello"@} @{
1599 Wenn die Schreibweise nicht genau einem definierten Instrument aus
1600 der Liste entpsricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
1604 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1605 {changing-midi-output-to-one-channel-per-voice.ly}
1609 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
1610 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
1611 nicht geändert werden kann.
1613 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
1614 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
1615 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
1619 @subsection MIDI block
1621 @cindex MIDI-Umgebung
1623 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
1624 vorkommen, wenn MIDI-Ausgabe gewünscht ist. Sie entspricht der
1625 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut. Oft wird
1626 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
1627 Kontexte umgeändert werden, neue Kontexte definiert werden oder
1628 neue Werte definiert werden. Das folgende Beispiel etwa definiert
1629 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
1638 tempoWholesPerMinute = #(ly:make-moment 72 4)
1644 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert. Wenn
1645 das Tempo auf diese Weise definiert wird, kann keine punktierte
1646 Note als Einheit angegeben werden. Wenn sie benötigt wird, muss
1647 man sie in kleinere Einheiten auflösen. Ein Tempo von 90 punktierten
1648 Viertelnoten pro Minute kann beispielsweise dargestellt werden
1649 als 270 Achtelnoten pro Minute:
1652 tempoWholesPerMinute = #(ly:make-moment 270 8)
1655 @cindex MIDI-Kontextdefinitionen
1657 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
1658 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
1659 wird. Klangübersetzungsmodule werden @code{performer}
1660 genannt. Die Kontexte für die MIDI-Ausgabe sind in der
1661 Datei @file{../ly/@/performer@/-init@/.ly} definiert, siehe
1662 @rlearning{Other sources of information}. Um beispielsweise
1663 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
1664 entfernen, müssen folgende Zeilen eingefügt werden:
1671 \remove "Dynamic_performer"
1676 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
1677 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
1678 @code{\score} beginnt. Wenn eine Partitur explizit etwa mit
1679 @code{\new Score} begonnen wird, und sich die MIDI-Umgebung hierin
1680 befindet, wird keine Ausgabe produziert. Eine Lösung ist es, sowohl
1681 die @code{\new Score}- als auch die @code{\midi}-Umgebungen in eine
1682 @code{\score}-Umgebung einzuschließen.
1686 \new Score @{ @dots{}Noten@dots{} @}
1692 @node What goes into the MIDI output?
1693 @subsection What goes into the MIDI output?
1696 @unnumberedsubsubsec Supported in MIDI
1698 @cindex Tonhöhen in MIDI
1699 @cindex MIDI, Tonhöhen
1700 @cindex Vierteltöne in MIDI
1701 @cindex MIDI, Vierteltöne
1702 @cindex Mikrotöne in MIDI
1703 @cindex MIDI, Mikrotöne
1704 @cindex Akkordsymbole in MIDI
1705 @cindex MIDI, Akkordsymbole
1706 @cindex Rhythmen in MIDI
1707 @cindex MIDI, Rhythmen
1709 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
1713 @item Mikrotöne (siehe @ref{Accidentals}. Für die Ausgabe wird ein
1714 Spieler benötigt, der Tonhöhen verändern kann.)
1715 @item Akkorde, die als Symbole notiert werden
1716 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
1717 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
1719 @item Dynamikzeichen
1720 @item Crescendi, decrescendi zu mehreren Noten
1721 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
1726 @unnumberedsubsubsec Unsupported in MIDI
1728 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbeozogen:
1731 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
1732 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
1733 @item Staccato und andere Artikultationen und Ornamente
1734 @item Legato- und Phrasierungsbögen
1735 @item Crescendi, decrescendi zu einer einzelnen Note
1736 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
1737 @item Bezifferter Bass
1738 @item Akkorde mit Mikrotönen
1742 @node Repeats in MIDI
1743 @subsection Repeats in MIDI
1745 @cindex Wiederholungen in MIDI
1746 @cindex MIDI und Wiederholungen
1748 @funindex \unfoldRepeats
1750 Mit einigen Veränderungungen im Notentext können alle Wiederholungstypen
1751 auch in der MIDI-Ausgabe wiedergegeben werden. Das wird erreicht, indem
1752 die @code{\unfoldRepeats}-Funktion eingesetzt wird. Diese Funktion
1753 verändert alle Wiederholungen in ausgeschriebene Noten.
1755 @lilypond[quote,verbatim]
1757 \repeat tremolo 8 {c'32 e' }
1758 \repeat percent 2 { c''8 d'' }
1759 \repeat volta 2 {c'4 d' e' f'}
1768 Wenn eine Partitur mit diesem Befehl erstellt wird, ist er notwendig,
1769 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
1770 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
1771 in der anderen werden die Wiederholungen notiert und als Partitur
1772 gesetzt. Das Beispiel gibt einen Hinweis, wie eine derartige Datei
1781 \unfoldRepeats @var{..music..}
1787 @node Controlling MIDI dynamics
1788 @subsection Controlling MIDI dynamics
1790 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
1791 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
1792 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
1793 als auch relative Lautstärken von Dynamikanweisungen und auch
1794 relative Lautstärke von einzelnen Instrumenten einzustellen.
1797 @unnumberedsubsubsec Dynamic marks
1800 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
1801 zur Verfügung stehenden MIDI-Lautstärke notiert. Die Standardbrüche
1802 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
1803 @notation{fffff}. Diese Anweisung befinden sich in der Datei
1804 @file{../scm/midi.scm}, siehe auch @rlearning{Other sources of information}.
1805 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
1806 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
1807 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
1808 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
1811 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
1812 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann. Gleiches gilt
1813 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
1814 nicht enthalten sind. Die Scheme-Funktion, die hier definiert wird,
1815 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
1816 Standardanweisungen auf:
1818 @lilypond[verbatim,quote]
1819 #(define (myDynamics dynamic)
1820 (if (equal? dynamic "rfz")
1822 (default-dynamic-absolute-volume dynamic)))
1826 \set Staff.midiInstrument = #"cello"
1827 \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
1839 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
1840 umdefiniert werden soll, ist es besser, die
1841 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
1842 @file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
1843 zu benutzen. Das letzte Beispiel dieses Abschnittes zeigt, wie das
1844 gemacht werden kann.
1847 @unnumberedsubsubsec Overall MIDI volume
1849 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1850 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
1851 unde @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
1852 werden. Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
1853 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
1854 wenn diese Einstellung von Anfang an Wirkung zeigen soll. Der Bruch,
1855 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
1859 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
1863 errechnet. Im folgenden Beispiel wird die generelle MIDI-Lautstärke
1864 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
1866 @lilypond[verbatim,quote]
1872 \set Staff.midiInstrument = #"flute"
1873 \new Voice \relative c''' {
1881 \set Staff.midiInstrument = #"clarinet"
1882 \new Voice \relative c'' {
1893 tempoWholesPerMinute = #(ly:make-moment 72 2)
1894 midiMinimumVolume = #0.2
1895 midiMaximumVolume = #0.5
1902 @unnumberedsubsubsec Equalizing different instruments (i)
1904 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
1905 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
1906 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
1907 werden. Damit kann man die Qualität der MIDI-Datei
1908 merklich verbessern.
1910 In diesem Beispiel wird die Lautstärke der Klarinette relativ
1911 zur Lautstärke der Flöte verringert. In jeder Stimme muss
1912 eine Dynamikanweisung für die erste Note gesetzt werden, damit
1913 diese Einstellung korrekt funktioniert.
1915 @lilypond[verbatim,quote]
1921 \set Staff.midiInstrument = #"flute"
1922 \set Staff.midiMinimumVolume = #0.7
1923 \set Staff.midiMaximumVolume = #0.9
1924 \new Voice \relative c''' {
1932 \set Staff.midiInstrument = #"clarinet"
1933 \set Staff.midiMinimumVolume = #0.3
1934 \set Staff.midiMaximumVolume = #0.6
1935 \new Voice \relative c'' {
1946 tempoWholesPerMinute = #(ly:make-moment 72 2)
1953 @unnumberedsubsubsec Equalizing different instruments (ii)
1955 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1956 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
1957 Anpassungen für die Lautstärken bestimmter Instrumente vor.
1958 Diese Instrumente und ihre entsprechende Veränderung lassen
1959 sich aus der Tabelle @notation{instrument-equalizer-alist}
1960 in der Datei @file{../scm/midi.scm} entnehmen.
1962 Dieser grundlegende Equalizer kann ersetzt werden, indem die
1963 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
1964 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
1965 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
1966 den Höchst- und Mindestwert für die Lautstärke des entpsrechenden
1967 Instruments darstellt. Die Ersetzung der Standardfunktion wird
1968 auf gleiche Weise vorgenommen, wie es schon für die
1969 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
1970 gezeigt wurde. Der Standard-Equalizer,
1971 @notation{default-instrument-equalizer} in der Datei
1972 @file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
1975 Das folgende Beispiel definiert für die Flöte und Klarinette relative
1976 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
1978 @lilypond[verbatim,quote]
1979 #(define my-instrument-equalizer-alist '())
1981 #(set! my-instrument-equalizer-alist
1984 ("flute" . (0.7 . 0.9))
1985 ("clarinet" . (0.3 . 0.6)))
1986 my-instrument-equalizer-alist))
1988 #(define (my-instrument-equalizer s)
1989 (let ((entry (assoc s my-instrument-equalizer-alist)))
1998 \set Score.instrumentEqualizer = #my-instrument-equalizer
1999 \set Staff.midiInstrument = #"flute"
2000 \new Voice \relative c''' {
2008 \set Staff.midiInstrument = #"clarinet"
2009 \new Voice \relative c'' {
2020 tempoWholesPerMinute = #(ly:make-moment 72 2)
2028 @node Percussion in MIDI
2029 @subsection Percussion in MIDI
2031 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2032 notiert. Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2033 ausgegeben. Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2034 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2035 in einem @code{Staff}-Kontext notiert. Nur so lässt sich auch hier
2036 eine richtige MIDI-Ausgabe erreichen.
2038 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2039 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2040 einem normalen @code{Staff}-Kontext notiert werden. Es handelt sich
2041 um @code{melodic tom, taiko drum, synth drum} usw.
2043 Viele Schlagzeuginstrumnete sind nicht in den MIDI-Standard aufgenommen,
2044 z. B. Kastagnetten. Die einfachste Methode, derartige Instrumente
2045 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2051 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2052 Schlagstock (sidestick) für diesen Zweck eingesetzt.