]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/notation/input.itely
Doc-de: updates for notation manual
[lilypond.git] / Documentation / de / notation / input.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2
3 @ignore
4     Translation of GIT committish: c1df40da9f8b2794e173583c363f9e736e5531bd
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes.
9 @end ignore
10
11 @c \version "2.15.17"
12
13 @c Translators: Till Paala
14
15 @node Allgemeine Eingabe und Ausgabe
16 @chapter Allgemeine Eingabe und Ausgabe
17 @translationof General input and output
18
19 Dieses Kapitel erklärt allgemeine Fragen zur Eingabe und Ausgabe von
20 Notation mit LilyPond und weniger direkte Fragen der Notation.
21
22 @menu
23 * Eingabestruktur::
24 * Titel::
25 * Arbeiten an Eingabe-Dateien::
26 * Ausgabe kontrollieren::
27 * MIDI-Ausgabe::
28 * Musikalische Information extrahieren::
29 @end menu
30
31
32 @node Eingabestruktur
33 @section Eingabestruktur
34 @translationof Input structure
35
36 Das hauptsächliche Eingabeformat von LilyPond sind Textdateien.
37 Üblicherweise werden diese Dateien mit der Endung @file{.ly}
38 versehen.
39
40 @menu
41 * Struktur einer Partitur::
42 * Mehrere Partituren in einem Buch::
43 * Mehrere Ausgabedateien aus einer Eingabedatei::
44 * Dateinamen der Ausgabedateien::
45 * Die Dateistruktur::
46 @end menu
47
48
49 @node Struktur einer Partitur
50 @subsection Struktur einer Partitur
51 @translationof Structure of a score
52
53 @funindex \score
54
55 Eine @code{\score}-Umgebung muss einen einzelnen musikalischen
56 Ausdruck beinhalten, der durch geschweifte Klammern begrenzt wird:
57
58 @example
59 \score @{
60 ...
61 @}
62 @end example
63
64 @warning{Es darf @strong{nur ein} äußerer musikalischer Ausdruck
65 in der @code{\score}-Umgebung geschrieben werden, und er @strong{muss}
66 von geschweiften Klammern umgeben sein.}
67
68 Dieser einzelne musikalische Ausdruck kann beliebige Größe annehmen und
69 andere musikalische Ausdrücke von beliebiger Komplexität beinhalten.
70 Alle diese Beispiele sind musikalische Ausdrücke:
71
72 @example
73 @{ c'4 c' c' c' @}
74 @end example
75
76 @lilypond[verbatim,quote]
77 {
78   { c'4 c' c' c' }
79   { d'4 d' d' d' }
80 }
81 @end lilypond
82
83 @lilypond[verbatim,quote]
84 <<
85   \new Staff { c'4 c' c' c' }
86   \new Staff { d'4 d' d' d' }
87 >>
88 @end lilypond
89
90 @example
91 @{
92   \new GrandStaff <<
93     \new StaffGroup <<
94       \new Staff @{ \Flöte @}
95       \new Staff @{ \Oboe @}
96     >>
97     \new StaffGroup <<
98       \new Staff @{ \GeigeI @}
99       \new Staff @{ \GeigeII @}
100     >>
101   >>
102 @}
103 @end example
104
105 Kommentare bilden eine Ausnahme dieser Regel.  (Andere Ausnahmen
106 siehe @ref{Die Dateistruktur}.)  Sowohl einzeilige als auch
107 Blockkommentare (eingegrenzt durch @code{%@{ .. %@}}) können
108 an beliebiger Stelle einer Eingabedatei geschrieben werden.  Sie
109 können innerhalb oder außerhalb der @code{\score}-Umgebung vorkommen,
110 und innerhalb oder außerhalb des einzelnen musikalischen Ausdrucks
111 innerhalb der @code{\score}-Umgebung.
112
113 Denken Sie daran, dass auch eine Datei, die nur eine @code{\score}-Umgebung
114 enhält, implizit in eine @code{\book}-Umgebung eingeschlossen wird.  Eine
115 @code{\book}-Umgebung in einer Eingabdatei produziert wenigstens eine
116 Ausgabedatei, und standardmäßig wird der Name der Ausagabedatei aus dem
117 Namen der Eingabedatei abgeleitet.  @file{fandangoforelephants.ly} produziert
118 also @file{fandangoforelephants.pdf}.
119
120 Zu weiteren Einzelheiten zu @code{\book}-Umgebungen siehe
121 @ref{Mehrere Partituren in einem Buch},
122 @ref{Mehrere Ausgabedateien aus einer Eingabedatei} und
123 @ref{Die Dateistruktur}.
124
125
126 @seealso
127 Handbuch zum Lernen:
128 @rlearning{Arbeiten an Eingabe-Dateien},
129 @rlearning{Musikalische Ausdrücke erklärt},
130 @rlearning{Score ist ein (einziger)  zusammengesetzter musikalischer Ausdruck}.
131
132 Notationsreferenz:
133 @ref{Mehrere Partituren in einem Buch},
134 @ref{Mehrere Ausgabedateien aus einer Eingabedatei} und
135 @ref{Die Dateistruktur}.
136
137
138 @node Mehrere Partituren in einem Buch
139 @subsection Mehrere Partituren in einem Buch
140 @translationof Multiple scores in a book
141
142 @funindex \book
143 @cindex Sätze, mehrere
144
145 Eine Partitur kann mehrere musikalische Stücke und verschiedene
146 Texte beinhalten.  Beispiele hierzu sind etwa eine Etüdensammlung
147 oder ein Orchesterstück mit mehreren Sätzen.  Jeder Satz wird
148 in einer eigenen @code{\score}-Umgebung notiert:
149
150 @example
151 \score @{
152   @var{..Noten..}
153 @}
154 @end example
155
156 @noindent
157 und Texte werden mit einer @code{\markup}-Umgebung geschrieben:
158
159 @example
160 \markup @{
161   @var{..Text..}
162 @}
163 @end example
164
165 @funindex \book
166
167 Alle Sätze und Texte, die in derselben @file{.ly}-Datei vorkommen,
168 werden normalerweise in eine einzige Ausgabedatei gesetzt.
169
170 @example
171 \score @{
172   @var{..}
173 @}
174 \markup @{
175   @var{..}
176 @}
177 \score @{
178   @var{..}
179 @}
180 @end example
181
182 Eine wichtige Ausnahme stellen Dokumente dar,
183 die mit lilypond-book erstellt werden, für die Sie explizit
184 @code{\book}-Umgebungen notieren müssen, weil sonst nur die erste
185 @code{\score}- bzw. @code{\markup}-Umgebung angezeigt wird.
186
187 Der Kopfbereich für jedes Musikstück kann innerhalb der @code{\score}-Umgebung
188 definiert werden.  Die @code{piece}-(Stück)-Bezeichnung aus dieser
189 @code{\header}-Umgebung wird vor jedem Satz ausgegeben.  Die Überschrift für
190 ein ganzes Buch kann innerhalb von @code{\book} notiert werden, aber wenn
191 diese Umgebung fehlt, wird die @code{\header}-Umgebung genommen, die auf
192 erster Ebene der Datei notiert ist.
193
194 @example
195 \header @{
196   title = "Acht Miniaturen"
197   composer = "Igor Stravinsky"
198 @}
199 \score @{
200   @dots{}
201   \header @{ piece = "Romanze" @}
202 @}
203 \markup @{
204    ..Text der zweiten Strophe..
205 @}
206 \markup @{
207    ..Text der dritten Strophe..
208 @}
209 \score @{
210   @dots{}
211   \header @{ piece = "Menuetto" @}
212 @}
213 @end example
214
215 @funindex \bookpart
216
217 Stücke können innerhalb eines Buches mit @code{\bookpart} gruppiert
218 werden.  Derartige Buchabschnitte werden durch einen Seitenumbruch
219 voneinander getrennt und können wie auch das ganze Buch selber mit
220 einem Titel innerhalb einer @code{\header}-Umgebung beginnen.
221
222 @example
223 \bookpart @{
224   \header @{
225     title = "Buchtitel"
226     subtitle = "Erster Teil"
227   @}
228   \score @{ @dots{} @}
229   @dots{}
230 @}
231 \bookpart @{
232   \header @{
233     subtitle = "Zweiter Teil"
234   @}
235   \score @{ @dots{} @}
236   @dots{}
237 @}
238 @end example
239
240
241 @node Mehrere Ausgabedateien aus einer Eingabedatei
242 @subsection Mehrere Ausgabedateien aus einer Eingabedatei
243 @translationof Multiple output files from one input file
244
245 Wenn Sie mehrere Ausgabedateien aus derselben @file{.ly}-Datei haben
246 wollen, können Sie mehrere @code{\book}-Umgebungen hinzufügen, wobei
247 jede Umgebung eine neue Ausgabedatei produziert.  Wenn Sie keine
248 @code{\book}-Umgebung in der Eingabedatei angeben, wird die Datei von
249 LilyPond implizit als eine große @code{\book}-Umgebung behandelt, siehe
250 auch @ref{Die Dateistruktur}.
251
252 Wenn man mehrere Dateien aus einer einzigen Eingabedatei erstellt, stellt
253 LilyPond sicher, dass keine der Ausgabedateien der vorhandenen
254 @code{\book}-Umgebungen eine andere Ausgabedatei, etwa von der vorherigen
255 @code{\book}-Umgebung, überschreibt.
256
257 Dies geschieht, indem ein Suffix an den Ausgabenamen für jede
258 @code{\book}-Umgebung gehängt wird, die den Dateinamen der Eingabdatei
259 als Grundlage nimmt.
260
261 Das Standardverhalten ist es, einen Zahlen-Suffix für die Namen hinzuzufügen,
262 die in Konflikt stehen.  Der Code
263
264 @example
265 \book @{
266   \score @{ @dots{} @}
267   \layout @{ @dots{} @}
268 @}
269 \book @{
270   \score @{ @dots{} @}
271   \layout @{ @dots{} @}
272 @}
273 \book @{
274   \score @{ @dots{} @}
275   \layout @{ @dots{} @}
276 @}
277 @end example
278
279 @noindent
280 produziert also
281
282 @itemize
283 @item
284 @file{eightminiatures.pdf},
285 @item
286 @file{eightminiatures-1.pdf} and
287 @item
288 @file{eightminiatures-2.pdf}.
289 @end itemize
290
291
292 @node Dateinamen der Ausgabedateien
293 @subsection Dateinamen der Ausgabedateien
294 @translationof Output file names
295
296 @funindex \bookOutputSuffix
297 @funindex \bookOutputName
298
299 LilyPond stellt die Möglichkeit zur Verfügung zu kontrollieren, welche
300 Dateinamen für welche Back-ends benutzt werden sollen, wenn die Ausgabedateien
301 erstellt werden.
302
303 Im vorhergehenden Abschnitt wurde gezeigt, wir LilyPond gleichnamige
304 Ausgabedateien verhindert, wenn mehrere Ausgabedateien aus derselben
305 Eingabedatei erstellt werden.  Es gibt auch die Möglichkeit, eigene
306 Suffixe für jeden @code{\book}-Abschnitt zu definieren, sodass man etwa
307 Dateinamen wie @file{eightminiatures-Romanze.pdf}, @file{eightminiatures-Menuetto.pdf}
308 und @file{eightminiatures-Nocturne.pdf} produzieren kann, indem man
309 eine @code{\bookOutputSuffix}-Angabe in jede @code{\book}-Umgebung
310 einfügt.
311
312 @example
313 \book @{
314   \bookOutputSuffix "Romanze"
315   \score @{ @dots{} @}
316   \layout @{ @dots{} @}
317 @}
318 \book @{
319   \bookOutputSuffix "Menuetto"
320   \score @{ @dots{} @}
321   \layout @{ @dots{} @}
322 @}
323 \book @{
324   \bookOutputSuffix "Nocturne"
325   \score @{ @dots{} @}
326   \layout @{ @dots{} @}
327 @}
328 @end example
329
330 Man kann auch einen anderen Dateinamen für die Ausgabedatei einer
331 @code{\book}-Umgebung erstellen, indem man @code{\bookOutputName}-Angabe
332 macht:
333
334 @example
335 \book @{
336   \bookOutputName "Romanze"
337   \score @{ @dots{} @}
338   \layout @{ @dots{} @}
339 @}
340 \book @{
341   \bookOutputName "Menuetto"
342   \score @{ @dots{} @}
343   \layout @{ @dots{} @}
344 @}
345 \book @{
346   \bookOutputName "Nocturne"
347   \score @{ @dots{} @}
348   \layout @{ @dots{} @}
349 @}
350 @end example
351
352 Die obige Datei produziert folgene Ausgabedateien:
353
354 @itemize
355 @item
356 @file{Romanze.pdf},
357 @item
358 @file{Menuetto.pdf} and
359 @item
360 @file{Nocturne.pdf}.
361 @end itemize
362 @node Die Dateistruktur
363 @subsection Die Dateistruktur
364 @translationof File structure
365
366 @funindex \paper
367 @funindex \midi
368 @funindex \layout
369 @funindex \header
370 @funindex \score
371 @funindex \book
372 @funindex \bookpart
373
374 @cindex Dateistruktur
375 @cindex Struktur, Datei
376 @cindex Eingabedatei, Struktur
377 @cindex Quelldatei, Struktur
378
379 Eine @file{.ly}-Datei kann eine beliebige Anzahl an Ausdrücken
380 auf der obersten Ebene beinhalten, wobei ein Ausdruck der obersten
381 Ebene einer der folgenden sein kann:
382
383 @itemize
384 @item
385 Eine Ausgabedefinition, wie @code{\paper}, @code{\midi} und
386 @code{\layout}.  Derartige Definitionen auf oberster Ebene verändern
387 die globalen Einstellungen für das ganze @qq{Buch}.  Wenn mehr
388 als eine derartige Definition desselben Typs angegeben wird, hat
389 die spätere Vorrang.
390
391 @item
392 Ein direkter Scheme-Ausdruck, wie etwa
393 @code{#(set-default-paper-size "a7" 'landscape)} oder
394 @code{#(ly:set-option 'point-and-click #f)}.
395
396 @item
397 Eine @code{\header}-Umgebung.  Damit wird die globale Titelei
398 eingestellt.  Das ist die Umgebung, in der sich Definition für
399 das ganze Buch befinden, wie Komponist, Titel usw.
400
401 @item
402 Eine @code{\score}-Umgebung.  Die in ihr enthaltene Partitur wird
403 zusammen mit anderen vorkommenden @code{\score}-Umgebungen gesammelt
404 und in ein @code{\book} zusammengefasst.  Dieses Verhalten kann
405 verändert werden, indem die Variable @code{toplevel-score-handler}
406 auf höchster Ebene gesetzt wird.  Die Definition des Standards findet sich
407 in der Datei @file{../scm/lily.scm}.
408
409 @item
410 Eine @code{\book}-Umgebung fasst mehrere Sätze (d. h. mehrere
411 @code{\score}-Umgebungen) logisch in ein Dokument zusammen.
412 Wenn mehrere @code{\score}-Partituren vorkommen, wird für jede
413 @code{\book}-Umgebung eine eigene Ausgabedatei erstellt, in der
414 alle in der Umgebung enthaltenen Partituren zusammengefasst sind.
415 Der einzige Grund, explizit eine @code{\book}-Umgebung zu setzen,
416 ist, wenn mehrere Ausgabedateien aus einer einzigen Quelldatei
417 erstellt werden sollen.  Eine Ausnahme sind lilypond-book-Dokumente,
418 in denen eine @code{\book}-Umgebung explizit hinzugefügt werden
419 muss, wenn mehr als eine @code{\score}- oder @code{\markup}-Umgebung
420 im gleichen Beispiel angezeigt werden soll.  Dieses Verhalten
421 kann verändert werden, indem die Variable @code{toplevel-book-handler}
422 auf höchster Ebene gesetzt wird.  Die Definition des Standards
423 findet sich in der Datei @file{../scm/lily.scm}.
424
425 @item
426 Eine @code{\bookpart}-Umgebung.  Ein Buch (@code{\book}) kann in
427 mehrere Teile untergliedert sein, indem @code{\bookpart}-Umgebungen
428 eingesetzt werden. Jeder Buchabschnitt beginnt auf einer neuen
429 Seite und kann eigene Papierdefinitionen in einer @code{\paper}-Umgebung
430 haben.
431
432 @item
433 Ein zusammengesetzter musikalischer Ausdruck wie etwa
434 @example
435 @{ c'4 d' e'2 @}
436 @end example
437
438 Dieses Beispiel wird von LilyPond automatisch in einer
439 @code{\score}-Umgebung in einem Buch interpretiert und
440 mit anderen @code{\score}-Umgebungen und musikalischen
441 Ausdrücken auf der höchsten Ebene zusammen ausgegeben.
442 Anders gesagt: eine Datei, die nur das obige Beispiel
443 beinhaltet, wird übersetzt zu
444
445 @example
446 \book @{
447   \score @{
448     \new Staff @{
449       \new Voice @{
450         @{ c'4 d' e'2 @}
451       @}
452     @}
453     \layout @{ @}
454   @}
455   \paper @{ @}  
456   \header @{ @}
457 @}
458 @end example
459
460 Dieses Verhalten kann verändert werden, indem die Variable
461 @code{toplevel-music-handler} auf der obersten Ebene gesetzt
462 wird.  Die Definition des Standards findet sich in der Datei
463 @file{../scm/lily.scm}.
464
465 @item
466 Eine Textbeschriftung, eine Strophe etwa:
467 @example
468 \markup @{
469    2.  Die erste Zeile der zweiten Strophe.
470 @}
471 @end example
472
473 Textbeschriftungen werden über, zwischen oder unter musikalischen
474 Ausdrücken gesetzt, so wie sie notiert werde.
475
476 @cindex Variablen
477
478 @item
479 Eine Variable, wie
480 @example
481 foo = @{ c4 d e d @}
482 @end example
483
484 Sie kann dann später in der Datei eingesetzt werden, indem @code{\foo}
485 geschrieben wird.  Die Bezeichnung der Variable darf nur aus
486 alphabetischen Zeichen bestehen, keine Zahlen, Unter- oder Bindestriche.
487
488 @end itemize
489
490 Das folgende Beispiel zeigt drei Dinge, die auf der obersten Ebene
491 notiert werden können:
492
493 @example
494 \layout @{
495   % Zeilen rechtsbündig setzen
496   ragged-right = ##t
497 @}
498
499 \header @{
500    title = "Do-re-mi"
501 @}
502
503 @{ c'4 d' e2 @}
504 @end example
505
506 An einer beliebigen Stelle der Datei kann jede der folgenden lexikalen
507 Anweisungen notiert werden:
508
509 @itemize
510 @item @code{\version}
511 @item @code{\include}
512 @item @code{\sourcefilename}
513 @item @code{\sourcefileline}
514 @item
515 Ein einzeiliger Kommentar, beginnend mit @code{%}.
516
517 @item
518 Ein mehrzeiliger Kommentar, umgeben von @code{%@{ .. %@}}.
519
520 @end itemize
521
522 @cindex Leerzeichen
523
524 Leerzeichen zwischen Einheiten in der Eingabe werden generell ignoriert
525 und können nach Belieben weggelassen werden oder hinzugefügt werden,
526 um die Lesbarkeit des Codes zu verbessern.  Mindestens ein Leerzeichen
527 sollte jedoch unter folgenden Umständen immer eingesetzt werden, um
528 Fehler zu vermeiden:
529
530 @itemize
531 @item
532 Vor und hinter jeder schließenden oder öffnenden Klammer,
533 @item
534 nach jedem Befehl oder jeder Variable, also jeder Einheit, die mit
535 @code{\} beginnt,
536 @item
537 nach jeder Einheit, die als Scheme-Ausdruck interpretiert werden,
538 also alle Einheiten, die mit@tie{}@code{#} beginnen.
539 @item
540 Alle Einheiten von Scheme-Ausdrücken müssen mit Leerzeichen getrennt
541 werden,
542 @item
543 in Gesangstextabschnitten (@code{lyricmode}) müssen Leerzeichen
544 zwischen alle Ausdrücke in @code{\override}- und @code{\set}-Befehlen
545 gesetzt werden.  Insbesondere müssen um Punkte und Gleichzeitszeichen
546 in Befehlen wie @code{\override Score . LyricTex #'font-size = #5)}
547 und vor dem gesamten Befehl geschrieben werden.
548
549 @end itemize
550
551 @seealso
552 Handbuch zum Lernen:
553 @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert}.
554
555
556 @node Titel
557 @section Titel
558 @translationof Titles and headers
559
560 Fast alle gedruckten Noten beinhalten einen Titel und den Namen
561 des Komponisten, teilweise wird auch noch sehr viel mehr Information
562 zur Verfügung gestellt.
563
564 @menu
565 * Titel Kopf und Fußzeilen erstellen::
566 * Eigene Kopf und Fußzeilen sowie Titel::
567 * Fußnoten erstellen::
568 * Verweis auf die Seitenzahlen::
569 * Inhaltsverzeichnis::
570 @end menu
571
572
573 @node Titel Kopf und Fußzeilen erstellen
574 @subsection Titel, Kopf- und Fußzeilen erstellen
575 @translationof Creating titles headers and footers
576
577 @menu
578 * Wie funktioniert die Titel-Umgebung?::
579 * Standardlayout von book und Partitur Titelumgebungen::
580 * Standardlayout von Kopf und Fußzeilen::
581 @end menu
582
583
584 @node Wie funktioniert die Titel-Umgebung?
585 @unnumberedsubsubsec Wie funktioniert die Titel-Umgebung?
586 @translationof Title blocks explained
587
588 @c TODO: figure out how \bookpart titles work
589
590 Es gibt zwei Arten von Titelumgebungen: die Hauptumgebung, die über
591 der ersten @code{\score}-Umgebung innerhalb eines @qq{book} notiert
592 wird, und individuelle Titelumgebungen, die innerhalb von
593 @code{\score} auftreten können.  Textfelder für beide Typen werden
594 in der @code{\header}-Umgebung eingegeben.
595
596 Wenn in dem @qq{book} nur eine einzelne Partitur vorkommt,
597 kann die @code{\header}-Umgebung innheralb oder außerhalb der
598 @code{\score}-Umgebung geschrieben werden.
599
600 @warning{Denken Sie daran, dass zuerst ein musikalischer Ausdruck
601 notiert werden muss, wenn Sie eine @bs{}@code{header}-Umgebung innheralb
602 einer @bs{}@code{score}-Umgebung verwenden wollen.}
603
604 @lilypond[papersize=a5,quote,verbatim,noragged-right]
605 \header {
606   title = "SUITE I."
607   composer = "J. S. Bach."
608 }
609
610 \score {
611   \new Staff \relative g, {
612     \clef bass
613     \key g \major
614     \repeat unfold 2 { g16( d' b') a b d, b' d, } |
615     \repeat unfold 2 { g,16( e' c') b c e, c' e, } |
616   }
617   \header {
618     piece = "Prélude."
619   }
620 }
621
622 \score {
623   \new Staff \relative b {
624     \clef bass
625     \key g \major
626     \partial 16 b16 |
627     <g, d' b'~>4 b'16 a( g fis) g( d e fis) g( a b c) |
628     d16( b g fis) g( e d c) b(c d e) fis( g a b) |
629   }
630   \header {
631     piece = "Allemande."
632   }
633 }
634 @end lilypond
635
636 Textfelder der Haupttitelumgebung können in allen @code{\score}-Umgebungen
637 gesetzt oder manuell unterdrückt werden:
638
639 @lilypond[papersize=a5,quote,verbatim,noragged-right]
640 \book {
641   \paper {
642     print-all-headers = ##t
643   }
644   \header {
645     title = "DAS WOHLTEMPERIRTE CLAVIER"
646     subtitle = "TEIL I"
647     % Do not display the tagline for this book
648     tagline = ##f
649   }
650   \markup { \vspace #1 }
651   \score {
652     \new PianoStaff <<
653       \new Staff { s1 }
654       \new Staff { \clef "bass" s1 }
655     >>
656     \header {
657       title = "PRAELUDIUM I"
658       opus = "BWV 846"
659       % Do not display the subtitle for this score
660       subtitle = ##f
661     }
662   }
663   \score {
664     \new PianoStaff <<
665       \new Staff { s1 }
666       \new Staff { \clef "bass" s1 }
667     >>
668     \header {
669       title = "FUGA I"
670       subsubtitle = "A 4 VOCI"
671       opus = "BWV 846"
672       % Do not display the subtitle for this score
673       subtitle = ##f
674     }
675   }
676 }
677 @end lilypond
678
679 @seealso
680 Notationsreferenz:
681 @ref{Die Dateistruktur},
682 @ref{Angepasstes Layout für Titelumgebungen}.
683
684
685 @node Standardlayout von book und Partitur Titelumgebungen
686 @unnumberedsubsubsec Standardlayout von @code{book}- und Partitur-Titelumgebungen
687 @translationof Default layout of book and score title blocks
688
689 Layout und Formatierung der Titelfelder wird durch zwei
690 @code{\paper}-Variablen kontrolliert: @code{bookTitleMarkup} für
691 die Hauptumgebung und @code{scoreTitleMarkup} für einzelne
692 @code{\header}-Umgebungen innerhalb von einer @code{\score}-Umgebung.
693
694 @lilypond[papersize=a6,quote,verbatim,noragged-right]
695 \header {
696   % The following fields are centered
697   dedication = "Dedication"
698   title = "Title"
699   subtitle = "Subtitle"
700   subsubtitle = "Subsubtitle"
701   instrument = "Instrument"
702
703   % The following fields are left-aligned on the left side
704   poet = "Poet"
705   meter = "Meter"
706
707   % The following fields are right-aligned on the right side
708   composer = "Composer"
709   arranger = "Arranger"
710 }
711
712 \score {
713   { s1 }
714   \header {
715     % The following fields are placed at opposite ends of the same line
716     piece = "Piece"
717     opus = "Opus"
718   }
719 }
720 @end lilypond
721
722 @c Is the bit about \null markups true? -mp
723
724 Textfelder, die in einer @code{\header}-Umgebung nicht benutzt werden,
725 werden durch @code{\null}-Textbeschriftung ersetzt, sodass sie keinen
726 leeren Platz belegen.
727
728 Die Standardeinstellungen von @code{scoreTitleMarkup} platzieren
729 die Felder @code{piece} (Stück) und @code{opus} zu den gegenüberliegenden
730 Seiten der selben Zeile.
731
732 @funindex breakbefore
733
734 Mit der Variable @code{breakbefore} innerhalb einer @code{\header}-Umgebung,
735 die für sich auch eine @code{\score}-Umgebung darstellt, kann man
736 die Hauptüberschriften auf der ersten Seite allein ausgeben, sodass die
737 Noten (in der @code{score}-Umgebung definiert) erst auf der folgenden
738 Seite beginnen.
739
740 @lilypond[papersize=a8landscape,verbatim,noragged-right]
741 \book {
742   \header {
743     title = "This is my Title"
744     subtitle = "This is my Subtitle"
745     copyright = "This is the bottom of the first page"
746   }
747   \score {
748     \repeat unfold 4 { e'' e'' e'' e'' }
749     \header {
750       piece = "This is the Music"
751       breakbefore = ##t
752     }
753   }
754 }
755 @end lilypond
756
757 @seealso
758 Handbuch zum Lernen:
759 @rlearning{Wie eine LilyPond-Eingabe-Datei funktioniert},
760
761 Notationsreferenz:
762 @ref{Die Dateistruktur}.
763
764 Installierte Dateien:
765 @file{ly/titling-init.ly}.
766
767
768 @node Standardlayout von Kopf und Fußzeilen
769 @unnumberedsubsubsec Standardlayout von Kopf- und Fußzeilen
770 @translationof Default layout of headers and footers
771
772 @emph{Kopf-} und @emph{Fußzeilen} sind Textzeilen, die ganz oben
773 und ganz unten auf der Seite stehen, unabhängig vom Textbereich eines
774 Buches.  Sie können mit folgenden @code{\paper}-Variablen kontrolliert
775 werden:
776
777 @itemize
778 @item @code{oddHeaderMarkup}
779 @item @code{evenHeaderMarkup}
780 @item @code{oddFooterMarkup}
781 @item @code{evenFooterMarkup}
782 @end itemize
783
784 Diese Beschriftungsvariablen können nur auf Textfelder einer
785 Haupttitelumgebung (eine @code{\header}-Umgebung auf höchster Ebene, die
786 sich auf alle @code{\score}-Umgebungen einer Datei bezieht)
787 zugreifen und sind definiert in der Datei @file{ly/titling-init.ly}.  In
788 den Standardeinstellungen
789
790 @itemize
791
792 @item
793 werden Seitenzahlen automatisch ganz oben links (wenn gerade) oder ganz
794 oben rechts (wenn ungerade) gesetzt, beginnend mit der zweiten Seite.
795
796 @item
797 wird das @code{instrument}-Textfeld auf jeder Seite zentriert, beginnend
798 mit der zweiten Seite.
799
800 @item
801 wird der @code{copyright}-Text unten auf der ersten Zeite zentriert.
802
803 @item
804 wird der Inhalt von @code{tagline} unten auf der letzten Seite zentriert
805 und unterhalb des @code{copyright}-Texts, wenn es sich nur um eine Seite
806 handelt.
807
808 @end itemize
809
810 @lilypond[papersize=a8landscape]
811 \book {
812   \score {
813     \relative c' {
814       c4 d e f
815     }
816   }
817 }
818 @end lilypond
819
820 Die Standardeinstellung von @code{tagline} kann verändert werden,
821 indem man ein @code{tagline}-Feld in die @code{\header}-Umgebung auf
822 höchster Ebene schreibt.
823
824 @lilypond[papersize=a8landscape,verbatim]
825 \book {
826   \header {
827     tagline = "... music notation for Everyone"
828   }
829   \score {
830     \relative c' {
831       c4 d e f
832     }
833   }
834 }
835 @end lilypond
836
837 Um die @emph{tagline} ganz zu entfernen, wird ihr Inhalb als @code{##f}
838 (falsch) definiert.
839
840
841 @node Eigene Kopf und Fußzeilen sowie Titel
842 @subsection Eigene Kopf- und Fußzeilen sowie Titel
843 @translationof Custom headers footers and titles
844
845 @c TODO: somewhere put a link to header spacing info
846 @c       (you'll have to explain it more in NR 4).
847
848 @menu
849 * Angepasste Textformatierung für Titelumgebungen::
850 * Angepasstes Layout für Titelumgebungen::
851 * Angepasstes Layout für Kopf und Fußzeilen::
852 @end menu
853
854
855 @node Angepasste Textformatierung für Titelumgebungen
856 @unnumberedsubsubsec Angepasste Textformatierung für Titelumgebungen
857 @translationof Custom text formatting for title blocks
858
859 Standard-@code{\markup}-Befehle können eingesetzt werden, um jeglichen
860 Text in Titeln, Kopf- und Fußzeilen innerhalb der @code{\header}-Umgebung
861 zu verändern.
862
863 @lilypond[quote,verbatim,noragged-right]
864 \score {
865   { s1 }
866   \header {
867     piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
868     subtitle = \markup { \italic "(Excerpt)" }
869   }
870 }
871 @end lilypond
872
873 @seealso
874 Notationsreferenz:
875 @ref{Text formatieren}.
876
877
878 @node Angepasstes Layout für Titelumgebungen
879 @unnumberedsubsubsec Angepasstes Layout für Titelumgebungen
880 @translationof Custom layout for title blocks
881
882 @code{\markup}-Befehle in der @code{\header}-Umgebung sind sinnvoll
883 für einfaches Formatieren von Text, aber sie gewähren keine genaue
884 Kontrolle über die Positionierung von Titeln.  Um die Positionierung
885 von Titeltextfeldern vorzunehmen, eignen sich beide oder eine von
886 folgenden Variablen (die man in der @code{\paper}-Umgebung einsetzen muss):
887
888 @itemize
889 @item @code{bookTitleMarkup}
890 @item @code{scoreTitleMarkup}
891 @end itemize
892
893 Diese Beschriftungsvariablen sind behandelt in
894 @ref{Standardlayout von book und Partitur Titelumgebungen}.
895
896 Die Standardeinstellungen von @code{scoreTitleMarkup}, wie in der
897 Datei @file{ly/titling-init.ly} definiert, sind:
898
899 @example
900 scoreTitleMarkup = \markup @{ \column @{
901   \on-the-fly #print-all-headers @{ \bookTitleMarkup \hspace #1 @}
902   \fill-line @{
903     \fromproperty #'header:piece
904     \fromproperty #'header:opus
905   @}
906 @}
907 @}
908 @end example
909
910 Dadurch werden die Textfelder @code{piece} (Stück) und @code{opus}
911 an den gegenüberliegenden Enden der gleichen Zeile platziert:
912
913 @lilypond[quote,verbatim,noragged-right]
914 \score {
915   { s1 }
916   \header {
917     piece = "PRAELUDIUM I"
918     opus = "BWV 846"
919   }
920 }
921 @end lilypond
922
923 Das folgende Beispiel verändert die Einstellungen von
924 @code{scoreTitleMarkup}, sodass das Textfeld @code{piece}
925 zentriert wird und in fetter, größerer Schrift erscheint.
926
927 @lilypond[papersize=a5,quote,verbatim,noragged-right]
928 \book {
929   \paper {
930     indent = 0\mm
931     scoreTitleMarkup = \markup {
932       \fill-line {
933         \null
934         \fontsize #4 \bold \fromproperty #'header:piece
935         \fromproperty #'header:opus
936       }
937     }
938   }
939   \header { tagline = ##f }
940   \score {
941     { s1 }
942     \header {
943       piece = "PRAELUDIUM I"
944       opus = "BWV 846"
945     }
946   }
947 }
948 @end lilypond
949
950 Textfelder, die normalerweise nur im Haupttitel ausgegeben werden,
951 können auch in die Titel einzelner Partituren aufgenommen werden,
952 indem man @code{print-all-headers} in die @code{\paper}-Umgebung einfügt.
953 Ein Nachteil dieser Methode ist, dass Textfelder, die tatsächlich nur
954 im Haupttitel erscheinen sollen, manuell für jede Partitur unterdrückt
955 werden müssen.  Siehe auch @ref{Wie funktioniert die Titel-Umgebung?}.
956
957 Um das zu vermeiden, kann das gewünschte Feld zur Definition von
958 @code{scoreTitleMarkup} hinzugefügt werden.  Im folgenden Beispiel
959 wird das Komponistenfeld (@code{composer}) (normalerweise mit
960 @code{bookTitleMarkup} assoziiert) zu @code{scoreTitleMarkup}
961 hinzugefügt, sodass jede Partitur einen eigenen Komponisten haben kann.
962
963 @lilypond[papersize=a5,quote,verbatim,noragged-right]
964 \book {
965   \paper {
966     indent = 0\mm
967     scoreTitleMarkup = \markup {
968       \fill-line {
969         \null
970         \fontsize #4 \bold \fromproperty #'header:piece
971         \fromproperty #'header:composer
972       }
973     }
974   }
975   \header { tagline = ##f }
976   \score {
977     { s1 }
978     \header {
979       piece = "MENUET"
980       composer = "Christian Petzold"
981     }
982   }
983   \score {
984     { s1 }
985     \header {
986       piece = "RONDEAU"
987       composer = "François Couperin"
988     }
989   }
990 }
991 @end lilypond
992
993 Es ist auch möglich, eigene Textfelder zu erstellen und dann auf sie
994 in der Beschriftungsdefinition zu verweisen:
995
996 @lilypond[papersize=a5,quote,verbatim,noragged-right]
997 \book {
998   \paper {
999     indent = 0\mm
1000     scoreTitleMarkup = \markup {
1001       \fill-line {
1002         \null
1003         \override #`(direction . ,UP) {
1004           \dir-column {
1005             \center-align \fontsize #-1 \bold
1006               \fromproperty #'header:mycustomtext %% User-defined field
1007             \center-align \fontsize #4 \bold
1008               \fromproperty #'header:piece
1009           }
1010         }
1011         \fromproperty #'header:opus
1012       }
1013     }
1014   }
1015   \header { tagline = ##f }
1016   \score {
1017     { s1 }
1018     \header {
1019       piece = "FUGA I"
1020       mycustomtext = "A 4 VOCI" %% User-defined field
1021       opus = "BWV 846"
1022     }
1023   }
1024 }
1025 @end lilypond
1026
1027 @seealso
1028 Notationsreferenz:
1029 @ref{Wie funktioniert die Titel-Umgebung?}.
1030
1031
1032 @node Angepasstes Layout für Kopf und Fußzeilen
1033 @unnumberedsubsubsec Angepasstes Layout für Kopf- und Fußzeilen
1034 @translationof Custom layout for headers and footers
1035
1036 @c can make-header and make-footer be removed from
1037 @c paper-defaults-init.ly? -mp
1038
1039 @code{\markup}-Befehle in der @code{\header}-Umgebung sind nützlich
1040 um einfachen Text zu formatieren, erlauben aber keine Kontrolle
1041 über die Positionierung von Kopf- und Fußzeilen.  Um die Positionierung
1042 der Textfelder zu ändern, eignen sich beide oder eine von
1043 folgenden Variablen (die man in der @code{\paper}-Umgebung einsetzen muss):
1044
1045 @itemize
1046 @item @code{oddHeaderMarkup}
1047 @item @code{evenHeaderMarkup}
1048 @item @code{oddFooterMarkup}
1049 @item @code{evenFooterMarkup}
1050 @end itemize
1051
1052 Das folgende Beispiel zentriert die Seitenzahlen unten auf jeder Seite.
1053 Zuerst werden die Standardeinstellungen von @code{oddHeaderMarkup} und
1054 @code{evenHeaderMarkup} entfernt, indem sie als @qq{Null}-Beschriftung
1055 definiert werden.  Dann wird @code{oddFooterMarkup} mit zentrierter
1056 Seitennummer neu definiert.  Schließlich erhält @code{evenFooterMarkup} 
1057 die selbe Layoutdefinition wie @code{\oddFooterMarkup}:
1058
1059 @lilypond[papersize=a8,quote,verbatim,noragged-right]
1060 \book {
1061   \paper {
1062     print-page-number = ##t
1063     print-first-page-number = ##t
1064     oddHeaderMarkup = \markup \null
1065     evenHeaderMarkup = \markup \null
1066     oddFooterMarkup = \markup {
1067       \fill-line {
1068         \on-the-fly #print-page-number-check-first
1069         \fromproperty #'page:page-number-string
1070       }
1071     }
1072     evenFooterMarkup = \oddFooterMarkup
1073   }
1074   \score {
1075     \new Staff { s1 \break s1 \break s1 }
1076   }
1077 }
1078 @end lilypond
1079
1080 @seealso
1081 Notationsreferenz:
1082 @ref{Wie funktioniert die Titel-Umgebung?},
1083 @ref{Standardlayout von book und Partitur Titelumgebungen}.
1084
1085
1086 @node Fußnoten erstellen
1087 @subsection Fußnoten erstellen
1088 @translationof Creating footnotes
1089
1090 Zwei Arten an Fußnoten können erstellt werden: automatische und
1091 manuelle Fußnoten.
1092
1093 @menu
1094 * Übersicht über Fußnoten::
1095 * Automatische Fußnoten::
1096 * Manuelle Fußnoten::
1097 @end menu
1098
1099 @node Übersicht über Fußnoten
1100 @unnumberedsubsubsec Übersicht über Fußnoten
1101 @translationof Footnotes overview
1102
1103 Automatische Fußnoten erstellen aufsteigende Zahlenverweise, während
1104 mit manuellen Fußnoten eigene angepasste Verweise erstellt werden
1105 können.  Alle Grobs, @code{\markup}-Beschriftung auf höchster Ebene
1106 und zu Akkord zusammengefasste Noten können mit Fußnoten versehen werden.
1107
1108 Die Reihenfolge, in welcher ein Grob erstellt wird, bestimmt die
1109 Reihenfolge der Nummerierung automatischer Fußnoten.
1110
1111
1112 @node Automatische Fußnoten
1113 @unnumberedsubsubsec Automatische Fußnoten
1114 @translationof Automatic footnotes
1115
1116 @cindex Fußnoten, automatisch
1117
1118 Es gibt zwei Befehle, um autmatische Fußnoten zu erstellen: 
1119 @code{\autoFootnoteGrob} für einzelne Grobs (etwa Notenköpfe,
1120 Hälse, Bögen, Dynamik (auch @code{\markup} wenn @code{TextScripts}-Dynamik
1121 aktiv ist) sowie @code{\autoFootnote} für Akkordnoten.
1122
1123 Beide Befehle haben drei Argumente: das @var{Layoutobjekt}, das die
1124 Anmerkung erhalten soll, die @var{(x . y)}-Position des Indikators und
1125 eine @code{\markup}-Beschriftung, die den Inhalt der Fußnote enthält.
1126
1127 Der Befehl @code{\autoFootnoteGrob} muss @emph{vor} dem Grob geschrieben
1128 werden, auf den sie sich bezieht.
1129
1130 @c KEEP LY
1131 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1132 \book {
1133   \header { tagline = ##f }
1134   \relative c' {
1135     \autoFootnoteGrob #'NoteHead #'(0.5 . -2)
1136       \markup { Die erste Note }
1137     a'4 b8
1138     \autoFootnoteGrob #'NoteHead #'(0.5 . 1)
1139       \markup { Die dritte Note }
1140     e c4 d4
1141   }
1142 }
1143 @end lilypond
1144
1145 Bei Noten in Akkorden muss der Befehl @code{\autoFootnote} @emph{nach}
1146 der Note, auf der sie sich bezieht, stehen:
1147
1148 @c KEEP LY
1149 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1150 \book {
1151   \header { tagline = ##f }
1152   \relative c' {
1153     <
1154     c-\autoFootnote #'(1 . -1.25) "Hier ein C"
1155     es-\autoFootnote #'(2 . -0.25) \markup { \italic "Ein Ex" }
1156     g-\autoFootnote #'(2 . 3) \markup { \bold "Das ist ein G" }
1157     >1
1158   }
1159 }
1160 @end lilypond
1161
1162 @warning {Wenn Fußnoten die selbe vertikale Position haben, werden
1163 sie von oben nach unten nummeriert.}
1164
1165 Hier noch einige Beispiele von Grobs, die mit automatischen Fußnoten
1166 versehen sind, wobei auch die Position des Fußnotentextes relativ zu
1167 Tagline und Copyright gezeigt wird.
1168
1169 @c KEEP LY
1170 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1171 \book {
1172   \header { copyright = \markup { "Copyright 1970" } }
1173   \relative c' {
1174     \autoFootnoteGrob #'DynamicText #'(-3 . 0)
1175       \markup { \bold Forte }
1176
1177     \autoFootnoteGrob #'Slur #'(0 . 1.5)
1178       \markup { Ein Bogen }
1179     a'4\f(
1180
1181     \autoFootnoteGrob #'Beam #'(0 . -2)
1182       \markup { Balken }
1183     b8)[ e]
1184
1185     \autoFootnoteGrob #'Stem #'(1 . -1)
1186       \markup  { \teeny { Das ist ein Hals } }
1187     c4
1188
1189     \autoFootnoteGrob #'AccidentalCautionary #'(0 . 0.5)
1190       \markup \italic { Ein Warnungsversetzungszeichen }
1191
1192     \autoFootnoteGrob #'TextScript #'(0.5 . -0.5)
1193       \markup \italic { Langsamer hier }
1194     dis?4_"rit."
1195   }
1196 }
1197 @end lilypond
1198
1199 Für eine @code{\markup}-Beschriftung auf oberster Ebene braucht man
1200 den Befehl @code{\auto-footnote}:
1201
1202 @c KEEP LY
1203 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1204 \book {
1205   \header { tagline = ##f }
1206   \markup { \auto-footnote "Eine einfache Melodie" \italic "Von mir" }
1207   \relative c' {
1208     a'4 b8 e c4 d
1209   }
1210 }
1211 @end lilypond
1212
1213
1214 @node Manuelle Fußnoten
1215 @unnumberedsubsubsec Manuelle Fußnoten
1216 @translationof Manual footnotes
1217
1218 @funindex \footnote
1219 @funindex \footnoteGrob
1220 @cindex Fußnoten, manuell
1221
1222 Mit zwei Befehlen können manuelle Fußnoten erstellt werden: @code{\footnote}
1223 für @code{\markup}-Beschriftung auf höchster Ebene und Noten in
1224 Akkorden sowie @code{\footnoteGrob} für einzelne Grobs (inklusive
1225 @code{\markup} wenn @code{TextScripts} benutzt wird).
1226
1227 Wenn Fußnoten an Grobs angehänt werden, braucht der
1228 @code{\footnote}-Befehl vier Argumente: das @var{Layoutobjekt}, das
1229 die Anmerkung erhält, die @var{(x . y)}-Position des Indikators
1230 und zwei @code{\markup}-Befehle - der erste ist das Symbol, das
1231 als Indikator an den Grob gehängt wird, der zweite der Inhalt
1232 der Fußnote.
1233
1234 Der Befehl @code{\footnoteGrob} muss @emph{nach} dem Grob
1235 kommen, an den die Fußnote gehängt wird und als @code{TextScript}
1236 geschrieben werden:
1237
1238 @c KEEP LY
1239 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1240 \book {
1241   \header { tagline = ##f }
1242   \relative c' {
1243     a'4-\footnoteGrob #'NoteHead #'(0.5 . -2)
1244           "1" \markup { \italic "1. Die erste Note" }
1245     b8
1246     e-\footnoteGrob #'NoteHead #'(0.5 . 1)
1247           \markup { \bold "2" } "2. Die zweite Note"
1248     c4
1249     d\p-\footnoteGrob #'DynamicText #'(0.5 . -1) "3" "3. Piano"
1250   }
1251 }
1252 @end lilypond
1253
1254 Fußnoten für Akkordnoten müssen @emph{nach} der Note, auf die sie sich
1255 beziehen, mit dem Befehl @code{\footnote} als @code{TextScript}
1256 notiert werden:
1257
1258 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1259 \book {
1260   \header { tagline = ##f }
1261   \relative c' {
1262     <
1263     c-\footnote #'(1 . -1.25) "1" "1. C"
1264     es-\footnote #'(2 . -0.25)
1265        \markup { \bold "b" } "b. E-flat"
1266     g-\footnote #'(2 . 3) "3" \markup { \italic "iii. G" }
1267     >1
1268   }
1269 }
1270 @end lilypond
1271
1272 @warning {Wenn Fußnoten die selbe vertikale Position haben, werden
1273 sie von oben nach unten nummeriert.}
1274
1275 Hier einige Beispiele manueller Fußnoten, die auch die relative
1276 Position der Fußnotentexte zu Tagline und Copyright anzeigen:
1277
1278 @c KEEP LY
1279 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1280 \book {
1281   \header { tagline = ##f }
1282   \relative c' {
1283     \footnoteGrob #'DynamicText #'(-3 . 0)
1284       \markup { \teeny 1 }
1285       \markup { 1. \bold Forte }
1286
1287     \footnoteGrob #'Slur #'(0 . 1.5)
1288       \markup { \teeny b }
1289       \markup { b. Ein Bogen }
1290     a'4\f(
1291
1292     \footnoteGrob #'Beam #'(0 . -2)
1293       \markup { \teeny 3 }
1294       \markup { 3. Balken }
1295     b8)[ e]
1296
1297     \footnoteGrob #'Stem #'(1 . -1)
1298       \markup { 4 }
1299       \markup  { \bold 4. { Das ist ein Hals } }
1300     c4
1301
1302     \footnoteGrob #'AccidentalCautionary #'(0 . 0.5)
1303       \markup \concat \teeny { "sharp (v)" }
1304       \markup \italic { v. Ein Warnungsversetzungszeichen }
1305
1306     \footnoteGrob #'TextScript #'(0.5 . -0.5)
1307       \markup \concat \teeny { "a" }
1308       \markup \italic { a. Langsamer hier }
1309     dis?4_"rit."
1310
1311     \breathe
1312     \footnoteGrob #'BreathingSign #'(1.5 . -0.25)
1313       \markup { \teeny \musicglyph #"rests.4" }
1314       \markup { \null }
1315   }
1316 }
1317 @end lilypond
1318
1319 Eine @code{\markup}-Beschriftung der höchsten Ebene wird wie folgt
1320 annotiert:
1321 @c KEEP LY
1322 @lilypond[verbatim,quote,ragged-right,papersize=a8]
1323 \book {
1324   \header { tagline = ##f }
1325   \markup { "Eine einfache Melodie" \footnote "*" \italic "* Von mir" }
1326   \relative c' {
1327     a'4 b8 e c4 d4
1328   }
1329 }
1330 @end lilypond
1331
1332 @seealso
1333 Handbuch zum Lernen:
1334 @rlearning{Objekte und Schnittstellen}.
1335
1336 Notationsreferenz:
1337 @ref{Erklärungen in Ballonform},
1338 @ref{Seitenlayout},
1339 @ref{Textartige Zeichen},
1340 @ref{Textarten},
1341 @ref{Titel}.
1342
1343 Referenz der Interna:
1344 @rinternals{FootnoteEvent},
1345 @rinternals{FootnoteItem},
1346 @rinternals{FootnoteSpanner},
1347 @rinternals{Footnote_engraver}.
1348
1349 @knownissues
1350 Mehrere Fußnoten auf einer Seite können ausschließlich übereinander
1351 gedruckt werden und nicht auf der gleiche Zeile gesetzt werden.
1352 Fußnoten können nicht an @code{MultiMeasureRests} (mehrtaktige Pause)
1353 angehängt werden und können mit @code{Staff}-(Notensystem)-,
1354 @code{\markup}-(Beschriftungs)-Objekten und anderen Fußnoten
1355 zusammenstoßen.  Wenn man den manuellen Fußnotenbefehl einsetzt,
1356 braucht man in der @code{\paper}-Umgebung den Eintrag
1357 @code{footnote-auto-number = ##f}.
1358
1359
1360 @node Verweis auf die Seitenzahlen
1361 @subsection Verweis auf die Seitenzahlen
1362 @translationof Reference to page numbers
1363
1364 Eine bestimmte Stelle der Partitur kann mit einem @code{\label}-Befehl
1365 markiert werden, sowohl auf oberster Ebene als auch innerhalb eines
1366 musikalischen Ausdrucks.  Auf diese Marke kann dann verwiesen werden,
1367 um die Seitenzahl zu erhalten, auf der die Marke vorkommt.  Der
1368 Verweis wird mit dem Befehl @code{\page-ref} gefordert (innerhalb
1369 von @code{\markup}).
1370
1371 @c KEEP LY
1372 @lilypond[verbatim]
1373 \header { tagline = ##f }
1374 \book {
1375   \label #'ErstePartitur
1376   \score {
1377     {
1378       c'1
1379       \pageBreak \mark A \label #'ZeichenA
1380       c'1
1381     }
1382   }
1383   \markup { Die erste Partitur fängt auf
1384             Seite \page-ref #'ErstePartitur "0" "?" an.}
1385   \markup { Zeichen A befindet sich auf Seite
1386             \concat { \page-ref #'ZeichenA "0" "?" . } }
1387 }
1388 @end lilypond
1389
1390 Der @code{\page-ref}-Textbeschriftungsbefehl braucht drei Argumente:
1391
1392 @enumerate
1393
1394 @item die Marke, ein Scheme-Symbol, etwa @code{#'ErstePartitur},
1395 @item eine Beschriftung, die als Platzhalter benutzt wird, um die Breite des Verweisen zu schätzen,
1396 @item eine Beschriftung, die anstelle der Seitenzahl gesetzt wird, wenn die Marke unbekannt ist.
1397 @end enumerate
1398
1399 Der Grund, warum ein Platzhalter benötigt wird, ist dass zu dem Zeitpunkt,
1400 an dem die Textbeschriftungen ausgewertet werden, noch keine Seitenumbrüche
1401 vorgenommen wurden und die Seitenzahlen deshalb noch nicht bekannt sind.
1402 Um hier ein Problem zu vermeiden, wird die eigentliche Auswertung der
1403 Textbeschriftung erst später ausgeführt, die Größe des Textes muss aber
1404 schon vorher bekannt sein.  Die Größe wird mithilfe des Platzhalters
1405 bestimmt.  Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man
1406 "00" schreiben, also eine zweistellige Zahl.
1407
1408 @code{\label}
1409 @code{\page-ref}
1410
1411 @predefined
1412 @funindex \label,
1413 @funindex \page-ref.
1414 @endpredefined
1415
1416
1417 @node Inhaltsverzeichnis
1418 @subsection Inhaltsverzeichnis
1419 @translationof Table of contents
1420
1421 Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl
1422 @code{\markuplist \table-of-contents}.  Die Elemente, die im
1423 Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem
1424 @code{\tocItem}-Befehl markiert, welches sowohl auf höchster
1425 Ebene als auch in einem musikalischen Ausdruck verwendet werden
1426 kann.
1427
1428 @verbatim
1429 \markuplist \table-of-contents
1430 \pageBreak
1431
1432 \tocItem \markup "Erste Partitur"
1433 \score {
1434   {
1435     c'4  % ...
1436     \tocItem \markup "Ein bestimmter Punkt innerhalb der ersten Partitur"
1437     d'4  % ...
1438   }
1439 }
1440
1441 \tocItem \markup "zweite Partitur"
1442 \score {
1443   {
1444     e'4 % ...
1445   }
1446 }
1447 @end verbatim
1448
1449 Die Beschriftungen, die benutzt werden um das Inhaltsverzeichnis
1450 zu formatieren, sind in der @code{\paper}-Umgebung definiert.
1451 Die Standardformatierungselemente sind @code{tocTitleMarkup}
1452 um die Überschrift zu formatieren und @code{tocItemMarkup} um
1453 die einzelnen Inhaltselemente zu formatieren, bestehend aus
1454 dem Titelelement und einer Seitenzahl.  Die Variablen können
1455 durch den Benutzer geändert werden:
1456
1457 @verbatim
1458 \paper {
1459   %% Übersetzung der Inhaltsverzeichnisüberschrift nach französisch:
1460   tocTitleMarkup = \markup \huge \column {
1461     \fill-line { \null "Table des matières" \null }
1462     \hspace #1
1463   }
1464   %% hier größere Schriftarten
1465   tocItemMarkup = \markup \large \fill-line {
1466     \fromproperty #'toc:text \fromproperty #'toc:page
1467   }
1468 }
1469 @end verbatim
1470
1471 Die Inhaltsverzeichniselemente Text und Seitenzahl werden
1472 in der Definition von @code{tocItemMarkup} aufgerufen mit
1473 @code{#'toc:text} und @code{#'toc:page}.
1474
1475 Neue Befehle und Beschriftungen können auch definiert werden,
1476 um eigene Inhaltsverzeichnisse zu gestalten:
1477
1478 @itemize
1479
1480 @item zuerst muss eine neue Beschriftungsvariable in der
1481 @code{\paper}-Umgebung definiert werden
1482
1483 @item dann muss die musikalische Funktion definiert werden, die
1484 ein Element zum Inhaltsverzeichnis hinzufügt, indem die neue
1485 Variable benutzt wird.
1486
1487 @end itemize
1488
1489 Das folgende Beispiel definiert einen neuen Stil um Akt-Bezeichnungen
1490 einer Oper in das Inhaltsverzeichnis aufzunehmen:
1491
1492 @verbatim
1493 \paper {
1494   tocActMarkup = \markup \large \column {
1495     \hspace #1
1496     \fill-line { \null \italic \fromproperty #'toc:text \null }
1497     \hspace #1
1498   }
1499 }
1500
1501 tocAct =
1502 #(define-music-function (parser location text) (markup?)
1503    (add-toc-item! 'tocActMarkup text))
1504 @end verbatim
1505
1506 @lilypond[line-width=11.0\cm]
1507 \header { tagline = ##f }
1508 \paper {
1509   tocActMarkup = \markup \large \column {
1510     \hspace #1
1511     \fill-line { \null \italic \fromproperty #'toc:text \null }
1512     \hspace #1
1513   }
1514 }
1515
1516 tocAct =
1517 #(define-music-function (parser location text) (markup?)
1518    (add-toc-item! 'tocActMarkup text))
1519
1520 \book {
1521   \markuplist \table-of-contents
1522   \tocAct \markup { Atto Primo }
1523   \tocItem \markup { Coro. Viva il nostro Alcide }
1524   \tocItem \markup { Cesare. Presti omai l'Egizzia terra }
1525   \tocAct \markup { Atto Secondo }
1526   \tocItem \markup { Sinfonia }
1527   \tocItem \markup { Cleopatra. V'adoro, pupille, saette d'Amore }
1528   \markup \null
1529 }
1530 @end lilypond
1531
1532 Die Zeile zwischen dem Inhalt und der Seitenzahl kann mit einer gepunkteten
1533 Linie gefüllt werden:
1534
1535 @lilypond[verbatim,quote]
1536 \header { tagline = ##f }
1537 \paper {
1538   tocItemMarkup = \tocItemWithDotsMarkup
1539 }
1540
1541 \book {
1542   \markuplist \table-of-contents
1543   \tocItem \markup { Allegro }
1544   \tocItem \markup { Largo }
1545   \markup \null
1546 }
1547 @end lilypond
1548
1549
1550 @seealso
1551 Installierte Dateien:
1552 @file{../ly/toc-init.ly}.
1553
1554 @funindex \table-of-contents
1555 @funindex \tocItem
1556
1557 @predefined
1558 @code{\table-of-contents},
1559 @code{\tocItem}.
1560 @endpredefined
1561
1562
1563 @node Arbeiten an Eingabe-Dateien
1564 @section Arbeiten an Eingabe-Dateien
1565 @translationof Working with input files
1566
1567 @menu
1568 * LilyPond-Dateien einfügen::
1569 * Verschiedene Editionen aus einer Quelldatei::
1570 * Sonderzeichen::
1571 @end menu
1572
1573
1574 @node LilyPond-Dateien einfügen
1575 @subsection LilyPond-Dateien einfügen
1576 @translationof Including LilyPond files
1577
1578 @funindex \include
1579 @cindex einfügen  von Dateien
1580 @cindex Dateien einfügen
1581
1582 Ein größeres Projekt kann in einzelne Dateien aufgeteilt werden.
1583 Um eine andere Datei einzubinden, kann der Befehl
1584
1585 @example
1586 \include "andereDatei.ly"
1587 @end example
1588
1589 @noindent
1590 benutzt werden.
1591
1592 Die Zeile @code{\include "andereDatei.ly"} benimmt sich genauso,
1593 also ob der Inhalt der Datei @file{andereDatei.ly} komplett in die
1594 Hauptdatei eingefügt werden würde.  So kann man für ein größeres
1595 Projekt die einzelnen Stimmen der Instrumente getrennt notieren
1596 und sie dann in einer Partitur-Datei benutzen.  Meistens werden
1597 in den eingefügten Dateien einige Variablen definiert, die dann
1598 auch in der Hauptdatei eingesetzt werden können.  Mit Marken (Tags)
1599 gekennzeichnete Abschnitte können eingesetzt werden, um die
1600 entsprechenden Noten etc. an verschiedenen Stellen in der Datei
1601 zur Verfügung zu stellen. Siehe auch @ref{Verschiedene Editionen aus einer Quelldatei}.
1602
1603 Auf Dateien im aktuellen Verzeichnis kann einfach mit dem Dateinamen
1604 nach dem @code{\include}-Befehl verwiesen werden.  Dateien an anderen
1605 Stellen können eingebunden werden, indem entweder ein vollständiger
1606 Pfad oder ein relativer Pfad zu der Datei angegeben wird.  Hierbei
1607 sollten die für UNIX typischen Schrägstriche (/) und nicht die
1608 rückwärtsgeneigten von Windows (\) verwendet werden, um die Verzeichnisse
1609 zu trennen.  Wenn etwa die Datei @file{kram.ly} ein Verzeichnis
1610 höher liegt als das aktuelle Verzeichnis, sollte der Befehl so
1611 aussehen:
1612
1613 @example
1614 \include "../kram.ly"
1615 @end example
1616
1617 @noindent
1618 Wenn die Orchesterstimmen andererseits in einem Unterordner mit
1619 der Bezeichnung @code{stimmen} liegen, sieht er folgendermaßen
1620 aus:
1621
1622 @example
1623 \include "stimmen/VI.ly"
1624 \include "stimmen/VII.ly"
1625 ... etc
1626 @end example
1627
1628 Dateien, die eingebunden werden sollen, können selber auch wiederum
1629 ein @code{\include} enthalten.  Diese Einbindung zweiter Ebene
1630 werden erst interpretiert, wenn sie sich in der Hauptdatei befinden,
1631 sodass die Pfadangaben hier nicht relativ zur eingebundenen Datei,
1632 sondern relativ zur Hauptdatei gesetzt werden müssen.  Dieses Verhalten
1633 kann jedoch auch verändert werden, indem man lilypond die Option
1634 @option{-drelative-includes} auf der Kommandozeile zuweist (oder indem
1635 man den Befehl @code{#(ly:set-option 'relative-includes #t)} an den
1636 Beginn der Quelldatei schreibt).  Mit @code{relative-includes} wird
1637 der Pfad jedes @code{\include}-Befehls als relativ zu der Datei angenommen,
1638 in der sich der Befehl befindet.  Dieses Verhalten wird empfohlen und wird
1639 in zukünftigen Versionen von LilyPond den Standard darstellen.
1640
1641 Dateien können auch aus einem Verzeichnis eingebunden werden,
1642 dass im Suchpfad von LilyPond liegt.  Hierzu muss auf der
1643 Kommandozeile das entsprechende Verzeichnis angegeben werden
1644 und die Dateien, die eingebunden werden, müssen nur mit ihrem Namen
1645 notiert sein.  Wenn etwa die Datei @file{Haupt.ly} kompiliert
1646 werden soll, die Dateien aus dem Unterverzeichnis @file{stimmen}
1647 einbindet, müssen sie sich im Verzeichnis von @file{Haupt.ly}
1648 befinden und dann LilyPond folgendermaßen aufrufen:
1649
1650 @example
1651 lilypond --include=stimmen Haupt.ly
1652 @end example
1653
1654 @noindent
1655 In @file{Haupt.ly} steht:
1656
1657 @example
1658 \include "VI.ly"
1659 \include "VII.ly"
1660 ... usw.
1661 @end example
1662
1663 Dateien, die in vielen Partituren verwendet werden sollen, können
1664 im LilyPond-Verzeichnis @file{../ly} gespeichert werden.  (Die
1665 Stelle, an der dieses Verzeichnis sich befindet, hängt vom Betriebssystem
1666 ab, siehe hierzu @rlearning{Mehr Information}).  Dateien
1667 in diesem Verzeichnis können einfach mit ihrem Namen eingefügt werden.
1668 So werden auch die Sprachdateien wie etwa @file{deutsch.ly} eingefügt.
1669
1670 LilyPond lädt eine Anzahl an Dateien, wenn das Programm aufgerufen wird.
1671 Diese Dateien sind für den Benutzer nicht ersichtlich, aber die Dateien
1672 können identifiziert werden, indem LilyPond auf der Kommandozeile mit
1673 Option aufgerufen wird: @code{lilypond --verbose}.  Hiermit wird
1674 neben anderer Information auch eine Liste von Pfaden und Dateien
1675 aufgeführt, die LilyPond benutzt.  Die wichtigeren Dateien werden
1676 im Abschnitt @rlearning{Mehr Information} besprochen.
1677 Diese Dateien können verändert werden, aber Änderungen gehen verloren,
1678 wenn eine neue LilyPond-Version installiert wird.
1679
1680 Einige einfache Beispiele, die die Benutzung von @code{\include} demonstrieren,
1681 sind dargestellt in
1682 @rlearning{Partituren und Stimmen}.
1683
1684 @seealso
1685 Handbuch zum Lernen:
1686 @rlearning{Mehr Information},
1687 @rlearning{Partituren und Stimmen}.
1688
1689 @knownissues
1690 Wenn eine Datei eingebunden wird, deren Name einer Datei aus
1691 dem Installationsverzeichnis von LilyPond entspricht, wird die
1692 installierte Datei anstelle der eigenen verwendet.
1693
1694
1695 @node Verschiedene Editionen aus einer Quelldatei
1696 @subsection Verschiedene Editionen aus einer Quelldatei
1697 @translationof Different editions from one source
1698
1699 Es gibt verschiedene Funktionen, die es möglich machen, unterschiedliche
1700 Versionen einer Partitur aus der gleichen Quelldatei zu produzieren.
1701 Variablen werden am besten eingesetzt, wenn es darum geht, längere
1702 Notenpassagen und/oder Anmerkungen/Textmarken miteinander auf
1703 verschiedene Weise zu kombinieren.  Tag-Marken dagegen werden am
1704 besten eingesetzt, wenn eine von mehreren kurzen alternativen
1705 Notenabschnitten ausgewählt werden soll und können auch eingesetzt
1706 werden, um Musikabschnitte an unterschiedlichen Stellen zusammenzufügen.  
1707
1708 Egal welche Methode am
1709 Ende eingesetzt wird: Es erleichtert die Arbeit in jedem Fall, wenn
1710 die eigentlichen Noten und die Struktur der Partitur voneinander
1711 getrennt notiert werden -- so kann die Struktur geändert werden,
1712 ohne dass man Änderungen an den Noten vornehmen muss.
1713
1714 @menu
1715 * Variablen benutzen::
1716 * Marken benutzen::
1717 * Globale Einstellungen benutzen::
1718 @end menu
1719
1720 @node Variablen benutzen
1721 @unnumberedsubsubsec Variablen benutzen
1722 @translationof Using variables
1723
1724 @cindex Variablen, Benutzung
1725
1726 Wenn Notenabschnitt in Variablen definiert werden, können sie
1727 an unterschiedlichen Stellen in der Partitur eingesetzt werden,
1728 siehe auch @rlearning{Stücke durch Bezeichner organisieren}.  Zum
1729 Beispiel enthält eine Vokalpartitur für ein @notation{a cappella}
1730 Stück oft einen Klavierauszug, der das Einüben einfacher macht.
1731 Der Klavierauszug enthält die gleichen Noten, sodass man sie nur
1732 einmal notieren muss.  Noten aus zwei Variablen können auf einem
1733 System kombiniert werden, siehe @ref{Automatische Kombination von Stimmen}.
1734 Hier ein Beispiel:
1735
1736 @lilypond[verbatim,quote]
1737 sopranoMusic = \relative c'' { a4 b c b8( a) }
1738 altoMusic = \relative g' { e4 e e f }
1739 tenorMusic = \relative c' { c4 b e d8( c) }
1740 bassMusic = \relative c' { a4 gis a d, }
1741 allLyrics = \lyricmode {King of glo -- ry }
1742 <<
1743   \new Staff = "Soprano" \sopranoMusic
1744   \new Lyrics \allLyrics
1745   \new Staff = "Alto" \altoMusic
1746   \new Lyrics \allLyrics
1747   \new Staff = "Tenor" {
1748     \clef "treble_8"
1749     \tenorMusic
1750   }
1751   \new Lyrics \allLyrics
1752   \new Staff = "Bass" {
1753     \clef "bass"
1754     \bassMusic
1755   }
1756   \new Lyrics \allLyrics
1757   \new PianoStaff <<
1758     \new Staff = "RH" {
1759       \set Staff.printPartCombineTexts = ##f
1760       \partcombine
1761       \sopranoMusic
1762       \altoMusic
1763     }
1764     \new Staff = "LH" {
1765       \set Staff.printPartCombineTexts = ##f
1766       \clef "bass"
1767       \partcombine
1768       \tenorMusic
1769       \bassMusic
1770     }
1771   >>
1772 >>
1773 @end lilypond
1774
1775 Unterschiedliche Partituren, die entweder nur den Chor oder das
1776 Klavier zeigen, können produziert werden, indem die Struktur
1777 verändert wird; die Noten müssen dazu nicht verändert werden.
1778
1779 Für längere Partituren können Variablen in eigene Dateien notiert
1780 werden, die dann eingebunden werden, siehe @ref{LilyPond-Dateien einfügen}.
1781
1782
1783 @node Marken benutzen
1784 @unnumberedsubsubsec Marken benutzen
1785 @translationof Using tags
1786
1787 @cindex Tag
1788 @cindex Marke
1789 @cindex markierte Noten entfernen
1790 @cindex markierte Noten behalten
1791 @cindex in markierte Noten einfügen
1792
1793 @funindex \tag
1794 @funindex \keepWithTag
1795 @funindex \removeWithTag
1796 @funindex \pushToTag
1797 @funindex \appendToTag
1798 @funindex tag
1799 @funindex keepWithTag
1800 @funindex removeWithTag
1801
1802
1803 Der @code{\tag #'@var{TeilA}}-Befehl markiert einen musikalischen
1804 Ausdruck mit der Bezeichnung @var{TeilA}.  Ausdrücke, die auf diese
1805 Weise markiert werden, können mit ihrer Bezeichnung später ausgewählt
1806 bzw. ausgefiltert werden.  Das geschieht mit den Befehlen
1807 @code{\keepWithTag #'@var{Bezeichnung}} bzw. @code{\removeWithTag #'@var{Bezeichnung}}.
1808 Die Wirkung dieser Filter auf die markierten Notenabschnitte ist
1809 wie folgt:
1810
1811 @multitable @columnfractions .5 .5
1812
1813 @headitem Filter
1814   @tab Resultat
1815
1816 @item
1817 Markierte Noten mit vorgesetztem @code{\keepWithTag #'@var{Bezeichnung}}
1818   @tab Unmarkierte Noten und Noten mit der Marke @var{Bezeichnung} werden
1819   gesetzt, Noten mit einer anderen Marke werden nicht angezeigt.
1820
1821 @item
1822 Markierte Noten mit vorgesetztem @code{\removeWithTag #'@var{Bezeichnung}}
1823   @tab Unmarkierte Noten und Noten mit einer anderen Marke als
1824   @var{Bezeichnung} wird angezeigt, Noten markiert mit @var{Bezeichnung}
1825   werden nicht angezeigt.
1826
1827 @item
1828 Markierte Noten, weder mit vorgesetztem @code{\keepWithTag} noch
1829 @code{\removeWithTag}
1830   @tab Alle markierten und unmarkierten Noten werden angezeigt.
1831
1832 @end multitable
1833
1834 Die Argumente der Befehle @code{\tag}, @code{\keepWithTag} und
1835 @code{\removeWithTag} sollten ein Symbol sein (wie etwa
1836 @code{#'score} oder @code{#'part}), gefolgt von einem musikalischen
1837 Ausdruck.
1838
1839 Im folgenden Beispiel erscheinen zwei Versionen der Noten, eine
1840 zeigt Triller in normaler Notation, die andere zeigt sie ausgeschrieben:
1841
1842 @lilypond[verbatim,quote]
1843 music = \relative g' {
1844   g8. c32 d
1845   \tag #'trills { d8.\trill }
1846   \tag #'expand { \repeat unfold 3 { e32 d } }
1847   c32 d
1848  }
1849
1850 \score {
1851   \keepWithTag #'trills \music
1852 }
1853 \score {
1854   \keepWithTag #'expand \music
1855 }
1856 @end lilypond
1857
1858 @noindent
1859 Entsprechend können auch Abschnitte ausgeschlossen werden; das
1860 erfordert manchmal weniger Schreibarbeit:
1861
1862 @lilypond[verbatim,quote]
1863 music = \relative g' {
1864   g8. c32 d
1865   \tag #'trills { d8.\trill }
1866   \tag #'expand {\repeat unfold 3 { e32 d } }
1867   c32 d
1868  }
1869
1870 \score {
1871   \removeWithTag #'expand
1872   \music
1873 }
1874 \score {
1875   \removeWithTag #'trills
1876   \music
1877 }
1878 @end lilypond
1879
1880 Marken können auch auf Artikulationen, Text usw angewendet werden,
1881 indem man ihnen
1882
1883 @example
1884 -\tag #'@var{your-tag}
1885 @end example
1886
1887 @noindent
1888 voranstellt (jedoch nach der Note, an die sie gebunden sind).  Mit
1889 diesem Code etwa könnte man entweder Fingersatz oder aber einen
1890 Text ausgeben:
1891
1892 @example
1893 c1-\tag #'finger ^4
1894 c1-\tag #'warn ^"Achtung!"
1895 @end example
1896
1897 Mehrfache Marken können mithilfe von mehreren @code{\tag}-Befehlen
1898 notiert werden:
1899
1900 @lilypond[quote,verbatim]
1901 music = \relative c'' {
1902   \tag #'a \tag #'both { a4 a a a }
1903   \tag #'b \tag #'both { b4 b b b }
1904 }
1905 <<
1906 \keepWithTag #'a \music
1907 \keepWithTag #'b \music
1908 \keepWithTag #'both \music
1909 >>
1910 @end lilypond
1911
1912 Mehrfache @code{\removeWithTag}-Filter können auf einen
1913 musikalischen Ausdruck angewendet werden, um mehrere unterschiedliche
1914 markierte Abschnitte aus dem Druckbild zu entfernen.
1915
1916 @lilypond[verbatim,quote]
1917 music = \relative c'' {
1918 \tag #'A { a4 a a a }
1919 \tag #'B { b4 b b b }
1920 \tag #'C { c4 c c c }
1921 \tag #'D { d4 d d d }
1922 }
1923 {
1924 \removeWithTag #'B
1925 \removeWithTag #'C
1926 \music
1927 }
1928 @end lilypond
1929
1930 Zwei oder mehr @code{\keepWithTag}-Filter in einem musikalischen
1931 Ausdruck bewirken, dass @emph{alle} markierten Abschnitte entfernt
1932 werden, weil der erste Befehl alle markierten Abschnitt außer dem
1933 im Befehl genannten wegfiltert und der zweite Befehl dann auch diesen
1934 eben genannten zusätzlich entfernt.
1935
1936 Manchmal will man Noten an einem bestimmen Platz in existierenden
1937 Noten einfügen.  Dafür kann entweder @code{\pushToTag} oder
1938 @code{\appendToTag} benutzt werden, um Material hinter bzw. vor den
1939 Elementen (@code{elements}) der existierenden Noten einzufügen.  Nicht
1940 alle musikalischen Konstruktionen haben Elemente, aber sequentielle und
1941 simultane Noten sind ziemlich gute Kandidaten:
1942
1943 @lilypond[verbatim,quote]
1944 test = { \tag #'here { \tag #'here <<c''>> } }
1945
1946 {
1947   \pushToTag #'here c'
1948   \pushToTag #'here e'
1949   \pushToTag #'here g' \test
1950   \appendToTag #'here c'
1951   \appendToTag #'here e'
1952   \appendToTag #'here g' \test
1953 }
1954 @end lilypond
1955
1956 Beide Befehle erhalten einen Tag, das Material, das bei jedem Auftreten
1957 des Tags eingefügt werden soll und den Ausdruck, der mit dem Tag versehen
1958 ist.  Der Befehl stellt sicher, dass alle Änderungen kopiert werden, sodass
1959 das ursprüngliche @code{\test} seine Bedeutung behält.
1960
1961 @seealso
1962 Handbuch zum Lernen:
1963 @rlearning{Stücke durch Bezeichner organisieren}.
1964
1965 Notationsreferenz:
1966 @ref{Automatische Kombination von Stimmen},
1967 @ref{LilyPond-Dateien einfügen}.
1968
1969
1970 @ignore
1971 @c This warning is more general than this placement implies.
1972 @c Rests are not merged whether or not they come from tagged sections.
1973 @c Should be deleted?  -td
1974
1975 @knownissues
1976
1977 Multiple rests are not merged if you create a score with more
1978 than one tagged section at the same place.
1979
1980 @end ignore
1981
1982
1983 @node Globale Einstellungen benutzen
1984 @unnumberedsubsubsec Globale Einstellungen benutzen
1985 @translationof Using global settings
1986
1987 @funindex include-settings
1988
1989 Man kann globale Einstellungen aus einer externen Datei einfügen:
1990
1991 @example
1992 lilypond -dinclude-settings=MY_SETTINGS.ly MY_SCORE.ly
1993 @end example
1994
1995
1996 Einstellungsgruppen, wie etwa Seitengröße, Schriftart oder Schriftschnitt, können
1997 in eigenen Dateien gespeichert werden.  Das ermöglicht es, aus der gleichen
1998 Partitur unterschiedliche Editionen zu erstellen bzw. Standardeinstellungen
1999 für eine ganze Anzahl von Partituren wiederzuverwenden, indem man einfach
2000 die entsprechende Einstellungsdatei angibt.
2001
2002 Diese Technik funktioniert auch gut für globale Formatierungen, wie behandelt
2003 in @rlearning{Globale Formatierung}.
2004
2005 @seealso
2006 Handbuch zum Lernen:
2007 @rlearning{Stücke durch Bezeichner organisieren},
2008 @rlearning{Globale Formatierung}.
2009
2010 Notationsreferenz:
2011 @ref{LilyPond-Dateien einfügen}.
2012
2013
2014 @node Sonderzeichen
2015 @subsection sonderzeichen
2016 @translationof Special characters
2017
2018 @cindex Sonderzeichen
2019 @cindex Nicht-ASCII-Zeichen
2020
2021 @menu
2022 * Zeichenkodierung::
2023 * Unicode::
2024 * ASCII-Aliase::
2025 @end menu
2026
2027
2028 @node Zeichenkodierung
2029 @unnumberedsubsubsec Zeichenkodierung
2030 @translationof Text encoding
2031
2032
2033 @cindex UTF-8
2034
2035 LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium
2036 und ISO/IEC 10646 definiert sind.  Hiermit wird den Zeichen
2037 fast aller Schriftsysteme der Welt ein eindeutiger Name und ein
2038 Code-Punkt zugewiesen, mit dem sie identifizierbar sind.  Unicode
2039 kann mit mehreren Zeichenkodierungen verwirklicht werden.  LilyPond
2040 benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format),
2041 in der die normalen Zeichen des lateinischen Alphabets mit einem
2042 Byte dargestellt werden, während alle anderen Zeichen zwischen
2043 zwei und vier Byte Länge haben.
2044
2045 Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte
2046 Schriftart (engl. font).  In einer Schriftartdatei werden die
2047 Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet.
2048 LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte
2049 und komplexe Skripte korrekt zu setzen.
2050
2051 LilyPond verändert die Kodierung der Eingabedatei nicht.  Das heißt,
2052 dass jeder Text -- Überschriften, Gesangstext, Spielanweisungen etc. --
2053 der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein
2054 musst.  Am einfachsten geht das, indem man einen Texteditor
2055 einsetzt, der mit Unicode-Zeichen umgehen kann.  Die meisten
2056 modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung,
2057 wie etwa vim, Emacs, jEdit oder GEdit.  Alle MS Windows-Systeme
2058 nach NT benutzen Unicode intern, sodass sogar Notepad Dateien
2059 in UTF-8 lesen und speichern kann.  Ein Editor mit mehr
2060 Funktionen unter Windows ist BabelPad oder Notepad++.
2061
2062 Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält
2063 und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
2064
2065 @example
2066 FT_Get_Glyph_Name () error: invalid argument
2067 @end example
2068
2069 Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
2070
2071 @lilypond[quote]
2072 %c No verbatim here as the code does not display correctly in PDF
2073 % Cyrillic
2074 bulgarian = \lyricmode {
2075   Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
2076 }
2077
2078 % Hebrew
2079 hebrew = \lyricmode {
2080   זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
2081 }
2082
2083 % Portuguese
2084 portuguese = \lyricmode {
2085   à vo -- cê uma can -- ção legal
2086 }
2087
2088 \relative c' {
2089   c2 d e f g f e
2090 }
2091 \addlyrics { \bulgarian }
2092 \addlyrics { \hebrew }
2093 \addlyrics { \portuguese }
2094 @end lilypond
2095
2096
2097 @node Unicode
2098 @unnumberedsubsubsec Unicode
2099 @translationof Unicode
2100
2101 @cindex Unicode
2102
2103 Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Ziffernfolge
2104 bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
2105 der Befehl @code{\char ##xhhhh} oder @code{\char #dddd} innerhalb einer
2106 @code{\markup}-Umgebung benutzt werden.  Hierbei bedeutet @code{hhhh} die
2107 hexadezimale Zahl und @code{ddd} die entsprechende dezimale Zahl
2108 für das erforderliche Zeichen.  Nullen zu Beginn können ausgelassen werden,
2109 aber normalerweise werden alle vier Zeichen der hexadezimalen Notation
2110 notiert. (Achten Sie darauf, dass Sie @emph{nicht} UTF-8-Codepunkte
2111 einsetzen, weil UTF-8 zusätzliche Bits enthält, die die Nummer der Oktets bezeichnet.)  Unicode-Tabellen und ein Verzeichnis der Zeichenbezeichnungen
2112 mit einer hexadezimalen Verweiszahl finden sich auf der Internetseite
2113 des Unicode Consortiums: @uref{http://www.unicode.org/}.
2114
2115 Mit @code{\char ##x03BE} und @code{\char #958} wird
2116 beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
2117 Unicode-Bezeichnung @qq{Greek Small Letter Xi} hat.
2118
2119 Alle existierenden
2120 Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
2121 Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
2122 gespeichert werden.  Es muss natürlich auch noch eine Schriftart auf
2123 dem System installiert sein, die die notierten Zeichen darstellen kann.
2124
2125 Das nächste Beispiel zeigt, wie Unicode-Zeichen an vier Stellen mit dem
2126 hexadezimalen Code notiert werden: in einem Übungszeichen, als Artikulationszeichen,
2127 im Gesangstext und als normaler Text außerhalb der Partitur.
2128
2129 @lilypond[quote,verbatim]
2130 \score {
2131   \relative c'' {
2132     c1 \mark \markup { \char ##x03EE }
2133     c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
2134   }
2135   \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
2136 }
2137 \markup { "Copyright 2008--2011" \char ##x00A9 }
2138 @end lilypond
2139
2140 @cindex Copyright-Zeichen
2141
2142 Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
2143
2144 @example
2145 \header @{
2146   copyright = \markup @{ \char ##x00A9 "2008" @}
2147 @}
2148 @end example
2149
2150
2151 @node ASCII-Aliase
2152 @unnumberedsubsubsec ASCII-Aliase
2153 @translationof ASCII aliases
2154
2155 Eine Liste von ASCII-Befehlen für Sonderzeichen kann
2156 eingefügt werden:
2157
2158 @lilypond[quote,verbatim]
2159 \paper {
2160   #(include-special-characters)
2161 }
2162
2163 \markup "&flqq; &ndash; &OE;uvre incomplète&hellip; &frqq;"
2164
2165 \score {
2166   \new Staff { \repeat unfold 9 a'4 }
2167   \addlyrics {
2168     This is al -- so wor -- kin'~in ly -- rics: &ndash;_&OE;&hellip;
2169   }
2170 }
2171
2172 \markup \column {
2173   "The replacement can be disabled:"
2174   "&ndash; &OE; &hellip;"
2175   \override #'(replacement-alist . ()) "&ndash; &OE; &hellip;"
2176 }
2177 @end lilypond
2178
2179 Man kann auch eigen Aliase erstellen, entweder global:
2180
2181 @lilypond[quote,verbatim]
2182 \paper {
2183   #(add-text-replacements!
2184     '(("100" . "hundred")
2185       ("dpi" . "dots per inch")))
2186 }
2187 \markup "A 100 dpi."
2188 @end lilypond
2189
2190 @noindent
2191 oder lokal:
2192
2193 @lilypond[quote,verbatim]
2194 \markup \replace #'(("100" . "hundred")
2195                     ("dpi" . "dots per inch")) "A 100 dpi."
2196 @end lilypond
2197
2198 @seealso
2199 Notationsreferenz:
2200 @ref{Liste der Sonderzeichen}.
2201
2202 Installierte Dateien:
2203 @file{ly/text-replacements.ly}.
2204
2205
2206 @node Ausgabe kontrollieren
2207 @section Ausgabe kontrollieren
2208 @translationof Controlling output
2209
2210 @menu
2211 * Notationsfragmente extrahieren::
2212 * Korrigierte Musik überspringen::
2213 * Alternative Ausgabeformate::
2214 * Die Notationsschriftart verändern::
2215 @end menu
2216
2217
2218 @node Notationsfragmente extrahieren
2219 @subsection Notationsfragmente extrahieren
2220 @translationof Extracting fragments of music
2221
2222 Es ist möglich, kleine Abschnitte einer großen Partitur direkt aus der
2223 Quelldatei zu erzeugen.  Das kann damit verglichen werden, dass man
2224 mit der Schere bestimmte Regionen ausschneidet.
2225
2226 Es wird erreicht, indem man die Takte, die ausgeschnitten werden sollen
2227 (engl. to clip = ausschneiden), extra definiert.  Mit folgender
2228 Definition beispielsweise
2229
2230 @verbatim
2231 \layout {
2232   clip-regions
2233   = #(list
2234       (cons
2235        (make-rhythmic-location 5 1 2)
2236        (make-rhythmic-location 7 3 4)))
2237 }
2238 @end verbatim
2239
2240 @noindent
2241 wird ein Fragment ausgeschnitten, dass auf der Mitte des fünften Taktes
2242 beginnt und im siebten Takt endet.  Die Bedeutung von @code{5 1 2} ist:
2243 nach einer Halben in Takt fünf, @code{7 3 4} heißt: nach drei Vierteln
2244 in Takt 7.
2245
2246 Weitere Bereiche, die ausgeschnitten werden sollen, können definiert
2247 werden, indem mehrere derartige Paare definiert werden.
2248
2249 Um diese Funktion auch nutzen zu können, muss LilyPond mit dem
2250 Parameter @option{-dclip-systems} aufgerufen werden.  Die Schnipsel
2251 werden als EPS ausgegeben und dann zu PDF und PNG konvertiert, wenn
2252 diese Formate auch als Parameter angegeben werden.
2253
2254 Zu mehr Information über Ausgabeformate siehe @rprogram{lilypond aufrufen}.
2255
2256
2257 @node Korrigierte Musik überspringen
2258 @subsection Korrigierte Musik überspringen
2259 @translationof Skipping corrected music
2260
2261
2262 @funindex skipTypesetting
2263 @funindex showFirstLength
2264 @funindex showLastLength
2265
2266 Wenn man Noten eingibt oder kopiert, sind meistens nur die Noten nahe dem
2267 Ende (wo gerade neue Noten notiert wurden) wichtig für Kontrolle und
2268 Korrektur.  Um die Korrektur zu beschleunigen, kann eingestellt werden,
2269 dass nur die letzten paar Takte angezeigt werden.  Das erreicht man
2270 mit dem Befehl
2271
2272 @verbatim
2273 showLastLength = R1*5
2274 \score { ... }
2275 @end verbatim
2276
2277 @noindent
2278 in der Quelldatei.  Damit werden nur die letzten fünf Takte (in einem
2279 4/4-Takt) eines jeden @code{\score}-Abschnitts übersetzt.  Besonders
2280 bei längeren Stücken ist es meistens sehr viel schneller, nur einen
2281 kleinen Teil des Stückes zu setzen als die gesamte Länge.  Wenn man
2282 am Anfang eines Stückes arbeitet (weil etwa ein neuer Teil hinzugefügt
2283 werden soll), kann auch die @code{showFirstLength}-Eigenschaft
2284 nützlich sein.
2285
2286 Nur bestimmte Teile einer Partitur zu überspringen, kann mit der
2287 Eigenschaft @code{Score.skipTypesetting} sehr genau kontrolliert
2288 werden.  Für den Bereich, für den sie auf @qq{wahr} gesetzt wird,
2289 wird kein Notensatz ausgegeben.
2290
2291 Diese Eigenschaft kann auch benutzt werden, um die MIDI-Ausgabe zu
2292 kontrollieren.  Hiermit werden alle Ereignisse, auch Tempo- und
2293 Instrumentenwechsel ausgelassen.  Man muss also sehr genau darauf
2294 achten, dass nichts unerwartetes geschieht.
2295
2296 @lilypond[quote,relative=2,ragged-right,verbatim]
2297 c8 d
2298 \set Score.skipTypesetting = ##t
2299 e8 e e e e e e e
2300 \set Score.skipTypesetting = ##f
2301 c8 d b bes a g c2
2302 @end lilypond
2303
2304 In polyphoner Notation wirkt sich @code{Score.skipTypesetting} auf
2305 alle Stimmen und Systeme aus, sodass noch mehr Zeit bei der
2306 Übersetzung der Datei gespart wird.
2307
2308
2309 @node Alternative Ausgabeformate
2310 @subsection Alternative Ausgabeformate
2311 @translationof Alternative output formats
2312
2313 @cindex scalable vector graphics output
2314 @cindex skalierbare Vektorgraphik-Ausgabe
2315 @cindex SVG-Ausgabe
2316 @cindex encapsulated postscript output
2317 @cindex EPS-Ausgabe
2318 @cindex PNG-Ausgabe
2319
2320 Das Standardausgabeformat für gedruckte Partituren ist PDF (Portable
2321 Document Forma) und PS (PostScript).  SVG (Scalable Vector
2322 Graphics), EPS (Encapsulated PostScript) und PNG (Portable
2323 Network Graphics) gibt es auch als Ausgabeformate über die
2324 Kommandozeile.  Siehe @rprogram{Optionen auf der Kommandozeile für lilypond}.
2325
2326
2327 @node Die Notationsschriftart verändern
2328 @subsection Die Notationsschriftart verändern
2329 @translationof Replacing the notation font
2330
2331 Gonville ist eine Alternative zu der Feta-Schriftart, die in LilyPond
2332 eingesetzt wird und kann unter der Adresse
2333 @example
2334 @uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
2335 @end example
2336
2337 @noindent
2338 heruntergeladen werden.  Hier einige Takte Noten mit der Gonville-Schriftart:
2339
2340 @c NOTE: these images are a bit big, but that's important
2341 @c       for the font comparison.  -gp
2342 @sourceimage{Gonville_after,,,}
2343
2344 Und hier einige Beispieltakte in der Feta-Schriftart:
2345
2346 @sourceimage{Gonville_before,,,}
2347
2348 @subsubheading Installationsanweisungen für MacOS
2349
2350 Laden Sie die Datei herunter und entpacken Sie die ZIP-Datei.
2351 Kopieren Sie das @code{lilyfonts}-Verzeichnis nach
2352 @file{@var{SHARE_DIR}/lilypond/current}; für mehr Information
2353 siehe @rlearning{Mehr Information}.
2354 Benennen Sie das existierende @code{fonts}-Verzeichnis in
2355 @code{fonts_orig} um und benennen Sie das Verzeichnis
2356 @code{lilyfonts} in @code{fonts}.  Das alte Verzeichnis
2357 @code{fonts_orig} können Sie einfach in @code{fonts}
2358 zurückbenennen, um wieder nach Feta zu wechseln.
2359
2360 @seealso
2361 Handbuch zum Lernen: @rlearning{Mehr Information}.
2362
2363 @knownissues
2364
2365 Gonville kann nicht verwendet werden, um Alte Notation zu setzen und es
2366 ist wahrscheinlich, dass neuere Glyphen in späteren Versionen von
2367 LilyPond nicht in Gonville enthalten sein werden.
2368 Bitte lesen Sie die Webseite des Autoren zu mehr Information hierzu
2369 und zu anderen Einzelheiten, wie auch der Lizenz von Gonville.
2370
2371
2372 @node MIDI-Ausgabe
2373 @section MIDI-Ausgabe
2374 @translationof MIDI output
2375
2376 @cindex Klang
2377 @cindex MIDI
2378
2379 MIDI (Musical Instrument Digital Interface) ist ein Standard zur
2380 Kontrolle und Interaktion mit digitalen Instrumenten.  Eine
2381 MIDI-Datei ist eine Anzahl von Noten auf einer Anzahl von
2382 Bändern/Stimmen.  Es ist keine eigentliche Klangdatei, denn man
2383 benötigt spezielle Programme die die Notenereignisse in Klang
2384 umwandeln können.
2385
2386 Der Notensatz von LilyPond kann in MIDI umgewandelt werden, so dass
2387 man sich anhören kann, was man notiert hat.  Das hilft oft sehr gut
2388 bei der Überprüfung: falsche Oktaven oder falsche Versetzungszeichen
2389 lassen sich meist sehr gut hören.
2390
2391 Normale MIDI-Ausgabe ist etwas roh; optional kann eine verbesserte und
2392 realistischere MIDI-Ausgabe mit einem @ref{Artikuliere-Skript}
2393 erzeugt werden.
2394
2395 Die MIDI-Ausgabe benötigt einen Kanal für jedes System und reserviert
2396 Kanala 10 für Schlagzeug.  Es gibt nur 16 MIDI-Kanäle pro Gerät,
2397 sodass MIDI-Kanäle mehrfach benutzt werden, wenn eine Partitur mehr
2398 als 15 Notensysteme hat.
2399
2400 @menu
2401 * MIDI-Dateien erstellen::
2402 * Der MIDI-Block::
2403 * Was geht in die MIDI-Ausgabe::
2404 * Wiederholungen im MIDI::
2405 * MIDI-Lautstärke kontrollieren::
2406 * Schlagzeug in MIDI::
2407 * Artikuliere-Skript::
2408 @end menu
2409
2410
2411 @node MIDI-Dateien erstellen
2412 @subsection MIDI-Dateien erstellen
2413 @translationof Creating MIDI files
2414
2415 Um eine MIDI-Datei aus einer LilyPond-Quelldatei zu erstellen, muss
2416 eine @code{\midi}-Umgebung zu der @code{\score}-Umgebung hinzugefügt
2417 werden, etwa so:
2418
2419 @example
2420 \score @{
2421   @var{...Noten...}
2422   \midi @{ @}
2423 @}
2424 @end example
2425
2426 Wenn in einer @code{\score}-Umgebung nur eine @code{\midi}-Umgebung,
2427 aber keine @code{\layout}-Umgebung vorkommt, wird nur MIDI produziert.
2428 Wenn auch die Notation gewünscht ist, muss zusätzlich die
2429 @code{\layout}-Umgebung vorhanden sein:
2430
2431 @example
2432 \score @{
2433   @var{...music...}
2434   \midi @{ @}
2435   \layout @{ @}
2436 @}
2437 @end example
2438
2439 Tonhöhen, Rhythmen, Überbindungen, Dynamik und Tempoänderungen werden
2440 korrekt in das MIDI-Format übersetzt.  Dynamikzeichen, Crescendo und
2441 Decrescendo werden in den MIDI-Lautstärkekanal übertragen.  Dynamikzeichen
2442 werden in einen bestimmten Lautstärkenwert übersetzt, Crescendo und
2443 Decrescendo erreichen einen Übergang zwischen Lautstärkewerten.
2444 Die Wirkung von Dynamikzeichen kann auch aus der MIDI-Datei entfernt
2445 werden.  Siehe hierzu @ref{Der MIDI-Block}.
2446
2447 Das Anfangstempo und spätere Tempoänderungen können mit dem
2448 @code{\tempo}-Befehl innerhalb der Notation notiert werden.  Er
2449 bewirkt Tempoänderungen auch in der MIDI-Datei.  Der Befehl setzt
2450 gleichzeitig auch eine Tempobezeichnung in die Noten, welches aber
2451 auch unterdrückt werden kann, siehe @ref{Metronomangabe}.  Eine
2452 andere Möglichkeit, ein eigenes MIDI-Tempo anzugeben, wird weiter
2453 unten gezeigt, siehe @ref{Der MIDI-Block}.
2454
2455 Aufgrund einiger Einschränkungen auf Windows ist auf Windows-Systemen
2456 die Standarddateierweiterung von MIDI-Dateien @code{.mid}. Andere
2457 Betriebssysteme verwenden weiterhin @code{.midi}. Wenn eine
2458 andere Endung erwünscht ist, kann man die folgende Zeile auf oberster
2459 Ebene der Quelldatei, vor Beginn eines @code{\book}, @code{\bookpart}
2460 oder @code{\score}-Blocks einfügen:
2461
2462 @example
2463 #(ly:set-option 'midi-extension "midi")
2464 @end example
2465
2466 Diese Codezeile setzt die Dateiendung auf @code{.midi}.
2467
2468 Als Alternative kann man diese Option auch als Kommandozeilenparameter
2469 übergeben:
2470
2471 @example
2472 lilypond … -dmidi-extension=midi lilyDatei.ly
2473 @end example
2474
2475 @unnumberedsubsubsec Instrumentenbezeichnungen
2476
2477 @cindex Instrumentbezeichnungen
2478
2479 @funindex Staff.midiInstrument
2480
2481 Das MIDI-Instrument, mit dem ein bestimmtes System wiedergegeben
2482 werden soll, wird durch die @code{Staff.midiInstrument}-Eigenschaft
2483 bestimmt, die auf eine Instrumentenbezeichnung gesetzt werden muss.
2484 Die Bezeichnungen sind aufgelistet in @ref{MIDI-Instrumente} und müssen
2485 in der dort definierten Schreibweise notiert werden.
2486
2487 @example
2488 \new Staff @{
2489   \set Staff.midiInstrument = #"glockenspiel"
2490   @var{...Noten...}
2491 @}
2492 @end example
2493
2494 @example
2495 \new Staff \with @{midiInstrument = #"cello"@} @{
2496   @var{...Noten...}
2497 @}
2498 @end example
2499
2500 Wenn die Schreibweise nicht genau einem definierten Instrument aus
2501 der Liste entspricht, wird ein Piano-Klang benutzt (@code{"acoustic grand"}).
2502
2503 @snippets
2504
2505 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
2506 {changing-midi-output-to-one-channel-per-voice.ly}
2507
2508 @knownissues
2509
2510 Veränderungen der MIDI-Lautstärke sind nur effektiv, wenn sie zu Beginn
2511 einer Note angefordert werden, sodass die Lautstärke während einer Notendauer
2512 nicht geändert werden kann.
2513
2514 Nicht alle MIDI-Spieler können Tempoänderungen richtig wiedergeben.
2515 Spieler, die hierzu in der Lage sind, sind unter Anderen MS Windows Media
2516 Player und @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
2517
2518
2519 @node Der MIDI-Block
2520 @subsection Der MIDI-Block
2521 @translationof MIDI block
2522
2523 @cindex MIDI-Umgebung
2524
2525 Eine @code{\midi}-Umgebung muss innerhalb von einer @code{\score}-Umgebung
2526 vorkommen, wenn MIDI-Ausgabe gewünscht ist.  Sie entspricht der
2527 @code{\layout}-Umgebung, aber ist etwas einfacher aufgebaut.  Oft wird
2528 die MIDI-Umgebung einfach leer gelassen, aber hier können auch
2529 Kontexte umgeändert werden, neue Kontexte definiert werden oder
2530 neue Werte definiert werden.  Das folgende Beispiel etwa definiert
2531 das MIDI-Tempo, ohne dass in der Partitur eine Metronombezeichnung
2532 gesetzt wird:
2533
2534 @example
2535 \score @{
2536   @var{...Noten...}
2537   \midi @{
2538     \context @{
2539       \Score
2540       tempoWholesPerMinute = #(ly:make-moment 72 4)
2541     @}
2542   @}
2543 @}
2544 @end example
2545
2546 Hier wird das Tempo auf 72 Viertelnoten pro Minute definiert.  Wenn
2547 das Tempo auf diese Weise definiert wird, kann keine punktierte
2548 Note als Einheit angegeben werden.  Wenn sie benötigt wird, muss
2549 man sie in kleinere Einheiten auflösen.  Ein Tempo von 90 punktierten
2550 Viertelnoten pro Minute kann beispielsweise dargestellt werden
2551 als 270 Achtelnoten pro Minute:
2552
2553 @example
2554 tempoWholesPerMinute = #(ly:make-moment 270 8)
2555 @end example
2556
2557 @cindex MIDI-Kontextdefinitionen
2558
2559 Kontextdefinitionen des @code{\midi}-Kontextes entsprechen
2560 der Syntax, wie sie in der @code{\layout}-Umgebung benutzt
2561 wird.  Klangübersetzungsmodule werden @code{performer}
2562 genannt.  Die Kontexte für die MIDI-Ausgabe sind in der
2563 Datei @file{../ly/performer-init.ly} definiert, siehe
2564 @rlearning{Mehr Information}.  Um beispielsweise
2565 die Auswirkung von Dynamikzeichen aus der MIDI-Ausgabe zu
2566 entfernen, müssen folgende Zeilen eingefügt werden:
2567
2568 @example
2569 \midi @{
2570   ...
2571   \context @{
2572     \Voice
2573     \remove "Dynamic_performer"
2574   @}
2575 @}
2576 @end example
2577
2578 Eine MIDI-Ausgabe wird nur erstellt, wenn die @code{\midi}-Umgebung
2579 in eine Partiturumgebung eingefügt wird, die mit dem Befehl
2580 @code{\score} beginnt.
2581
2582 @example
2583 \score @{
2584   @{ @dots{}Noten@dots{} @}
2585   \midi @{ @}
2586 @}
2587 @end example
2588
2589
2590 @node Was geht in die MIDI-Ausgabe
2591 @subsection Was geht in die MIDI-Ausgabe
2592 @translationof What goes into the MIDI output?
2593
2594
2595 @unnumberedsubsubsec In MIDI unterstützt
2596
2597 @cindex Tonhöhen in MIDI
2598 @cindex MIDI, Tonhöhen
2599 @cindex Vierteltöne in MIDI
2600 @cindex MIDI, Vierteltöne
2601 @cindex Mikrotöne in MIDI
2602 @cindex MIDI, Mikrotöne
2603 @cindex Akkordsymbole in MIDI
2604 @cindex MIDI, Akkordsymbole
2605 @cindex Rhythmen in MIDI
2606 @cindex MIDI, Rhythmen
2607 @cindex Artikuliere-Skript
2608 @cindex MIDI, Artikuliere-Skript
2609 @cindex MIDI, Artikulationen
2610 @cindex Triller in MIDI
2611 @cindex Verzierungen in MIDI
2612 @cindex Rallantando in MIDI
2613 @cindex Accelerando in MIDI
2614
2615 Die folgenden Notationselemente werden in die MIDI-Ausgabe aufgenommen:
2616
2617 @itemize
2618 @item Tonhöhen
2619 @item Mikrotöne (siehe @ref{Versetzungszeichen}. Für die Ausgabe wird ein
2620 Spieler benötigt, der Tonhöhen verändern kann.)
2621 @item Akkorde, die als Symbole notiert werden
2622 @item Rhythmen, die als Dauern notiert sind, inklusive N-tolen
2623 @item Tremolo, das ohne @q{@code{:}[@var{Zahl}]} notiert ist
2624 @item Überbindungen
2625 @item Dynamikzeichen
2626 @item Crescendi, decrescendi zu mehreren Noten
2627 @item Tempoänderungen, die mit einer Tempo-Bezeichnung eingegeben werden
2628 @item Gesangstext
2629 @end itemize
2630
2631 Durch Einsatz vom @ref{Artikuliere-Skript} können noch einige Elemente
2632 zu der Liste hinzugefügt werden:
2633
2634 @itemize
2635 @item Artikulationen (Bögen, Staccato usw.)
2636 @item Triller usw.
2637 @item Rallentando und accelerando
2638 @end itemize
2639
2640
2641 @unnumberedsubsubsec In MIDI nicht unterstützt
2642
2643 Folgende Notationselemente werden nicht in die MIDI-Ausgabe einbezogen,
2644 außer am setzt das @ref{Artikuliere-Skript} ein:
2645
2646 @itemize
2647 @item Rhythmus, der als Anmerkung notiert wird, bspw. Swing
2648 @item Tempoveränderungen, die als Anmerkung ohne Tempobezeichnung notiert werden
2649 @item Staccato und andere Artikulationen und Ornamente
2650 @item Legato- und Phrasierungsbögen
2651 @item Crescendi, decrescendi zu einer einzelnen Note
2652 @item Tremolo, notiert mit @q{@code{:}[@var{number}]}
2653 @item Bezifferter Bass
2654 @item Akkorde mit Mikrotönen
2655 @end itemize
2656
2657
2658 @node Wiederholungen im MIDI
2659 @subsection Wiederholungen im MIDI
2660 @translationof Repeats in MIDI
2661
2662 @cindex Wiederholungen in MIDI
2663 @cindex MIDI und Wiederholungen
2664
2665 @funindex \unfoldRepeats
2666
2667 Mit einigen Veränderungen im Notentext können alle Wiederholungstypen
2668 auch in der MIDI-Ausgabe wiedergegeben werden.  Das wird erreicht, indem
2669 die @code{\unfoldRepeats}-Funktion eingesetzt wird.  Diese Funktion
2670 verändert alle Wiederholungen in ausgeschriebene Noten.
2671
2672 @lilypond[quote,verbatim]
2673 \unfoldRepeats {
2674   \repeat tremolo 8 { c'32 e' }
2675   \repeat percent 2 { c''8 d'' }
2676   \repeat volta 2 { c'4 d' e' f' }
2677   \alternative {
2678     { g' a' a' g' }
2679     { f' e' d' c' }
2680   }
2681 }
2682 \bar "|."
2683 @end lilypond
2684
2685 In Parituren mit mehreren Stimmen funktioniert das Ausschreiben der
2686 Wiederholungen im MIDI nur richtig, wenn @emph{jede} Stimme vollständig
2687 notierte Wiederholungsanweisungen enthält.
2688
2689 Wenn eine Partitur mit diesem @code{\unfoldRepeats}-Befehl erstellt
2690 wird, ist er notwendig,
2691 zwei @code{\score}-Umgebungen einzurichten: in der einen werden die
2692 Wiederholungen ausgeschrieben und nur eine MIDI-Ausgabe produziert,
2693 in der anderen werden die Wiederholungen notiert und als Partitur
2694 gesetzt.  Das Beispiel gibt einen Hinweis, wie eine derartige Datei
2695 aussehen kann:
2696
2697 @example
2698 \score @{
2699   @var{..music..}
2700   \layout @{ .. @}
2701 @}
2702 \score @{
2703   \unfoldRepeats @var{..music..}
2704   \midi @{ .. @}
2705 @}
2706 @end example
2707
2708
2709 @node MIDI-Lautstärke kontrollieren
2710 @subsection MIDI-Lautstärke kontrollieren
2711 @translationof Controlling MIDI dynamics
2712
2713 Dynamik in der MIDI-Ausgabe wird durch den Dynamic_performer
2714 erstellt, welcher sich in einem @code{Voice}-Kontext befindet.
2715 Es ist möglich, sowohl die generelle Lautstärke einer MIDI-Datei
2716 als auch relative Lautstärken von Dynamikanweisungen und auch
2717 relative Lautstärke von einzelnen Instrumenten einzustellen.
2718
2719
2720 @unnumberedsubsubsec Dynamik-Zeichen
2721
2722 Dynamikanweisungen werden als ein bestimmter Bruch der insgesamt
2723 zur Verfügung stehenden MIDI-Lautstärke notiert.  Die Standardbrüche
2724 reichen von 0,25 für @notation{ppppp} bis hin zu 0,95 für
2725 @notation{fffff}.  Diese Anweisung befinden sich in der Datei
2726 @file{../scm/midi.scm}, siehe auch @rlearning{Mehr Information}.
2727 Diese Brüche können nach Belieben geändert oder erweitert werden, indem
2728 eine Funktion erstellt wird, die ein Dynamikzeichen als Argument
2729 nimmt und den erforderlichen Bruch ausgibt; schließlich muss noch
2730 @code{Score.dynamicAbsoluteVolumeFunction} auf diese Funktion
2731 gesetzt werden.
2732
2733 Beispielhaft soll gezeigt werden, wie man eine @notation{Rinforzando}-Dynamik,
2734 @code{\rfz}, auch in die MIDI-Ausgabe übernehmen kann.  Gleiches gilt
2735 für neue, selbstdefinierte Dynamikzeichen, die in den Standarddefinitionen
2736 nicht enthalten sind.  Die Scheme-Funktion, die hier definiert wird,
2737 setzt den Bruch von 0,9 für eine rfz-Anweisung und ruft andernfalls die
2738 Standardanweisungen auf:
2739
2740 @lilypond[verbatim,quote]
2741 #(define (myDynamics dynamic)
2742     (if (equal? dynamic "rfz")
2743       0.9
2744       (default-dynamic-absolute-volume dynamic)))
2745
2746 \score {
2747   \new Staff {
2748     \set Staff.midiInstrument = #"cello"
2749     \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
2750     \new Voice {
2751       \relative c'' {
2752         a4\pp b c-\rfz
2753       }
2754     }
2755   }
2756   \layout {}
2757   \midi {}
2758 }
2759 @end lilypond
2760
2761 Alternativ, insbesondere wenn die gesamte Tabelle der MIDI-Lautstärken
2762 umdefiniert werden soll, ist es besser, die
2763 @notation{default-dynamic-absolute-volume}-Prozedur in der Datei
2764 @file{../scm/midi.scm} und die hiermit verknüpfte Tabelle als Modell
2765 zu benutzen.  Das letzte Beispiel dieses Abschnittes zeigt, wie das
2766 gemacht werden kann.
2767
2768
2769 @unnumberedsubsubsec MIDI-Lautstärke
2770
2771 Die generellen Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2772 wird kontrolliert, indem die Eigenschaften @code{midiMinimumVolume}
2773 und @code{midiMaximumVolume} auf der @code{Score}-Ebene gesetzt
2774 werden.  Diese Eigenschaften haben nur Einfluss auf Dynamikzeichen, sodass
2775 ein Dynamikzeichen direkt an den Anfang der Partitur gestellt werden muss,
2776 wenn diese Einstellung von Anfang an Wirkung zeigen soll.  Der Bruch,
2777 der dann den einzelnen Dynamikzeichen entspricht, wird mit der
2778 Formel
2779
2780 @example
2781 midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * Bruch
2782 @end example
2783
2784 @noindent
2785 errechnet.  Im folgenden Beispiel wird die generelle MIDI-Lautstärke
2786 auf den Bereich zwischen 0.2 und 0.5 eingeschränkt.
2787
2788 @lilypond[verbatim,quote]
2789 \score {
2790   <<
2791     \new Staff {
2792       \key g \major
2793       \time 2/2
2794       \set Staff.midiInstrument = #"flute"
2795       \new Voice \relative c''' {
2796         r2 g\mp g fis~
2797         fis4 g8 fis e2~
2798         e4 d8 cis d2
2799       }
2800     }
2801     \new Staff {
2802       \key g \major
2803       \set Staff.midiInstrument = #"clarinet"
2804       \new Voice \relative c'' {
2805         b1\p a2. b8 a
2806         g2. fis8 e
2807         fis2 r
2808       }
2809     }
2810   >>
2811   \layout {}
2812   \midi {
2813     \context {
2814       \Score
2815       tempoWholesPerMinute = #(ly:make-moment 72 2)
2816       midiMinimumVolume = #0.2
2817       midiMaximumVolume = #0.5
2818     }
2819   }
2820 }
2821 @end lilypond
2822
2823
2824 @unnumberedsubsubsec Verschiedene Instrumente angleichen (i)
2825
2826 Wenn die Mindest- und Höchstwerte für die MIDI-Lautstärke
2827 innerhalb eines @code{Staff}-Kontextes gesetzt werden,
2828 kann damit die relative Lautstärke einzelner Instrumente kontrolliert
2829 werden.  Damit kann man die Qualität der MIDI-Datei
2830 merklich verbessern.
2831
2832 In diesem Beispiel wird die Lautstärke der Klarinette relativ
2833 zur Lautstärke der Flöte verringert.  In jeder Stimme muss
2834 eine Dynamikanweisung für die erste Note gesetzt werden, damit
2835 diese Einstellung korrekt funktioniert.
2836
2837 @lilypond[verbatim,quote]
2838 \score {
2839   <<
2840     \new Staff {
2841       \key g \major
2842       \time 2/2
2843       \set Staff.midiInstrument = #"flute"
2844       \set Staff.midiMinimumVolume = #0.7
2845       \set Staff.midiMaximumVolume = #0.9
2846       \new Voice \relative c''' {
2847         r2 g\mp g fis~
2848         fis4 g8 fis e2~
2849         e4 d8 cis d2
2850       }
2851     }
2852     \new Staff {
2853       \key g \major
2854       \set Staff.midiInstrument = #"clarinet"
2855       \set Staff.midiMinimumVolume = #0.3
2856       \set Staff.midiMaximumVolume = #0.6
2857       \new Voice \relative c'' {
2858         b1\p a2. b8 a
2859         g2. fis8 e
2860         fis2 r
2861       }
2862     }
2863   >>
2864   \layout {}
2865   \midi {
2866     \context {
2867       \Score
2868       tempoWholesPerMinute = #(ly:make-moment 72 2)
2869     }
2870   }
2871 }
2872 @end lilypond
2873
2874
2875 @unnumberedsubsubsec Verschiedene Instrumente angleichen (ii)
2876
2877 Wenn Mindest- und Höchstwerte für die Lautstärke der MIDI-Datei
2878 nicht vorgegeben werden, nimmt LilyPond standardmäßig einige
2879 Anpassungen für die Lautstärken bestimmter Instrumente vor.
2880 Diese Instrumente und ihre entsprechende Veränderung lassen
2881 sich aus der Tabelle @notation{instrument-equalizer-alist}
2882 in der Datei @file{../scm/midi.scm} entnehmen.
2883
2884 Dieser grundlegende Equalizer kann ersetzt werden, indem die
2885 Funktion @code{instrumentEqualizer} im @code{Score}-Kontext auf
2886 eine neue Scheme-Funktion gesetzt wird, die MIDI-Instrumentbezeichnungen
2887 als einziges Argument akzeptiert und ein Zahlenpaar ausgibt, das
2888 den Höchst- und Mindestwert für die Lautstärke des entsprechenden
2889 Instruments darstellt.  Die Ersetzung der Standardfunktion wird
2890 auf gleiche Weise vorgenommen, wie es schon für die
2891 @code{dynamicAbsoluteVolumeFunction} zu Beginn dieses Abschnittes
2892 gezeigt wurde.  Der Standard-Equalizer,
2893 @notation{default-instrument-equalizer} in der Datei
2894 @file{../scm/midi.scm} zeigt, wie solche eine Funktion erstellt werden
2895 kann.
2896
2897 Das folgende Beispiel definiert für die Flöte und Klarinette relative
2898 Lautstärkewerte, die denen des vorigen Beispiels entsprechen.
2899
2900 @lilypond[verbatim,quote]
2901 #(define my-instrument-equalizer-alist '())
2902
2903 #(set! my-instrument-equalizer-alist
2904   (append
2905     '(
2906       ("flute" . (0.7 . 0.9))
2907       ("clarinet" . (0.3 . 0.6)))
2908     my-instrument-equalizer-alist))
2909
2910 #(define (my-instrument-equalizer s)
2911   (let ((entry (assoc s my-instrument-equalizer-alist)))
2912     (if entry
2913       (cdr entry))))
2914
2915 \score {
2916   <<
2917     \new Staff {
2918       \key g \major
2919       \time 2/2
2920       \set Score.instrumentEqualizer = #my-instrument-equalizer
2921       \set Staff.midiInstrument = #"flute"
2922       \new Voice \relative c''' {
2923         r2 g\mp g fis~
2924         fis4 g8 fis e2~
2925         e4 d8 cis d2
2926       }
2927     }
2928     \new Staff {
2929       \key g \major
2930       \set Staff.midiInstrument = #"clarinet"
2931       \new Voice \relative c'' {
2932         b1\p a2. b8 a
2933         g2. fis8 e
2934         fis2 r
2935       }
2936     }
2937   >>
2938   \layout { }
2939   \midi {
2940     \context {
2941       \Score
2942       tempoWholesPerMinute = #(ly:make-moment 72 2)
2943     }
2944   }
2945 }
2946 @end lilypond
2947
2948
2949
2950 @node Schlagzeug in MIDI
2951 @subsection Schlagzeug in MIDI
2952 @translationof Percussion in MIDI
2953
2954 Schlagzeuginstrumente werden üblicherweise in einem @code{DrumStaff}-Kontext
2955 notiert.  Aus diese Weise werden sie korrekt in den MIDI-Kanal@tie{}10
2956 ausgegeben.  Eine Schlagzeuge mit diskreten Tonhöhen, wie Xylophon,
2957 Marima, Vibraphone, Pauken usw. werden wie @qq{normale} Instrumente
2958 in einem @code{Staff}-Kontext notiert.  Nur so lässt sich auch hier
2959 eine richtige MIDI-Ausgabe erreichen.
2960
2961 Einige Instrumente, die keine diskreten Tonhöhen haben, können nicht
2962 über den MIDI-Kanal@tie{}10 erreicht werden und müssen deshalb in
2963 einem normalen @code{Staff}-Kontext mit passenden normalen Tonhöhen
2964 notiert werden.  Es handelt sich
2965 um @code{melodic tom, taiko drum, synth drum} u. A.
2966
2967 Viele Schlagzeuginstrumente sind nicht in den MIDI-Standard aufgenommen,
2968 z. B. Kastagnetten.  Die einfachste Methode, derartige Instrumente
2969 zu ersetzen, ist, einen Klang auszuwählen, der ihnen halbwegs ähnlich
2970 kommt.
2971
2972
2973 @knownissues
2974
2975 Weil der MIDI-Standard keine Peitschenschläge kennt, wird ein
2976 Schlagstock (sidestick) für diesen Zweck eingesetzt.
2977
2978
2979 @node Artikuliere-Skript
2980 @subsection Artikuliere-Skript
2981 @translationof The Articulate script
2982
2983 Eine realistischere MIDI-Ausgabe ist möglich, wenn man das
2984 Artikuliere-Skript einsetzt.  Es versucht, Artikulationen
2985 (Bögen, Staccato) mit einzubeziehen, indem Noten mit
2986 sequentieller Musik von passender Verlängerung oder Verkürzung
2987 mit entprechenden Skips ersetzt werden.  Es versucht auch,
2988 Triller usw. klingen zu lassen und rallantando und
2989 accelerando wahrzunehmen.
2990
2991 Um das Artikuliere-Skript einzusetzen, muss oben in der
2992 Eingabedatei
2993
2994 @example
2995 \include "articulate.ly"
2996 @end example
2997
2998 @noindent
2999 eingefügt werden.  Im @code{\score}-Abschnitt schreibt man
3000
3001 @example
3002 \unfoldRepeats \articulate <<
3003         der Rest der Partitur...
3004 >>
3005 @end example
3006
3007 Wenn die Eingabedatei auf diese Art verändert wurd, wird die
3008 Notenausgabe stark verändert, aber die MIDI-Ausgabe produziert
3009 ein besseres Ergebnis.
3010
3011 Wenn auch nicht unbedingt notwendig, damit das Artikuliere-Skript
3012 funktioniert, bietet es sich an, @code{\unfoldRepeats} wie im
3013 Beispiel oben zu verwenden, weil dadurch Abkürzungen wie etwa
3014 Triller ausgeführt werden.
3015
3016 @knownissues
3017
3018 Articulate verkürzt Akkorde und manche Musik (besonders Orgelmusik)
3019 kann schlechter klingen.
3020
3021
3022
3023 @node Musikalische Information extrahieren
3024 @section Musikalische Information extrahieren
3025 @translationof Extracting musical information
3026
3027 Neben graphischer Ausgabe und MIDI kann LilyPond auch die musikalische
3028 Information als Text anzeigen:
3029
3030 @menu
3031 * LilyPond-Notation anzeigen::
3032 * Musikalische Scheme-Ausdrücke anzeigen::
3033 * Musikalische Ereignisse in einer Datei speichern::
3034 @end menu
3035
3036 @node LilyPond-Notation anzeigen
3037 @subsection LilyPond-Notation anzeigen
3038 @translationof Displaying LilyPond notation
3039
3040 @funindex \displayLilyMusic
3041
3042 Mit der musikalischen Funktion @code{\displayLilyMusic} kann
3043 man einen musikalischen Ausdruck anzeigen.  Um die Ausgabe zu
3044 sehen, wird LilyPond üblicherweise auf der Kommandozeile
3045 aufgerufen.  Beispielsweise
3046
3047 @example
3048 @{
3049   \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3050 @}
3051 @end example
3052
3053 @noindent
3054 zeigt an:
3055
3056 @example
3057 @{ a,4 cis e fis g @}
3058 @end example
3059
3060 Standardmäßig gibt LilyPond diese Nachrichten auf die Kommandozeile
3061 aus, zusammen mit all den anderen LilyPond-Nachrichten über die
3062 Kompilation.  Um die Nachrichten zu speichern, kann man die Ausgabe
3063 in eine Datei umleiten:
3064
3065 @example
3066 lilypond file.ly >display.txt
3067 @end example
3068
3069 @funindex \void
3070
3071 LilyPond zeit nicht nur die musikalischen Ausdrücke an, sondern
3072 interpretiert sie auch (weil @code{\displayLilyMusic} sie an das
3073 Programm zurückgibt, zusätzlich zur Anzeige).  Das ist sehr
3074 praktisch, denn man kann einfach @code{\displayLilyMusic}
3075 in vorhandene Noten einfügen, um Informationen darüber zu erhalten.
3076 Wenn Sie nicht wollen, dass LilyPond die angezeigten
3077 musikalischen Ausdrücke auch interpretiert, muss @code{\void}
3078 eingesetzt werden, damit der Ausdruck für die Interpretation ignoriert wird:
3079
3080 @example
3081 @{
3082   \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
3083 @}
3084 @end example
3085
3086
3087 @node Musikalische Scheme-Ausdrücke anzeigen
3088 @subsection Musikalische Scheme-Ausdrücke anzeigen
3089 @translationof Displaying scheme music expressions
3090
3091 Siehe @rextend{Musikalische Funktionen darstellen}.
3092
3093
3094 @node Musikalische Ereignisse in einer Datei speichern
3095 @subsection Musikalische Ereignisse in einer Datei speichern
3096 @translationof Saving music events to a file
3097
3098 Musikereignisse können in einer Datei Notensystem für Notensystem
3099 gespeichert werden, indem eine Datei in die Paritur eingefügt
3100 wird:
3101
3102 @example
3103 \include "event-listener.ly"
3104 @end example
3105
3106 Das erstellt Dateien mit der Bezeichnung @file{DATEINAME-SYSTEMNAME.notes} oder
3107 @file{DATEINAME-unnamed-staff.notes} für jedes Notensystem.
3108 Wenn mehrere Systeme ohne Bezeichnung auftreten, werden die
3109 Ereignisse aller Notensysteme zusammen in der selben Datei
3110 gemischt.  Die Ausgabe sieht folgendermaßen aus:
3111
3112 @example
3113 0.000   note     57       4   p-c 2 12
3114 0.000   dynamic  f
3115 0.250   note     62       4   p-c 7 12
3116 0.500   note     66       8   p-c 9 12
3117 0.625   note     69       8   p-c 14 12
3118 0.750   rest     4
3119 0.750   breathe
3120 @end example
3121
3122 Die Syntax ist eine durch Tabulatoren getrennte Zeile mit zwei
3123 festen Zellen, gefolgt von optionalen Parametern.
3124
3125 @example
3126 @var{time}  @var{type}  @var{...params...}
3127 @end example
3128
3129 Diese Information kann einfach ein ein anderes Programm wie
3130 etwa ein Python-Skript eingelsen werden und kann nützlich für
3131 Forscher sein, die musikalische Analyse- oder Wiedergabeexperimente
3132 mit LilyPond machen wollen.
3133
3134 @knownissues
3135
3136 Nicht alle musikalischen Ereignisse werden von
3137 @file{event-listener.ly} unterstützt.  Es handelt sich eher um ein
3138 gut gemachtes @qq{proof of concept}.  Wenn Ereignisse, die Sie
3139 brauchen, nicht in enthalten sind, können Sie @file{event-listener.ly} 
3140 in Ihr LilyPond-Verzeichnis kopieren und die Datei verändern,
3141 sodass sie die benötigte Information ausgibt.