1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: 4f7427e7a314a71bde16559247885544256b8213
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes.
13 @c Translators: Till Paala
15 @node Allgemeine Eingabe und Ausgabe
16 @chapter Allgemeine Eingabe und Ausgabe
17 @translationof General input and output
19 Dieses Kapitel erklärt allgemeine Fragen zur Eingabe und Ausgabe von
20 Notation mit LilyPond und weniger direkte Fragen der Notation.
25 * Arbeiten an Eingabe-Dateien::
26 * Ausgabe kontrollieren::
32 @section Eingabestruktur
33 @translationof Input structure
35 Das hauptsächliche Eingabeformat von LilyPond sind Textdateien.
36 Üblicherweise werden diese Dateien mit der Endung @code{.ly}
40 * Struktur einer Partitur::
41 * Mehrere Partituren in einem Buch::
46 @node Struktur einer Partitur
47 @subsection Struktur einer Partitur
48 @translationof Structure of a score
52 Eine @code{\score}-Umgebung muss einen einzelnen musikalischen
53 Ausdruck beinhalten, der durch geschweifte Klammern begrenzt wird:
61 @warning{Es darf @strong{nur ein} äußerer musikalischer Ausdruck
62 in der @code{\score}-Umgebung geschrieben werden, und er @strong{muss}
63 von geschweiften Klammern umgeben sein.}
65 Dieser einzelne musikalische Ausdruck kann beliebige Größe annehmen und
66 andere musikalische Ausdrücke von beliebiger Komplexität beinhalten.
67 Alle diese Beispiele sind musikalische Ausdrücke:
73 @lilypond[verbatim,quote]
80 @lilypond[verbatim,quote]
82 \new Staff { c'4 c' c' c' }
83 \new Staff { d'4 d' d' d' }
91 \new Staff @{ \Flöte @}
92 \new Staff @{ \Oboe @}
95 \new Staff @{ \GeigeI @}
96 \new Staff @{ \GeigeII @}
102 Kommentare bilden eine Ausnahme dieser Regel. (Andere Ausnahmen
103 siehe @ref{Die Dateistruktur}.) Sowohl einzeilige als auch
104 Blockkommentare (eingegrenzt durch @code{%@{ .. %@}}) können
105 an beliebiger Stelle einer Eingabedatei geschrieben werden. Sie
106 können innerhalb oder außerhalb der @code{\score}-Umgebung vorkommen,
107 und innerhalb oder außerhalb des einzelnen musikalischen Ausdrucks
108 innerhalb der @code{\score}-Umgebung.
113 @rlearning{Arbeiten an Eingabe-Dateien},
114 @rlearning{Musikalische Ausdrücke erklärt},
115 @rlearning{Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck}.
118 @node Mehrere Partituren in einem Buch
119 @subsection Mehrere Partituren in einem Buch
120 @translationof Multiple scores in a book
123 @cindex Sätze, mehrere
125 Eine Partitur kann mehrere musikalische Stücke und verschiedene
126 Texte beinhalten. Beispiele hierzu sind etwa eine Etüdensammlung
127 oder ein Orchesterstück mit mehreren Sätzen. Jeder Satz wird
128 in einer eigenen @code{\score}-Umgebung notiert:
137 und Texte werden mit einer @code{\markup}-Umgebung geschrieben:
147 Alle Sätze und Texte, die in derselben @code{.ly}-Datei vorkommen,
148 werden normalerweise in eine einzige Ausgabedatei gesetzt.
162 Wenn Sie aber mehrere Ausgabedateien aus einer einzigen @code{.ly}-Datei
163 erstellen wollen, können Sie mehrere @code{\book}-Umgebungen notieren.
164 Wenn Sie keine @code{\book}-Umgebung in Ihrer Datei angeben, interpretiert
165 LilyPond die gesamte Datei als eine große @code{\book}-Umgebung (siehe
166 auch @ref{Die Dateistruktur}. Eine wichtige Ausnahme stellen Dokumente dar,
167 die mit lilypond-book erstellt werden, für die Sie explizit
168 @code{\book}-Umgebungen notieren müssen, weil sonst nur die erste
169 @code{\score}- bzw. @code{\markup}-Umgebung angezeigt wird.
171 Der Kopfbereich für jedes Musikstück kann innerhalb der @code{\score}-Umgebung
172 definiert werden. Die @code{piece}-(Stück)-Bezeichnung aus dieser
173 @code{\header}-Umgebung wird vor jedem Satz ausgegeben. Die Überschrift für
174 ein ganzes Buch kann innerhalb von @code{\book} notiert werden, aber wenn
175 diese Umgebung fehlt, wird die @code{\header}-Umgebung genommen, die auf
176 erster Ebene der Datei notiert ist.
180 title = "Acht Miniaturen"
181 composer = "Igor Stravinsky"
185 \header @{ piece = "Romanze" @}
188 ..Text der zweiten Strophe..
191 ..Text der dritten Strophe..
195 \header @{ piece = "Menuetto" @}
201 Stücke können innerhalb eines Buches mit @code{\bookpart} gruppiert
202 werden. Derartige Buchabschnitte werden durch einen Seitenumbruch
203 voneinander getrennt und können wie auch das ganze Buch selber mit
204 einem Titel innerhalb einer @code{\header}-Umgebung beginnen.
210 subtitle = "Erster Teil"
217 subtitle = "Zweiter Teil"
224 @node Die Dateistruktur
225 @subsection Die Dateistruktur
226 @translationof File structure
236 @cindex Dateistruktur
237 @cindex Struktur, Datei
238 @cindex Eingabedatei, Struktur
239 @cindex Quelldatei, Struktur
241 Eine @code{.ly}-Datei kann eine beliebige Anzahl an Ausdrücken
242 auf der obersten Ebene beinhalten, wobei ein Ausdruck der obersten
243 Ebene einer der folgenden sein kann:
247 Eine Ausgabedefinition, wie @code{\paper}, @code{\midi} und
248 @code{\layout}. Derartige Definitionen auf oberster Ebene verändern
249 die globalen Einstellungen für das ganze @qq{Buch}. Wenn mehr
250 als eine derartige Definition desselben Typs angegeben wird, hat
254 Ein direkter Scheme-Ausdruck, wie etwa
255 @code{#(set-default-paper-size "a7" 'landscape)} oder
256 @code{#(ly:set-option 'point-and-click #f)}.
259 Eine @code{\header}-Umgebung. Damit wird die globale Titelei
260 eingestellt. Das ist die Umgebung, in der sich Definition für
261 das ganze Buch befinden, wie Komponist, Titel usw.
264 Eine @code{\score}-Umgebung. Die in ihr enthaltene Partitur wird
265 zusammen mit anderen vorkommenden @code{\score}-Umgebungen gesammelt
266 und in ein @code{\book} zusammengefasst. Dieses Verhalten kann
267 verändert werden, indem die Variable @code{toplevel-score-handler}
268 auf höchster Ebene gesetzt wird. Die Definition des Standards findet sich
269 in der Datei @file{../@/scm/@/lily@/.scm}.
272 Eine @code{\book}-Umgebung fasst mehrere Sätze (d. h. mehrere
273 @code{\score}-Umgebungen) logisch in ein Dokument zusammen.
274 Wenn mehrere @code{\score}-Partituren vorkommen, wird für jede
275 @code{\book}-Umgebung eine eigene Ausgabedatei erstellt, in der
276 alle in der Umgebung enthaltenen Partituren zusammengefasst sind.
277 Der einzige Grund, explizit eine @code{\book}-Umgebung zu setzen,
278 ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei
279 erstellt werden sollen. Eine Ausnahme sind lilypond-book-Dokumente,
280 in denen eine @code{\book}-Umgebung explizit hinzugefügt werden
281 muss, wenn mehr als eine @code{\score}- oder @code{\markup}-Umgebung
282 im gleichen Beispiel angezeigt werden soll. Dieses Verhalten
283 kann verändert werden, indem die Variable @code{toplevel-book-handler}
284 auf höchster Ebene gesetzt wird. Die Definition des Standards
285 findet sich in der Datei @file{../@/scm/@/lily@/.scm}.
288 Eine @code{\bookpart}-Umgebung. Ein Buch (@code{\book}) kann in
289 mehrere Teile untergliedert sein, indem @code{\bookpart}-Umgebungen
290 eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen
291 Seite und kann eigene Papierdefinitionen in einer @code{\paper}-Umgebung
295 Ein zusammengesetzter musikalischer Ausdruck wie etwa
300 Dieses Beispiel wird von LilyPond automatisch in einer
301 @code{\score}-Umgebung in einem Buch interpretiert und
302 mit anderen @code{\score}-Umgebungen und musikalischen
303 Ausdrücken auf der höchsten Ebene zusammen ausgegeben.
304 Anders gesagt: eine Datei, die nur das obige Beispiel
305 beinhaltet, wird übersetzt zu
321 Dieses Verhalten kann verändert werden, indem die Variable
322 @code{toplevel-music-handler} auf der obersten Ebene gesetzt
323 wird. Die Definition des Standards findet sich in der Datei
324 @file{../@/scm/@/lily@/.scm}.
327 Eine Textbeschriftung, eine Strophe etwa:
330 2. Die erste Zeile der zweiten Strophe.
334 Textbeschriftungen werden über, zwischen oder unter musikalischen
335 Ausdrücken gesetzt, so wie sie notiert werde.
345 Sie kann dann später in der Datei eingesetzt werden, indem @code{\foo}
346 geschrieben wird. Die Bezeichnung der Variable darf nur aus
347 alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.
351 Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene
352 notiert werden können:
356 % Zeilen rechtsbündig setzen
367 An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen
368 Anweisungen notiert werden:
371 @item @code{\version}
372 @item @code{\include}
373 @item @code{\sourcefilename}
374 @item @code{\sourcefileline}
376 Ein einzeiliger Kommentar, beginnend mit @code{%}.
379 Ein mehrzeiliger Kommentar, umgeben von @code{%@{ .. %@}}.
385 Leerzeichen zwischen Einheiten in der Eingabe werden generell ignoriert
386 und können nach Belieben weggelassen werden oder hinzugefügt werden,
387 um die Lesbarkeit des Codes zu verbessern. Mindestens ein Leerzeichen
388 sollte jedoch unter folgenden Umständen immer eingesetzt werden, um
393 Vor und hinter jeder schließenden oder öffnenden Klammer,
395 nach jedem Befehl oder jeder Variable, also jeder Einheit, die mit
398 nach jeder Einheit, die als Scheme-Ausdruck interpretiert werden,
399 also alle Einheiten, die mit @code{#} beginnen.
401 Alle Einheiten von Scheme-Ausdrücken müssen mit Leerzeichen getrennt
404 in Gesangstextabschnitten (@code{lyricmode}) müssen Leerzeichen
405 zwischen alle Ausdrücke in @code{\override}- und @code{\set}-Befehlen
406 gesetzt werden. Insbesondere müssen um Punkte und Gleichzeitszeichen
407 in Befehlen wie @code{\override Score . LyricTex #'font-size = #5)}
408 und vor dem gesamten Befehl geschrieben werden.
414 @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
419 @translationof Titles and headers
421 Fast alle gedruckten Noten beinhalten einen Titel und den Namen
422 des Komponisten, teilweise wird auch noch sehr viel mehr Information
423 zur Verfügung gestellt.
428 * Verweis auf die Seitenzahlen::
429 * Inhaltsverzeichnis::
433 @node Titel erstellen
434 @subsection Titel erstellen
435 @translationof Creating titles
437 Überschriften können für jede @code{\score}-Umgebung erstellt werden, sowohl
438 für die gesamte Datei (oder eine @code{\book}-Umgebung) als auch für
439 einzelne Buchabschnitte (innerhalb einer @code{\bookpart}-Umgebung).
441 Der Inhalt der Titelei wird aus der @code{\header}-Umgebung übernommen. Die
442 @code{\header}-Umgebung eines Buches unterstützt folgende Felder:
447 Die Widmung der Noten, wird auf oben auf der ersten Seite gesetzt.
451 Die Überschrift der Noten, wird unter der Widmung zentriert gesetzt.
455 Untertitel, zentriert unter der Überschrift.
457 @funindex subsubtitle
459 Unteruntertitel, zentriert unter dem Untertitel.
463 Name des Dichters, linksbündig unter dem Unteruntertitel.
467 Bezeichnung des Instruments, zentriert unter dem Unteruntertitel.
468 Auch oben auf der Seite zentriert (andere als erste Seite).
472 Name des Komponisten, rechtsbündig unter dem Unteruntertitel.
476 Metrum, linksbündig unter dem Dichter.
480 Name des Bearbeiters/Arrangeurs, rechtsbündig unter dem Komponisten.
484 Bezeichnung des Stückes, linksbündig unter dem Metrum.
488 Bezeichnung des Opus, rechtsbündig unter dem Bearbeiter.
490 @cindex Seitenumbruch, erzwingen
491 @funindex breakbefore
494 Hiermit beginnt der Titel auf einer neuen Seite. (Kann die Werte
495 ##t (wahr) oder ##f (falsch) haben.)
499 Anzeige eines Copyright, zentriert unten auf der ersten Seite. Um das
500 Copyright-Symbol zu notieren, siehe @ref{Zeichenkodierung}.
504 Zentriert unten auf der letzten Seite. Enthält standardmäßig: @qq{Music
505 engraving by LilyPond (@var{version})---www.lilypond.org}
509 Hier eine Demonstration der möglichen Felder. Beliebige
510 Formatierungsbefehle für Textbeschriftung können in der Titelei
511 eingesetzt werden. Siehe hierzu auch @ref{Text formatieren}.
514 @lilypond[quote,verbatim,line-width=11.0\cm]
517 paper-height = 10.0\cm
522 dedication = "mir gewidmet"
523 title = \markup \center-column { "Titel erste Zeile" "Titel zweite Zeile, länger" }
524 subtitle = "Untertitel"
525 subsubtitle = #(string-append "Unteruntertitel LilyPond-Version "
528 composer = \markup \center-column { "Komponist" \small "(1847-1973)" }
529 texttranslator = "Übersetzer"
530 meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "r" \huge
532 arranger = \markup { \fontsize #8.5 "Be" \fontsize #2.5 "ar" \fontsize
533 #-2.5 "be" \fontsize #-5.3 "i" \fontsize #7.5 "ter" }
534 instrument = \markup \bold \italic "Instrument"
558 Wie schon oben gezeigt, können mehrfache @code{\header}-Umgebungen
559 eingesetzt werden. Wenn das gleiche Feld in mehreren
560 Umgebungen, wird die letzte vorkommende
561 Version benutzt. Hier ein kurzes Beispiel:
565 composer = "Komponist"
573 piece = "Neues Stück" % überschreibt die die vorige Definition
578 Wenn @code{\header} innerhalb der @code{\score}-Umgebung definiert wird,
579 wird normalerweise nur die Information von @code{piece} und @code{opus}
580 ausgegeben. Musikalische Ausdrücke innerhalb von @code{\score} müssen
581 vor @code{\header} gesetzt werden.
583 @lilypond[quote,verbatim,line-width=11.0\cm]
587 title = "title" % not printed
594 @funindex print-all-headers
597 Dieses Verhalten kann verändert werden (sodass alle Angaben aus der
598 Überschrift gesetzt werden, wenn sich @code{\header} innerhalb von
599 @code{\score} befindet), indem man schreibt:
603 print-all-headers = ##t
610 Die Standardfußzeile ist leer mit Ausnahme der ersten Seite, auf der
611 das @code{copyright}-Feld aus der @code{\header}-Umgebung eingefügt wird,
612 und die letzte Seite, auf der das @code{tagline}-Feld eingefügt wird.
613 Der Standardinhalt von @code{tagline} ist @qq{Music engraving by
614 LilyPond (@var{version})---www.lilypond.org}. Gut gesetzte Noten werben sehr effektiv
615 für LilyPond, darum bitten wir darum, diese Zeile stehen zu lassen,
618 Ein Titelfeld kann vollständig entfernt werden, indem es auf
630 @subsection Eigene Titel
631 @translationof Custom titles
633 Kompliziertere Anpassungen können vorgenommen werden, indem die
634 folgenden Variablen innerhalb der @code{\paper}-Umgebung geändert
635 werden. Die Init-Datei @file{../@/ly/@/titling@/-init@/.ly} enthält das
640 @funindex bookTitleMarkup
642 @item bookTitleMarkup
643 Das ist die Überschrift, die für das gesamte Dokument gilt. Üblicherweise
644 wird hier der Komponist und die Überschrift des Werkes genannt.
646 @funindex scoreTitleMarkup
648 @item scoreTitleMarkup
649 Das ist die Überschrift, die vor jede @code{\score}-Umgebung gesetzt wird.
650 Üblicherweise wird hier etwa die Bezeichnung eines Satzes notiert
651 (im @code{piece}-Feld).
653 @funindex oddHeaderMarkup
655 @item oddHeaderMarkup
656 Das ist der Seitenkopf für ungerade Seiten.
658 @funindex evenHeaderMarkup
660 @item evenHeaderMarkup
661 Das ist der Seitenkopf für gerade Seiten. Wenn undefiniert, wird der
662 ungerade Seitenkopf eingesetzt.
664 Standardmäßig werden die Kopfzeilen so definiert, dass die Seitennummer
665 sich außen befindet und das Instrument zentriert gesetzt wird.
667 @funindex oddFooterMarkup
669 @item oddFooterMarkup
670 Das ist die Fußzeile für ungerade Seiten.
672 @funindex evenFooterMarkup
674 @item evenFooterMarkup
675 Das ist die Fußzeile für gerade Seiten. Wenn undefiniert, wird die
676 ungerade Fußzeile eingesetzt.
678 Standardmäßig wird in der Fußzeile auf der ersten Seite das Copyright
679 und auf der letzten Seite die Tag-Zeile gesetzt.
688 @cindex Layout der Seite
690 @cindex Überschriften
692 Die folgende Definition setzt die Überschrift linksbündig und
693 den Komponisten rechtsbündig auf einer einzelnen Zeile:
697 bookTitleMarkup = \markup {
699 \fromproperty #'header:title
700 \fromproperty #'header:composer
707 @node Verweis auf die Seitenzahlen
708 @subsection Verweis auf die Seitenzahlen
709 @translationof Reference to page numbers
711 Eine bestimmte Stelle der Partitur kann mit einem @code{\label}-Befehl
712 markiert werden, sowohl auf oberster Ebene als auch innerhalb eines
713 musikalischen Ausdrucks. Auf diese Marke kann dann verwiesen werden,
714 um die Seitenzahl zu erhalten, auf der die Marke vorkommt. Der
715 Verweis wird mit dem Befehl @code{\page-ref} gefordert (innerhalb
719 @lilypond[verbatim,line-width=11.0\cm]
720 \header { tagline = ##f }
722 \label #'ErstePartitur
726 \pageBreak \mark A \label #'ZeichenA
731 \markup { Die erste Partitur fängt auf
732 Seite \page-ref #'ErstePartitur "0" "?" an.}
733 \markup { Zeichen A befindet sich auf Seite
734 \concat { \page-ref #'ZeichenA "0" "?" . } }
738 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
742 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
743 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
744 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekannt ist.
747 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
748 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
749 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
750 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
751 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
752 schon vorher bekannt sein. Die Größe wird mithilfe des Platzhalters
753 bestimmt. Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
754 "00" schreiben, also eine zweistellige Zahl.
765 @node Inhaltsverzeichnis
766 @subsection Inhaltsverzeichnis
767 @translationof Table of contents
769 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
770 @code{\markuplines \table-of-contents}. Die Elemente, die im
771 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
772 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
773 Ebene als auch in einem musikalischen Ausdruck verwendet werden
777 \markuplines \table-of-contents
780 \tocItem \markup "Erste Partitur"
784 \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
789 \tocItem \markup "zweite Partitur"
797 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
798 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
799 Die Standardformatierungselemente sind @code{tocTitleMarkup}
800 um die Überschrift zu formatieren und @code{tocItemMarkup} um
801 die einzelnen Inhaltselemente zu formatieren, bestehend aus
802 dem Titelelement und einer Seitenzahl. Die Variablen können
803 durch den Benutzer geändert werden:
807 %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
808 tocTitleMarkup = \markup \huge \column {
809 \fill-line { \null "Table des matières" \null }
812 %% hier größere Schriftarten
813 tocItemMarkup = \markup \large \fill-line {
814 \fromproperty #'toc:text \fromproperty #'toc:page
819 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
820 in der Definition von @code{tocItemMarkup} aufgerufen mit
821 @code{#'toc:text} und @code{#'toc:page}.
823 Neue Befehle und Beschriftungen können auch definiert werden,
824 um eigene Inhaltsverzeichnisse zu gestalten:
828 @item zuerst muss eine neue Beschriftungsvariable in der
829 @code{\paper}-Umgebung definiert werden
831 @item dann muss die musikalische Funktion definiert werden, die
832 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
833 Variable benutzt wird.
837 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
838 einer Oper in das Inhaltsverzeichnis aufzunehmen:
842 tocActMarkup = \markup \large \column {
844 \fill-line { \null \italic \fromproperty #'toc:text \null }
850 #(define-music-function (parser location text) (markup?)
851 (add-toc-item! 'tocActMarkup text))
854 @lilypond[line-width=11.0\cm]
855 \header { tagline = ##f }
857 tocActMarkup = \markup \large \column {
859 \fill-line { \null \italic \fromproperty #'toc:text \null }
865 #(define-music-function (parser location text) (markup?)
866 (add-toc-item! 'tocActMarkup text))
869 \markuplines \table-of-contents
870 \tocAct \markup { Atto Primo }
871 \tocItem \markup { Coro. Viva il nostro Alcide }
872 \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
873 \tocAct \markup { Atto Secondo }
874 \tocItem \markup { Sinfonia }
875 \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
882 Installierte Dateien: @file{../@/ly/@/toc@/-init@/.ly}.
884 @funindex \table-of-contents
888 @code{\table-of-contents},
893 @node Arbeiten an Eingabe-Dateien
894 @section Arbeiten an Eingabe-Dateien
895 @translationof Working with input files
898 * LilyPond-Dateien einfügen::
899 * Verschiedene Editionen aus einer Quelldatei::
901 * LilyPond-Notation anzeigen::
905 @node LilyPond-Dateien einfügen
906 @subsection LilyPond-Dateien einfügen
907 @translationof Including LilyPond files
910 @cindex einfügen von Dateien
911 @cindex Dateien einfügen
913 Ein größeres Projekt kann in einzelne Dateien aufgeteilt werden.
914 Um eine andere Datei einzubinden, kann der Befehl
917 \include "andereDatei.ly"
923 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
924 also ob der Inhalt der Datei @code{andereDatei.ly} komplett in die
925 Hauptdatei eingefügt werden würde. So kann man für ein größeres
926 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
927 und sie dann in einer Partitur-Datei benutzen. Meistens werden
928 in den eingefügten Dateien einige Variablen definiert, die dann
929 auch in der Hauptdatei eingesetzt werden können. Mit Marken (Tags)
930 gekennzeichnete Abschnitte können eingesetzt werden, um die
931 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
932 zur Verfügung zu stellen. Siehe auch @ref{Verschiedene Editionen aus einer Quelldatei}.
934 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
935 nach dem @code{\include}-Befehl verwiesen werden. Dateien an anderen
936 Stellen können eingebunden werden, indem entweder ein vollständiger
937 Pfad oder ein relativer Pfad zu der Datei angegeben wird. Hierbei
938 sollten die für UNIX typischen Schrägstriche (/) und nicht die
939 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
940 zu trennen. Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
941 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
945 \include "../kram.ly"
949 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
950 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
954 \include "stimmen/VI.ly"
955 \include "stimmen/VII.ly"
959 Dateien, die eingebunden werden sollen, können selber auch wiederum
960 ein @code{\include} enthalten. Diese Einbindung zweiter Ebene
961 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
962 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
963 sondern relativ zur Hauptdatei gesetzt werden müssen. Dieses Verhalten
964 kann jedoch auch verändert werden, indem man lilypond die Option
965 @code{-drelative-includes} auf der Kommandozeile zuweist (oder indem
966 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
967 Beginn der Quelldatei schreibt). Mit @code{relative-includes} wird
968 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
969 in der sich der Befehl befindet. Dieses Verhalten wird empfohlen und wird
970 in zukünftigen Versionen von LilyPond den Standard darstellen.
972 Dateien können auch aus einem Verzeichnis eingebunden werden,
973 dass im Suchpfad von LilyPond liegt. Hierzu muss auf der
974 Kommandozeile das entsprechende Verzeichnis angegeben werden
975 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
976 notiert sein. Wenn etwa die Datei @file{Haupt.ly} kompiliert
977 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
978 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
979 befinden und dann LilyPond folgendermaßen aufrufen:
982 lilypond --include=stimmen Haupt.ly
986 In @file{Haupt.ly} steht:
994 Dateien, die in vielen Partituren verwendet werden sollen, können
995 im LilyPond-Verzeichnis @file{../ly} gespeichert werden. (Die
996 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
997 ab, siehe hierzu @rlearning{Mehr Information}). Dateien
998 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
999 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
1001 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
1002 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
1003 können identifiziert werden, indem LilyPond auf der Kommandozeile mit
1004 Option aufgerufen wird: @code{lilypond --verbose}. Hiermit wird
1005 neben anderer Information auch eine Liste von Pfaden und Dateien
1006 aufgeführt, die LilyPond benutzt. Die wichtigeren Dateien werden
1007 im Abschnitt @rlearning{Mehr Information} besprochen.
1008 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
1009 wenn eine neue LilyPond-Version installiert wird.
1011 Eine einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
1013 @rlearning{Partituren und Stimmen}.
1016 Handbuch zum Lernen:
1017 @rlearning{Mehr Information},
1018 @rlearning{Partituren und Stimmen}.
1022 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
1023 dem Installationsverzeichnis von LilyPond entspricht, wird die
1024 installierte Datei anstelle der eigenen verwendet.
1027 @node Verschiedene Editionen aus einer Quelldatei
1028 @subsection Verschiedene Editionen aus einer Quelldatei
1029 @translationof Different editions from one source
1031 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
1032 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
1033 Variablen werden am besten eingesetzt, wenn es darum geht, längere
1034 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
1035 verschiedene Weise zu kombinieren. Tag-Marken dagegen werden am
1036 besten eingesetzt, wenn eine von mehreren kurzen alternativen
1037 Notenabschnitten ausgewählt werden soll. Egal welche Methode am
1038 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
1039 die eigentlichen Noten und die Struktur der Partitur voneinander
1040 getrennt notiert werden -- so kann die Struktur geändert werden,
1041 ohne dass man Änderungen an den Noten vornehmen muss.
1044 * Variablen benutzen::
1048 @node Variablen benutzen
1049 @unnumberedsubsubsec Variablen benutzen
1050 @translationof Using variables
1052 @cindex Variablen, Benutzung
1054 Wenn Notenabschnitt in Variablen definiert werden, können sie
1055 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1056 siehe auch @rlearning{Stücke durch Bezeichner organisieren}. Zum
1057 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1058 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1059 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1060 einmal notieren muss. Noten aus zwei Variablen können auf einem
1061 System kombiniert werden, siehe @ref{Automatische Kombination von Stimmen}.
1064 @lilypond[verbatim,quote]
1065 sopranoMusic = \relative c'' { a4 b c b8( a) }
1066 altoMusic = \relative g' { e4 e e f }
1067 tenorMusic = \relative c' { c4 b e d8( c) }
1068 bassMusic = \relative c' { a4 gis a d, }
1069 allLyrics = \lyricmode {King of glo -- ry }
1071 \new Staff = "Soprano" \sopranoMusic
1072 \new Lyrics \allLyrics
1073 \new Staff = "Alto" \altoMusic
1074 \new Lyrics \allLyrics
1075 \new Staff = "Tenor" {
1079 \new Lyrics \allLyrics
1080 \new Staff = "Bass" {
1084 \new Lyrics \allLyrics
1087 \set Staff.printPartCombineTexts = ##f
1093 \set Staff.printPartCombineTexts = ##f
1103 Unterschiedliche Partituren, die entweder nur den Chor oder das
1104 Klavier zeigen, können produziert werden, indem die Struktur
1105 verändert wird; die Noten müssen dazu nicht verändert werden.
1107 Für längere Partituren können Variablen in eigene Dateien notiert
1108 werden, die dann eingebunden werden, siehe @ref{LilyPond-Dateien einfügen}.
1111 @node Marken benutzen
1112 @unnumberedsubsubsec Marken benutzen
1113 @translationof Using tags
1117 @cindex markierte Noten entfernen
1118 @cindex markierte Noten behalten
1121 @funindex \keepWithTag
1122 @funindex \removeWithTag
1124 @funindex keepWithTag
1125 @funindex removeWithTag
1127 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1128 Ausdruck mit der Bezeichnung @var{TeilA}. Ausdrücke, die auf diese
1129 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1130 bzw. ausgefiltert werden. Das geschieht mit den Befehlen
1131 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1132 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1135 @multitable @columnfractions .5 .5
1141 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1142 @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1143 gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1146 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1147 @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1148 @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1149 werden nicht angezeigt.
1152 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1153 @code{\removeWithTag}
1154 @tab Alle markierten und unmarkierten Noten werden angezeigt.
1158 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1159 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1160 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1163 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1164 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1166 @lilypond[verbatim,quote]
1167 music = \relative g' {
1169 \tag #'trills { d8.\trill }
1170 \tag #'expand { \repeat unfold 3 { e32 d } }
1175 \keepWithTag #'trills \music
1178 \keepWithTag #'expand \music
1183 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1184 erfordert manchmal weniger Schreibarbeit:
1186 @lilypond[verbatim,quote]
1187 music = \relative g' {
1189 \tag #'trills { d8.\trill }
1190 \tag #'expand { \repeat unfold 3 { e32 d } }
1195 \removeWithTag #'expand
1199 \removeWithTag #'trills
1204 Marken können auch auf Artikulationen, Text usw angewendet werden,
1208 -\tag #'@var{your-tag}
1212 voranstellt (jedoch nach der Note, an die sie gebunden sind). Mit
1213 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1218 c1-\tag #'warn ^"Achtung!"
1221 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1224 @lilypond[quote,verbatim]
1225 music = \relative c'' {
1226 \tag #'a \tag #'both { a4 a a a }
1227 \tag #'b \tag #'both { b4 b b b }
1230 \keepWithTag #'a \music
1231 \keepWithTag #'b \music
1232 \keepWithTag #'both \music
1236 Mehrfache @code{\removeWithTag}-Filter können auf einen
1237 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1238 markierte Abschnitte aus dem Druckbild zu entfernen.
1240 @lilypond[verbatim,quote]
1241 music = \relative c'' {
1242 \tag #'A { a4 a a a }
1243 \tag #'B { b4 b b b }
1244 \tag #'C { c4 c c c }
1245 \tag #'D { d4 d d d }
1254 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1255 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1256 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1257 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1258 eben genannten zusätzlich entfernt.
1262 Handbuch zum Lernen:
1263 @rlearning{Stücke durch Bezeichner organisieren}.
1266 @ref{Automatische Kombination von Stimmen},
1267 @ref{LilyPond-Dateien einfügen}.
1271 @c This warning is more general than this placement implies.
1272 @c Rests are not merged whether or not they come from tagged sections.
1273 @c Should be deleted? -td
1277 Multiple rests are not merged if you create a score with more
1278 than one tagged section at the same place.
1283 @node Zeichenkodierung
1284 @subsection Zeichenkodierung
1285 @translationof Text encoding
1289 @cindex Nicht-ASCII-Zeichen
1291 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
1292 und ISO/IEC 10646 definiert sind. Hiermit wird den Zeichen
1293 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
1294 Code-Punkt zugewiesen, mit dem sie identifizierbar sind. Unicode
1295 kann mit mehreren Zeichenkodierungen verwirklicht werden. LilyPond
1296 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
1297 in der die normalen Zeichen des lateinischen Alphabets mit einem
1298 Byte dargestellt werden, während alle anderen Zeichen zwischen
1299 zwei und vier Byte Länge haben.
1301 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
1302 Schriftart (engl. font). In einer Schriftartdatei werden die
1303 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
1304 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
1305 und komplexe Skripte korrekt zu setzen.
1307 LilyPond verändert die Kodierung der Eingabedatei nicht. Das heißt,
1308 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
1309 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
1310 musst. Am einfachsten geht das, indem man einen Texteditor
1311 einsetzt, der mit Unicode-Zeichen umgehen kann. Die meisten
1312 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
1313 wie etwa vim, Emacs, jEdit oder GEdit. Alle MS Windows-Systeme
1314 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
1315 in UTF-8 lesen und speichern kann. Ein Editor mit mehr
1316 Funktionen unter Windows ist BabelPad oder Notepad++.
1318 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
1319 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
1322 FT_Get_Glyph_Name () error: invalid argument
1325 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
1328 %c No verbatim here as the code does not display correctly in PDF
1330 bulgarian = \lyricmode {
1331 Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
1335 hebrew = \lyricmode {
1336 זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
1340 portuguese = \lyricmode {
1341 à vo -- cê uma can -- ção legal
1347 \addlyrics { \bulgarian }
1348 \addlyrics { \hebrew }
1349 \addlyrics { \portuguese }
1352 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
1353 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
1354 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
1355 @code{\markup}-Umgebung benutzt werden. Hierbei bedeutet @code{hhhh} die
1356 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
1357 für das erforderliche Zeichen. Nullen zu Beginn können ausgelassen werden,
1358 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
1359 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
1360 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.) Unicode-Tabellen und ein Verzeichnis der Zeichenbezeichnungen
1361 mit einer hexadezimalen Verweiszahl finden sich auf der Internetseite
1362 des Unicode Consortiums: @uref{http://www.unicode.org/}.
1364 Mit @code{\char ##x03BE} und @code{\char #958} wird
1365 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
1366 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
1369 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
1370 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
1371 gespeichert werden. Es muss natürlich auch noch eine Schriftart auf
1372 dem System installiert sein, die die notierten Zeichen darstellen kann.
1374 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
1375 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
1376 im Gesangstext und als normaler Text außerhalb der Partitur.
1378 @lilypond[quote,verbatim]
1381 c1 \mark \markup { \char ##x03EE }
1382 c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
1384 \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
1386 \markup { "Copyright 2008--2010" \char ##x00A9 }
1389 @cindex Copyright-Zeichen
1391 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
1395 copyright = \markup @{ \char ##x00A9 "2008" @}
1400 @node LilyPond-Notation anzeigen
1401 @subsection LilyPond-Notation anzeigen
1402 @translationof Displaying LilyPond notation
1404 @funindex \displayLilyMusic
1406 Ein musikalischer Ausdruck in LilyPond-Notation kann mit der Funktion
1407 @code{\displayLilyMusic} angezeigt werden. Der Code
1411 \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
1419 @{ a,4 cis e fis g @}
1422 Normalerweise werden diese Zeilen zusammen mit allen anderen
1423 Kompilations-Nachrichten auf der Kommandozeile ausgegeben.
1424 Um sie separat zu speichern und das Ergebnis von @code{\displayLilyMusic}
1426 kann die Ausgabe mit folgendem Befehl in eine Datei umgeleitet werden:
1429 lilypond file.ly >display.txt
1434 @node Ausgabe kontrollieren
1435 @section Ausgabe kontrollieren
1436 @translationof Controlling output
1439 * Notationsfragmente extrahieren::
1440 * Korrigierte Musik überspringen::
1441 * Alternative Ausgabeformate::
1442 * Die Notationsschriftart verändern::
1446 @node Notationsfragmente extrahieren
1447 @subsection Notationsfragmente extrahieren
1448 @translationof Extracting fragments of music
1450 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
1451 Quelldatei zu erzeugen. Das kann damit verglichen werden, dass man
1452 mit der Schere bestimmte Regionen ausschneidet.
1454 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
1455 (engl. to clip = ausschneiden), extra definiert. Mit folgender
1456 Definition beispielsweise
1463 (make-rhythmic-location 5 1 2)
1464 (make-rhythmic-location 7 3 4)))
1469 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
1470 beginnt und im siebten Takt endet. Die Bedeutung von @code{5 1 2} ist:
1471 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
1474 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
1475 werden, indem mehrere derartige Paare definiert werden.
1477 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
1478 Parameter @code{-dclip-systems} aufgerufen werden. Die Schnipsel
1479 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
1480 diese Formate auch als Parameter angegeben werden.
1482 Zu mehr Information über Ausgabeformate siehe @rprogram{lilypond aufrufen}.
1485 @node Korrigierte Musik überspringen
1486 @subsection Korrigierte Musik überspringen
1487 @translationof Skipping corrected music
1490 @funindex skipTypesetting
1491 @funindex showFirstLength
1492 @funindex showLastLength
1494 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
1495 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
1496 Korrektur. Um die Korrektur zu beschleunigen, kann eingestellt werden,
1497 dass nur die letzten paar Takte angezeigt werden. Das erreicht man
1501 showLastLength = R1*5
1506 in der Quelldatei. Damit werden nur die letzten fünf Takte (in einem
1507 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt. Besonders
1508 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
1509 kleinen Teil des Stückes zu setzen als die gesamte Länge. Wenn man
1510 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
1511 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
1514 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
1515 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
1516 werden. Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
1517 wird kein Notensatz ausgegeben.
1519 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
1520 kontrollieren. Hiermit werden alle Ereignisse, auch Tempo- und
1521 Instrumentenwechsel ausgelassen. Man muss also sehr genau darauf
1522 achten, dass nichts unerwartetes geschieht.
1524 @lilypond[quote,fragment,ragged-right,verbatim]
1527 \set Score.skipTypesetting = ##t
1529 \set Score.skipTypesetting = ##f
1534 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
1535 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
1536 Übersetzung der Datei gespart wird.
1539 @node Alternative Ausgabeformate
1540 @subsection Alternative Ausgabeformate
1541 @translationof Alternative output formats
1543 @cindex scalable vector graphics output
1544 @cindex skalierbare Vektorgraphik-Ausgabe
1546 @cindex encapsulated postscript output
1550 Das Standardausgabeformat für gedruckte Partituren ist PDF (Portable
1551 Document Forma) und PS (PostScript). SVG (Scalable Vector
1552 Graphics), EPS (Encapsulated PostScript) und PNG (Portable
1553 Network Graphics) gibt es auch als Ausgabeformate über die
1554 Kommandozeile. Siehe @rprogram{Optionen von lilypond auf der Kommandozeile}.
1557 @node Die Notationsschriftart verändern
1558 @subsection Die Notationsschriftart verändern
1559 @translationof Replacing the notation font
1561 Gonville ist eine Alternative zu der Feta-Schriftart, die in LilyPond
1562 eingesetzt wird und kann unter der Adresse
1564 @uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
1568 heruntergeladen werden. Hier einige Takte Noten mit der Gonville-Schriftart:
1570 @c NOTE: these images are a bit big, but that's important
1571 @c for the font comparison. -gp
1572 @sourceimage{Gonville_after,,,}
1574 Und hier einige Beispieltakte in der Feta-Schriftart:
1576 @sourceimage{Gonville_before,,,}
1578 @subsubheading Installationsanweisungen für MacOS
1580 Laden Sie die Datei herunter und entpacken Sie die ZIP-Datei.
1581 Kopieren Sie das @code{lilyfonts}-Verzeichnis nach
1582 @file{@var{SHARE_DIR}/lilypond/current}; für mehr Information
1583 siehe @rlearning{Mehr Information}.
1584 Benennen Sie das existierende @code{fonts}-Verzeichnis in
1585 @code{fonts_orig} um und benennen Sie das Verzeichnis
1586 @code{lilyfonts} in @code{fonts}. Das alte Verzeichnis
1587 @code{fonts_orig} können Sie einfach in @code{fonts}
1588 zurückbenennen, um wieder nach Feta zu wechseln.
1591 Handbuch zum Lernen: @rlearning{Mehr Information}.
1595 Gonville kann nicht verwendet werden, um Alte Notation zu setzen.
1596 Bitte lesen Sie die Webseite des Autoren zu mehr Information hierzu
1597 und zu anderen Einzelheiten, wie auch der Lizenz von Gonville.
1601 @section MIDI-Ausgabe
1602 @translationof MIDI output
1607 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
1608 Kontrolle und Interaktion mit digitalen Instrumenten. Eine
1609 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
1610 Bändern/Stimmen. Es ist keine eigentliche Klangdatei, denn man
1611 benötigt spezielle Programme die die Notenereignisse in Klang
1614 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
1615 man sich anhören kann, was man notiert hat. Das hilft oft sehr gut
1616 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
1617 lassen sich meist sehr gut hören.
1619 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und einen für
1620 globale Einstellungen. Darum sollte die Quelldatei für eine MIDI-Datei
1621 nicht mehr als 15 Systeme (oder 14 wenn kein Schlagzeug benützt wird)
1622 besitzen. Jedes weitere System bleibt stumm.
1626 * MIDI-Dateien erstellen::
1628 * Was geht in die MIDI-Ausgabe::
1629 * Wiederholungen im MIDI::
1630 * MIDI-Lautstärke kontrollieren::
1631 * Schlagzeug in MIDI::
1635 @node MIDI-Dateien erstellen
1636 @subsection MIDI-Dateien erstellen
1637 @translationof Creating MIDI files
1639 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
1640 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
1650 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
1651 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
1652 Wenn auch die Notation gewünscht ist, muss zusätzlich die
1653 @code{\layout}-Umgebung vorhanden sein:
1663 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
1664 korrekt in das MIDI-Format übersetzt. Dynamikzeichen, Crescendo und
1665 Decrescendo werden in den MIDI-Lautstärkekanal übertragen. Dynamikzeichen
1666 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
1667 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
1668 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
1669 werden. Siehe hierzu @ref{Der MIDI-Block}.
1671 Das Anfangstempo und spätere Tempoänderungen können mit dem
1672 @code{\tempo}-Befehl innerhalb der Notation notiert werden. Er
1673 bewirkt Tempoänderungen auch in der MIDI-Datei. Der Befehl setzt
1674 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
1675 auch unterdrückt werden kann, siehe @ref{Metronomangabe}. Eine
1676 andere Möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
1677 unten gezeigt, siehe @ref{Der MIDI-Block}.
1679 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
1680 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
1681 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
1682 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
1683 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
1684 oder @code{\score}-Blocks einfügen:
1687 #(ly:set-option 'midi-extension "midi")
1690 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
1692 Als Alternative kann man diese Option auch als Kommandozeilenparameter
1696 lilypond … -dmidi-extension=midi lilyDatei.ly
1699 @unnumberedsubsubsec Instrumentenbezeichnungen
1701 @cindex Instrumentbezeichnungen
1703 @funindex Staff.midiInstrument
1705 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
1706 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
1707 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
1708 Die Bezeichnungen sind aufgelistet in @ref{MIDI-Instrumente} und müssen
1709 in der dort definierten Schreibweise notiert werden.
1713 \set Staff.midiInstrument = #"glockenspiel"
1719 \new Staff \with @{midiInstrument = #"cello"@} @{
1724 Wenn die Schreibweise nicht genau einem definierten Instrument aus
1725 der Liste entspricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
1729 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1730 {changing-midi-output-to-one-channel-per-voice.ly}
1734 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
1735 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
1736 nicht geändert werden kann.
1738 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
1739 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
1740 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
1743 @node Der MIDI-Block
1744 @subsection Der MIDI-Block
1745 @translationof MIDI block
1747 @cindex MIDI-Umgebung
1749 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
1750 vorkommen, wenn MIDI-Ausgabe gewünscht ist. Sie entspricht der
1751 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut. Oft wird
1752 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
1753 Kontexte umgeändert werden, neue Kontexte definiert werden oder
1754 neue Werte definiert werden. Das folgende Beispiel etwa definiert
1755 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
1764 tempoWholesPerMinute = #(ly:make-moment 72 4)
1770 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert. Wenn
1771 das Tempo auf diese Weise definiert wird, kann keine punktierte
1772 Note als Einheit angegeben werden. Wenn sie benötigt wird, muss
1773 man sie in kleinere Einheiten auflösen. Ein Tempo von 90 punktierten
1774 Viertelnoten pro Minute kann beispielsweise dargestellt werden
1775 als 270 Achtelnoten pro Minute:
1778 tempoWholesPerMinute = #(ly:make-moment 270 8)
1781 @cindex MIDI-Kontextdefinitionen
1783 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
1784 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
1785 wird. Klangübersetzungsmodule werden @code{performer}
1786 genannt. Die Kontexte für die MIDI-Ausgabe sind in der
1787 Datei @file{../@/ly/@/performer@/-init@/.ly} definiert, siehe
1788 @rlearning{Mehr Information}. Um beispielsweise
1789 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
1790 entfernen, müssen folgende Zeilen eingefügt werden:
1797 \remove "Dynamic_performer"
1802 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
1803 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
1804 @code{\score} beginnt. Wenn eine Partitur explizit etwa mit
1805 @code{\new Score} begonnen wird, und sich die MIDI-Umgebung hierin
1806 befindet, wird keine Ausgabe produziert. Eine Lösung ist es, sowohl
1807 die @code{\new Score}- als auch die @code{\midi}-Umgebungen in eine
1808 @code{\score}-Umgebung einzuschließen.
1812 \new Score @{ @dots{}Noten@dots{} @}
1818 @node Was geht in die MIDI-Ausgabe
1819 @subsection Was geht in die MIDI-Ausgabe
1820 @translationof What goes into the MIDI output?
1823 @unnumberedsubsubsec In MIDI unterstützt
1825 @cindex Tonhöhen in MIDI
1826 @cindex MIDI, Tonhöhen
1827 @cindex Vierteltöne in MIDI
1828 @cindex MIDI, Vierteltöne
1829 @cindex Mikrotöne in MIDI
1830 @cindex MIDI, Mikrotöne
1831 @cindex Akkordsymbole in MIDI
1832 @cindex MIDI, Akkordsymbole
1833 @cindex Rhythmen in MIDI
1834 @cindex MIDI, Rhythmen
1836 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
1840 @item Mikrotöne (siehe @ref{Versetzungszeichen}. Für die Ausgabe wird ein
1841 Spieler benötigt, der Tonhöhen verändern kann.)
1842 @item Akkorde, die als Symbole notiert werden
1843 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
1844 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
1846 @item Dynamikzeichen
1847 @item Crescendi, decrescendi zu mehreren Noten
1848 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
1853 @unnumberedsubsubsec In MIDI nicht unterstützt
1855 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbezogen:
1858 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
1859 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
1860 @item Staccato und andere Artikulationen und Ornamente
1861 @item Legato- und Phrasierungsbögen
1862 @item Crescendi, decrescendi zu einer einzelnen Note
1863 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
1864 @item Bezifferter Bass
1865 @item Akkorde mit Mikrotönen
1869 @node Wiederholungen im MIDI
1870 @subsection Wiederholungen im MIDI
1871 @translationof Repeats in MIDI
1873 @cindex Wiederholungen in MIDI
1874 @cindex MIDI und Wiederholungen
1876 @funindex \unfoldRepeats
1878 Mit einigen Veränderungen im Notentext können alle Wiederholungstypen
1879 auch in der MIDI-Ausgabe wiedergegeben werden. Das wird erreicht, indem
1880 die @code{\unfoldRepeats}-Funktion eingesetzt wird. Diese Funktion
1881 verändert alle Wiederholungen in ausgeschriebene Noten.
1883 @lilypond[quote,verbatim]
1885 \repeat tremolo 8 { c'32 e' }
1886 \repeat percent 2 { c''8 d'' }
1887 \repeat volta 2 { c'4 d' e' f' }
1896 Wenn eine Partitur mit diesem @code{\unfoldRepeats}-Befehl erstellt
1897 wird, ist er notwendig,
1898 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
1899 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
1900 in der anderen werden die Wiederholungen notiert und als Partitur
1901 gesetzt. Das Beispiel gibt einen Hinweis, wie eine derartige Datei
1910 \unfoldRepeats @var{..music..}
1916 @node MIDI-Lautstärke kontrollieren
1917 @subsection MIDI-Lautstärke kontrollieren
1918 @translationof Controlling MIDI dynamics
1920 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
1921 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
1922 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
1923 als auch relative Lautstärken von Dynamikanweisungen und auch
1924 relative Lautstärke von einzelnen Instrumenten einzustellen.
1927 @unnumberedsubsubsec Dynamik-Zeichen
1929 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
1930 zur Verfügung stehenden MIDI-Lautstärke notiert. Die Standardbrüche
1931 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
1932 @notation{fffff}. Diese Anweisung befinden sich in der Datei
1933 @file{../@/scm/@/midi.scm}, siehe auch @rlearning{Mehr Information}.
1934 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
1935 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
1936 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
1937 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
1940 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
1941 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann. Gleiches gilt
1942 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
1943 nicht enthalten sind. Die Scheme-Funktion, die hier definiert wird,
1944 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
1945 Standardanweisungen auf:
1947 @lilypond[verbatim,quote]
1948 #(define (myDynamics dynamic)
1949 (if (equal? dynamic "rfz")
1951 (default-dynamic-absolute-volume dynamic)))
1955 \set Staff.midiInstrument = #"cello"
1956 \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
1968 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
1969 umdefiniert werden soll, ist es besser, die
1970 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
1971 @file{../@/scm/@/midi.scm} und die hiermit verknüpfte Tabelle als Modell
1972 zu benutzen. Das letzte Beispiel dieses Abschnittes zeigt, wie das
1973 gemacht werden kann.
1976 @unnumberedsubsubsec MIDI-Lautstärke
1978 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1979 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
1980 und @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
1981 werden. Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
1982 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
1983 wenn diese Einstellung von Anfang an Wirkung zeigen soll. Der Bruch,
1984 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
1988 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
1992 errechnet. Im folgenden Beispiel wird die generelle MIDI-Lautstärke
1993 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
1995 @lilypond[verbatim,quote]
2001 \set Staff.midiInstrument = #"flute"
2002 \new Voice \relative c''' {
2010 \set Staff.midiInstrument = #"clarinet"
2011 \new Voice \relative c'' {
2022 tempoWholesPerMinute = #(ly:make-moment 72 2)
2023 midiMinimumVolume = #0.2
2024 midiMaximumVolume = #0.5
2031 @unnumberedsubsubsec Verschiedene Instrumente angleichen (i)
2033 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
2034 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
2035 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
2036 werden. Damit kann man die Qualität der MIDI-Datei
2037 merklich verbessern.
2039 In diesem Beispiel wird die Lautstärke der Klarinette relativ
2040 zur Lautstärke der Flöte verringert. In jeder Stimme muss
2041 eine Dynamikanweisung für die erste Note gesetzt werden, damit
2042 diese Einstellung korrekt funktioniert.
2044 @lilypond[verbatim,quote]
2050 \set Staff.midiInstrument = #"flute"
2051 \set Staff.midiMinimumVolume = #0.7
2052 \set Staff.midiMaximumVolume = #0.9
2053 \new Voice \relative c''' {
2061 \set Staff.midiInstrument = #"clarinet"
2062 \set Staff.midiMinimumVolume = #0.3
2063 \set Staff.midiMaximumVolume = #0.6
2064 \new Voice \relative c'' {
2075 tempoWholesPerMinute = #(ly:make-moment 72 2)
2082 @unnumberedsubsubsec Verschiedene Instrumente angleichen (ii)
2084 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2085 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
2086 Anpassungen für die Lautstärken bestimmter Instrumente vor.
2087 Diese Instrumente und ihre entsprechende Veränderung lassen
2088 sich aus der Tabelle @notation{instrument-equalizer-alist}
2089 in der Datei @file{../@/scm/@/midi.scm} entnehmen.
2091 Dieser grundlegende Equalizer kann ersetzt werden, indem die
2092 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
2093 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
2094 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
2095 den Höchst- und Mindestwert für die Lautstärke des entsprechenden
2096 Instruments darstellt. Die Ersetzung der Standardfunktion wird
2097 auf gleiche Weise vorgenommen, wie es schon für die
2098 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
2099 gezeigt wurde. Der Standard-Equalizer,
2100 @notation{default-instrument-equalizer} in der Datei
2101 @file{../@/scm/@/midi.scm} zeigt, wie solche eine Funktion erstellt werden
2104 Das folgende Beispiel definiert für die Flöte und Klarinette relative
2105 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
2107 @lilypond[verbatim,quote]
2108 #(define my-instrument-equalizer-alist '())
2110 #(set! my-instrument-equalizer-alist
2113 ("flute" . (0.7 . 0.9))
2114 ("clarinet" . (0.3 . 0.6)))
2115 my-instrument-equalizer-alist))
2117 #(define (my-instrument-equalizer s)
2118 (let ((entry (assoc s my-instrument-equalizer-alist)))
2127 \set Score.instrumentEqualizer = #my-instrument-equalizer
2128 \set Staff.midiInstrument = #"flute"
2129 \new Voice \relative c''' {
2137 \set Staff.midiInstrument = #"clarinet"
2138 \new Voice \relative c'' {
2149 tempoWholesPerMinute = #(ly:make-moment 72 2)
2157 @node Schlagzeug in MIDI
2158 @subsection Schlagzeug in MIDI
2159 @translationof Percussion in MIDI
2161 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2162 notiert. Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2163 ausgegeben. Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2164 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2165 in einem @code{Staff}-Kontext notiert. Nur so lässt sich auch hier
2166 eine richtige MIDI-Ausgabe erreichen.
2168 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2169 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2170 einem normalen @code{Staff}-Kontext mit passenden normalen Tonhöhen
2171 notiert werden. Es handelt sich
2172 um @code{melodic tom, taiko drum, synth drum} u. A.
2174 Viele Schlagzeuginstrumente sind nicht in den MIDI-Standard aufgenommen,
2175 z. B. Kastagnetten. Die einfachste Methode, derartige Instrumente
2176 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2182 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2183 Schlagstock (sidestick) für diesen Zweck eingesetzt.