]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/notation/input.itely
Thinko: finish removing make phony target
[lilypond.git] / Documentation / de / notation / input.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2
3 @ignore
4     Translation of GIT committish: 5131c3292d30cabdf08839daa02a006e4d3c96c5
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.12.0"
11
12 @node Allgemeine Eingabe und Ausgabe
13 @chapter Allgemeine Eingabe und Ausgabe
14 @translationof General input and output
15
16 Dieses Kapitel erklärt allgemeine Fragen zur Eingabe und Ausgabe von
17 Notation mit LilyPond und weniger direkte Fragen der Notation.
18
19 @menu
20 * Eingabestruktur::
21 * Titel::
22 * Arbeiten an Eingabe-Dateien::
23 * Ausgabe kontrollieren::
24 * MIDI-Ausgabe::
25 @end menu
26
27
28 @node Eingabestruktur
29 @section Eingabestruktur
30 @translationof Input structure
31
32 Das hauptsächliche Eingabeformat von LilyPond sind Textdateien.
33 Üblicherweise werden diese Dateien mit der Endung @code{.ly}
34 versehen.
35
36 @menu
37 * Struktur einer Partitur::
38 * Mehrere Partituren in einem Buch::
39 * Die Dateistruktur::
40 @end menu
41
42
43 @node Struktur einer Partitur
44 @subsection Struktur einer Partitur
45 @translationof Structure of a score
46
47 @funindex \score
48
49 Eine @code{\score}-Umgebung muss einen einzelnen musikalischen
50 Ausdruck beinhalten, der durch geschweifte Klammern begrenzt wird:
51
52 @example
53 \score @{
54 ...
55 @}
56 @end example
57
58 @warning{Es darf @strong{nur ein} äußerer musikalischer Ausdruck
59 in der @code{\score}-Umgebung geschrieben werden, und er @strong{muss}
60 von geschweiften Klammern umgeben sein.}
61
62 Dieser einzelne musikalische Ausdruck kann beliebige Größe annehmen und
63 andere musikalische Ausdrücke von beliebiger Komplexität beinhalten.
64 Alle diese Beispielse sind musikalische Ausdrücke:
65
66 @example
67 @{ c'4 c' c' c' @}
68 @end example
69
70 @lilypond[verbatim,quote]
71 {
72   { c'4 c' c' c'}
73   { d'4 d' d' d'}
74 }
75 @end lilypond
76
77 @lilypond[verbatim,quote]
78 <<
79   \new Staff { c'4 c' c' c' }
80   \new Staff { d'4 d' d' d' }
81 >>
82 @end lilypond
83
84 @example
85 @{
86   \new GrandStaff <<
87     \new StaffGroup <<
88       \new Staff @{ \Flöte @}
89       \new Staff @{ \Oboe @}
90     >>
91     \new StaffGroup <<
92       \new Staff @{ \GeigeI @}
93       \new Staff @{ \GeigeII @}
94     >>
95   >>
96 @}
97 @end example
98
99 Kommentare bilden eine Ausnahme dieser Regel.  (Andere Ausnahmen
100 siehe @ref{Die Dateistruktur}.)  Sowohl einzeilige als auch
101 Blockkommentare (eingegrenzt durch @code{%@{ .. %@}}) können
102 an beliebiger Stelle einer Eingabedatei geschrieben werden.  Sie
103 können innerhalb oder außerhalb der @code{\score}-Umgebung vorkommen,
104 und innerhalb oder außerhalb des einzelnen musikalischen Ausdrucks
105 innerhalb der @code{\score}-Umgebung.
106
107
108 @seealso
109 Handbuch zum Lernen:
110 @rlearning{Arbeiten an Eingabe-Dateien},
111 @rlearning{Musikalische Ausdrücke erklärt},
112 @rlearning{Score ist ein (einziger)  zusammengesetzter musikalischer Ausdruck}.
113
114
115 @node Mehrere Partituren in einem Buch
116 @subsection Mehrere Partituren in einem Buch
117 @translationof Multiple scores in a book
118
119 @funindex \book
120 @cindex Sätze, mehrere
121
122 Eine Partitur kann mehrere musikalische Stücke und verschiedene
123 Texte beinhalten.  Beispiele hierzu sind etwa eine Etüdensammlung
124 oder ein Orchesterstück mit mehreren Sätzen.  Jeder Satz wird
125 in einer eigenen @code{\score}-Umgebung notiert:
126
127 @example
128 \score @{
129   @var{..Noten..}
130 @}
131 @end example
132
133 @noindent
134 und Texte werden mit einer @code{\markup}-Umgebung geschrieben:
135
136 @example
137 \markup @{
138   @var{..Text..}
139 @}
140 @end example
141
142 @funindex \book
143
144 Alle Sätze und Texte, die in derselben @code{.ly}-Datei vorkommen,
145 werden normalerweise in eine einzige Ausgabedatei gesetzt.
146
147 @example
148 \score @{
149   @var{..}
150 @}
151 \markup @{
152   @var{..}
153 @}
154 \score @{
155   @var{..}
156 @}
157 @end example
158
159 Wenn Sie aber mehrere Ausgabedateien aus einer einzigen @code{.ly}-Datei
160 erstellen wollen, können Sie mehrere @code{\book}-Umgebungen notieren.
161 Wenn Sie keine @code{\book}-Umgebung in Ihrer Datei angeben, interpretiert
162 LilyPond die gesamte Datei als eine große @code{\book}-Umgebung (siehe
163 auch @ref{Die Dateistruktur}.  Eine wichtige Ausnahme stellen Dokumente dar,
164 die mit lilypond-book erstellt werden, für die Sie explizit
165 @code{\book}-Umgebungen notieren müssen, weil sonst nur die erste
166 @code{\score}- bzw. @code{\markup}-Umgebung angezeigt wird.
167
168 Der Kopfbereich für jedes Musikstück kann innerhalb der @code{\score}-Umgebung
169 definiert werden.  Die @code{piece}-(Stück)-Bezeichnung aus dieser
170 @code{\header}-Umgebung wird vor jedem Satz ausgegeben.  Die Überschrift für
171 ein ganzes Buch kann innerhalb von @code{\book} notiert werden, aber wenn
172 diese Umgebung fehlt, wird die @code{\header}-Umgebung genommen, die auf
173 erster Ebene der Datei notiert ist.
174
175 @example
176 \header @{
177   title = "Acht Miniaturen"
178   composer = "Igor Stravinsky"
179 @}
180 \score @{
181   @dots{}
182   \header @{ piece = "Romanze" @}
183 @}
184 \markup @{
185    ..Text der zweiten Strophe..
186 @}
187 \markup @{
188    ..Text der dritten Strophe..
189 @}
190 \score @{
191   @dots{}
192   \header @{ piece = "Menuetto" @}
193 @}
194 @end example
195
196 @funindex \bookpart
197
198 Stücke können innerhalb eines Buches mit @code{\bookpart} gruppiert
199 werden.  Derartige Buchabschnitte werden durch einen Seitenumbruch
200 voneinander getrennt und können wie auch das ganze Buch selber mit
201 einem Titel innerhalb einer @code{\header}-Umgebung beginnen.
202
203 @example
204 \bookpart @{
205   \header @{
206     title = "Buchtitel"
207     subtitle = "Erster Teil"
208   @}
209   \score @{ @dots{} @}
210   @dots{}
211 @}
212 \bookpart @{
213   \header @{
214     subtitle = "Zweiter Teil"
215   @}
216   \score @{ @dots{} @}
217   @dots{}
218 @}
219 @end example
220
221 @node Die Dateistruktur
222 @subsection Die Dateistruktur
223 @translationof File structure
224
225 @funindex \paper
226 @funindex \midi
227 @funindex \layout
228 @funindex \header
229 @funindex \score
230 @funindex \book
231 @funindex \bookpart
232
233 @cindex Dateistruktur
234 @cindex Struktur, Datei
235 @cindex Eingabedatei, Struktur
236 @cindex Quelldatei, Struktur
237
238 Eine @code{.ly}-Datei kann eine belibige Anzahl an Ausdrücken
239 auf der obersten Ebene beinhalten, wobei ein Ausdrück der obersten
240 Ebene einer der folgenden sein kann:
241
242 @itemize @bullet
243 @item
244 Eine Ausgabedefinition, wie @code{\paper}, @code{\midi} und
245 @code{\layout}.  Derartige Definitionen auf oberster Ebene verändern
246 die globalen Einstellungen für das ganze @qq{Buch}.  Wenn mehr
247 als eine derarte Definition desselben Typs angegeben wird, hat
248 die spätere Vorrang.
249
250 @item
251 Ein direkter Scheme-Ausdruck, wie etwa
252 @code{#(set-default-paper-size "a7" 'landscape)} oder
253 @code{#(ly:set-option 'point-and-click #f)}.
254
255 @item
256 Eine @code{\header}-Umgebung.  Damit wird die globale Titelei
257 eingestellt.  Das ist die Umgebung, in der sich Definition für
258 das ganze Buch befinden, wie Komponist, Titel usw.
259
260 @item
261 Eine @code{\score}-Umgebung.  Die in ihr enthaltene Partitur wird
262 zusammen mit anderen vorkommenden @code{\score}-Umgebungen gesammelt
263 und in ein @code{\book} zusammengefasst.  Dieses Verhalten kann
264 verändert werden, indem die Variable @code{toplevel-score-handler}
265 auf höchster Ebene gesetzt wird.  Die Definition des Standards findet sich
266 in der Datei @file{../scm/@/lily@/.scm}.
267
268 @item
269 Eine @code{\book}-Umgebung fasst mehrere Sätze (d. h. mehrere
270 @code{\score}-Umgebungen) logisch in ein Dokument zusammen.
271 Wenn mehrere @code{\score}-Partituren vorkommen, wird für jede
272 @code{\book}-Umgebung eine eigene Ausgabedatei erstellt, in der
273 alle in der Umgebung enthaltenen Partituren zusammengefasst sind.
274 Der einzige Grund, explizit eine @code{\book}-Umgebung zu setzen,
275 ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei
276 erstellt werden sollen.  Eine Ausnahme sind lilypond-book-Dokumente,
277 in denen eine @code{\book}-Umgebung explizit hinzugefügt werden
278 muss, wenn mehr als eine @code{\score}- oder @code{\markup}-Umgebung
279 im gleichen Beispiel angezeigt werden soll.  Dieses Verhalten
280 kann verändert werden, indem die Variable @code{toplevel-book-handler}
281 auf höchster Ebene gesetzt wird.  Die Definition des Standards
282 findet sich in der Datei @file{../scm/@/lily@/.scm}.
283
284 @item
285 Eine @code{\bookpart}-Umgebung.  Ein Buch (@code{\book}) kann in
286 mehrere Teile untergliedert sein, indem @code{\bookpart}-Umgebungen
287 eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen
288 Seite und kann eigene Papierdefinitionen in einer @code{\paper}-Umgebung
289 haben.
290
291 @item
292 Ein zusammengesetzter musikalischer Ausdruck wie etwa
293 @example
294 @{ c'4 d' e'2 @}
295 @end example
296
297 Dieses Beispiel wird von LilyPond automatisch in einer
298 @code{\score}-Umgebung in einem Buch interpretiert und
299 mit anderen @code{\score}-Umgebungen und musikalischen
300 Ausdrücken auf der höchsten Ebene zusammen ausgegeben.
301 Anders gesagt: eine Datei, die nur das obige Beispiel
302 beinhaltet, wird übersetzt zu
303
304 @example
305 \book @{
306   \score @{
307     \new Staff @{
308       \new Voice @{
309         @{ c'4 d' e'2 @}
310       @}
311     @}
312   @}
313         \layout @{ @}
314         \header @{ @}
315 @}
316 @end example
317
318 Dieses Verhalten kann verändert werden, indem die Variable
319 @code{toplevel-music-handler} auf der oberseten Ebene gesetzt
320 wird.  Die Definition des Standards findet sich in der Datei
321 @file{../scm/@/lily@/.scm}.
322
323 @item
324 Eine Textbeschriftung, eine Strophe etwa:
325 @example
326 \markup @{
327    2.  Die erste Zeile der zweiten Strophe.
328 @}
329 @end example
330
331 Textbeschriftungen werden über, zwischen oder unter musikalischen
332 Ausdrücken gesetzt, so wie sie notiert werde.
333
334 @cindex Variablen
335
336 @item
337 Eine Variable, wie
338 @example
339 foo = @{ c4 d e d @}
340 @end example
341
342 Sie kann dann später in der Datei eingesetzt werden, indem @code{\foo}
343 geschrieben wird.  Die Beizeichnung der Variable darf nur aus
344 alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.
345
346 @end itemize
347
348 Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene
349 notiert werden können:
350
351 @example
352 \layout @{
353   % Zeilen rechtsbündig setzen
354   ragged-right = ##t
355 @}
356
357 \header @{
358    title = "Do-re-mi"
359 @}
360
361 @{ c'4 d' e2 @}
362 @end example
363
364 An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen
365 Anweisungen notiert werden:
366
367 @itemize
368 @item @code{\version}
369 @item @code{\include}
370 @item @code{\sourcefilename}
371 @item @code{\sourcefileline}
372 @item
373 Ein einzeiliger Kommentar, beginnend mit @code{%}.
374
375 @item
376 Ein mehrzeiliger Kommentar, umgeben von @code{%@{ .. %@}}.
377
378 @end itemize
379
380 @seealso
381 Hanbuch zum Lernen:
382 @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
383
384
385 @node Titel
386 @section Titel
387 @translationof Titles and headers
388
389 Fast alle gedruckten Noten beinhalten einen Titel und den Namen
390 des Komponisten, teilweise wird auch noch sehr viel mehr Information
391 zur Verfügung gestellt.
392
393 @menu
394 * Titel erstellen::
395 * Eigene Titel::
396 * Verweis auf die Seitenzahlen::
397 * Inhaltsverzeichnis::
398 @end menu
399
400
401 @node Titel erstellen
402 @subsection Titel erstellen
403 @translationof Creating titles
404
405 Überschriften können für jede @code{\score}-Umgebung erstellt werden, sowohl
406 für die gesamte Datei (oder eine @code{\book}-Umgebung) als auch für
407 einzelne Buchabschnitte (innerhalb einer @code{\bookpart}-Umgebung).
408
409 Der Inhalt der Titelei wird aus der @code{\header}-Umgebung übernommen.  Die
410 @code{\header}-Umgebung eines Buches unterstützt folgende Felder:
411
412 @table @code
413 @funindex dedication
414 @item dedication
415 Die Widmung der Noten, wird auf oben auf der ersten Seite gesetzt.
416
417 @funindex title
418 @item title
419 Die Überschrift der Noten, wird unter der Widmung zentriert gesetzt.
420
421 @funindex subtitle
422 @item subtitle
423 Untertitel, zentriert unter der Überschrift.
424
425 @funindex subsubtitle
426 @item subsubtitle
427 Unteruntertitel, zentriert unter dem Untertitel.
428
429 @funindex poet
430 @item poet
431 Name des Dichters, linksbündig unter dem Unteruntertitel.
432
433 @funindex instrument
434 @item instrument
435 Bezeichnung des Instruments, zentriert unter dem Unteruntertitel.
436 Auch oben auf der Seite zentriert (andere als erste Seite).
437
438 @funindex composer
439 @item composer
440 Name des Komponisten, rechtsbüngig unter dem Unteruntertitel.
441
442 @funindex meter
443 @item meter
444 Metrum, linksbündig unter dem Dichter.
445
446 @funindex arranger
447 @item arranger
448 Name des Bearbeiters/Arrangeurs, rechtsbündig unter dem Komponisten.
449
450 @funindex piece
451 @item piece
452 Bezeichnung des Stückes, linksbündig unter dem Metrum.
453
454 @funindex opus
455 @item opus
456 Bezeichnung des Opus, rechtsbündig unter dem Bearbeiter.
457
458 @cindex Seitenumbruch, erzwingen
459 @funindex breakbefore
460
461 @item breakbefore
462 Hiermit beginnt der Titel auf einer neuen Steite. (Kann die Werte
463 ##t (wahr) oder ##f (falsch) haben.)
464
465 @funindex copyright
466 @item copyright
467 Anzeige eines Copyright, zentriert unten auf der ersten Seite.  Um das
468 Copyright-Symbol zu notieren, siehe @ref{Zeichenkodierung}.
469
470 @funindex tagline
471 @item tagline
472 Zentriert unten auf der letzten Seite.  Enthält standardmäßig: @qq{Music
473 engraving by LilyPond (@var{version})---www.lilypond.org}
474
475 @end table
476
477 Hier eine Demonstration der möglichen Felder.  Beliebige
478 Formatierungsbefehle für Textbeschriftung können in der Titelei
479 eingesetzt werden.  Siehe hierzu auch @ref{Text formatieren}.
480
481 @c KEEP LY
482 @lilypond[quote,verbatim,line-width=11.0\cm]
483 \paper {
484   line-width = 9.0\cm
485   paper-height = 10.0\cm
486 }
487
488 \book {
489   \header {
490     dedication = "mir gewidmet"
491     title = \markup \center-column { "Titel erste Zeile" "Titel zweite Zeile, länger" }
492     subtitle = "Untertitel"
493     subsubtitle = #(string-append "Unteruntertitel LilyPond-Version "
494 (lilypond-version))
495     poet = "Dichter"
496     composer =  \markup \center-column { "Komponist" \small "(1847-1973)" }
497     texttranslator = "Übersetzer"
498     meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "r" \huge
499 "um" }
500     arranger = \markup { \fontsize #8.5 "Be" \fontsize #2.5 "ar" \fontsize
501 #-2.5 "be" \fontsize #-5.3 "i" \fontsize #7.5 "ter" }
502     instrument = \markup \bold \italic "Instrument"
503     piece = "Stück"
504   }
505
506   \score {
507     { c'1 }
508     \header {
509       piece = "Stück zwei"
510       opus = "Opus1"
511     }
512   }
513   \markup {
514       und jetzt...
515   }
516   \score {
517     { c'1 }
518     \header {
519       piece = "Stück2"
520       opus = "Opus2"
521     }
522   }
523 }
524 @end lilypond
525
526 Wie schon oben gezeigt, können mehrfache @code{\header}-Umgebungen
527 eingesetzt werden.  Wenn das gleiche Feld in mehreren
528 Umgebungen, wird die letzte vorkommende
529 Version benutzt.  Hier ein kurzes Beispiel:
530
531 @example
532 \header @{
533   composer = "Komponist"
534 @}
535 \header @{
536   piece = "Stück"
537 @}
538 \score @{
539   \new Staff @{ c'4 @}
540   \header @{
541     piece = "Neues Stück"  % überschreibt die die vorige Definition
542   @}
543 @}
544 @end example
545
546 Wenn @code{\header} innerhalb der @code{\score}-Umgebung definiert wird,
547 wird normalerweise nur die Information von @code{piece} und @code{opus}
548 ausgegeben.  Musikalische Ausdrücke innerhalb von @code{\score} müssen
549 vor @code{\header} gesetzt werden.
550
551 @lilypond[quote,verbatim,line-width=11.0\cm]
552 \score {
553   { c'4 }
554   \header {
555     title = "title"  % not printed
556     piece = "piece"
557     opus = "opus"
558   }
559 }
560 @end lilypond
561
562 @funindex print-all-headers
563
564 @noindent
565 Dieses Verhalten kann verändert werden (sodass alle Angaben aus der
566 überschrift gesetzt werden, wenn sich @code{\header} innerhalb von
567 @code{\score} befindet), indem man schreibt:
568
569 @example
570 \paper@{
571   print-all-headers = ##t
572 @}
573 @end example
574
575 @cindex Copyright
576 @cindex Tagline
577
578 Die Standardfußzeile ist leer mit Ausnahme der ersten Seite, auf der
579 das @code{copyright}-Feld aus der @code{\header}-Umgebung eingefügt wird,
580 und die letzte Seite, auf der das @code{tagline}-Feld eingefügt wird.
581 Der Standardinhalt von @code{tagline} ist @qq{Music engraving by
582 LilyPond (@var{version})---www.lilypond.org}.  Gut gesetzte Noten werben sehr effektiv
583 für LilyPond, darum bitten wir darum, diese Zeile stehen zu lassen,
584 wenn es möglich ist.
585
586 Ein Titelfeld kann vollständig entfernt werden, indem es auf
587 falsch gesetzt wird:
588
589 @example
590 \header @{
591   tagline = ##f
592   composer = ##f
593 @}
594 @end example
595
596
597 @node Eigene Titel
598 @subsection Eigene Titel
599 @translationof Custom titles
600
601 Kompliziertere Anpassungen können vorgenommen werden, indem die
602 folgenden Variablen innerhalb der @code{\paper}-Umgebung geändert
603 werden.  Die Init-Datei @file{../ly/titling-init.ly} enthält das
604 Standardverhalten.
605
606 @table @code
607
608 @funindex bookTitleMarkup
609
610 @item bookTitleMarkup
611 Das ist die Überschrift, die für das gesamte Dokument gilt.  Üblicherweise
612 wird hier der Komponist und die Überschrift des Werkes genannt.
613
614 @funindex scoreTitleMarkup
615
616 @item scoreTitleMarkup
617 Das ist die Überschrift, die vor jede @code{\score}-Umgebung gesetzt wird.
618 Überlicherweise wird hier etwa die Bezeichnung eines Satzes notiert
619 (im @code{piece}-Feld).
620
621 @funindex oddHeaderMarkup
622
623 @item oddHeaderMarkup
624 Das ist der Seitenkopf für ungerade Seiten.
625
626 @funindex evenHeaderMarkup
627
628 @item evenHeaderMarkup
629 Das ist der Seitenkopf für gerade Seiten.  Wenn undefiniert, wird der
630 ungerade Seitenkopf eingesetzt.
631
632 Standardmäßig werden die Kopfzeilen so definiert, dass die Seitennummer
633 sich außen befindet und das Instrument zentriert gesetzt wird.
634
635 @funindex oddFooterMarkup
636
637 @item oddFooterMarkup
638 Das ist die Fußzeile für ungerade Seiten.
639
640 @funindex evenFooterMarkup
641
642 @item evenFooterMarkup
643 Das ist die Fußzeile für gerade Seiten.  Wenn undefiniert, wird die
644 ungerade Fußzeile eingesetzt.
645
646 Standardmäßig wird in der Fußzeile auf der ersten Seite das Copyright
647 und auf der letzten Seite die Tag-Zeile gesetzt.
648
649 @end table
650
651
652 @funindex \paper
653 @cindex Kopfzeile
654 @cindex Fußzeile
655 @cindex Seitenlayout
656 @cindex Layout der Seite
657 @cindex Titel
658 @cindex Überschriften
659
660 Die folgende Definition setzt die Überschrift linksbündig und
661 den Komponisten rechtsbündig auf einer einzelnen Zeile:
662
663 @verbatim
664 \paper {
665   bookTitleMarkup = \markup {
666    \fill-line {
667      \fromproperty #'header:title
668      \fromproperty #'header:composer
669    }
670   }
671 }
672 @end verbatim
673
674
675 @node Verweis auf die Seitenzahlen
676 @subsection Verweis auf die Seitenzahlen
677 @translationof Reference to page numbers
678
679 Eine bestimmte Stelle der Partitur kann mit einem @code{\label}-Befehl
680 markiert werden, sowohl auf oberster Ebene als auch innerhalb eines
681 musikalischen Ausdrucks.  Auf diese Marke kann dann verwiesen werden,
682 um die Seitenzahl zu erhalten, auf der die Marke vorkommt.  Der
683 Verweis wird mit dem Befehl @code{\page-ref} gefordert (innerhalb
684 von @code{\markup}).
685
686 @c KEEP LY
687 @lilypond[verbatim,line-width=11.0\cm]
688 \header { tagline = ##f }
689 \book {
690   \label #'ErstePartitur
691   \score {
692     {
693       c'1
694       \pageBreak \mark A \label #'ZeichenA
695       c'
696     }
697   }
698
699   \markup { Die erste Partitur fäng auf Seite \page-ref #'ErstePartitur "0" "?" an.}
700   \markup { Zeichen A befindet sich auf Seite \page-ref #'ZeichenA "0" "?". }
701 }
702 @end lilypond
703
704 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
705
706 @enumerate
707
708 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
709 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
710 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekann ist.
711 @end enumerate
712
713 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
714 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
715 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
716 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
717 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
718 schon vorher bekannt sein.  Die Größe wird mithilfe des Platzhalters
719 bestimmt.  Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
720 "00" schreiben, also eine zweistellige Zahl.
721
722 @code{\label}
723 @code{\page-ref}
724
725 @predefined
726 @funindex \label,
727 @funindex \page-ref.
728 @endpredefined
729
730
731 @node Inhaltsverzeichnis
732 @subsection Inhaltsverzeichnis
733 @translationof Table of contents
734
735 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
736 @code{\markuplines \table-of-contents}.  Die Elemente, die im
737 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
738 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
739 Ebene als auch in einem musikalischen Ausdruck verwendet werden
740 kann.
741
742 @verbatim
743 \markuplines \table-of-contents
744 \pageBreak
745
746 \tocItem \markup "Erste Partitur"
747 \score {
748   {
749     c'  % ...
750     \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
751     d'  % ...
752   }
753 }
754
755 \tocItem \markup "zweite Partitur"
756 \score {
757   {
758     e' % ...
759   }
760 }
761 @end verbatim
762
763 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
764 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
765 Die Standardformatierungselemente sind @code{tocTitleMarkup}
766 um die Überschrift zu formatieren und @code{tocItemMarkup} um
767 die einzelnen Inhaltselemente zu formatieren, bestehend aus
768 dem Titelelement und einer Seitenzahl.  Die Variablen können
769 durch den Benutzer geändert werden:
770
771 @verbatim
772 \paper {
773   %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
774   tocTitleMarkup = \markup \huge \column {
775     \fill-line { \null "Table des matières" \null }
776     \hspace #1
777   }
778   %% hier größere Schriftarten
779   tocItemMarkup = \markup \large \fill-line {
780     \fromproperty #'toc:text \fromproperty #'toc:page
781   }
782 }
783 @end verbatim
784
785 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
786 in der Definition von @code{tocItemMarkup} aufgerufen mit
787 @code{#'toc:text} und @code{#'toc:page}.
788
789 Neue Befehle und Beschriftungen können auch definiert werden,
790 um eigene Inhaltsverzeichnisse zu gestalten:
791
792 @itemize
793
794 @item zuerst muss eine neue Beschriftungsvariable in der
795 @code{\paper}-Umgebung definiert werden
796
797 @item dann muss die musikalische Funktion definiert werden, die
798 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
799 Variable benutzt wird.
800
801 @end itemize
802
803 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
804 einer Oper in das Inhaltsverzeichnis aufzunehmen:
805
806 @verbatim
807 \paper {
808   tocActMarkup = \markup \large \column {
809     \hspace #1
810     \fill-line { \null \italic \fromproperty #'toc:text \null }
811     \hspace #1
812   }
813 }
814
815 tocAct =
816 #(define-music-function (parser location text) (markup?)
817    (add-toc-item! 'tocActMarkup text))
818 @end verbatim
819
820 @lilypond[line-width=11.0\cm]
821 \header { tagline = ##f }
822 \paper {
823   tocActMarkup = \markup \large \column {
824     \hspace #1
825     \fill-line { \null \italic \fromproperty #'toc:text \null }
826     \hspace #1
827   }
828 }
829
830 tocAct =
831 #(define-music-function (parser location text) (markup?)
832    (add-toc-item! 'tocActMarkup text))
833
834 \book {
835   \markuplines \table-of-contents
836   \tocAct \markup { Atto Primo }
837   \tocItem \markup { Coro. Viva il nostro Alcide }
838   \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
839   \tocAct \markup { Atto Secondo }
840   \tocItem \markup { Sinfonia }
841   \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
842   \markup \null
843 }
844 @end lilypond
845
846
847 @seealso
848 Installierte Dateien: @file{../ly/@/toc@/-init@/.ly}.
849
850 @funindex \table-of-contents
851 @funindex \tocItem
852
853 @predefined
854 @code{\table-of-contents},
855 @code{\tocItem}.
856 @endpredefined
857
858
859 @node Arbeiten an Eingabe-Dateien
860 @section Arbeiten an Eingabe-Dateien
861 @translationof Working with input files
862
863 @menu
864 * LilyPond-Dateien einfügen::
865 * Verschiedene Editionen aus einer Quelldatei::
866 * Zeichenkodierung::
867 * LilyPond-Notation anzeigen::
868 @end menu
869
870
871 @node LilyPond-Dateien einfügen
872 @subsection LilyPond-Dateien einfügen
873 @translationof Including LilyPond files
874
875 @funindex \include
876 @cindex einfügen  von Dateien
877 @cindex Dateien einfügen
878
879 Ein größeres Projekt kann in einzelne Dateien aufteteilt werden.
880 Um eine andere Datei einzubinden, kann der Befehl
881
882 @example
883 \include "andereDatei.ly"
884 @end example
885
886 @noindent
887 benutzt werden.
888
889 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
890 also ob der Inhalt der Datei @code{andereDatei.ly} komplett in die
891 Hauptdatei eingefügt werden würde.  So kann man für ein größeres
892 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
893 und sie dann in einer Partitur-Datei benutzen.  Meistens werden
894 in den eingefügten Dateien einige Variablen definiert, die dann
895 auch in der Hauptdatei eingesetzt werden können.  Mit Marken (Tags)
896 gekennzeichnete Abschnitte können eingesetzt werden, um die
897 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
898 zur Verfügung zu stellen. Siehe auch @ref{Verschiedene Editionen aus einer Quelldatei}.
899
900 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
901 nach dem @code{\include}-Befehl verwiesen werden.  Dateien an anderen
902 Stellen können eingebunden werden, indem entweder ein vollständiger
903 Pfad oder ein relativer Pfad zu der Datei angegeben wird.  Hierbei
904 sollten die für UNIX typischen Schrägstriche (/) und nicht die
905 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
906 zu trennen.  Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
907 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
908 aussehen:
909
910 @example
911 \include "../kram.ly"
912 @end example
913
914 @noindent
915 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
916 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
917 aus:
918
919 @example
920 \include "stimmen/VI.ly"
921 \include "stimmen/VII.ly"
922 ... etc
923 @end example
924
925 Dateien, die eingebunden werden sollen, können selber auch wiederum
926 ein @code{\include} enthalten.  Diese Einbindung zweiter Ebene
927 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
928 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
929 sondern relativ zur Hauptdatei gesetzt werden müssen.  Dieses Verhalten
930 kann jedoch auch verändert werden, indem man lilypond die Option
931 @code{-drelative-includes} auf der Kommandozeile zuweist (oder indem
932 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
933 Beginn der Quelldatei schreibt).  Mit @code{relative-includes} wird
934 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
935 in der sich der Befehl befindet.  Dieses Verhalten wird empfohlen und wird
936 in zukünftigen Versionen von LilyPond den Standard darstellen.
937
938 Dateien können auch aus einem Verzeichnis eingebunden werden,
939 dass im Suchpfad von LilyPond liegt.  Hierzu muss auf der
940 Kommandozeile das entsprechende Verzeichnis angegeben werden
941 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
942 notiert sein.  Wenn etwa die Datei @file{Haupt.ly} kompiliert
943 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
944 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
945 befinden und dann LilyPond folgendermaßen aufrufen:
946
947 @example
948 lilypond --include=stimmen Haupt.ly
949 @end example
950
951 @noindent
952 In @file{Haupt.ly} steht:
953
954 @example
955 \include "VI.ly"
956 \include "VII.ly"
957 ... usw.
958 @end example
959
960 Dateien, die in vielen Partituren verwendet werden sollen, können
961 im LilyPond-Verzeichnis @file{../ly} gespeichert werden.  (Die
962 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
963 ab, siehe hierzu @rlearning{Mehr Information}).  Dateien
964 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
965 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
966
967 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
968 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
969 können identifiziert werden, indem LilyPond auf der Komandozeile mit
970 Option aufgerufen wird: @code{lilypond --verbose}.  Hiermit wird
971 neben anderer Information auch eine Liste and Pfaden und Dateien
972 aufgeführt, die LilyPond benutzt.  Die wichtigeren Dateien werden
973 im Abschnitt @rlearning{Mehr Information} besprochen.
974 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
975 wenn eine neue LilyPond-Version installiert wird.
976
977 Eine einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
978 sind dargestellt in
979 @rlearning{Partituren und Stimmen}.
980
981 @seealso
982 Handbuch zum Lernen:
983 @rlearning{Mehr Information},
984 @rlearning{Partituren und Stimmen}.
985
986 @knownissues
987
988 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
989 dem Installationsverzeichnis von LilyPond entspricht, wird die
990 installierte Datei anstelle der eigenen verwendet.
991
992
993 @node Verschiedene Editionen aus einer Quelldatei
994 @subsection Verschiedene Editionen aus einer Quelldatei
995 @translationof Different editions from one source
996
997 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
998 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
999 Variablen werden am besten eingesetzt, wenn es darum geht, längere
1000 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
1001 verschiedene Weise zu kombinieren.  Tag-Marken dagegen werden am
1002 besten eingesetzt, wenn eine von mehreren kurzen alternativen
1003 Notenabschnitten ausgewählt werden soll.  Egal welche Methode am
1004 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
1005 die eigentlichen Noten und die Struktur der Paritur voneinander
1006 getrennt notiert werden -- so kann die Struktur geändert werden,
1007 ohne dass man Änderungen an den Noten vornehmen muss.
1008
1009 @menu
1010 * Variablen benutzen::
1011 * Marken benutzen::
1012 @end menu
1013
1014 @node Variablen benutzen
1015 @unnumberedsubsubsec Variablen benutzen
1016 @translationof Using variables
1017
1018 @cindex Variablen, Benutzung
1019
1020 Wenn Notenabschnitt in Variablen definiert werden, können sie
1021 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1022 siehe auch @rlearning{Stücke durch Bezeichner organisieren}.  Zum
1023 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1024 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1025 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1026 einmal notieren muss.  Noten aus zwei Variablen können auf einem
1027 System kombiniert werden, siehe @ref{Automatische Kombination von Stimmen}.
1028 Hier ein Beispiel:
1029
1030 @lilypond[verbatim,quote]
1031 sopranoMusic = \relative c'' { a4 b c b8( a)}
1032 altoMusic = \relative g' { e4 e e f }
1033 tenorMusic = \relative c' { c4 b e d8( c) }
1034 bassMusic = \relative c' { a4 gis a d, }
1035 allLyrics = \lyricmode {King of glo -- ry }
1036 <<
1037   \new Staff = "Soprano" \sopranoMusic
1038   \new Lyrics \allLyrics
1039   \new Staff = "Alto" \altoMusic
1040   \new Lyrics \allLyrics
1041   \new Staff = "Tenor" {
1042     \clef "treble_8"
1043     \tenorMusic
1044   }
1045   \new Lyrics \allLyrics
1046   \new Staff = "Bass" {
1047     \clef "bass"
1048     \bassMusic
1049   }
1050   \new Lyrics \allLyrics
1051   \new PianoStaff <<
1052     \new Staff = "RH" {
1053       \set Staff.printPartCombineTexts = ##f
1054       \partcombine
1055       \sopranoMusic
1056       \altoMusic
1057     }
1058     \new Staff = "LH" {
1059       \set Staff.printPartCombineTexts = ##f
1060       \clef "bass"
1061       \partcombine
1062       \tenorMusic
1063       \bassMusic
1064     }
1065   >>
1066 >>
1067 @end lilypond
1068
1069 Unterschiedliche Partituren, die entweder nur den Chor oder das
1070 Klavier zeigen, können produziert werden, indem die Struktur
1071 verändert wird; die Noten müssen dazu nicht verändert werden.
1072
1073 Für längere Partituren können Variablen in eigene Dateien notiert
1074 werden, die dann eingebunden werden, siehe @ref{LilyPond-Dateien einfügen}.
1075
1076
1077 @node Marken benutzen
1078 @unnumberedsubsubsec Marken benutzen
1079 @translationof Using tags
1080
1081 @cindex Tag
1082 @cindex Marke
1083 @cindex markierte Noten entfernen
1084 @cindex markierte Noten behalten
1085
1086 @funindex \tag
1087 @funindex \keepWithTag
1088 @funindex \removeWithTag
1089 @funindex tag
1090 @funindex keepWithTag
1091 @funindex removeWithTag
1092
1093 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1094 Ausdruck mit der Bezeichnung @var{TeilA}.  Ausdrücke, die auf diese
1095 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1096 bzw. ausgefiltert werden.  Das geschieht mit den Befehlen
1097 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1098 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1099 wie folgt:
1100
1101 @multitable @columnfractions .5 .5
1102
1103 @headitem Filter
1104   @tab Resultat
1105
1106 @item
1107 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1108   @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1109   gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1110
1111 @item
1112 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1113   @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1114   @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1115   werden nicht angezeigt.
1116
1117 @item
1118 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1119 @code{\removeWithTag}
1120   @tab Alle markierten und unmarkierten Noten werden angezeigt.
1121
1122 @end multitable
1123
1124 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1125 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1126 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1127 Ausdruck.
1128
1129 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1130 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1131
1132 @lilypond[verbatim,quote]
1133 music = \relative g' {
1134   g8. c32 d
1135   \tag #'trills {d8.\trill }
1136   \tag #'expand {\repeat unfold 3 {e32 d} }
1137   c32 d
1138  }
1139
1140 \score {
1141   \keepWithTag #'trills \music
1142 }
1143 \score {
1144   \keepWithTag #'expand \music
1145 }
1146 @end lilypond
1147
1148 @noindent
1149 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1150 erfordert manchmal weniger Schreibarbeit:
1151
1152 @lilypond[verbatim,quote]
1153 music = \relative g' {
1154   g8. c32 d
1155   \tag #'trills {d8.\trill }
1156   \tag #'expand {\repeat unfold 3 {e32 d} }
1157   c32 d
1158  }
1159
1160 \score {
1161   \removeWithTag #'expand
1162   \music
1163 }
1164 \score {
1165   \removeWithTag #'trills
1166   \music
1167 }
1168 @end lilypond
1169
1170 Marken können auch auf Artikulationen, Text usw angewendet werden,
1171 indem man ihnen
1172
1173 @example
1174 -\tag #'@var{your-tag}
1175 @end example
1176
1177 @noindent
1178 voranstellt (jedoch nach der Note, an die sie gebunden sind).  Mit
1179 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1180 Text ausgeben:
1181
1182 @example
1183 c1-\tag #'finger ^4
1184 c1-\tag #'warn ^"Achtung!"
1185 @end example
1186
1187 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1188 notiert werden:
1189
1190 @lilypond[quote,verbatim]
1191 music = \relative c'' {
1192   \tag #'a \tag #'both { a a a a }
1193   \tag #'b \tag #'both { b b b b }
1194 }
1195 <<
1196 \keepWithTag #'a \music
1197 \keepWithTag #'b \music
1198 \keepWithTag #'both \music
1199 >>
1200 @end lilypond
1201
1202 Mehrfache @code{\removeWithTag}-Filter können auf einen
1203 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1204 markierte Abschnitte aus dem Druckbild zu entfernen.
1205
1206 @lilypond[verbatim,quote]
1207 music = \relative c'' {
1208 \tag #'A { a a a a }
1209 \tag #'B { b b b b }
1210 \tag #'C { c c c c }
1211 \tag #'D { d d d d }
1212 }
1213 {
1214 \removeWithTag #'B
1215 \removeWithTag #'C
1216 \music
1217 }
1218 @end lilypond
1219
1220 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1221 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1222 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1223 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1224 eben genannten zusätzlich entfernt.
1225
1226
1227 @seealso
1228 Handbuch zum Lernen:
1229 @rlearning{Stücke durch Bezeichner organisieren}.
1230
1231 Notationsreferenz:
1232 @ref{Automatische Kombination von Stimmen},
1233 @ref{LilyPond-Dateien einfügen}.
1234
1235
1236 @ignore
1237 @c This warning is more general than this placement implies.
1238 @c Rests are not merged whether or not they come from tagged sections.
1239 @c Should be deleted?  -td
1240
1241 @knownissues
1242
1243 Multiple rests are not merged if you create a score with more
1244 than one tagged section at the same place.
1245
1246 @end ignore
1247
1248
1249 @node Zeichenkodierung
1250 @subsection Zeichenkodierung
1251 @translationof Text encoding
1252
1253 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
1254 und ISO/IEC 10646 definiert sind.  Hiermit wird den Zeichen
1255 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
1256 Code-Punkt zugewiesen, mit dem sie identifizierbar sind.  Unicode
1257 kann mit mehreren Zeichenkodierungen verwirklicht werden.  LilyPond
1258 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
1259 in der die normalen Zeichen des lateinischen Alphabets mit einem
1260 Byte dargestellt werden, während alle anderen Zeichen zwischen
1261 zwei und vier Byte Länge haben.
1262
1263 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
1264 Schriftart (engl. font).  In einer Schriftartdatei werden die
1265 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
1266 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
1267 und komplexe Skripte korrekt zu setzen.
1268
1269 LilyPond verändert die Kodierung der Eingabedatei nicht.  Das heißt,
1270 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
1271 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
1272 musst.  Am einfachsten geht das, indem man einen Texteditor
1273 einsetzt, der mit Unicode-Zeichen umgehen kann.  Die meisten
1274 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
1275 wie etwa vim, Emacs, jEdit oder GEdit.  Alle MS Windows-Systeme
1276 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
1277 in UTF-8 lesen und speichern kann.  Ein Editor mit mehr
1278 Funktionen unter Windows ist BabelPad oder Notepad++.
1279
1280 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
1281 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
1282
1283 @example
1284 FT_Get_Glyph_Name () error: invalid argument
1285 @end example
1286
1287 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
1288
1289 @lilypond[quote]
1290 %c No verbatim here as the code does not display correctly in PDF
1291 % Cyrillic
1292 bulgarian = \lyricmode {
1293   Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
1294 }
1295
1296 % Hebrew
1297 hebrew = \lyricmode {
1298   זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
1299 }
1300
1301 % Portuguese
1302 portuguese = \lyricmode {
1303   à vo -- cê uma can -- ção legal
1304 }
1305
1306 \relative  {
1307   c2 d e f g f e
1308 }
1309 \addlyrics { \bulgarian }
1310 \addlyrics { \hebrew }
1311 \addlyrics { \portuguese }
1312 @end lilypond
1313
1314 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
1315 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
1316 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
1317 @code{\markup}-Umgebung benutzt werden.  Hierbei bedeutet @code{hhhh} die 
1318 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
1319 für das erforderliche Zeichen.  Nullen zu Beginn können ausgelassen werden,
1320 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
1321 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
1322 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.)
1323
1324 Mit @code{\char ##x03BE} und @code{\char #958} wird
1325 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
1326 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
1327
1328 Alle existierenden
1329 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
1330 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
1331 gespeichert werden.  Es muss natürlich auch noch eine Schriftart auf
1332 dem System installiert sein, die die notierten Zeichen darstellen kann.
1333
1334 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
1335 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
1336 im Gesangstext und als normaler Text außerhalb der Partitur.
1337
1338 @lilypond[quote,verbatim]
1339 \score {
1340   \relative c'' {
1341     c1 \mark \markup { \char ##x03EE }
1342     c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
1343   }
1344   \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
1345 }
1346 \markup { "Copyright 2008--2009" \char ##x00A9 }
1347 @end lilypond
1348
1349 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
1350
1351 @example
1352 \header @{
1353   copyright = \markup @{ \char ##x00A9 "2008" @}
1354 @}
1355 @end example
1356
1357
1358 @node LilyPond-Notation anzeigen
1359 @subsection LilyPond-Notation anzeigen
1360 @translationof Displaying LilyPond notation
1361
1362 @funindex \displayLilyMusic
1363
1364 Ein musikalischer Ausdruck in LilyPond-Notation kann mit der Funktion
1365 @code{\displayMusic} angezeigt werden.  Der Code
1366
1367 @example
1368 @{
1369   \displayLilyMusic \transpose c a, @{ c e g a bes @}
1370 @}
1371 @end example
1372
1373 @noindent
1374 etwa wird ausgeben:
1375
1376 @example
1377 @{ a, cis e fis g @}
1378 @end example
1379
1380 Normalerweise werden diese Zeilen zusammen mit allen anderen
1381 Nachrichten auf der Kommandozeile ausgegeben.  Um sie separat zu
1382 speichern und das Ergebnis von @code{\displayMusic} weiterzubenutzen,
1383 kann die Ausgabe mit folgendem Befehl in eine Datei umgeleitet werden:
1384
1385 @c TODO What happens under Windows?
1386
1387 @example
1388 lilypond file.ly >display.txt
1389 @end example
1390
1391
1392
1393 @node Ausgabe kontrollieren
1394 @section Ausgabe kontrollieren
1395 @translationof Controlling output
1396
1397 @menu
1398 * Notationsfragmente extrahieren::
1399 * Korrigierte Musik überspringen::
1400 @end menu
1401
1402
1403 @node Notationsfragmente extrahieren
1404 @subsection Notationsfragmente extrahieren
1405 @translationof Extracting fragments of music
1406
1407 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
1408 Quelldatei zu erzeugen.  Das kann damit verglichen werden, dass man
1409 mit der Schere bestimmte Regionen ausschneidet.
1410
1411 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
1412 (engl. to clip = ausschneiden), extra definiert.  Mit folgender
1413 Defintion beispielsweise
1414
1415 @verbatim
1416 \layout {
1417   clip-regions
1418   = #(list
1419       (cons
1420        (make-rhythmic-location 5 1 2)
1421        (make-rhythmic-location 7 3 4)))
1422 }
1423 @end verbatim
1424
1425 @noindent
1426 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
1427 beginnt und im siebten Takt endet.  Die Bedeutung von @code{5 1 2} ist:
1428 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
1429 in Takt 7.
1430
1431 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
1432 werden, indem mehrere derartige Paare definiert werden.
1433
1434 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
1435 Parameter @code{-dclip-systems} aufgerufen werden.  Die Schnipsel
1436 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
1437 diese Formate auch als Parameter angegeben werden.
1438
1439 Zu mehr Information über Ausgabeformate siehe @rprogram{lilypond aufrufen}.
1440
1441
1442 @node Korrigierte Musik überspringen
1443 @subsection Korrigierte Musik überspringen
1444 @translationof Skipping corrected music
1445
1446
1447 @funindex skipTypesetting
1448 @funindex showFirstLength
1449 @funindex showLastLength
1450
1451 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
1452 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
1453 Korrektur.  Um die Korrektur zu beschleunigen, kann eingestellt werden,
1454 dass nur die letzten paar Takte angezeigt werden.  Das erreicht man
1455 mit dem Befehl
1456
1457 @verbatim
1458 showLastLength = R1*5
1459 \score { ... }
1460 @end verbatim
1461
1462 @noindent
1463 in der Quelldatei.  Damit werden nur die letzten fünf Takte (in einem
1464 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt.  Besonders
1465 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
1466 kleinen Teil des Stückes zu setzen als die gesamte Länge.  Wenn man
1467 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
1468 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
1469 nützlich sein.
1470
1471 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
1472 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
1473 werden.  Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
1474 wird kein Notensatz ausgegeben.
1475
1476 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
1477 kontrollieren.  Hiermit werden alle Ereignisse, auch Tempo- und
1478 Instrumentenwechsel ausgelassen.  Man muss also sehr genau darauf
1479 achten, dass nichts unerwartetes geschieht.
1480
1481 @lilypond[quote,fragment,ragged-right,verbatim]
1482 \relative c'' {
1483   c8 d
1484   \set Score.skipTypesetting = ##t
1485   e e e e e e e e
1486   \set Score.skipTypesetting = ##f
1487   c d b bes a g c2 }
1488 @end lilypond
1489
1490 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
1491 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
1492 Übersetzung der Datei gespart wird.
1493
1494
1495 @node MIDI-Ausgabe
1496 @section MIDI-Ausgabe
1497 @translationof MIDI output
1498
1499 @cindex Klang
1500 @cindex MIDI
1501
1502 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
1503 Kontrolle und Interaktion mit digitalen Instrumenten.  Eine
1504 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
1505 Bändern/Stimmen.  Es ist keine eigentliche Klangdatei, denn man
1506 benötigt spezielle Programme die die Notenereignisse in Klang
1507 umwandeln können.
1508
1509 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
1510 man sich anhören kann, was man notiert hat.  Das hilft oft sehr gut
1511 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
1512 lassen sich meist sehr gut hören.
1513
1514 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und einen für
1515 globale Einstellungen.  Darum sollte die Quelldatei für eine MIDI-Datei
1516 nicht mehr als 15 Systeme (oder 14 wenn kein Schlagzeug benützt wird)
1517 besitzen.  Jedes weitere System bleibt stumm.
1518
1519
1520 @menu
1521 * MIDI-Dateien erstellen::
1522 * Der MIDI-Block::
1523 * Was geht in die MIDI-Ausgabe::
1524 * Wiederholungen im MIDI::
1525 * MIDI-Lautstärke kontrollieren::
1526 * Schlagzeug in MIDI::
1527 @end menu
1528
1529
1530 @node MIDI-Dateien erstellen
1531 @subsection MIDI-Dateien erstellen
1532 @translationof Creating MIDI files
1533
1534 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
1535 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
1536 werden, etwa so:
1537
1538 @example
1539 \score @{
1540   @var{...Noten...}
1541   \midi @{ @}
1542 @}
1543 @end example
1544
1545 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
1546 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
1547 Wenn auch die Notation gewünscht ist, muss zusätzlich die
1548 @code{\layout}-Umgebung vorhanden sein:
1549
1550 @example
1551 \score @{
1552   @var{...music...}
1553   \midi @{ @}
1554   \layout @{ @}
1555 @}
1556 @end example
1557
1558 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
1559 korrekt in das MIDI-Format übersetzt.  Dynamikzeichen, Crescendo und
1560 Decrescendo werden in den MIDI-Lautstärkekanal übertragen.  Dynamikzeichen
1561 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
1562 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
1563 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
1564 werden.  Siehe hierzu @ref{Der MIDI-Block}.
1565
1566 Das Anfangstempo und spätere Tempoänderungen können mit dem
1567 @code{\tempo}-Befehl innerhalb der Notation notiert werden.  Er
1568 bewirkt Tempoänderungen auch in der MIDI-Datei.  Der Befehl setzt
1569 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
1570 auch unterdrückt werden kann, siehe @ref{Metronomangabe}.  Eine
1571 andere möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
1572 unten gezeigt, siehe @ref{Der MIDI-Block}.
1573
1574 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
1575 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
1576 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
1577 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
1578 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
1579 oder @code{\score}-Blocks einfügen:
1580
1581 @example
1582 #(ly:set-option 'midi-extension "midi")
1583 @end example
1584
1585 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
1586
1587 Als Alternative kann man diese Option auch als Kommandozeilenparameter
1588 übergeben:
1589
1590 @example
1591 lilypond … -dmidi-extension=midi lilyDatei.ly
1592 @end example
1593
1594 @unnumberedsubsubsec Instrumentenbezeichnungn
1595
1596 @cindex Instrumentbezeichnungen
1597
1598 @funindex Staff.midiInstrument
1599
1600 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
1601 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
1602 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
1603 Die Bezeichnungen sind aufgelistet in @ref{MIDI-Instrumente} und müssen
1604 in der dort definierten Schreibweise notiert werden.
1605
1606 @example
1607 \new Staff @{
1608   \set Staff.midiInstrument = #"glockenspiel"
1609   @var{...Noten...}
1610 @}
1611 @end example
1612
1613 @example
1614 \new Staff \with @{midiInstrument = #"cello"@} @{
1615   @var{...Noten...}
1616 @}
1617 @end example
1618
1619 Wenn die Schreibweise nicht genau einem definierten Instrument aus
1620 der Liste entpsricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
1621
1622 @snippets
1623
1624 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1625 {changing-midi-output-to-one-channel-per-voice.ly}
1626
1627 @knownissues
1628
1629 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
1630 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
1631 nicht geändert werden kann.
1632
1633 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
1634 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
1635 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
1636
1637
1638 @node Der MIDI-Block
1639 @subsection Der MIDI-Block
1640 @translationof MIDI block
1641
1642 @cindex MIDI-Umgebung
1643
1644 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
1645 vorkommen, wenn MIDI-Ausgabe gewünscht ist.  Sie entspricht der
1646 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut.  Oft wird
1647 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
1648 Kontexte umgeändert werden, neue Kontexte definiert werden oder
1649 neue Werte definiert werden.  Das folgende Beispiel etwa definiert
1650 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
1651 gesetzt wird:
1652
1653 @example
1654 \score @{
1655   @var{...Noten...}
1656   \midi @{
1657     \context @{
1658       \Score
1659       tempoWholesPerMinute = #(ly:make-moment 72 4)
1660     @}
1661   @}
1662 @}
1663 @end example
1664
1665 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert.  Wenn
1666 das Tempo auf diese Weise definiert wird, kann keine punktierte
1667 Note als Einheit angegeben werden.  Wenn sie benötigt wird, muss
1668 man sie in kleinere Einheiten auflösen.  Ein Tempo von 90 punktierten
1669 Viertelnoten pro Minute kann beispielsweise dargestellt werden
1670 als 270 Achtelnoten pro Minute:
1671
1672 @example
1673 tempoWholesPerMinute = #(ly:make-moment 270 8)
1674 @end example
1675
1676 @cindex MIDI-Kontextdefinitionen
1677
1678 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
1679 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
1680 wird.  Klangübersetzungsmodule werden @code{performer}
1681 genannt.  Die Kontexte für die MIDI-Ausgabe sind in der
1682 Datei @file{../ly/@/performer@/-init@/.ly} definiert, siehe
1683 @rlearning{Mehr Information}.  Um beispielsweise
1684 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
1685 entfernen, müssen folgende Zeilen eingefügt werden:
1686
1687 @example
1688 \midi @{
1689   ...
1690   \context @{
1691     \Voice
1692     \remove "Dynamic_performer"
1693   @}
1694 @}
1695 @end example
1696
1697 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
1698 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
1699 @code{\score} beginnt.  Wenn eine Partitur explizit etwa mit
1700 @code{\new Score} begonnen wird, und sich die MIDI-Umgebung hierin
1701 befindet, wird keine Ausgabe produziert.  Eine Lösung ist es, sowohl
1702 die @code{\new Score}- als auch die @code{\midi}-Umgebungen in eine
1703 @code{\score}-Umgebung einzuschließen.
1704
1705 @example
1706 \score @{
1707   \new Score @{ @dots{}Noten@dots{} @}
1708   \midi @{ @}
1709 @}
1710 @end example
1711
1712
1713 @node Was geht in die MIDI-Ausgabe
1714 @subsection Was geht in die MIDI-Ausgabe
1715 @translationof What goes into the MIDI output?
1716
1717
1718 @unnumberedsubsubsec In MIDI unterstützt
1719
1720 @cindex Tonhöhen in MIDI
1721 @cindex MIDI, Tonhöhen
1722 @cindex Vierteltöne in MIDI
1723 @cindex MIDI, Vierteltöne
1724 @cindex Mikrotöne in MIDI
1725 @cindex MIDI, Mikrotöne
1726 @cindex Akkordsymbole in MIDI
1727 @cindex MIDI, Akkordsymbole
1728 @cindex Rhythmen in MIDI
1729 @cindex MIDI, Rhythmen
1730
1731 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
1732
1733 @itemize
1734 @item Tonhöhen
1735 @item Mikrotöne (siehe @ref{Versetzungszeichen}. Für die Ausgabe wird ein
1736 Spieler benötigt, der Tonhöhen verändern kann.)
1737 @item Akkorde, die als Symbole notiert werden
1738 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
1739 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
1740 @item Überbindungen
1741 @item Dynamikzeichen
1742 @item Crescendi, decrescendi zu mehreren Noten
1743 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
1744 @item Gesangstext
1745 @end itemize
1746
1747
1748 @unnumberedsubsubsec In MIDI nicht unterstützt
1749
1750 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbeozogen:
1751
1752 @itemize
1753 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
1754 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
1755 @item Staccato und andere Artikultationen und Ornamente
1756 @item Legato- und Phrasierungsbögen
1757 @item Crescendi, decrescendi zu einer einzelnen Note
1758 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
1759 @item Bezifferter Bass
1760 @item Akkorde mit Mikrotönen
1761 @end itemize
1762
1763
1764 @node Wiederholungen im MIDI
1765 @subsection Wiederholungen im MIDI
1766 @translationof Repeats in MIDI
1767
1768 @cindex Wiederholungen in MIDI
1769 @cindex MIDI und Wiederholungen
1770
1771 @funindex \unfoldRepeats
1772
1773 Mit einigen Veränderungungen im Notentext können alle Wiederholungstypen
1774 auch in der MIDI-Ausgabe wiedergegeben werden.  Das wird erreicht, indem
1775 die @code{\unfoldRepeats}-Funktion eingesetzt wird.  Diese Funktion
1776 verändert alle Wiederholungen in ausgeschriebene Noten.
1777
1778 @lilypond[quote,verbatim]
1779 \unfoldRepeats {
1780   \repeat tremolo 8 {c'32 e' }
1781   \repeat percent 2 { c''8 d'' }
1782   \repeat volta 2 {c'4 d' e' f'}
1783   \alternative {
1784     { g' a' a' g' }
1785     {f' e' d' c' }
1786   }
1787 }
1788 \bar "|."
1789 @end lilypond
1790
1791 Wenn eine Partitur mit diesem Befehl erstellt wird, ist er notwendig,
1792 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
1793 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
1794 in der anderen werden die Wiederholungen notiert und als Partitur
1795 gesetzt.  Das Beispiel gibt einen Hinweis, wie eine derartige Datei
1796 aussehen kann:
1797
1798 @example
1799 \score @{
1800   @var{..music..}
1801   \layout @{ .. @}
1802 @}
1803 \score @{
1804   \unfoldRepeats @var{..music..}
1805   \midi @{ .. @}
1806 @}
1807 @end example
1808
1809
1810 @node MIDI-Lautstärke kontrollieren
1811 @subsection MIDI-Lautstärke kontrollieren
1812 @translationof Controlling MIDI dynamics
1813
1814 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
1815 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
1816 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
1817 als auch relative Lautstärken von Dynamikanweisungen und auch
1818 relative Lautstärke von einzelnen Instrumenten einzustellen.
1819
1820
1821 @unnumberedsubsubsec Dynamik-Zeichen
1822
1823
1824 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
1825 zur Verfügung stehenden MIDI-Lautstärke notiert.  Die Standardbrüche
1826 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
1827 @notation{fffff}.  Diese Anweisung befinden sich in der Datei
1828 @file{../scm/midi.scm}, siehe auch @rlearning{Mehr Information}.
1829 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
1830 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
1831 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
1832 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
1833 gesetzt werden.
1834
1835 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
1836 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann.  Gleiches gilt
1837 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
1838 nicht enthalten sind.  Die Scheme-Funktion, die hier definiert wird,
1839 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
1840 Standardanweisungen auf:
1841
1842 @lilypond[verbatim,quote]
1843 #(define (myDynamics dynamic)
1844     (if (equal? dynamic "rfz")
1845       0.9
1846       (default-dynamic-absolute-volume dynamic)))
1847
1848 \score {
1849   \new Staff {
1850     \set Staff.midiInstrument = #"cello"
1851     \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
1852     \new Voice {
1853        \relative c'' {
1854          a\pp b c-\rfz
1855        }
1856     }
1857   }
1858   \layout {}
1859   \midi {}
1860 }
1861 @end lilypond
1862
1863 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
1864 umdefiniert werden soll, ist es besser, die
1865 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
1866 @file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
1867 zu benutzen.  Das letzte Beispiel dieses Abschnittes zeigt, wie das
1868 gemacht werden kann.
1869
1870
1871 @unnumberedsubsubsec MIDI-Lautstärke
1872
1873 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1874 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
1875 unde @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
1876 werden.  Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
1877 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
1878 wenn diese Einstellung von Anfang an Wirkung zeigen soll.  Der Bruch,
1879 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
1880 Formel
1881
1882 @example
1883 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
1884 @end example
1885
1886 @noindent
1887 errechnet.  Im folgenden Beispiel wird die generelle MIDI-Lautstärke
1888 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
1889
1890 @lilypond[verbatim,quote]
1891 \score {
1892   <<
1893     \new Staff {
1894       \key g \major
1895       \time 2/2
1896       \set Staff.midiInstrument = #"flute"
1897       \new Voice \relative c''' {
1898         r2 g\mp g fis ~
1899         fis4 g8 fis e2 ~
1900         e4 d8 cis d2
1901       }
1902     }
1903     \new Staff {
1904       \key g \major
1905       \set Staff.midiInstrument = #"clarinet"
1906       \new Voice \relative c'' {
1907         b1\p a2. b8 a
1908         g2. fis8 e
1909         fis2 r
1910       }
1911     }
1912   >>
1913   \layout { }
1914   \midi {
1915     \context {
1916       \Score
1917       tempoWholesPerMinute = #(ly:make-moment 72 2)
1918       midiMinimumVolume = #0.2
1919       midiMaximumVolume = #0.5
1920     }
1921   }
1922 }
1923 @end lilypond
1924
1925
1926 @unnumberedsubsubsec Verschiedene Instrumente angleichen (i)
1927
1928 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
1929 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
1930 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
1931 werden.  Damit kann man die Qualität der MIDI-Datei
1932 merklich verbessern.
1933
1934 In diesem Beispiel wird die Lautstärke der Klarinette relativ
1935 zur Lautstärke der Flöte verringert.  In jeder Stimme muss
1936 eine Dynamikanweisung für die erste Note gesetzt werden, damit
1937 diese Einstellung korrekt funktioniert.
1938
1939 @lilypond[verbatim,quote]
1940 \score {
1941   <<
1942     \new Staff {
1943       \key g \major
1944       \time 2/2
1945       \set Staff.midiInstrument = #"flute"
1946       \set Staff.midiMinimumVolume = #0.7
1947       \set Staff.midiMaximumVolume = #0.9
1948       \new Voice \relative c''' {
1949         r2 g\mp g fis ~
1950         fis4 g8 fis e2 ~
1951         e4 d8 cis d2
1952       }
1953     }
1954     \new Staff {
1955       \key g \major
1956       \set Staff.midiInstrument = #"clarinet"
1957       \set Staff.midiMinimumVolume = #0.3
1958       \set Staff.midiMaximumVolume = #0.6
1959       \new Voice \relative c'' {
1960         b1\p a2. b8 a
1961         g2. fis8 e
1962         fis2 r
1963       }
1964     }
1965   >>
1966   \layout { }
1967   \midi {
1968     \context {
1969       \Score
1970       tempoWholesPerMinute = #(ly:make-moment 72 2)
1971     }
1972   }
1973 }
1974 @end lilypond
1975
1976
1977 @unnumberedsubsubsec Verschidene Instrumente angleichen (ii)
1978
1979 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1980 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
1981 Anpassungen für die Lautstärken bestimmter Instrumente vor.
1982 Diese Instrumente und ihre entsprechende Veränderung lassen
1983 sich aus der Tabelle @notation{instrument-equalizer-alist}
1984 in der Datei @file{../scm/midi.scm} entnehmen.
1985
1986 Dieser grundlegende Equalizer kann ersetzt werden, indem die
1987 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
1988 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
1989 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
1990 den Höchst- und Mindestwert für die Lautstärke des entpsrechenden
1991 Instruments darstellt.  Die Ersetzung der Standardfunktion wird
1992 auf gleiche Weise vorgenommen, wie es schon für die
1993 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
1994 gezeigt wurde.  Der Standard-Equalizer,
1995 @notation{default-instrument-equalizer} in der Datei
1996 @file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
1997 kann.
1998
1999 Das folgende Beispiel definiert für die Flöte und Klarinette relative
2000 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
2001
2002 @lilypond[verbatim,quote]
2003 #(define my-instrument-equalizer-alist '())
2004
2005 #(set! my-instrument-equalizer-alist
2006   (append
2007     '(
2008       ("flute" . (0.7 . 0.9))
2009       ("clarinet" . (0.3 . 0.6)))
2010     my-instrument-equalizer-alist))
2011
2012 #(define (my-instrument-equalizer s)
2013   (let ((entry (assoc s my-instrument-equalizer-alist)))
2014     (if entry
2015       (cdr entry))))
2016
2017 \score {
2018   <<
2019     \new Staff {
2020       \key g \major
2021       \time 2/2
2022       \set Score.instrumentEqualizer = #my-instrument-equalizer
2023       \set Staff.midiInstrument = #"flute"
2024       \new Voice \relative c''' {
2025         r2 g\mp g fis ~
2026         fis4 g8 fis e2 ~
2027         e4 d8 cis d2
2028       }
2029     }
2030     \new Staff {
2031       \key g \major
2032       \set Staff.midiInstrument = #"clarinet"
2033       \new Voice \relative c'' {
2034         b1\p a2. b8 a
2035         g2. fis8 e
2036         fis2 r
2037       }
2038     }
2039   >>
2040   \layout { }
2041   \midi {
2042     \context {
2043       \Score
2044       tempoWholesPerMinute = #(ly:make-moment 72 2)
2045     }
2046   }
2047 }
2048 @end lilypond
2049
2050
2051
2052 @node Schlagzeug in MIDI
2053 @subsection Schlagzeug in MIDI
2054 @translationof Percussion in MIDI
2055
2056 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2057 notiert.  Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2058 ausgegeben.  Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2059 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2060 in einem @code{Staff}-Kontext notiert.  Nur so lässt sich auch hier
2061 eine richtige MIDI-Ausgabe erreichen.
2062
2063 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2064 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2065 einem normalen @code{Staff}-Kontext notiert werden.  Es handelt sich
2066 um @code{melodic tom, taiko drum, synth drum} usw.
2067
2068 Viele Schlagzeuginstrumnete sind nicht in den MIDI-Standard aufgenommen,
2069 z. B. Kastagnetten.  Die einfachste Methode, derartige Instrumente
2070 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2071 kommt.
2072
2073
2074 @knownissues
2075
2076 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2077 Schlagstock (sidestick) für diesen Zweck eingesetzt.