]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/notation/input.itely
Merge branch 'lilypond/translation' of ssh://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ängt auf
731             Seite \page-ref #'ErstePartitur "0" "?" an.}
732   \markup { Zeichen A befindet sich auf Seite
733             \concat { \page-ref #'ZeichenA "0" "?" . } }
734 }
735 @end lilypond
736
737 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
738
739 @enumerate
740
741 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
742 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
743 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekann ist.
744 @end enumerate
745
746 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
747 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
748 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
749 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
750 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
751 schon vorher bekannt sein.  Die Größe wird mithilfe des Platzhalters
752 bestimmt.  Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
753 "00" schreiben, also eine zweistellige Zahl.
754
755 @code{\label}
756 @code{\page-ref}
757
758 @predefined
759 @funindex \label,
760 @funindex \page-ref.
761 @endpredefined
762
763
764 @node Inhaltsverzeichnis
765 @subsection Inhaltsverzeichnis
766 @translationof Table of contents
767
768 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
769 @code{\markuplines \table-of-contents}.  Die Elemente, die im
770 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
771 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
772 Ebene als auch in einem musikalischen Ausdruck verwendet werden
773 kann.
774
775 @verbatim
776 \markuplines \table-of-contents
777 \pageBreak
778
779 \tocItem \markup "Erste Partitur"
780 \score {
781   {
782     c'  % ...
783     \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
784     d'  % ...
785   }
786 }
787
788 \tocItem \markup "zweite Partitur"
789 \score {
790   {
791     e' % ...
792   }
793 }
794 @end verbatim
795
796 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
797 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
798 Die Standardformatierungselemente sind @code{tocTitleMarkup}
799 um die Überschrift zu formatieren und @code{tocItemMarkup} um
800 die einzelnen Inhaltselemente zu formatieren, bestehend aus
801 dem Titelelement und einer Seitenzahl.  Die Variablen können
802 durch den Benutzer geändert werden:
803
804 @verbatim
805 \paper {
806   %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
807   tocTitleMarkup = \markup \huge \column {
808     \fill-line { \null "Table des matières" \null }
809     \hspace #1
810   }
811   %% hier größere Schriftarten
812   tocItemMarkup = \markup \large \fill-line {
813     \fromproperty #'toc:text \fromproperty #'toc:page
814   }
815 }
816 @end verbatim
817
818 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
819 in der Definition von @code{tocItemMarkup} aufgerufen mit
820 @code{#'toc:text} und @code{#'toc:page}.
821
822 Neue Befehle und Beschriftungen können auch definiert werden,
823 um eigene Inhaltsverzeichnisse zu gestalten:
824
825 @itemize
826
827 @item zuerst muss eine neue Beschriftungsvariable in der
828 @code{\paper}-Umgebung definiert werden
829
830 @item dann muss die musikalische Funktion definiert werden, die
831 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
832 Variable benutzt wird.
833
834 @end itemize
835
836 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
837 einer Oper in das Inhaltsverzeichnis aufzunehmen:
838
839 @verbatim
840 \paper {
841   tocActMarkup = \markup \large \column {
842     \hspace #1
843     \fill-line { \null \italic \fromproperty #'toc:text \null }
844     \hspace #1
845   }
846 }
847
848 tocAct =
849 #(define-music-function (parser location text) (markup?)
850    (add-toc-item! 'tocActMarkup text))
851 @end verbatim
852
853 @lilypond[line-width=11.0\cm]
854 \header { tagline = ##f }
855 \paper {
856   tocActMarkup = \markup \large \column {
857     \hspace #1
858     \fill-line { \null \italic \fromproperty #'toc:text \null }
859     \hspace #1
860   }
861 }
862
863 tocAct =
864 #(define-music-function (parser location text) (markup?)
865    (add-toc-item! 'tocActMarkup text))
866
867 \book {
868   \markuplines \table-of-contents
869   \tocAct \markup { Atto Primo }
870   \tocItem \markup { Coro. Viva il nostro Alcide }
871   \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
872   \tocAct \markup { Atto Secondo }
873   \tocItem \markup { Sinfonia }
874   \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
875   \markup \null
876 }
877 @end lilypond
878
879
880 @seealso
881 Installierte Dateien: @file{../ly/@/toc@/-init@/.ly}.
882
883 @funindex \table-of-contents
884 @funindex \tocItem
885
886 @predefined
887 @code{\table-of-contents},
888 @code{\tocItem}.
889 @endpredefined
890
891
892 @node Arbeiten an Eingabe-Dateien
893 @section Arbeiten an Eingabe-Dateien
894 @translationof Working with input files
895
896 @menu
897 * LilyPond-Dateien einfügen::
898 * Verschiedene Editionen aus einer Quelldatei::
899 * Zeichenkodierung::
900 * LilyPond-Notation anzeigen::
901 @end menu
902
903
904 @node LilyPond-Dateien einfügen
905 @subsection LilyPond-Dateien einfügen
906 @translationof Including LilyPond files
907
908 @funindex \include
909 @cindex einfügen  von Dateien
910 @cindex Dateien einfügen
911
912 Ein größeres Projekt kann in einzelne Dateien aufteteilt werden.
913 Um eine andere Datei einzubinden, kann der Befehl
914
915 @example
916 \include "andereDatei.ly"
917 @end example
918
919 @noindent
920 benutzt werden.
921
922 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
923 also ob der Inhalt der Datei @code{andereDatei.ly} komplett in die
924 Hauptdatei eingefügt werden würde.  So kann man für ein größeres
925 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
926 und sie dann in einer Partitur-Datei benutzen.  Meistens werden
927 in den eingefügten Dateien einige Variablen definiert, die dann
928 auch in der Hauptdatei eingesetzt werden können.  Mit Marken (Tags)
929 gekennzeichnete Abschnitte können eingesetzt werden, um die
930 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
931 zur Verfügung zu stellen. Siehe auch @ref{Verschiedene Editionen aus einer Quelldatei}.
932
933 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
934 nach dem @code{\include}-Befehl verwiesen werden.  Dateien an anderen
935 Stellen können eingebunden werden, indem entweder ein vollständiger
936 Pfad oder ein relativer Pfad zu der Datei angegeben wird.  Hierbei
937 sollten die für UNIX typischen Schrägstriche (/) und nicht die
938 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
939 zu trennen.  Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
940 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
941 aussehen:
942
943 @example
944 \include "../kram.ly"
945 @end example
946
947 @noindent
948 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
949 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
950 aus:
951
952 @example
953 \include "stimmen/VI.ly"
954 \include "stimmen/VII.ly"
955 ... etc
956 @end example
957
958 Dateien, die eingebunden werden sollen, können selber auch wiederum
959 ein @code{\include} enthalten.  Diese Einbindung zweiter Ebene
960 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
961 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
962 sondern relativ zur Hauptdatei gesetzt werden müssen.  Dieses Verhalten
963 kann jedoch auch verändert werden, indem man lilypond die Option
964 @code{-drelative-includes} auf der Kommandozeile zuweist (oder indem
965 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
966 Beginn der Quelldatei schreibt).  Mit @code{relative-includes} wird
967 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
968 in der sich der Befehl befindet.  Dieses Verhalten wird empfohlen und wird
969 in zukünftigen Versionen von LilyPond den Standard darstellen.
970
971 Dateien können auch aus einem Verzeichnis eingebunden werden,
972 dass im Suchpfad von LilyPond liegt.  Hierzu muss auf der
973 Kommandozeile das entsprechende Verzeichnis angegeben werden
974 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
975 notiert sein.  Wenn etwa die Datei @file{Haupt.ly} kompiliert
976 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
977 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
978 befinden und dann LilyPond folgendermaßen aufrufen:
979
980 @example
981 lilypond --include=stimmen Haupt.ly
982 @end example
983
984 @noindent
985 In @file{Haupt.ly} steht:
986
987 @example
988 \include "VI.ly"
989 \include "VII.ly"
990 ... usw.
991 @end example
992
993 Dateien, die in vielen Partituren verwendet werden sollen, können
994 im LilyPond-Verzeichnis @file{../ly} gespeichert werden.  (Die
995 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
996 ab, siehe hierzu @rlearning{Mehr Information}).  Dateien
997 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
998 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
999
1000 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
1001 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
1002 können identifiziert werden, indem LilyPond auf der Komandozeile mit
1003 Option aufgerufen wird: @code{lilypond --verbose}.  Hiermit wird
1004 neben anderer Information auch eine Liste and Pfaden und Dateien
1005 aufgeführt, die LilyPond benutzt.  Die wichtigeren Dateien werden
1006 im Abschnitt @rlearning{Mehr Information} besprochen.
1007 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
1008 wenn eine neue LilyPond-Version installiert wird.
1009
1010 Eine einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
1011 sind dargestellt in
1012 @rlearning{Partituren und Stimmen}.
1013
1014 @seealso
1015 Handbuch zum Lernen:
1016 @rlearning{Mehr Information},
1017 @rlearning{Partituren und Stimmen}.
1018
1019 @knownissues
1020
1021 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
1022 dem Installationsverzeichnis von LilyPond entspricht, wird die
1023 installierte Datei anstelle der eigenen verwendet.
1024
1025
1026 @node Verschiedene Editionen aus einer Quelldatei
1027 @subsection Verschiedene Editionen aus einer Quelldatei
1028 @translationof Different editions from one source
1029
1030 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
1031 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
1032 Variablen werden am besten eingesetzt, wenn es darum geht, längere
1033 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
1034 verschiedene Weise zu kombinieren.  Tag-Marken dagegen werden am
1035 besten eingesetzt, wenn eine von mehreren kurzen alternativen
1036 Notenabschnitten ausgewählt werden soll.  Egal welche Methode am
1037 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
1038 die eigentlichen Noten und die Struktur der Paritur voneinander
1039 getrennt notiert werden -- so kann die Struktur geändert werden,
1040 ohne dass man Änderungen an den Noten vornehmen muss.
1041
1042 @menu
1043 * Variablen benutzen::
1044 * Marken benutzen::
1045 @end menu
1046
1047 @node Variablen benutzen
1048 @unnumberedsubsubsec Variablen benutzen
1049 @translationof Using variables
1050
1051 @cindex Variablen, Benutzung
1052
1053 Wenn Notenabschnitt in Variablen definiert werden, können sie
1054 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1055 siehe auch @rlearning{Stücke durch Bezeichner organisieren}.  Zum
1056 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1057 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1058 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1059 einmal notieren muss.  Noten aus zwei Variablen können auf einem
1060 System kombiniert werden, siehe @ref{Automatische Kombination von Stimmen}.
1061 Hier ein Beispiel:
1062
1063 @lilypond[verbatim,quote]
1064 sopranoMusic = \relative c'' { a4 b c b8( a)}
1065 altoMusic = \relative g' { e4 e e f }
1066 tenorMusic = \relative c' { c4 b e d8( c) }
1067 bassMusic = \relative c' { a4 gis a d, }
1068 allLyrics = \lyricmode {King of glo -- ry }
1069 <<
1070   \new Staff = "Soprano" \sopranoMusic
1071   \new Lyrics \allLyrics
1072   \new Staff = "Alto" \altoMusic
1073   \new Lyrics \allLyrics
1074   \new Staff = "Tenor" {
1075     \clef "treble_8"
1076     \tenorMusic
1077   }
1078   \new Lyrics \allLyrics
1079   \new Staff = "Bass" {
1080     \clef "bass"
1081     \bassMusic
1082   }
1083   \new Lyrics \allLyrics
1084   \new PianoStaff <<
1085     \new Staff = "RH" {
1086       \set Staff.printPartCombineTexts = ##f
1087       \partcombine
1088       \sopranoMusic
1089       \altoMusic
1090     }
1091     \new Staff = "LH" {
1092       \set Staff.printPartCombineTexts = ##f
1093       \clef "bass"
1094       \partcombine
1095       \tenorMusic
1096       \bassMusic
1097     }
1098   >>
1099 >>
1100 @end lilypond
1101
1102 Unterschiedliche Partituren, die entweder nur den Chor oder das
1103 Klavier zeigen, können produziert werden, indem die Struktur
1104 verändert wird; die Noten müssen dazu nicht verändert werden.
1105
1106 Für längere Partituren können Variablen in eigene Dateien notiert
1107 werden, die dann eingebunden werden, siehe @ref{LilyPond-Dateien einfügen}.
1108
1109
1110 @node Marken benutzen
1111 @unnumberedsubsubsec Marken benutzen
1112 @translationof Using tags
1113
1114 @cindex Tag
1115 @cindex Marke
1116 @cindex markierte Noten entfernen
1117 @cindex markierte Noten behalten
1118
1119 @funindex \tag
1120 @funindex \keepWithTag
1121 @funindex \removeWithTag
1122 @funindex tag
1123 @funindex keepWithTag
1124 @funindex removeWithTag
1125
1126 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1127 Ausdruck mit der Bezeichnung @var{TeilA}.  Ausdrücke, die auf diese
1128 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1129 bzw. ausgefiltert werden.  Das geschieht mit den Befehlen
1130 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1131 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1132 wie folgt:
1133
1134 @multitable @columnfractions .5 .5
1135
1136 @headitem Filter
1137   @tab Resultat
1138
1139 @item
1140 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1141   @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1142   gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1143
1144 @item
1145 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1146   @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1147   @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1148   werden nicht angezeigt.
1149
1150 @item
1151 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1152 @code{\removeWithTag}
1153   @tab Alle markierten und unmarkierten Noten werden angezeigt.
1154
1155 @end multitable
1156
1157 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1158 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1159 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1160 Ausdruck.
1161
1162 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1163 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1164
1165 @lilypond[verbatim,quote]
1166 music = \relative g' {
1167   g8. c32 d
1168   \tag #'trills {d8.\trill }
1169   \tag #'expand {\repeat unfold 3 {e32 d} }
1170   c32 d
1171  }
1172
1173 \score {
1174   \keepWithTag #'trills \music
1175 }
1176 \score {
1177   \keepWithTag #'expand \music
1178 }
1179 @end lilypond
1180
1181 @noindent
1182 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1183 erfordert manchmal weniger Schreibarbeit:
1184
1185 @lilypond[verbatim,quote]
1186 music = \relative g' {
1187   g8. c32 d
1188   \tag #'trills {d8.\trill }
1189   \tag #'expand {\repeat unfold 3 {e32 d} }
1190   c32 d
1191  }
1192
1193 \score {
1194   \removeWithTag #'expand
1195   \music
1196 }
1197 \score {
1198   \removeWithTag #'trills
1199   \music
1200 }
1201 @end lilypond
1202
1203 Marken können auch auf Artikulationen, Text usw angewendet werden,
1204 indem man ihnen
1205
1206 @example
1207 -\tag #'@var{your-tag}
1208 @end example
1209
1210 @noindent
1211 voranstellt (jedoch nach der Note, an die sie gebunden sind).  Mit
1212 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1213 Text ausgeben:
1214
1215 @example
1216 c1-\tag #'finger ^4
1217 c1-\tag #'warn ^"Achtung!"
1218 @end example
1219
1220 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1221 notiert werden:
1222
1223 @lilypond[quote,verbatim]
1224 music = \relative c'' {
1225   \tag #'a \tag #'both { a a a a }
1226   \tag #'b \tag #'both { b b b b }
1227 }
1228 <<
1229 \keepWithTag #'a \music
1230 \keepWithTag #'b \music
1231 \keepWithTag #'both \music
1232 >>
1233 @end lilypond
1234
1235 Mehrfache @code{\removeWithTag}-Filter können auf einen
1236 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1237 markierte Abschnitte aus dem Druckbild zu entfernen.
1238
1239 @lilypond[verbatim,quote]
1240 music = \relative c'' {
1241 \tag #'A { a a a a }
1242 \tag #'B { b b b b }
1243 \tag #'C { c c c c }
1244 \tag #'D { d d d d }
1245 }
1246 {
1247 \removeWithTag #'B
1248 \removeWithTag #'C
1249 \music
1250 }
1251 @end lilypond
1252
1253 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1254 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1255 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1256 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1257 eben genannten zusätzlich entfernt.
1258
1259
1260 @seealso
1261 Handbuch zum Lernen:
1262 @rlearning{Stücke durch Bezeichner organisieren}.
1263
1264 Notationsreferenz:
1265 @ref{Automatische Kombination von Stimmen},
1266 @ref{LilyPond-Dateien einfügen}.
1267
1268
1269 @ignore
1270 @c This warning is more general than this placement implies.
1271 @c Rests are not merged whether or not they come from tagged sections.
1272 @c Should be deleted?  -td
1273
1274 @knownissues
1275
1276 Multiple rests are not merged if you create a score with more
1277 than one tagged section at the same place.
1278
1279 @end ignore
1280
1281
1282 @node Zeichenkodierung
1283 @subsection Zeichenkodierung
1284 @translationof Text encoding
1285
1286 @cindex Unicode
1287 @cindex UTF-8
1288 @cindex Nicht-ASCII-Zeichen
1289
1290 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
1291 und ISO/IEC 10646 definiert sind.  Hiermit wird den Zeichen
1292 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
1293 Code-Punkt zugewiesen, mit dem sie identifizierbar sind.  Unicode
1294 kann mit mehreren Zeichenkodierungen verwirklicht werden.  LilyPond
1295 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
1296 in der die normalen Zeichen des lateinischen Alphabets mit einem
1297 Byte dargestellt werden, während alle anderen Zeichen zwischen
1298 zwei und vier Byte Länge haben.
1299
1300 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
1301 Schriftart (engl. font).  In einer Schriftartdatei werden die
1302 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
1303 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
1304 und komplexe Skripte korrekt zu setzen.
1305
1306 LilyPond verändert die Kodierung der Eingabedatei nicht.  Das heißt,
1307 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
1308 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
1309 musst.  Am einfachsten geht das, indem man einen Texteditor
1310 einsetzt, der mit Unicode-Zeichen umgehen kann.  Die meisten
1311 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
1312 wie etwa vim, Emacs, jEdit oder GEdit.  Alle MS Windows-Systeme
1313 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
1314 in UTF-8 lesen und speichern kann.  Ein Editor mit mehr
1315 Funktionen unter Windows ist BabelPad oder Notepad++.
1316
1317 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
1318 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
1319
1320 @example
1321 FT_Get_Glyph_Name () error: invalid argument
1322 @end example
1323
1324 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
1325
1326 @lilypond[quote]
1327 %c No verbatim here as the code does not display correctly in PDF
1328 % Cyrillic
1329 bulgarian = \lyricmode {
1330   Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
1331 }
1332
1333 % Hebrew
1334 hebrew = \lyricmode {
1335   זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
1336 }
1337
1338 % Portuguese
1339 portuguese = \lyricmode {
1340   à vo -- cê uma can -- ção legal
1341 }
1342
1343 \relative  {
1344   c2 d e f g f e
1345 }
1346 \addlyrics { \bulgarian }
1347 \addlyrics { \hebrew }
1348 \addlyrics { \portuguese }
1349 @end lilypond
1350
1351 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
1352 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
1353 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
1354 @code{\markup}-Umgebung benutzt werden.  Hierbei bedeutet @code{hhhh} die 
1355 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
1356 für das erforderliche Zeichen.  Nullen zu Beginn können ausgelassen werden,
1357 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
1358 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
1359 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.)
1360
1361 Mit @code{\char ##x03BE} und @code{\char #958} wird
1362 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
1363 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
1364
1365 Alle existierenden
1366 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
1367 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
1368 gespeichert werden.  Es muss natürlich auch noch eine Schriftart auf
1369 dem System installiert sein, die die notierten Zeichen darstellen kann.
1370
1371 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
1372 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
1373 im Gesangstext und als normaler Text außerhalb der Partitur.
1374
1375 @lilypond[quote,verbatim]
1376 \score {
1377   \relative c'' {
1378     c1 \mark \markup { \char ##x03EE }
1379     c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
1380   }
1381   \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } }
1382 }
1383 \markup { "Copyright 2008--2009" \char ##x00A9 }
1384 @end lilypond
1385
1386 @cindex Copyright-Zeichen
1387
1388 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
1389
1390 @example
1391 \header @{
1392   copyright = \markup @{ \char ##x00A9 "2008" @}
1393 @}
1394 @end example
1395
1396
1397 @node LilyPond-Notation anzeigen
1398 @subsection LilyPond-Notation anzeigen
1399 @translationof Displaying LilyPond notation
1400
1401 @funindex \displayLilyMusic
1402
1403 Ein musikalischer Ausdruck in LilyPond-Notation kann mit der Funktion
1404 @code{\displayMusic} angezeigt werden.  Der Code
1405
1406 @example
1407 @{
1408   \displayLilyMusic \transpose c a, @{ c e g a bes @}
1409 @}
1410 @end example
1411
1412 @noindent
1413 etwa wird ausgeben:
1414
1415 @example
1416 @{ a, cis e fis g @}
1417 @end example
1418
1419 Normalerweise werden diese Zeilen zusammen mit allen anderen
1420 Nachrichten auf der Kommandozeile ausgegeben.  Um sie separat zu
1421 speichern und das Ergebnis von @code{\displayMusic} weiterzubenutzen,
1422 kann die Ausgabe mit folgendem Befehl in eine Datei umgeleitet werden:
1423
1424 @c TODO What happens under Windows?
1425
1426 @example
1427 lilypond file.ly >display.txt
1428 @end example
1429
1430
1431
1432 @node Ausgabe kontrollieren
1433 @section Ausgabe kontrollieren
1434 @translationof Controlling output
1435
1436 @menu
1437 * Notationsfragmente extrahieren::
1438 * Korrigierte Musik überspringen::
1439 @end menu
1440
1441
1442 @node Notationsfragmente extrahieren
1443 @subsection Notationsfragmente extrahieren
1444 @translationof Extracting fragments of music
1445
1446 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
1447 Quelldatei zu erzeugen.  Das kann damit verglichen werden, dass man
1448 mit der Schere bestimmte Regionen ausschneidet.
1449
1450 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
1451 (engl. to clip = ausschneiden), extra definiert.  Mit folgender
1452 Defintion beispielsweise
1453
1454 @verbatim
1455 \layout {
1456   clip-regions
1457   = #(list
1458       (cons
1459        (make-rhythmic-location 5 1 2)
1460        (make-rhythmic-location 7 3 4)))
1461 }
1462 @end verbatim
1463
1464 @noindent
1465 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
1466 beginnt und im siebten Takt endet.  Die Bedeutung von @code{5 1 2} ist:
1467 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
1468 in Takt 7.
1469
1470 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
1471 werden, indem mehrere derartige Paare definiert werden.
1472
1473 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
1474 Parameter @code{-dclip-systems} aufgerufen werden.  Die Schnipsel
1475 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
1476 diese Formate auch als Parameter angegeben werden.
1477
1478 Zu mehr Information über Ausgabeformate siehe @rprogram{lilypond aufrufen}.
1479
1480
1481 @node Korrigierte Musik überspringen
1482 @subsection Korrigierte Musik überspringen
1483 @translationof Skipping corrected music
1484
1485
1486 @funindex skipTypesetting
1487 @funindex showFirstLength
1488 @funindex showLastLength
1489
1490 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
1491 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
1492 Korrektur.  Um die Korrektur zu beschleunigen, kann eingestellt werden,
1493 dass nur die letzten paar Takte angezeigt werden.  Das erreicht man
1494 mit dem Befehl
1495
1496 @verbatim
1497 showLastLength = R1*5
1498 \score { ... }
1499 @end verbatim
1500
1501 @noindent
1502 in der Quelldatei.  Damit werden nur die letzten fünf Takte (in einem
1503 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt.  Besonders
1504 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
1505 kleinen Teil des Stückes zu setzen als die gesamte Länge.  Wenn man
1506 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
1507 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
1508 nützlich sein.
1509
1510 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
1511 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
1512 werden.  Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
1513 wird kein Notensatz ausgegeben.
1514
1515 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
1516 kontrollieren.  Hiermit werden alle Ereignisse, auch Tempo- und
1517 Instrumentenwechsel ausgelassen.  Man muss also sehr genau darauf
1518 achten, dass nichts unerwartetes geschieht.
1519
1520 @lilypond[quote,fragment,ragged-right,verbatim]
1521 \relative c'' {
1522   c8 d
1523   \set Score.skipTypesetting = ##t
1524   e e e e e e e e
1525   \set Score.skipTypesetting = ##f
1526   c d b bes a g c2 }
1527 @end lilypond
1528
1529 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
1530 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
1531 Übersetzung der Datei gespart wird.
1532
1533
1534 @node MIDI-Ausgabe
1535 @section MIDI-Ausgabe
1536 @translationof MIDI output
1537
1538 @cindex Klang
1539 @cindex MIDI
1540
1541 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
1542 Kontrolle und Interaktion mit digitalen Instrumenten.  Eine
1543 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
1544 Bändern/Stimmen.  Es ist keine eigentliche Klangdatei, denn man
1545 benötigt spezielle Programme die die Notenereignisse in Klang
1546 umwandeln können.
1547
1548 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
1549 man sich anhören kann, was man notiert hat.  Das hilft oft sehr gut
1550 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
1551 lassen sich meist sehr gut hören.
1552
1553 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und einen für
1554 globale Einstellungen.  Darum sollte die Quelldatei für eine MIDI-Datei
1555 nicht mehr als 15 Systeme (oder 14 wenn kein Schlagzeug benützt wird)
1556 besitzen.  Jedes weitere System bleibt stumm.
1557
1558
1559 @menu
1560 * MIDI-Dateien erstellen::
1561 * Der MIDI-Block::
1562 * Was geht in die MIDI-Ausgabe::
1563 * Wiederholungen im MIDI::
1564 * MIDI-Lautstärke kontrollieren::
1565 * Schlagzeug in MIDI::
1566 @end menu
1567
1568
1569 @node MIDI-Dateien erstellen
1570 @subsection MIDI-Dateien erstellen
1571 @translationof Creating MIDI files
1572
1573 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
1574 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
1575 werden, etwa so:
1576
1577 @example
1578 \score @{
1579   @var{...Noten...}
1580   \midi @{ @}
1581 @}
1582 @end example
1583
1584 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
1585 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
1586 Wenn auch die Notation gewünscht ist, muss zusätzlich die
1587 @code{\layout}-Umgebung vorhanden sein:
1588
1589 @example
1590 \score @{
1591   @var{...music...}
1592   \midi @{ @}
1593   \layout @{ @}
1594 @}
1595 @end example
1596
1597 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
1598 korrekt in das MIDI-Format übersetzt.  Dynamikzeichen, Crescendo und
1599 Decrescendo werden in den MIDI-Lautstärkekanal übertragen.  Dynamikzeichen
1600 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
1601 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
1602 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
1603 werden.  Siehe hierzu @ref{Der MIDI-Block}.
1604
1605 Das Anfangstempo und spätere Tempoänderungen können mit dem
1606 @code{\tempo}-Befehl innerhalb der Notation notiert werden.  Er
1607 bewirkt Tempoänderungen auch in der MIDI-Datei.  Der Befehl setzt
1608 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
1609 auch unterdrückt werden kann, siehe @ref{Metronomangabe}.  Eine
1610 andere möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
1611 unten gezeigt, siehe @ref{Der MIDI-Block}.
1612
1613 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
1614 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
1615 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
1616 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
1617 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
1618 oder @code{\score}-Blocks einfügen:
1619
1620 @example
1621 #(ly:set-option 'midi-extension "midi")
1622 @end example
1623
1624 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
1625
1626 Als Alternative kann man diese Option auch als Kommandozeilenparameter
1627 übergeben:
1628
1629 @example
1630 lilypond … -dmidi-extension=midi lilyDatei.ly
1631 @end example
1632
1633 @unnumberedsubsubsec Instrumentenbezeichnungn
1634
1635 @cindex Instrumentbezeichnungen
1636
1637 @funindex Staff.midiInstrument
1638
1639 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
1640 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
1641 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
1642 Die Bezeichnungen sind aufgelistet in @ref{MIDI-Instrumente} und müssen
1643 in der dort definierten Schreibweise notiert werden.
1644
1645 @example
1646 \new Staff @{
1647   \set Staff.midiInstrument = #"glockenspiel"
1648   @var{...Noten...}
1649 @}
1650 @end example
1651
1652 @example
1653 \new Staff \with @{midiInstrument = #"cello"@} @{
1654   @var{...Noten...}
1655 @}
1656 @end example
1657
1658 Wenn die Schreibweise nicht genau einem definierten Instrument aus
1659 der Liste entpsricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
1660
1661 @snippets
1662
1663 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
1664 {changing-midi-output-to-one-channel-per-voice.ly}
1665
1666 @knownissues
1667
1668 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
1669 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
1670 nicht geändert werden kann.
1671
1672 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
1673 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
1674 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
1675
1676
1677 @node Der MIDI-Block
1678 @subsection Der MIDI-Block
1679 @translationof MIDI block
1680
1681 @cindex MIDI-Umgebung
1682
1683 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
1684 vorkommen, wenn MIDI-Ausgabe gewünscht ist.  Sie entspricht der
1685 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut.  Oft wird
1686 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
1687 Kontexte umgeändert werden, neue Kontexte definiert werden oder
1688 neue Werte definiert werden.  Das folgende Beispiel etwa definiert
1689 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
1690 gesetzt wird:
1691
1692 @example
1693 \score @{
1694   @var{...Noten...}
1695   \midi @{
1696     \context @{
1697       \Score
1698       tempoWholesPerMinute = #(ly:make-moment 72 4)
1699     @}
1700   @}
1701 @}
1702 @end example
1703
1704 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert.  Wenn
1705 das Tempo auf diese Weise definiert wird, kann keine punktierte
1706 Note als Einheit angegeben werden.  Wenn sie benötigt wird, muss
1707 man sie in kleinere Einheiten auflösen.  Ein Tempo von 90 punktierten
1708 Viertelnoten pro Minute kann beispielsweise dargestellt werden
1709 als 270 Achtelnoten pro Minute:
1710
1711 @example
1712 tempoWholesPerMinute = #(ly:make-moment 270 8)
1713 @end example
1714
1715 @cindex MIDI-Kontextdefinitionen
1716
1717 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
1718 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
1719 wird.  Klangübersetzungsmodule werden @code{performer}
1720 genannt.  Die Kontexte für die MIDI-Ausgabe sind in der
1721 Datei @file{../ly/@/performer@/-init@/.ly} definiert, siehe
1722 @rlearning{Mehr Information}.  Um beispielsweise
1723 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
1724 entfernen, müssen folgende Zeilen eingefügt werden:
1725
1726 @example
1727 \midi @{
1728   ...
1729   \context @{
1730     \Voice
1731     \remove "Dynamic_performer"
1732   @}
1733 @}
1734 @end example
1735
1736 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
1737 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
1738 @code{\score} beginnt.  Wenn eine Partitur explizit etwa mit
1739 @code{\new Score} begonnen wird, und sich die MIDI-Umgebung hierin
1740 befindet, wird keine Ausgabe produziert.  Eine Lösung ist es, sowohl
1741 die @code{\new Score}- als auch die @code{\midi}-Umgebungen in eine
1742 @code{\score}-Umgebung einzuschließen.
1743
1744 @example
1745 \score @{
1746   \new Score @{ @dots{}Noten@dots{} @}
1747   \midi @{ @}
1748 @}
1749 @end example
1750
1751
1752 @node Was geht in die MIDI-Ausgabe
1753 @subsection Was geht in die MIDI-Ausgabe
1754 @translationof What goes into the MIDI output?
1755
1756
1757 @unnumberedsubsubsec In MIDI unterstützt
1758
1759 @cindex Tonhöhen in MIDI
1760 @cindex MIDI, Tonhöhen
1761 @cindex Vierteltöne in MIDI
1762 @cindex MIDI, Vierteltöne
1763 @cindex Mikrotöne in MIDI
1764 @cindex MIDI, Mikrotöne
1765 @cindex Akkordsymbole in MIDI
1766 @cindex MIDI, Akkordsymbole
1767 @cindex Rhythmen in MIDI
1768 @cindex MIDI, Rhythmen
1769
1770 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
1771
1772 @itemize
1773 @item Tonhöhen
1774 @item Mikrotöne (siehe @ref{Versetzungszeichen}. Für die Ausgabe wird ein
1775 Spieler benötigt, der Tonhöhen verändern kann.)
1776 @item Akkorde, die als Symbole notiert werden
1777 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
1778 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
1779 @item Überbindungen
1780 @item Dynamikzeichen
1781 @item Crescendi, decrescendi zu mehreren Noten
1782 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
1783 @item Gesangstext
1784 @end itemize
1785
1786
1787 @unnumberedsubsubsec In MIDI nicht unterstützt
1788
1789 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbeozogen:
1790
1791 @itemize
1792 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
1793 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
1794 @item Staccato und andere Artikultationen und Ornamente
1795 @item Legato- und Phrasierungsbögen
1796 @item Crescendi, decrescendi zu einer einzelnen Note
1797 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
1798 @item Bezifferter Bass
1799 @item Akkorde mit Mikrotönen
1800 @end itemize
1801
1802
1803 @node Wiederholungen im MIDI
1804 @subsection Wiederholungen im MIDI
1805 @translationof Repeats in MIDI
1806
1807 @cindex Wiederholungen in MIDI
1808 @cindex MIDI und Wiederholungen
1809
1810 @funindex \unfoldRepeats
1811
1812 Mit einigen Veränderungungen im Notentext können alle Wiederholungstypen
1813 auch in der MIDI-Ausgabe wiedergegeben werden.  Das wird erreicht, indem
1814 die @code{\unfoldRepeats}-Funktion eingesetzt wird.  Diese Funktion
1815 verändert alle Wiederholungen in ausgeschriebene Noten.
1816
1817 @lilypond[quote,verbatim]
1818 \unfoldRepeats {
1819   \repeat tremolo 8 {c'32 e' }
1820   \repeat percent 2 { c''8 d'' }
1821   \repeat volta 2 {c'4 d' e' f'}
1822   \alternative {
1823     { g' a' a' g' }
1824     {f' e' d' c' }
1825   }
1826 }
1827 \bar "|."
1828 @end lilypond
1829
1830 Wenn eine Partitur mit diesem Befehl erstellt wird, ist er notwendig,
1831 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
1832 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
1833 in der anderen werden die Wiederholungen notiert und als Partitur
1834 gesetzt.  Das Beispiel gibt einen Hinweis, wie eine derartige Datei
1835 aussehen kann:
1836
1837 @example
1838 \score @{
1839   @var{..music..}
1840   \layout @{ .. @}
1841 @}
1842 \score @{
1843   \unfoldRepeats @var{..music..}
1844   \midi @{ .. @}
1845 @}
1846 @end example
1847
1848
1849 @node MIDI-Lautstärke kontrollieren
1850 @subsection MIDI-Lautstärke kontrollieren
1851 @translationof Controlling MIDI dynamics
1852
1853 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
1854 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
1855 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
1856 als auch relative Lautstärken von Dynamikanweisungen und auch
1857 relative Lautstärke von einzelnen Instrumenten einzustellen.
1858
1859
1860 @unnumberedsubsubsec Dynamik-Zeichen
1861
1862
1863 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
1864 zur Verfügung stehenden MIDI-Lautstärke notiert.  Die Standardbrüche
1865 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
1866 @notation{fffff}.  Diese Anweisung befinden sich in der Datei
1867 @file{../scm/midi.scm}, siehe auch @rlearning{Mehr Information}.
1868 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
1869 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
1870 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
1871 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
1872 gesetzt werden.
1873
1874 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
1875 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann.  Gleiches gilt
1876 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
1877 nicht enthalten sind.  Die Scheme-Funktion, die hier definiert wird,
1878 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
1879 Standardanweisungen auf:
1880
1881 @lilypond[verbatim,quote]
1882 #(define (myDynamics dynamic)
1883     (if (equal? dynamic "rfz")
1884       0.9
1885       (default-dynamic-absolute-volume dynamic)))
1886
1887 \score {
1888   \new Staff {
1889     \set Staff.midiInstrument = #"cello"
1890     \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
1891     \new Voice {
1892        \relative c'' {
1893          a\pp b c-\rfz
1894        }
1895     }
1896   }
1897   \layout {}
1898   \midi {}
1899 }
1900 @end lilypond
1901
1902 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
1903 umdefiniert werden soll, ist es besser, die
1904 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
1905 @file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
1906 zu benutzen.  Das letzte Beispiel dieses Abschnittes zeigt, wie das
1907 gemacht werden kann.
1908
1909
1910 @unnumberedsubsubsec MIDI-Lautstärke
1911
1912 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
1913 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
1914 unde @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
1915 werden.  Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
1916 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
1917 wenn diese Einstellung von Anfang an Wirkung zeigen soll.  Der Bruch,
1918 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
1919 Formel
1920
1921 @example
1922 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
1923 @end example
1924
1925 @noindent
1926 errechnet.  Im folgenden Beispiel wird die generelle MIDI-Lautstärke
1927 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
1928
1929 @lilypond[verbatim,quote]
1930 \score {
1931   <<
1932     \new Staff {
1933       \key g \major
1934       \time 2/2
1935       \set Staff.midiInstrument = #"flute"
1936       \new Voice \relative c''' {
1937         r2 g\mp g fis ~
1938         fis4 g8 fis e2 ~
1939         e4 d8 cis d2
1940       }
1941     }
1942     \new Staff {
1943       \key g \major
1944       \set Staff.midiInstrument = #"clarinet"
1945       \new Voice \relative c'' {
1946         b1\p a2. b8 a
1947         g2. fis8 e
1948         fis2 r
1949       }
1950     }
1951   >>
1952   \layout { }
1953   \midi {
1954     \context {
1955       \Score
1956       tempoWholesPerMinute = #(ly:make-moment 72 2)
1957       midiMinimumVolume = #0.2
1958       midiMaximumVolume = #0.5
1959     }
1960   }
1961 }
1962 @end lilypond
1963
1964
1965 @unnumberedsubsubsec Verschiedene Instrumente angleichen (i)
1966
1967 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
1968 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
1969 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
1970 werden.  Damit kann man die Qualität der MIDI-Datei
1971 merklich verbessern.
1972
1973 In diesem Beispiel wird die Lautstärke der Klarinette relativ
1974 zur Lautstärke der Flöte verringert.  In jeder Stimme muss
1975 eine Dynamikanweisung für die erste Note gesetzt werden, damit
1976 diese Einstellung korrekt funktioniert.
1977
1978 @lilypond[verbatim,quote]
1979 \score {
1980   <<
1981     \new Staff {
1982       \key g \major
1983       \time 2/2
1984       \set Staff.midiInstrument = #"flute"
1985       \set Staff.midiMinimumVolume = #0.7
1986       \set Staff.midiMaximumVolume = #0.9
1987       \new Voice \relative c''' {
1988         r2 g\mp g fis ~
1989         fis4 g8 fis e2 ~
1990         e4 d8 cis d2
1991       }
1992     }
1993     \new Staff {
1994       \key g \major
1995       \set Staff.midiInstrument = #"clarinet"
1996       \set Staff.midiMinimumVolume = #0.3
1997       \set Staff.midiMaximumVolume = #0.6
1998       \new Voice \relative c'' {
1999         b1\p a2. b8 a
2000         g2. fis8 e
2001         fis2 r
2002       }
2003     }
2004   >>
2005   \layout { }
2006   \midi {
2007     \context {
2008       \Score
2009       tempoWholesPerMinute = #(ly:make-moment 72 2)
2010     }
2011   }
2012 }
2013 @end lilypond
2014
2015
2016 @unnumberedsubsubsec Verschidene Instrumente angleichen (ii)
2017
2018 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2019 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
2020 Anpassungen für die Lautstärken bestimmter Instrumente vor.
2021 Diese Instrumente und ihre entsprechende Veränderung lassen
2022 sich aus der Tabelle @notation{instrument-equalizer-alist}
2023 in der Datei @file{../scm/midi.scm} entnehmen.
2024
2025 Dieser grundlegende Equalizer kann ersetzt werden, indem die
2026 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
2027 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
2028 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
2029 den Höchst- und Mindestwert für die Lautstärke des entpsrechenden
2030 Instruments darstellt.  Die Ersetzung der Standardfunktion wird
2031 auf gleiche Weise vorgenommen, wie es schon für die
2032 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
2033 gezeigt wurde.  Der Standard-Equalizer,
2034 @notation{default-instrument-equalizer} in der Datei
2035 @file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
2036 kann.
2037
2038 Das folgende Beispiel definiert für die Flöte und Klarinette relative
2039 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
2040
2041 @lilypond[verbatim,quote]
2042 #(define my-instrument-equalizer-alist '())
2043
2044 #(set! my-instrument-equalizer-alist
2045   (append
2046     '(
2047       ("flute" . (0.7 . 0.9))
2048       ("clarinet" . (0.3 . 0.6)))
2049     my-instrument-equalizer-alist))
2050
2051 #(define (my-instrument-equalizer s)
2052   (let ((entry (assoc s my-instrument-equalizer-alist)))
2053     (if entry
2054       (cdr entry))))
2055
2056 \score {
2057   <<
2058     \new Staff {
2059       \key g \major
2060       \time 2/2
2061       \set Score.instrumentEqualizer = #my-instrument-equalizer
2062       \set Staff.midiInstrument = #"flute"
2063       \new Voice \relative c''' {
2064         r2 g\mp g fis ~
2065         fis4 g8 fis e2 ~
2066         e4 d8 cis d2
2067       }
2068     }
2069     \new Staff {
2070       \key g \major
2071       \set Staff.midiInstrument = #"clarinet"
2072       \new Voice \relative c'' {
2073         b1\p a2. b8 a
2074         g2. fis8 e
2075         fis2 r
2076       }
2077     }
2078   >>
2079   \layout { }
2080   \midi {
2081     \context {
2082       \Score
2083       tempoWholesPerMinute = #(ly:make-moment 72 2)
2084     }
2085   }
2086 }
2087 @end lilypond
2088
2089
2090
2091 @node Schlagzeug in MIDI
2092 @subsection Schlagzeug in MIDI
2093 @translationof Percussion in MIDI
2094
2095 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2096 notiert.  Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2097 ausgegeben.  Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2098 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2099 in einem @code{Staff}-Kontext notiert.  Nur so lässt sich auch hier
2100 eine richtige MIDI-Ausgabe erreichen.
2101
2102 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2103 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2104 einem normalen @code{Staff}-Kontext notiert werden.  Es handelt sich
2105 um @code{melodic tom, taiko drum, synth drum} usw.
2106
2107 Viele Schlagzeuginstrumnete sind nicht in den MIDI-Standard aufgenommen,
2108 z. B. Kastagnetten.  Die einfachste Methode, derartige Instrumente
2109 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2110 kommt.
2111
2112
2113 @knownissues
2114
2115 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2116 Schlagstock (sidestick) für diesen Zweck eingesetzt.