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