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