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