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