]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/user/fundamental.itely
Remove empty line after @seealso.
[lilypond.git] / Documentation / de / user / fundamental.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2 @c This file is part of lilypond-learning.tely
3 @ignore
4     Translation of GIT committish: 598a7ff07bb4752ea9169e592e3369016f014b57
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.11.61"
11 @c Translators: Till Rettig, Reinhold Kainhofer
12
13 @node Fundamental concepts
14 @chapter Fundamental concepts
15
16 Nachdem im Tutorial gezeigt wurde, wie aus einfachen Text-Dateien
17 wunderschön formatierte Musiknoten erzeugt werden können, stellt
18 dieses Kapitel die Konzepte und Techniken vor, wie auch komplexere
19 Partituren erstellt werden können.
20
21 @menu 
22 * How LilyPond files work::
23 * Voices contain music::
24 * Contexts and engravers::
25 * Extending the templates::
26 @end menu
27
28 @node How LilyPond files work
29 @section How LilyPond files work
30
31 Das LilyPond Eingabeformat hat eine ziemlich freie Form, so dass 
32 für erfahrene Benutzer viel Freiheit besteht, die Struktur ihrer 
33 Quelldateien anzulegen. Für Neulinge kann diese Flexibilität aber 
34 erst einmal verwirrend sein. In diesem Kapitel soll darum ein Teil 
35 dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung 
36 auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats 
37 siehe @ruser{File structure}.
38
39 Die meisten Beispiele in diesem Handbuch sind kleine Schnipsel, wie 
40 etwa dieser:
41
42 @example
43 c4 a b c
44 @end example
45
46 Wie hoffentlich bekannt ist, lässt sich solch ein Schnipsel nicht 
47 in dieser Form übersetzen. Diese Beispiele sind also nur Kurzformen 
48 von wirklichen Beispielen. Sie müssen wenigstens zusätzlich in 
49 geschweifte Klammern gesetzt werden.
50
51 @example
52 @{
53   c4 a b c
54 @}
55 @end example
56
57 Die meisten Beispiele benutzen auch den @code{\relative c'}-Befehl. 
58 Der ist nicht nötig, um die Dateien zu übersetzen, aber in den meisten 
59 Fällen sieht der Notensatz seltsam aus, wenn man den Befehl 
60 weglässt.
61
62 @lilypond[quote,fragment,ragged-right,verbatim]
63 \relative c'' {
64   c4 a b c
65 }
66 @end lilypond
67
68 Eine komplette Definition des Eingabeformats findet sich
69 im Kapitel @ruser{File structure}.
70
71 @menu
72 * Introduction to the LilyPond file structure::
73 * Score is a (single) compound musical expression::
74 * Nesting music expressions::
75 * On the un-nestedness of brackets and ties::
76 @end menu
77
78 @node Introduction to the LilyPond file structure
79 @subsection Introduction to the LilyPond file structure
80
81 @cindex Eingabeformat
82 @cindex Dateistruktur
83
84 Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet:
85
86 @example
87 \version @w{"@version{}"}
88 \header @{ @}
89 \score @{
90   @var{...zusammengesetzter Musik-Ausdruck...}  % Die gesamte Musik kommt hier!
91   \layout @{ @}
92   \midi @{ @}
93 @}
94 @end example
95
96 @noindent
97 Aufgrund der Flexibilität von LilyPond gibt es viele Variationen dieses 
98 Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt.
99
100 @funindex \book
101 @funindex \score
102 @cindex book
103 @cindex score
104
105 Bisher hat noch keines der Beispiele den @code{\score@{@}}-Befehl
106 benutzt, da Lilypond derartige zusätzliche Befehle automatisch
107 bei Bedarf einfügt, wenn die Eingabedatei eine einfache Struktur 
108 hat.
109
110 Sehen wir uns als ein solches einfaches Beispiel an:
111
112 @example
113 \relative c'' @{
114   c4 a d c
115 @}
116 @end example
117
118 @noindent
119 Im Hintergrund kommen hier noch einige Ebenen dazu: LilyPond-Code 
120 in der obigen Form ist in Wirklichkeit eine Abkürzung. Auch wenn man so 
121 Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt 
122 der vollständige Code, der hier gemeint ist, eigentlich:
123
124 @example
125 \book @{
126   \score @{
127     \new Staff @{
128       \new Voice @{
129         \relative c'' @{
130           c4 a b c
131         @}
132       @}
133     @}
134     \layout @{ @}
135   @}
136 @}
137 @end example
138
139 @noindent
140 Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
141 enthält, wird LilyPond die Datei so interpretieren, als ob dieser
142 Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige 
143 Stuktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt, 
144 ohne dass der Benutzer davon etwas bemerkt.
145
146 @cindex Implizite Kontexte
147
148 @strong{Ein Wort der Warnung ist jedoch angebracht!} Viele der Beispiele
149 in der Dokumentation von LilyPond lassen die @code{\new Staff} und @code{\new Voice}
150 Befehle zur Erzeugung einer Notenzeile und einer Stimme (beides ist in 
151 LilyPond ein sogenannter Kontext) bewusst aus, 
152 damit sie implizit von LilyPond im Speicher erzeugt werden.
153 Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für 
154 komplexere Partituren können dadurch aber unerwartete Ergebnisse 
155 entstehen, teilweise sogar unerwartete leere Notenzeilen. Um 
156 die entsprechenden Kontexte in diesem Fall explizit zu erzeugen, 
157 siehe @ref{Contexts and engravers}.
158
159 @warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden,
160 empfielt es sich, die Notenzeilen und die Stimmen immer explizit
161 mit @code{\new Staff} und @code{\new Voice} zu erzeugen.}
162
163 Im Moment wollen wir aber zu unserem ersten Beispiel zurückkehren und
164 nur den @code{\score}-Befehl näher betrachten.
165
166 Eine Partitur (@code{\score}) muss immer mit einem musikalischen Ausdruck 
167 beginnen. Das ist letztendlich alle Musik, angefangen bei einer 
168 einzelnen
169 Note bis hin zu einer riesigen Partitur mit vielen Notensystemen 
170 (bezeichnet durch @code{GrandStaff}):
171
172 @example
173 @{
174   \new GrandStaff <<
175     @var{...hier die gesamte Partitur...}
176   >>
177 @}
178 @end example
179
180 @noindent
181 Da sich alles innerhalb der geschweiften Klammern @code{@{ ... @}} 
182 befindet, wird es wie ein einziger musikalischer Ausdruck behandelt.
183
184
185 Ein @code{\score} auch andere Dinge enthalten, wie etwa
186
187 @example
188 \score @{
189   @{ c'4 a b c' @}
190   \layout @{ @}
191   \midi @{ @}
192   \header @{ @}
193 @}
194 @end example
195
196 @funindex \header
197 @funindex \layout
198 @funindex \midi
199 @cindex header
200 @cindex midi
201 @cindex Layout
202 @cindex Kopfzeile
203
204 @noindent
205
206 @noindent
207 Wie man sieht sind die drei Befehle @code{\header}, @code{\layout} und
208 @code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen, 
209 die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck
210 und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
211 sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb plaziert
212 werden. Tatsächlich werden einige dieser Befehle meist außerhalb des 
213 @code{\score}-Blocksgesetzt, zum Beispiel findet sich der @code{\header} 
214 sehr oft oberhalb der @code{\score}-Umgebung. Das 
215 funktioniert genauso gut.
216
217
218 Zwei bisher noch nicht aufgetauchte Befehle sind 
219 @code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer 
220 Datei vorkommen, führt dies dazu, dass Lilypond eine druckfähige PDF-Datei
221 bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im 
222 Benutzerhandbuch -- @ruser{Score layout} und
223 @ruser{Creating MIDI files}.
224
225 @cindex Partituren, mehrfache
226
227 Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten. 
228 Jeder davon wird als eigenständige Partitur interpretiert, die 
229 allerdings alle in dieselbe Ausgabedatei plaziert weden.
230 Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird 
231 implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer 
232 einzigen @code{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
233 dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
234 gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
235 eigene Ausgabedatei.
236
237 Zusammenfassung:
238
239 Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
240 PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
241 setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen 
242 impliziten @code{\book}-Blocks.
243
244 Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück 
245 innerhalb des @code{\book}-Blocks.
246
247 Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
248 @code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein 
249 @code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf 
250 diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block 
251 außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit 
252 erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf 
253 alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks.
254
255 Nähere Details finden sich im Abschnitt @ruser{Multiple scores in a book}.
256
257
258 @cindex Variablen
259 @cindex Bezeichner
260
261 Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen. 
262 Alle Vorlagen verwenden diese Möglichkeit.
263
264 @example
265 melodie = \relative c' @{
266   c4 a b c
267 @}
268
269 \score @{
270   @{ \melodie @}
271 @}
272 @end example
273
274 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
275 von @code{melodie} (alles nach dem Gleichheitszeichen) und 
276 fügt ihn immer dann ein, wenn ein @code{\melodie} 
277 vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
278 gut  @code{melodie}, @code{GLOBAL},
279 @code{rechteHandklavier}, oder @code{foofoobarbaz} heißen. Für mehr
280 Information siehe
281 @ref{Saving typing with variables and functions}.
282 Als Variablenname kann fast jeder beliebige Name benutzt werden,
283 allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche,
284 Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl
285 lauten. Die genauen Einschränkungen sind beschrieben in 
286 @ruser{File structure}.
287
288
289 @seealso
290 Eine vollständige Definition des Eingabeformats findet sich in 
291 @ruser{File structure}.
292
293
294 @node Score is a (single) compound musical expression
295 @subsection Score is a (single) compound musical expression
296
297 @funindex \score
298 @cindex score
299 @cindex Partitur
300 @cindex Musikstück
301 @cindex zusammengesetzter Musikausdruck
302 @cindex Musikausdruck, zusammengesetzter
303
304
305 Im vorigen Kapitel, @ref{Introduction to the LilyPond file structure}, 
306 wurde die allgemeine Struktur einer LilyPond-Quelldatei 
307 beschrieben. Aber anscheinend haben wir die wichtigste 
308 Frage ausgelassen, nämlich wie man herausfindet, was nach 
309 dem @code{\score} geschrieben werden soll.
310
311 In Wirklichkeit ist das aber gar kein Geheimnis. Diese 
312 Zeile ist die Antwort:
313
314 @quotation
315 @emph{Eine Partitur fängt immer mit @code{\score} an, gefolgt 
316 von einem einzelnen musikalischen Ausdruck.}
317 @end quotation
318
319 @noindent
320 Vielleicht wollen Sie noch einmal 
321 @ref{Music expressions explained} überfliegen. In diesem
322 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke 
323 aus kleinen Teilen zusammensetzen. Noten können zu Akkorden 
324 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung 
325 und betrachten, wie sich ein großer musikalischer Ausdruck 
326 zerlegen lässt.
327
328 @example
329 \score @{
330   @{   % diese Klammer startet den großen mus. Ausdruck
331     \new GrandStaff <<
332       @var{...hier eine ganze Wagner-Oper einfügen...}
333     >>
334   @}   % diese Klammer beendet den Ausdruck
335   \layout @{ @}
336 @}
337 @end example
338
339 Eine Wagner-Oper ist mindestens doppelt so lang wie dieses Handbuch,
340 beschränken wir uns also auf einen Sänger und Klavier. Wir brauchen 
341 keine Orchesterpartitur (@code{GrandStaff}) dafür, darum lassen wir 
342 den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier.
343
344 @example
345 \score @{
346   @{
347     <<
348       \new Staff = "Sänger" <<
349       >>
350       \new PianoStaff = Klavier <<
351       >>
352     >>
353   @}
354   \layout @{ @}
355 @}
356 @end example
357
358 Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig
359 gesetzt; wir wollen ja auch Klavier- und Sängerstimme gleichzeitig 
360 und nicht hintereinander haben. Bei genauerem Hinsehen fällt auf, dass
361 die @code{<< ... >>}-Konstruktion für die Notenzeile des Sängers eigentlich 
362 nicht unbedingt nötig wäre, da sie ja nur einen (sequenzielle) musikalischen
363 Ausdruck enthält, nämlich alle Noten des Sängers hintereinander. Daher
364 könnte an sich auch einfach ein @code{@{...@}} benutzt werden. Die 
365 Spitzklammern sind allerdings notwendig, sobald die Notenzeile mehrere
366 parallelle Ausdrücke -- wie etwa zwei parallele Stimmen oder eine Stimme
367 mit zugehörigem Text -- enthält. 
368 Wir werden die Musik später in das Beispiel einfügen, im Moment begnügen 
369 wir uns mit einigen Platzhalter-Noten und -Texten.
370
371 @lilypond[verbatim,quote,ragged-right]
372 \score {
373   <<
374     \new Staff = "Sänger" <<
375       \new Voice = "Singstimme" { c'1 }
376       \addlyrics { And }
377     >>
378     \new PianoStaff = "Klavier" <<
379       \new Staff = "oben" { }
380       \new Staff = "unten" { }
381     >>
382   >>
383   \layout { }
384 }
385 @end lilypond
386
387 Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff) 
388 für einen Sänger, in dem sich wieder eine Stimme (engl. voice) 
389 befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl 
390 gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich 
391 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new 
392 PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa 
393 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der 
394 dann wiederum zwei eigene Systeme ("upper" für die rechte Hand und 
395 "lower" 
396 für die linke) erstellt werden.
397
398 Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der 
399 geschweiften Klammern neben @code{\new Voice = vocal} könnte man
400
401 @example
402 \relative c'' @{
403   r4 d8\noBeam g, c4 r
404 @}
405 @end example
406
407 @noindent schreiben. Aber wenn man seine Datei so direkt schreibt, wird 
408 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu 
409 verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner 
410 (oder Variablen) zu verwenden.
411
412 @lilypond[verbatim,quote,ragged-right]
413 melodie = \relative c'' { r4 d8\noBeam g, c4 r }
414 text    = \lyricmode { And God said, }
415 oben    = \relative c'' { <g d g,>2~ <g d g,> }
416 unten   = \relative c { b2 e2 }
417
418 \score {
419   <<
420     \new Staff = "Sänger" <<
421       \new Voice = "Singstimme" { \melodie }
422       \addlyrics { \text }
423     >>
424     \new PianoStaff = "Klavier" <<
425       \new Staff = "oben" { \oben }
426       \new Staff = "unten" {
427         \clef "bass"
428         \unten
429       }
430     >>
431   >>
432   \layout { }
433 }
434 @end lilypond
435
436 Achten Sie auf den Unterschied zwischen Noten, die mit @code{\relative}
437 oder direkt in einem musikalischen Ausruck eingegeben werden, und 
438 dem Text des Lieds, der innerhalb @code{\lyricmode} angegeben 
439 werden muss. Diese Unterscheidung ist für LilyPond essentiell,
440 um zu entscheiden, ob der folgende Inhalt als Musik oder Text 
441 interpretiert werden soll. Wie könnte LilyPond sonst entscheiden, 
442 ob @code{@{a b c@}} die drei Noten a, b und c darstellen soll oder
443 den Text eines Lieds über das Alphabet!
444
445 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung 
446 sollte man langsam und sorgfältig vorgehen. Am besten fängt 
447 man mit dem größten Gebilde an und definiert dann die darin 
448 enthaltenen kleineren der Reihe nach. Es hilft auch, sehr 
449 genau mit den Einzügen zu sein, so dass jede Zeile, die 
450 der gleichen Ebene angehört, wirklich horizontal an der 
451 gleichen Stelle beginnt.
452
453
454 @seealso
455 Benutzerhandbuch: @ruser{Structure of a score}.
456
457
458 @node Nesting music expressions
459 @subsection Nesting music expressions
460
461 @cindex Notenzeilen, temporäre
462 @cindex Ossia
463
464 Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleib
465 zu Beginn erzeugt werden -- sie können auch zu einem späteren
466 Zeitpunkt eingeführt weden. Das ist vor allem nützlichm um 
467 @rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kures Beispiel,
468 wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt 
469 werden kann:
470
471 @lilypond[verbatim,quote,ragged-right]
472 \new Staff {
473   \relative g' {
474     r4 g8 g c4 c8 d |
475     e4 r8
476     <<
477       { f c c }
478       \new Staff {
479         f8 f c
480       }
481     >>
482     r4 |
483   }
484 }
485 @end lilypond
486
487 @noindent
488 Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie 
489 auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
490 der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
491 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
492
493 @cindex Notenzeile, Positionierung
494
495 Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
496 gesetzt werden:
497
498 @lilypond[verbatim,quote,ragged-right]
499 \new Staff = "Hauptzeile" {
500   \relative g' {
501     r4 g8 g c4 c8 d |
502     e4 r8
503     <<
504       { f c c }
505       \new Staff \with {
506         alignAboveContext = "Hauptzeile" }
507       { f8 f c }
508     >>
509     r4 |
510   }
511 }
512 @end lilypond
513
514 Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
515 genauer erklärt wird. Damit kann das Standardverhalten einer
516 einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
517 dass die neue Notenzeile oberhalb der bereits existierenden Zeile
518 mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt 
519 standardmäßig unterhalb.
520
521
522 @seealso
523 Ossia werden oft ohne Notenschlüssel und Taktangabe gedruck, meist 
524 auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich 
525 auch in LilyPond möglich, benötigt aber Befehle, die bisher noch 
526 nicht vorgestellt wurden. Siehe @ref{Size of objects}
527 und @ruser{Ossia staves}.
528
529
530 @node On the un-nestedness of brackets and ties
531 @subsection On the un-nestedness of brackets and ties
532
533 @cindex Klammern, geschachtelt
534 @cindex Schachtelung von Klammern
535
536 Sie haben bisher zahlreiche verschiedene Arten von Klammern
537 beim Schreiben von Musik mit LilyPond kennengelernt. Diese
538 folgen verschiedenen Regeln, die zu Beginn vielleicht 
539 verwirrend wirken. Bevor die genauen Regeln vorgestellt werden,
540 wollen wir die diversen Klammerarten kurz rekapitulieren:
541
542 @c attempt to force this onto a new page
543 @need 50
544 @multitable @columnfractions .3 .7
545 @headitem Klammerart
546   @tab Funktion
547 @item @code{@{ .. @}}
548   @tab Umschließt ein sequenzielles Musiksegment
549 @item @code{< .. >}
550   @tab Umschließt die Noten eines Akkords
551 @item @code{<< .. >>}
552   @tab Umschließt parallele Musikausdrücke
553 @item @code{( .. )}
554   @tab Markiert den Beginn und das Ende eines Haltebogens
555 @item @code{\( .. \)}
556   @tab Markiert den Beginn und das Ende eines Phasierungsbogens
557 @item @code{[ .. ]}
558   @tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
559 @end multitable
560
561
562 Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
563 erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
564 Haltebögen (durch eine Tilde @code{~} markiert),
565 Triolen (als @code{\times x/y @{..@}} geschrieben) und
566 Vorschlagnoten (als @code{\grace@{..@}} notiert).
567
568 Außerhalb von LilyPond fordert die übliche Benutzung von 
569 Klammern, dass die entsprechenden Arten korrekt verschachtelt
570 werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die 
571 schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
572 wie die öffnenden Klammern vor. Dies ist auch in LilyPond 
573 ein @strong{Muss} für die drei Klammerarten, die in obiger 
574 Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie 
575 müssen korrekt geschachtelt werden.
576 Die restlichen Klammerarten (durch @q{Markiert} beschrieben),
577 die Haltebögen und die Triolen brauchen jedoch mit den 
578 anderen Klammerarten @strong{nicht} unbedingt korrekt 
579 geschachtelt werden. Tatsächlich sind sie auch keine Klammern
580 in dem Sinn, dass sie etwas umschließen, sondern viel mehr
581 Indikatoren, an welcher Stelle ein bestimmtes musikalisches 
582 Objekt beginnt oder endet.
583
584 So kann also z.B. einen Phrasierungsbogen vor einem manuellen 
585 Balken beginn, jedoch schon vor dem Ende des Balkens enden.
586 Dies mag zwar musikalisch wenig Sinn ergeben, ist aber in LilyPond
587 auch möglich:
588
589 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
590  { g8\( a b[ c b\) a] }
591 @end lilypond
592
593 Im Allgemeinen können die verschiedenen Klammerarten, Haltebögen,
594 Triolen und Vorschlagnoten beliebig kombiniert werden.
595 Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht 
596 (Zeile 1), eine Bindebogen, der ebenfalls in eine Triole 
597 reicht (Zeile 2), einen Balken und einen Bindeboden in eine Triole,
598 ein Haltebogen, der über zwei Triolen läuft, sowie einen 
599 Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4).
600
601 @lilypond[quote,verbatim,fragment,ragged-right]
602 {
603   r16[ g16 \times 2/3 {r16 e'8] }
604   g16( a \times 2/3 {b d) e' }
605   g8[( a \times 2/3 {b d') e'~]}
606   \times 4/5 {e'32\( a b d' e'} a'4.\)
607 }
608 @end lilypond
609
610
611 @node Voices contain music
612 @section Voices contain music
613
614 Sänger brauchen Stimmen zum Singen, und LilyPond braucht sie auch:
615 in der Tat sind alle Noten für alle Instrumente in einer Partitur
616 innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegendste Prinzip
617 von LilyPond.
618
619 @menu 
620 * I'm hearing Voices::
621 * Explicitly instantiating voices::
622 * Voices and vocals::
623 @end menu 
624
625 @node I'm hearing Voices
626 @subsection I'm hearing Voices
627
628 @cindex Polyphonie
629 @cindex Ebenen
630 @cindex mehrere Stimmen
631 @cindex Voice context
632 @cindex context, Voice
633 @cindex Kontext, Stimme
634 @cindex Stimmenkontext
635 @cindex gleichzeitige Noten
636 @cindex Noten gleichzeitig
637
638 Die grundegendsten und innersten Ebenen ein einer LilyPond-Partitur
639 werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice}
640 (Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
641 manchmal auch als @qq{layer} (Ebene) bezeichnet.
642
643 Tatsächlich ist die Stimmenebene die einzige, die wirklich Noten 
644 enthalten kann. Wenn kein Stimmenkontext explizit erstellt wird, 
645 wird er automatisch erstellt, wie am Anfang dieses Kapitels
646 gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
647 Note gleichzeitig spielen. Noten für solche Instrumente sind
648 monophon und brauchen nur eine einzige Stimme. Instrumente, die
649 mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen
650 dagegeben oft mehrere Stimmen, um die verschiedenen gleichzeitig
651 erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen 
652 zu können.
653
654 Eine einzelne Stimme kann natürlich auch vielen Noten in einem Akkord
655 enhalten -- wann also braucht man dann mehrere Stimmen? Schauen wir
656 uns zuerst dieses Beispiel mit vier Akkorden an:
657
658 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
659 \key g \major
660 <d g>4 <d fis> <d a'> <d g>
661 @end lilypond
662
663 Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern
664 @code{< ... >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
665 nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
666 eine Achtelnote sein, gefolgt von einer Achtelnote G (als Durchgangsnote
667 hin zum A)? Hier haben wir also zwei Noten, die zur gleichen Zeit
668 beginnen, aber unterschiedliche Dauern haben: die Viertelnote D und die
669 Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie 
670 nicht schreiben, weil alle Noten in einem Akkord die gleiche Länge besitzen
671 müssen. Sie können auch nicht als aufeinanderfolgende Noten geschrieben
672 werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
673 wir zwei Stimmen.
674
675 Wie aber wird das in der LilyPond-Syntax ausgedrückt?
676
677 @funindex << \\ >>
678 @funindex \\
679
680 Die einfachste Art, Fragmente mit mehr als einer Stimme auf einem System
681 zu notieren, ist, die Stimmen nacheinander (jeweils mit den Klammern
682 @code{@{ ... @}}) zu schreiben und dann mit den spitzen Klammern
683 (@code{<<...>>}) simultan zu kombinieren. Die beiden Fragmente müssen
684 zusätzlich noch mit zwei Backslash-Zeichen (@code{\\}) voneinander
685 getrennt werden, damit sie als zwei unterschiedliche Stimmen erkannt 
686 werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
687 werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
688 den Noten um hauptsächlich homophone Musik handelt, in der hier und da
689 polyphone Stellen vorkommen.
690
691 So sieht es aus, wenn die Akkorde in zwei Stimmen aufgeteilt werden
692 und zur Durchgangsnote noch ein Bogen hinzugefügt wird:
693
694 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
695 \key g \major
696 %    Voice "1"                  Voice "2"
697 << { g4 fis8( g) a4 g }    \\ { d4 d d d }  >> |
698 @end lilypond
699
700 Beachte, dass die Hälse der zweiten Stimme nun nach unten zeigen.
701
702 Hier ein anderes Beispiel:
703
704 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
705 \key d \minor
706 %    Voice "1"             Voice "2"
707 << { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
708 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
709 << { a2. r4 }         \\ { fis2. s4 }       >> |
710 @end lilypond
711
712 Es ist nicht notwendig, für jeden Takt eine eigene
713 @code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
714 Noten pro Takt kann es die Quelldatei besser lesbar machen, aber
715 wenn in einem Takt viele Noten vorkommen, kann man die gesamten Stimmen
716 separat schreiben, wie hier:
717
718 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
719 \key d \minor
720 << {
721   % Voice "1"
722   r4 g g4. a8 |
723   bes4 bes c bes |
724   a2. r4 |
725 } \\ {
726   % Voice "2"
727   d,2 d4 g |
728   g4 g g8( a) g4 |
729   fis2. s4 |
730 } >>
731 @end lilypond
732
733 Dieses Beispiel hat nur zwei Stimmen, aber die gleiche Konstruktion kann
734 angewendet werden, wenn man drei oder mehr Stimmen hat, indem man weitere
735 Backslash-Trenner hinzufügt.
736
737 Die Stimmenkontexte tragen die Namen @code{"1"}, @code{"2"} usw. In jedem
738 dieser Kontexte wird die vertikale Ausrichtung von Hälsen, Bögen, Dynamik-Zeichen
739 usw. entsprechend ausgerichtet.
740
741 @lilypond[quote,verbatim,fragment]
742 \new Staff \relative c' {
743   % Main voice
744   c16 d e f
745   %    Voice "1"     Voice "2"                 Voice "3"
746   << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
747   << { d2 e2 }  \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> |
748 }
749 @end lilypond
750
751 Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten 
752 außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
753 uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
754 können nur Noten in der selben Stimmen miteinander verbinden und können
755 also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
756 gilt, dass parallele Stimmen aus eigenen simultanen Konstruktionen auf
757 dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
758 Stimmenkontext verknüpfte Eigenschaften erstrecken sich auf alle
759 simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
760 Beachten Sie, dass Änderungen in einer Stimme sich nicht auf die anderen
761 Stimmen erstrecken, aber sie sind weiterhin in der selben Stimme vorhanden,
762 auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
763 über die gleiche Stimme in zwei Konstrukten verteilt werden können, wie
764 hier an der blauen Dreieckstimme gezeigt.
765
766 @lilypond[quote,verbatim]
767 \new Staff \relative c' {
768   % Main voice
769   c16 d e f
770   << % Bar 1
771     {
772       \voiceOneStyle
773       g4 f e
774     }
775   \\
776     {
777       \voiceTwoStyle
778       r8 e4 d c8 ~
779     }
780   >>
781   << % Bar 2
782      % Voice 1 continues
783     { d2 e2 }
784   \\
785      % Voice 2 continues
786     { c8 b16 a b8 g ~ g2 }
787   \\
788     {
789       \voiceThreeStyle
790       s4 b4 c2
791     }
792   >>
793 }
794 @end lilypond
795
796 @funindex \voiceOneStyle
797 @funindex \voiceTwoStyle
798 @funindex \voiceThreeStyle
799 @funindex \voiceFourStyle
800 @funindex \voiceNeutralStyle
801
802 Die Befehle @code{\voiceXXXStyle} sind vor allem dazu da, um in
803 pädagogischen Dokumenten wie diesem hier angewandt zu werden.
804 Sie verändern die Farbe des Notenkopfes, des Halses und des Balkens, und
805 zusätzlich die Form des Notenkopfes, damit die einzelnen Stimmen
806 einfach auseinander gehalten werden können. Die erste Stimme ist als
807 rote Raute definiert, die zweite Stimme als blaue Dreiecke, die dritte
808 Stimme als grüne Kreise mit Kreuz und die vierte Stimme (die hier nicht
809 benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
810 nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
811 werden, wie Befehle wie diese vom Benutzer selber erstellt werden 
812 können. Siehe auch @ref{Visibility and color of objects} und
813 @ref{Using variables for tweaks}.
814
815 Polyphonie ändert nicht die Verhältnisse der Noten innerhalb eines
816 @code{\relative @{ @}}-Blocks. Jede Note wird weiterhin relativ zu 
817 der vorherigen Note errechnet, oder relativ zur ersten Note des vorigen
818 Akkords. So ist etwa hier
819
820 @example
821 \relative c' @{ NoteA << < NoteB NoteC > \\ NoteD >> NoteE @}
822 @end example
823
824 @noindent
825 @code{NoteB} bezüglich @code{NoteA}                      @*
826 @code{NoteC} bezüglich @code{NoteB}, nicht @code{noteA};   @*
827 @code{NoteD} bezüglich @code{NoteB}, nicht @code{NoteA} oder
828 @code{NoteC};                                                 @*
829 @code{NoteE} bezüglich @code{NoteD}, nicht @code{NoteA} errechnet.
830
831 Eine andere Möglichkeit ist, den @code{\relative}-Befehl vor jede
832 Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
833 entfernt sind.
834
835 @example
836 \relative c' @{ NoteA ... @}
837 <<
838   \relative c'' @{ < NoteB NoteC > ... @}
839 \\
840   \relative g' @{ NoteD ... @}
841 >>
842 \relative c' @{ NoteE ... @}
843 @end example
844
845 Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück
846 analysieren. Hier die Noten der ersten zwei Takte von Chopins
847 @notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
848 und dem nächsten Kapitel benutzt werden, um verschiedene Techniken,
849 Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
850 Punkt alles in folgendem Code, das Ihnen seltsam vorkommt, und konzentrieren
851 Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
852 in späteren Abschnitten erklärt werden.
853
854 @c The following should appear as music without code
855 @lilypond[quote,ragged-right]
856 \new Staff \relative c'' {
857   \key aes \major
858   << % Voice one
859     { c2 aes4. bes8 }
860   \\ % Voice two
861     { aes2 f4 fes }
862   \\ % No voice three
863   \\ % Voice four
864     {
865       % Ignore these for now - they are explained in Ch 4
866       \once \override NoteColumn #'force-hshift = #0
867       <ees c>2
868       \once \override NoteColumn #'force-hshift = #0.5
869       des2
870     }
871   >> |
872   <c ees aes c>1 |
873 }
874 @end lilypond
875
876 Die Richtung der Hälse wird  oft benutzt, um anzuzeigen, dass zwei 
877 gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
878 oberen Noten nach oben und die Hälse aller unteren Noten nach unten.
879 Das ist der erste Anhaltspunkt, dass mehr als eine Stimme benötigt 
880 wird.
881
882 Aber die wirkliche Notwendigkeit für mehrere Stimmen tritt erst
883 dann auf, wenn unterschiedliche Noten gleichzeitig erklingen, aber
884 unterschiedliche Dauern besitzen. Schauen Sie sich die Noten 
885 auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
886 Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
887 nicht als Akkord geschrieben werden, denn alle Noten in einem Akkord
888 besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
889 geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
890 Taktabschnitt benötigt drei Stimmen, und normalerweise schreibt man
891 drei Stimmen für den ganzen Takt, wie im Beispiel unten zu sehen ist;
892 hier sind unterschiedliche Köpfe und Farben für die verschiedenen Stimmen
893 eingesetzt. Nocheinmal: der Quellcode für dieses Beispiel wird später 
894 erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht 
895 verstehen können.
896
897 @c The following should appear as music without code
898 @c The three voice styles should be defined in -init
899 @lilypond[quote,ragged-right]
900 \new Staff \relative c'' {
901   \key aes \major
902   <<
903     { % Voice one
904       \voiceOneStyle
905       c2 aes4. bes8
906     }
907   \\  % Voice two
908     { \voiceTwoStyle
909       aes2 f4 fes
910     }
911   \\  % No Voice three (we want stems down)
912   \\  % Voice four
913     { \voiceThreeStyle
914       % Ignore these for now - they are explained in Ch 4
915       \once \override NoteColumn #'force-hshift = #0
916       <ees c>2
917       \once \override NoteColumn #'force-hshift = #0.5
918       des2
919     }
920   >> |
921   <c ees aes c>1 |
922 }
923 @end lilypond
924
925 Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen 
926 werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
927 wir es gelernt haben, indem wir mit der @code{<< \\  >>}-Konstruktion
928 die drei Stimmen des ersten Taktes notieren:
929
930 @lilypond[quote,verbatim,fragment,ragged-right]
931 \new Staff \relative c'' {
932   \key aes \major
933   <<
934     { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
935   >>
936   <c ees aes c>1
937 }
938 @end lilypond
939
940 @cindex Hals nach unten
941 @cindex Hals nach oben
942 @cindex Notenhals, Richtung
943 @cindex Richtung des Notenhalses
944
945 Die Richtung des Notenhalses wird automatisch zugewiesen; die ungeraden
946 Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
947 für die Stimmen 1 und 2 stimmen, aber die Hälse in der dritten Stimme
948 sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
949 korrigieren, indem wir die dritte Stimme einfach auslassen und die
950 Noten in die vierte Stimme verschieben:
951
952 @c KEEP LY
953 @lilypond[quote,verbatim,fragment,ragged-right]
954 \new Staff \relative c'' {
955   \key aes \major
956   << % erste Stimme
957     { c2 aes4. bes8 }
958   \\ % zweite Stimme
959     { aes2 f4 fes   }
960   \\ % Stimme drei auslassen
961   \\ % vierte Stimme
962     { <ees c>2 des2 }
963   >> |
964   <c ees aes c>1 |
965 }
966 @end lilypond
967
968 @noindent
969 Wie zu sehen ist, ändert das die Richtung der Hälse, aber zeigt ein
970 anderes Problem auf, auf das man manchmal bei mehreren Stimmen stößt:
971 Die Hälse einer Stimme können mit den Hälsen anderer Stimmen kollidieren.
972 LilyPond erlaubt Noten in verschiedenen Stimmen sich auf der gleichen
973 vertikalen Position zu befinden, wenn die Hälse in entgegengesetzte
974 Richtungen zeigen, und positioniert die dritte und vierte Stimme dann
975 so, dass Zusammenstöße möglichst vermieden werden. Das funktioniert
976 gewöhnlich recht gut, aber in diesem Beispiel sind die Noten der untersten
977 Stimme eindeutig standardmäßig schlecht positioniert. LilyPond bietet
978 verschiedene Möglichkeiten, die horizontale Position von Noten
979 anzupassen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
980 anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt auf; siehe @code{force-hshift}-Eigenschaft in @ref{Fixing
981 overlapping notation}.
982
983
984 @seealso
985 Notationsreferenz: @ruser{Multiple voices}.
986
987
988 @node Explicitly instantiating voices
989 @subsection Explicitly instantiating voices
990
991 @funindex \voiceOne
992 @funindex \voiceTwo
993 @funindex \voiceThree
994 @funindex \voiceFour
995 @funindex \oneVoice
996 @funindex \new Voice
997 @cindex Voice context, erstellen von
998 @cindex Stimmenkontexte, erstellen von
999
1000 Voice-Kontexte können auch manuell innerhalb 
1001 eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen 
1002 @code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme 
1003 entsprechendes Verhalten von vertikaler Verschiebung und Richtung 
1004 von Hälsen und anderen Objekten hinzugefügt werden. In längeren 
1005 Partituren können die Stimmen damit besser auseinander gehalten 
1006 werden.
1007
1008 Die @code{<< \\ >>}-Konstruktion, die wir im vorigen Abschnitt
1009 verwendet haben:
1010
1011 @example
1012 \new Staff @{
1013   \relative c' @{
1014     << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
1015   @}
1016 @}
1017 @end example
1018
1019 @noindent
1020 ist identisch mit
1021
1022 @example
1023 \new Staff <<
1024   \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
1025   \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
1026 >>
1027 @end example
1028
1029 Beide würden folgendes Notenbild erzeugen:
1030
1031 @c The following example should not display the code
1032 @lilypond[ragged-right,quote]
1033 \new Staff <<
1034   \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
1035   \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
1036 >>
1037 @end lilypond
1038
1039 Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen, 
1040 Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen. 
1041  @code{\voiceOne} und @code{\voiceThree} lassen diese Objekte 
1042  nach oben zeigen, 
1043  @code{\voiceTwo} und @code{\voiceFour}
1044 dagegen lassen sie abwärts zeigen. Diese Befehle erzeugen eine
1045 horizontale Verschiebung, wenn es erforderlich ist, um Zusammenstöße
1046 zu vermeiden. Der Befehl 
1047 @code{\oneVoice} stellt wieder auf das normale Verhalten um.
1048
1049 Schauen wir uns in einigen einfachen Beispielen an, was genau
1050 die Befehle @code{\oneVoice}, @code{\voiceOne} und @code{voiceTwo}
1051 mit Text, Bögen und Dynamikbezeichnung anstellen:
1052
1053 @lilypond[quote,ragged-right,verbatim]
1054 \relative c'{
1055   % Default behavior or behavior after \oneVoice
1056   c d8 ~ d e4 ( f g a ) b-> c
1057 }
1058 @end lilypond
1059
1060 @lilypond[quote,ragged-right,verbatim]
1061 \relative c'{
1062   \voiceOne
1063   c d8 ~ d e4 ( f g a ) b-> c
1064   \oneVoice
1065   c, d8 ~ d e4 ( f g a ) b-> c
1066 }
1067 @end lilypond
1068
1069 @lilypond[quote,ragged-right,verbatim]
1070 \relative c'{
1071   \voiceTwo
1072   c d8 ~ d e4 ( f g a ) b-> c
1073   \oneVoice
1074   c, d8 ~ d e4 ( f g a ) b-> c
1075 }
1076 @end lilypond
1077
1078 Schauen wir und nun drei unterschiedliche Arten an, den gleichen
1079 Abschnitt polyphoner Musik zu notieren, jede Art mit ihren 
1080 Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
1081 das Beispiel vom vorherigen Abschnitt.
1082
1083 Ein Ausdruck, der direkt innerhalb einer @code{<< >>}-Umgebung 
1084 auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche 
1085 Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also 
1086 eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die 
1087 farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in 
1088 einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
1089 Phrasierungsbogen ober sie gesetzt werden.
1090
1091 @lilypond[quote,ragged-right,verbatim]
1092 \new Staff \relative c' {
1093   \voiceOneStyle
1094   % The following notes are monophonic
1095   c16^( d e f
1096   % Start simultaneous section of three voices
1097   <<
1098     % Continue the main voice in parallel
1099     { g4 f e | d2 e2) }
1100     % Initiate second voice
1101     \new Voice {
1102       % Set stems, etc, down
1103       \voiceTwo
1104       r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
1105     }
1106     % Initiate third voice
1107     \new Voice {
1108       % Set stems, etc, up
1109       \voiceThree
1110       s2. | s4 b4 c2
1111     }
1112   >>
1113 }
1114 @end lilypond
1115
1116 @cindex Verschachteln von musikalischen Ausdrücken
1117 @cindex Verschachteln von gleichzeitigen Ausdrücken
1118 @cindex Ausdrücke, Verschachteln von
1119
1120 @cindex Stimmen, temporär
1121 @cindex Stimmen, Verschachteln von
1122
1123 Tiefer verschachtelte polyphone Konstrukte sind möglich, und
1124 wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg
1125 sein, Noten zu setzen:
1126
1127 @lilypond[quote,ragged-right,verbatim]
1128 \new Staff \relative c' {
1129   c16^( d e f
1130   <<
1131     { g4 f e | d2 e2) }
1132     \new Voice {
1133       \voiceTwo
1134       r8 e4 d c8 ~ |
1135       <<
1136         {c8 b16 a b8 g ~ g2}
1137         \new Voice {
1138           \voiceThree
1139           s4 b4 c2
1140         }
1141       >>
1142     }
1143   >>
1144 }
1145 @end lilypond
1146
1147 @cindex Platzhalternoten
1148 @cindex unsichtbare Noten
1149 @cindex Noten verstecken
1150
1151 Diese Methode, neue Stimmen kurzzeitig zu verschachteln, bietet sich
1152 an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
1153 aber die ganze Partitur polyphon ist, ist es meistens klarer, direkt
1154 unterschiedliche Stimmen über die gesamte Partitur hinweg einzusetzen.
1155 Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen,
1156 an denen die Stimme nicht auftaucht, wie etwa hier:
1157
1158 @lilypond[quote,ragged-right,verbatim]
1159 \new Staff \relative c' <<
1160   % Initiate first voice
1161   \new Voice {
1162     \voiceOne
1163     c16^( d e f g4 f e | d2 e2) |
1164   }
1165   % Initiate second voice
1166   \new Voice {
1167     % Set stems, etc, down
1168     \voiceTwo
1169     s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 |
1170   }
1171   % Initiate third voice
1172   \new Voice {
1173     % Set stems, etc, up
1174     \voiceThree
1175     s1 | s4 b4 c2 |
1176   }
1177 >>
1178 @end lilypond
1179
1180 @subsubheading Note columns
1181
1182 @cindex Notenkolumne
1183 @cindex Vertikale Position
1184 @cindex shift-Befehle
1185 @cindex Verschieben von Noten
1186 @funindex \shiftOff
1187 @funindex \shiftOn
1188 @funindex \shiftOnn
1189 @funindex \shiftOnnn
1190
1191 Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen
1192 Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal
1193 auch mehreren Kolumnen getzt, um die Noten am Überschneiden zu 
1194 hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
1195 eine eigene Kolumne, und ein stimmenabhängiger Verschiebunsbefehl (engl.
1196 shift) wird eingesetzt, wenn eine Kollision auftreten könnte. 
1197 Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
1198 Stimme nach rechts verschoben, relativ gesehen zum D der ersten Stimme,
1199 und im letzten Akkord wird das C der dritten Stimme auch nach 
1200 rechts verschoben im Verhältnis zu den anderen Stimmen.
1201
1202 Die Befehle @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} und
1203 @code{\shiftOff} bestimmen den Grad, zu dem Noten und Akkorde
1204 verschoben werden sollen, wenn sich sonst eine Kollision nicht
1205 vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
1206 Stimmen (also normalerweise Stimme 1 und 2) @code{\shiftOff}
1207 eingestellt haben, während für die inneren Stimmen (3 und 4)
1208 @code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
1209 auftritt, werden Stimmen 1 und 3 nach rechts und Stimmen 2 und 4
1210 nach links verschoben.
1211
1212 @code{\shiftOnn} und @code{\shiftOnnn} definieren weitere
1213 Verschiebungsebenen, die man kurzzeitig anwählen kann, um
1214 Zusammenstöße in komplexen Situationen aufzulösen, siehe auch
1215 @ref{Real music example}.
1216
1217 Eine Notenkolumne kann nur eine Note (oder einen Akkord) von
1218 einer Stimme mit Hälsen nach oben und eine Note (oder einen
1219 Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
1220 Noten von zwei Stimmen mit den Hälsen in die gleiche Richtung
1221 an der selben Stelle auftreten und in beiden Stimmen ist
1222 keine Verschiebung oder die gleiche Verschiebungsebene
1223 definiert, wird die Fehlermeldung 
1224 @qq{zu viele kollidierende Notenspalten werden ignoriert}
1225 ausgegeben.
1226
1227
1228 @seealso
1229 Notationsreferenz: @ruser{Multiple voices}.
1230
1231
1232 @node Voices and vocals
1233 @subsection Voices and vocals
1234
1235 Die Notation von Vokalmusik ihre eigene Schwierigkeit, nämlich
1236 die Kombination von zwei Ausdrücken: den Noten und dem Text.
1237 Achtung: Der Gesangstext wird auf Englisch @qq{lyrics} genannt.
1238
1239
1240 @funindex \new Lyrics
1241 @funindex \lyricsto
1242 @cindex Lyrics context, erstellen
1243 @cindex Gesangtext, Verbindung mit Noten
1244
1245 Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet,
1246 mit dem einfache Partituren gut erstellt werden können. 
1247 Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
1248 komplexer wird, muss der Gesangstext mit einem neuen
1249 @code{Lyrics}-Kontext begonnen werden (mit dem Befehl
1250 @code{\new Lyrics}) und durch den Befehl @code{\lyricsto@{@}}
1251 mit einer bestimmten Stimme verknüpft werden, indem die
1252 Bezeichnung der Stimme benutzt wird.
1253
1254 @lilypond[quote,verbatim,fragment]
1255 <<
1256   \new Voice = "one" \relative c'' {
1257     \autoBeamOff
1258     \time 2/4
1259     c4 b8. a16 g4. f8 e4 d c2
1260   }
1261   \new Lyrics \lyricsto "one" {
1262     No more let sins and sor -- rows grow.
1263   }
1264 >>
1265 @end lilypond
1266
1267 Beachten Sie, dass der Notentext nur mit einem @code{Voice}-Kontext
1268 verknüpft werden kann, nicht mit einem @code{Staff}-Kontext.
1269 In diesem Fall also müssen Sie ein System (@code{Staff}) und 
1270 eine Stimme (@code{Voice}) explizit erstellen, damit alles 
1271 funktioniert.
1272
1273 @cindex Gesangstext und Balken
1274 @cindex Text und Balken
1275 @cindex Balken und Text
1276 @funindex \autoBeamOff
1277
1278 Die automatischen Balken, die LilyPond in der Standardeinstellung
1279 setzt, eignen sich sehr gut für instrumentale Musik, aber nicht
1280 so gut für Musik mit Text, wo man entweder gar keine Balken 
1281 benutzt oder sie einsetzt, um Melismen zu verdeutlichen.
1282 Im Beispiel oben wird deshalb der Befehl @code{\autoBeamOff}
1283 eingesetzt um die automatischen Balken (engl. beam) auszuschalten.
1284
1285 @funindex \new ChoirStaff
1286 @funindex \lyricmode
1287 @cindex Vokalpartitur, Aufbau
1288 @cindex Chorpartitur, Aufbau
1289
1290 Wir wollen das frühere Beispiel von @notation{Judas Maccabæus}
1291 benutzen, um diese flexiblere Technik für Gesangstexte
1292 zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
1293 Variablen eingesetzt werden, um den Text und die Noten
1294 von der Partiturstruktur zu trennen. Es wurde zusätzlich
1295 eine Chorpartiturklammer hinzugefügt. Der Gesangtext muss mit
1296 @code{\lyricmode} eingegeben werden, damit er als Text und
1297 nicht als Noten interpretiert werden kann.
1298
1299 @lilypond[quote,verbatim]
1300 global = { \time 6/8 \partial 8 \key f \major}
1301 SopOneMusic = \relative c'' {
1302   c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 }
1303 SopTwoMusic = \relative c' {
1304   r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' }
1305 SopOneLyrics = \lyricmode {
1306   Let | flee -- cy flocks the | hills a -- dorn, __ }
1307 SopTwoLyrics = \lyricmode {
1308   Let | flee -- cy flocks the | hills a -- dorn, }
1309
1310 \score {
1311   \new ChoirStaff <<
1312     \new Staff <<
1313       \new Voice = "SopOne" {
1314         \global
1315         \SopOneMusic
1316       }
1317       \new Lyrics \lyricsto "SopOne" {
1318         \SopOneLyrics
1319       }
1320     >>
1321     \new Staff <<
1322       \new Voice = "SopTwo" {
1323         \global
1324         \SopTwoMusic
1325       }
1326       \new Lyrics \lyricsto "SopTwo" {
1327         \SopTwoLyrics
1328       }
1329     >>
1330   >>
1331 }
1332 @end lilypond
1333
1334 Dies ist die Grundstruktur für alle Chorpartituren. Mehr
1335 Systeme können hinzugefügt werden, wenn sie gebraucht werden, mehr
1336 Stimmen können zu jedem System hinzugefügt werden, mehr
1337 Strophen können zum Text hinzugefügt werden, und schließlich
1338 können die Variablen schnell in eine eigene Datei verschoben 
1339 werden, wenn sie zu lang werden sollten.
1340
1341 @cindex Choralnotation
1342 @cindex Hymnus-Notation
1343
1344 Hier ein Beispiel der ersten Zeile eines Chorals mit vier
1345 Strophen für gemischten Chor. In diesem Fall ist der Text
1346 für alle vier Stimmen identisch. Beachten Sie, wie die
1347 Variablen eingesetzt werden, um Inhalt (Noten und Text) und Form
1348 (die Partitur) voneinander zu trennen. Eine Variable wurde
1349 eingesetzt, um die Elemente, die auf beiden Systemen auftauchen,
1350 aufzunehmen, nämlich Taktart und Tonart. Solch eine 
1351 Variable wird oft auch mit @qq{global} bezeichnet.
1352
1353 @lilypond[quote,verbatim]
1354 TimeKey = { \time 4/4 \partial 4 \key c \major}
1355 SopMusic   = \relative c' { c4 | e4. e8 g4  g  | a a g }
1356 AltoMusic  = \relative c' { c4 | c4. c8 e4  e  | f f e }
1357 TenorMusic = \relative c  { e4 | g4. g8 c4. b8 | a8 b c d e4 }
1358 BassMusic  = \relative c  { c4 | c4. c8 c4  c  | f8 g a b c4 }
1359 VerseOne   = \lyricmode {
1360   E -- | ter -- nal fa -- ther, | strong to save, }
1361 VerseTwo   = \lyricmode {
1362   O | Christ, whose voice the | wa -- ters heard, }
1363 VerseThree = \lyricmode {
1364   O | Ho -- ly Spi -- rit, | who didst brood }
1365 VerseFour  = \lyricmode {
1366   O | Tri -- ni -- ty of | love and pow'r }
1367
1368 \score {
1369   \new ChoirStaff <<
1370     \new Staff <<
1371       \clef "treble"
1372       \new Voice = "Sop"  { \voiceOne \TimeKey \SopMusic }
1373       \new Voice = "Alto" { \voiceTwo \AltoMusic }
1374       \new Lyrics \lyricsto "Sop" { \VerseOne   }
1375       \new Lyrics \lyricsto "Sop" { \VerseTwo   }
1376       \new Lyrics \lyricsto "Sop" { \VerseThree }
1377       \new Lyrics \lyricsto "Sop" { \VerseFour  }
1378     >>
1379     \new Staff <<
1380       \clef "bass"
1381       \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
1382       \new Voice = "Bass"  { \voiceTwo \BassMusic  }
1383     >>
1384   >>
1385 }
1386 @end lilypond
1387
1388 @cindex Strophe und Refrain
1389 @cindex Refrain
1390
1391 Dieser Abschnitt schließt mit einem Beispiel, das eine Solo-Strophe
1392 mit anschließendem zweistimmigem Refrain auf zwei Systemen zeigt.
1393 Die Positionierung des einstimmigen Abschnitss und der mehrstimmigen
1394 Stelle ist etwas kompliziert; es braucht etwas Aufmerksamkeit,
1395 um der Erklärung folgen zu können.
1396
1397 Beginnen wir mit einer @code{score}-Umgebung, in der eine
1398 Chorpartitur (@code{ChoirStaff}) gesetzt wird. Die Partitur soll
1399 schließlich mit der eckigen Klammer beginnen.
1400 Normalerweise bräuchten wir spitze Klammern im Quelltext
1401 nach dem @code{\new ChoirStaff}, damit die Systeme paralell
1402 gesetzt werden, aber hier wollen wir diese Parallelsierung
1403 ja erst nach dem Solo. Also benutzen wir geschweifte Klammern.
1404 Innerhalb der Chorpartitur erstellen wir zuerst das System, 
1405 das die Strophe enthält. Es braucht Noten und Text parallel,
1406 also setzen wir hier die spitzen Klammern um @code{\new Voice} 
1407 und @code{\new Lyrics}.
1408
1409 @lilypond[quote,verbatim,ragged-right]
1410 versenotes = \relative c'' {
1411   \clef "treble"
1412   \key g \major
1413   \time 3/4 g g g b b b
1414 }
1415 versewords = \lyricmode {
1416   One two three four five six
1417 }
1418 \score {
1419   \new Choirstaff {
1420     \new Staff <<
1421       \new Voice = "verse" {
1422         \versenotes \break
1423       }
1424       \new Lyrics \lyricsto verse {
1425         \versewords
1426       }
1427     >>
1428   }
1429 }
1430 @end lilypond
1431
1432 @noindent
1433 Damit erhalten wir die Strophe.
1434
1435 Jetzt soll @notation{refrainA} auf dem selben System gesetzt
1436 werden, während gleichzeitig in einem neuen System darunter 
1437 @notation{refrainB} gesetzt wird. Damit die Oberstimme das
1438 gleiche System benutzt, muss alles direkt auf den Zeilenumbruchbefehl
1439 (@code{\break} folgen, innerhalb der @notation{verse}-Stimme.
1440 Ja, tatsächlich, @emph{innerhalb} der @notation{verse}-Stimme.
1441 Hier haben wir diese parallele Stelle isoliert. Weitere Systeme
1442 könnten auf die gleiche Weise hinzugefügt werden.
1443
1444 @example
1445 <<
1446   \refrainnotesA
1447   \new Lyrics \lyricsto verse @{
1448     \refrainwordsA
1449   @}
1450   \new Staff <<
1451     \new Voice = "refrainB" @{
1452       \refrainnotesB
1453     @}
1454     \new Lyrics \lyricsto "refrainB" @{
1455       \refrainwordsB
1456     @}
1457   >>
1458 >>
1459 @end example
1460
1461 Nun schließlich das Resultat mit zwei Systemen für den Refrain,
1462 man kann gut sehen, wie sich die parallele Stelle innherhalb
1463 der @notation{verse}-Stimme befindet.
1464
1465 @lilypond[quote,verbatim, ragged-right]
1466 versenotes = \relative c'' {
1467   \clef "treble"
1468   \key g \major
1469   \time 3/4 g g g b b b
1470 }
1471 refrainnotesA = \relative c'' {
1472   \time 2/4
1473   c c g g \bar "|."
1474 }
1475 refrainnotesB = \relative c {
1476   \clef "bass"
1477   \key g \major
1478   c e d d
1479 }
1480 versewords = \lyricmode {
1481   One two three four five six
1482 }
1483 refrainwordsA = \lyricmode {
1484   la la la la
1485 }
1486 refrainwordsB = \lyricmode {
1487   dum dum dum dum
1488 }
1489 \score {
1490   \new ChoirStaff {
1491     \new Staff <<
1492       \new Voice = "verse" {
1493         \versenotes \break
1494         <<
1495           \refrainnotesA
1496           \new Lyrics \lyricsto "verse" {
1497             \refrainwordsA
1498           }
1499           \new Staff <<
1500             \new Voice = "refrainB" {
1501               \refrainnotesB
1502             }
1503             \new Lyrics \lyricsto "refrainB" {
1504               \refrainwordsB
1505             }
1506           >>
1507         >>
1508       }
1509       \new Lyrics \lyricsto "verse" {
1510         \versewords
1511       }
1512     >>
1513   }
1514 }
1515 @end lilypond
1516
1517 @cindex book, Benutzung von
1518 @funindex \book
1519
1520 Dies ist zwar eine interessante und nützliche Übung um zu
1521 verstehen, wie sequentielle und parallele Notationsumgebungen
1522 funktionieren, in der Praxis würde man diesen Code aber
1523 vielleicht eher in zwei @code{\score}-Umgebungen trennnen
1524 und diese dann innerhalb einer @code{\book}-Umgebung
1525 einsetzen, wie im folgenden Beispiel demonstriert:
1526
1527 @lilypond[quote,verbatim,ragged-right]
1528 versenotes = \relative c'' {
1529   \clef "treble"
1530   \key g \major
1531   \time 3/4 g g g b b b
1532 }
1533 refrainnotesA = \relative c'' {
1534   \time 2/4
1535   c c g g \bar "|."
1536 }
1537 refrainnotesB = \relative c {
1538   \clef "bass"
1539   \key g \major
1540   c e d d
1541 }
1542 versewords = \lyricmode {
1543   One two three four five six
1544 }
1545 refrainwordsA = \lyricmode {
1546   la la la la
1547 }
1548 refrainwordsB = \lyricmode {
1549   dum dum dum dum
1550 }
1551 \score {
1552   \new Staff <<
1553     \new Voice = "verse" {
1554       \versenotes
1555     }
1556     \new Lyrics \lyricsto "verse" {
1557       \versewords
1558     }
1559   >>
1560 }
1561
1562 \score {
1563   \new ChoirStaff <<
1564     \new Staff <<
1565       \new Voice = "refrainA" {
1566         \refrainnotesA
1567       }
1568       \new Lyrics \lyricsto "refrainA" {
1569         \refrainwordsA
1570       }
1571     >>
1572     \new Staff <<
1573       \new Voice = "refrainB" {
1574         \refrainnotesB
1575       }
1576       \new Lyrics \lyricsto "refrainB" {
1577         \refrainwordsB
1578       }
1579     >>
1580   >>
1581 }
1582 @end lilypond
1583
1584
1585 @seealso
1586 Notation Reference: @ruser{Vocal music}.
1587
1588
1589 @node Contexts and engravers
1590 @section Contexts and engravers
1591
1592 Kontexte und Engraver (@qq{Stempel}) sind in den vorherigen
1593 Abschnitten schon aufgetaucht; hier wollen wir uns ihnen
1594 nun etwas ausführlicher widmen, denn sie sind sehr
1595 wichtig, um Feineinstellungen in der LilyPond-Notenausgabe
1596 vornehmen zu können.
1597
1598 @menu 
1599 * Contexts explained::
1600 * Creating contexts::
1601 * Engravers explained::
1602 * Modifying context properties::
1603 * Adding and removing engravers::
1604 @end menu
1605
1606 @node Contexts explained
1607 @subsection Contexts explained
1608
1609 @cindex Kontexte erklärt
1610
1611 Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
1612 hinzugefügt werden,
1613 die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
1614 etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
1615
1616 @lilypond[quote,verbatim,relative=2,fragment]
1617 cis4 cis2. g4
1618 @end lilypond
1619
1620 Der Quellcode ist sehr kurz und knapp, während in der
1621 Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und
1622 eine Taktart hinzugefügt wurden. Während LilyPond
1623 den Eingabetext @emph{interpretiert}, wird die
1624 musikalische Information in zeitlicher Reihenfolge
1625 inspiziert, etwa wie man eine Partitur von links nach
1626 rechts liest. Während das Programm den Code liest,
1627 merkt es sich, wo sich Taktgrenzen befinden und
1628 für welche Tonhöhen Versetzungszeichen gesetzt werden
1629 müssen. Diese Information muss auf mehreren Ebenen
1630 gehandhabt werden, denn Versetzungszeichen etwa
1631 beziehen sich nur auf ein System, Taktlinien dagegen
1632 üblicherweise auf die gesamte Partitur.
1633
1634 Innerhalb von LilyPond sind diese Regeln und 
1635 Informationshappen in @emph{Kontexten} (engl.
1636 contexts) gruppiert. Wir sind schon auf den
1637 @code{Voice} (Stimmen)-Kontext gestoßen. Daneben
1638 gibt es noch die @code{Staff} (Notensystem-) und
1639 @code{Score} (Partitur-) Kontexte. Kontexte sind
1640 hierarchisch geschichtet um die hierarchische
1641 Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
1642 kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
1643 und ein @code{Score}-Kontext kann viele
1644 @code{Staff}-Kontexte beinhalten.
1645
1646 @quotation
1647 @sourceimage{context-example,5cm,,}
1648 @end quotation
1649
1650 Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
1651 zu erzwingen, bestimmte Notationsobjekte zu erstellen und
1652 verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
1653 zum Beispiel kann eine Vorzeichenregel einführen und der
1654 @code{Staff}-Kontext hält diese Regel dann aufrecht, um
1655 einzuordenen, ob ein Versetzungszeichen gesetzt werden
1656 muss oder nicht.
1657
1658 Ein anderes Beispiel: die Synchronisation der Taktlinien ist
1659 standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
1660 die Systeme einer Partitur aber unterschiedliche Taktarten
1661 enthalten, etwa in einer polymetrischen Partitur mit 
1662 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
1663 der @code{Score}- und @code{Staff}-Kontexte verändert werden.
1664
1665 In einfachen Partituren werden die Kontexte implizit erstellt,
1666 und es kann sein, dass Sie sich dessen gar nicht bewusst sind.
1667 Für etwas größere Projekte, etwa mit vielen Systemen, müssen
1668 die Kontexte aber explizit erstellt werden, um sicher zu gehen,
1669 dass man auch wirklich die erwünschte Zahl an Systemen in der
1670 richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
1671 Notation gesetzt werden sollen, ist es üblich, die existierenden
1672 Kontexte zu verändern oder gar gänzlich neue zu definieren.
1673
1674 Zusätzlich zu den @code{Score,} @code{Staff} und
1675 @code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
1676 der Partitur- und Systemebene liegen und Gruppen von Systemen
1677 kontrollieren. Das sind beispielsweise der 
1678 @code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
1679 alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
1680 für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
1681
1682 Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren
1683 englischen
1684 Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben
1685 begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich
1686 angeschlossen, etwa 
1687 @code{GregorianTranscriptionStaff}.
1688
1689
1690 @seealso
1691 Notationreferenz: @ruser{Contexts explained}.
1692
1693
1694 @node Creating contexts
1695 @subsection Creating contexts
1696
1697 @funindex \new
1698 @cindex Neue Kontexte
1699 @cindex Erstellen von Kontexten
1700 @cindex Kontexte, Erstellen
1701
1702 Es gibt nur einen Kontext der obersten Ebene: der 
1703 @code{Score}-Kontext. Er wird mit dem @code{\score}-Befehl, 
1704 oder -- in einfacheren Partituren -- automatisch
1705 erstellt.
1706
1707 Wenn nur ein System vorhanden ist, kann man es ruhig
1708 LilyPond überlassen, die @code{Voice}- und @code{Staff}-Kontexte
1709 zu erstellen, aber für komplexere Partituren ist es notwendig, 
1710 sie mit einem Befehl zu erstellen. Der einfachste Befehl 
1711 hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck 
1712 vorangestellt, etwa so:
1713
1714 @example
1715 \new @var{Typ} @var{musikalischer Ausdruck}
1716 @end example
1717
1718 @noindent
1719 wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
1720 @code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
1721 beginnt, den @var{muskalischen Ausdruck} innherhalb dieses
1722 Kontexts auszuwerten.
1723
1724 Beachten Sie, dass es keinen @code{\new Score}-Befehl gibt: der
1725 Partitur-Kontext der obersten Ebene wird mit dem Befehl @code{\score}
1726 begonnen.
1727
1728 Wir haben schon viele explizite Beispiel gesehen, in denen
1729 neue @code{Staff}- und @code{Voice}-Kontexte erstellt wurden, aber
1730 um noch einmal ins Gedächtnis zu rufen, wie diese Befehle benutzt
1731 werden, hier ein kommentiertes Beispiel aus dem richtigen Leben:
1732
1733 @lilypond[quote,verbatim,ragged-right]
1734 \score {  % start of single compound music expression
1735   <<  % start of simultaneous staves section
1736     \time 2/4
1737     \new Staff {  % create RH staff
1738       \key g \minor
1739       \clef "treble"
1740       \new Voice {  % create voice for RH notes
1741         \relative c'' {  % start of RH notes
1742           d4 ees16 c8. |
1743           d4 ees16 c8. |
1744         }  % end of RH notes
1745       }  % end of RH voice
1746     }  % end of RH staff
1747     \new Staff <<  % create LH staff; needs two simultaneous voices
1748       \key g \minor
1749       \clef "bass"
1750       \new Voice {  % create LH voice one
1751         \voiceOne
1752         \relative g {  % start of LH voice one notes
1753           g8 <bes d> ees, <g c> |
1754           g8 <bes d> ees, <g c> |
1755         }  % end of LH voice one notes
1756       }  % end of LH voice one
1757       \new Voice {  % create LH voice two
1758         \voiceTwo
1759         \relative g {  % start of LH voice two notes
1760           g4 ees |
1761           g4 ees |
1762         }  % end of LH voice two notes
1763       }  % end of LH voice two
1764     >>  % end of LH staff
1765   >>  % end of simultaneous staves section
1766 }  % end of single compound music expression
1767 @end lilypond
1768
1769 (Beachten Sie, dass wir hier alle Zeilen, die eine neue
1770 Umgebung entweder mit einer geschweiften Klammer (@code{@{})
1771 oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
1772 jeweils zwei Leerzeichen, und die entsprechenden 
1773 schließenden Klammern mit der gleichen Anzahl Leerzeichen
1774 eingerückt werden. Dies ist nicht erforderlich, es wird aber
1775 zu einem großen Teil die nicht passenden Klammerpaar-Fehler
1776 eliminieren und ist darum sehr empfohlen. Es macht es 
1777 möglich, die Struktur einer Partitur auf einen Blick zu
1778 verstehen, und alle nicht passenden Klammern 
1779 erschließen sich schnell. Beachten Sie auch, dass das
1780 untere Notensystem mit eckigen Klammern erstellt wird,
1781 denn innerhalb dieses Systems brauchen wir zwei Stimmen,
1782 um die Noten darzustellen. Das obere System braucht
1783 nur einen einzigen musikalischen Ausdruck und ist deshalb
1784 von geschweiften Klammern umschlossen.)
1785
1786 @cindex Kontexte, Benennung
1787 @cindex Bennenung von Kontexten
1788
1789 Der @code{\new}-Befehl kann einem Kontext auch einen
1790 Namen zur Identifikation geben, um ihn von anderen Kontexten des
1791 selben Typs zu unterscheiden:
1792
1793 @example
1794 \new @var{Typ} = @var{Name} @var{musikalischer Ausdruck}
1795 @end example
1796
1797 Beachten Sie den Unterschied zwischen der Bezeichnung des
1798 Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
1799 Namen, der aus beliebigen Buchstaben bestehen kann
1800 und vom Benutzer frei erfunden werden kann. Zahlen und 
1801 Leerzeichen können auch benutzt werden, in dem Fall
1802 muss der Name aber von doppelten Anführungszeichen
1803 umgeben werden, also etwa  
1804 @code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
1805 Der Name wird
1806 benutzt, um später auf genau diesen spezifischen Kontext 
1807 zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
1808 zu Gesangstexten angewandt, siehe @ref{Voices and vocals}.
1809
1810
1811 @seealso
1812 Notationsreferenz: @ruser{Creating contexts}.
1813
1814
1815 @node Engravers explained
1816 @subsection Engravers explained
1817
1818 @cindex Engraver
1819 @cindex Stempel (Engraver)
1820
1821 Jedes Zeichen des fertigen Notensatzes von LilyPond wird
1822 von einem @code{Engraver} (Stempel) produziert. Es gibt
1823 also einen Engraver, der die Systeme erstellt, einen, der die
1824 Notenköpfe ausgibt, einen für die Hälse, einen für die
1825 Balken usw. Insgesamt gibt es über 120 Engraver! Zum
1826 Glück braucht man für die meisten Partituren nur ein
1827 paar Engraver, und für einfache Partituren muss man eigentlich
1828 überhaupt nichts über sie wissen.
1829
1830 Engraver leben und wirken aus den Kontexten heraus. Engraver
1831 wie der @code{Metronome_mark_engraver}, dessen Aktion
1832 und Ausgabe sich auf die gesamte Partitur bezieht, wirken
1833 in der obersten Kontextebene -- dem @code{Score}-Kontext.
1834
1835 Der @code{Clef_engraver} (Schlüssel-Stempel) und der 
1836 @code{Key_engraver} (Vorzeichen-Stempel)  finden sich in
1837 jedem @code{Staff}-Kontext, denn unterschiedliche Systeme
1838 könnten unterschiedliche Tonarten und Notenschlüssel
1839 brauchen.
1840
1841 Der @code{Note_heads_engraver} (Notenkopf-Stempel) und der
1842 @code{Stem_engraver} (Hals-Stempel) befinden sich in jedem
1843 @code{Voice}-Kontext, der untersten Kontextebene.
1844
1845 Jeder Engraver bearbeitet die bestimmten Objekte, die mit
1846 seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
1847 dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
1848 die mit Kontexten assoziiert sind, können verändert werden,
1849 um die Wirkungsweise des Engravers oder das Erscheinungsbild
1850 der von ihm produzierten Elemente in der Partitur zu ändern.
1851
1852 Alle Engraver haben zusammengesetzte Bezeichnung, die aus
1853 den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
1854 das erste Wort hat einen Großbuchstaben, und die restlichen
1855 Wörter werden mit einem Unterstrich angefügt. Ein
1856 @code{Staff_symbol_engraver}  verantwortet also die Erstellung
1857 der Notenlinien, ein @code{Clef_engraver} entscheidet über die
1858 Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
1859 wird gleichzeitig die Referenztonhöhe auf dem Notensystem festgelegt.
1860
1861 Hier die meistgebräuchlichen Engraver mit ihrer Funktion.
1862 Sie werden sehen, dass es mit etwas Englischkenntnissen
1863 einfach ist, die Funktion eines Engravers von seiner Bezeichnung
1864 abzuleiten.
1865
1866 @multitable @columnfractions .3 .7
1867 @headitem Engraver
1868   @tab Funktion
1869 @item Accidental_engraver
1870   @tab Erstellt Versetzungszeichen, vorgeschlagene und Warnversetzungszeichen.
1871 @item Beam_engraver
1872   @tab Erstellt Balken.
1873 @item Clef_engraver
1874   @tab Erstellt Notenschlüssel.
1875 @item Completion_heads_engraver
1876   @tab Teilt Noten in kleiner Werte, wenn sie über die Taktlinie reichen.
1877 @c The old Dynamic_engraver is deprecated. -jm
1878 @item New_dynamic_engraver
1879   @tab Erstellt Dynamik-Klammern und Dynamik-Texte.
1880 @item Forbid_line_break_engraver
1881   @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist.
1882 @item Key_engraver
1883   @tab Erstellt die Vorzeichen.
1884 @item Metronome_mark_engraver
1885   @tab Erstellt Metronom-Bezeichnungen.
1886 @item Note_heads_engraver
1887   @tab Erstellt Notenköpfe.
1888 @item Rest_engraver
1889   @tab Erstellt Pausen.
1890 @item Staff_symbol_engraver
1891   @tab Ersetllt die (standardmäßig) fünf Notenlinien des Systems.
1892 @item Stem_engraver
1893   @tab Erstellt die Notenhälse und Tremolos mit einem Hals.
1894 @item Time_signature_engraver
1895   @tab Erstellt die Taktartbezeichnung.
1896 @end multitable
1897
1898 @smallspace
1899
1900 Es soll später gezeigt werden, wie die LilyPond-Ausgabe
1901 verändert werden kann, indem die Wirkungsweise der
1902 Engraver beeinflusst wird.
1903
1904
1905 @seealso
1906 Referenz der Interna: @rinternals{Engravers and Performers}.
1907
1908
1909 @node Modifying context properties
1910 @subsection Modifying context properties
1911
1912 @cindex Kontext-Eigenschaften
1913 @cindex Eigenschaften von Kontexten
1914 @cindex Verändern von Kontext-Eigenschaften
1915 @funindex \set
1916 @funindex \unset
1917
1918 Kontexte sind dafür verantwortlich, die Werte bestimmter
1919 Kontext-@emph{Eigenschaften} zu speichern. Viele davon
1920 können verändert werden, um die Interpretation der
1921 Eingabe zu beeinflussen und die Ausgabe zu verändern.
1922 Kontexte werden mit dem @code{\set}-Befehl geändert.
1923 Er wird in Form
1924
1925 @example
1926 \set @var{KontextBezeichnung}.@var{eigenschaftsBezeichnung} = #@var{Wert}
1927 @end example
1928
1929 @noindent
1930 verwendet, wobei @var{KontextBezeichnung} üblicherweise
1931  @code{Score},
1932 @code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
1933 ausgelassen werden; in diesem Fall wird @code{Voice} eingesetzt.
1934
1935 Die Bezeichnung von Kontexten-Eigenschaften besteht
1936 aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
1937 verbunden sind. Alle außer dem ersten werden am Anfang
1938 groß geschrieben. Hier einige Beispiele der gebräuchlichsten
1939 Kontext-Eigenschaften. Es gibt sehr viel mehr.
1940
1941 @c attempt to force this onto a new page
1942 @need 50
1943 @multitable @columnfractions .25 .15 .45 .15
1944 @headitem eigenschaftsBezeichnung
1945   @tab Typ
1946   @tab Funktion
1947   @tab Beispiel-Wert
1948 @item extraNatural
1949   @tab boolescher Wert
1950   @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt. 
1951   @tab @code{#t}, @code{#f}
1952 @item currentBarNumber
1953   @tab Integer
1954   @tab Setzt die aktuelle Taktnummer.
1955   @tab @code{50}
1956 @item doubleSlurs
1957   @tab boolescher Wert
1958   @tab Wenn wahr, werden Legatobögen über und unter die Noten gesetzt.
1959   @tab @code{#t}, @code{#f}
1960 @item instrumentName
1961   @tab Text
1962   @tab Setzt die Instrumentenbezeichnung am Anfang eines Systems.
1963   @tab @code{"Cello I"}
1964 @item fontSize
1965   @tab reale Zahl
1966   @tab Vergrößert oder verkleinert die Schriftgröße.
1967   @tab @code{2.4}
1968 @item stanza
1969   @tab Text
1970   @tab Setzt den Text zu Beginn einer Strophe.
1971   @tab @code{"2"}
1972 @end multitable
1973
1974 @noindent
1975 Ein boolischer Wert ist entweder wahr  (@code{#t}) 
1976 oder falsch (@code{#f}),
1977 ein Integer eine positive ganze Zahl, eine reale Zahl eine positive
1978 oder negative Dezimalzahl, und Text wird in doppelte
1979 Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
1980 das Vorkommen des Rautenzeichens
1981 (@code{#}) an unterschiedlichen Stellen: als Teil eines
1982 booleschen Wertes vor dem @code{t} oder @code{f}, aber
1983 auch vor einem @emph{Wert} in der
1984 @code{\set}-Befehlskette. Wenn ein boolescher Wert
1985 eingegeben werden soll, braucht man also zwei
1986 Rautenzeichen, z. B. @code{##t}.
1987
1988 Bevor eine Eigenschaft geändert werden kann, muss man wissen,
1989 in welchem Kontext sie sich befindet. Manchmal versteht das
1990 sich von selbst, aber in einigen Fällen kann es zunächst
1991 unverständlich erscheinen. Wenn der falsche Kontext angegeben
1992 wird, wird keine Fehlermeldung produziert, aber die
1993 Veränderung wird einfach nicht ausgeführt. 
1994 @code{instrumentName} befindet sich offensichtlich innerhalb
1995 von einem @code{Staff}-Kontext, denn das Notensystem soll
1996 benannt werden. In dem folgenden Beispiel erhält das erste
1997 System korrekt die Instrumentenbezeichnung, das zweite aber
1998 nicht, weil der Kontext ausgelassen wurde.
1999
2000 @lilypond[quote,verbatim,ragged-right]
2001 <<
2002   \new Staff \relative c'' {
2003     \set Staff.instrumentName = #"Soprano"
2004     c4 c
2005  }
2006   \new Staff \relative c' {
2007   \set instrumentName = #"Alto"  % Wrong!
2008   d4 d
2009  }
2010 >>
2011 @end lilypond
2012
2013 Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
2014 zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
2015 im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
2016 Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
2017 gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
2018 prodziert.
2019
2020 Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
2021 falsch geschrieben wird und die Änderung also nicht ausgeführt werden
2022 kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
2023 mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
2024 wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
2025 zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
2026 die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
2027 Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
2028 fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
2029 unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
2030 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
2031 Bezeichnungen in der Interna-Referenz zu überprüfen: siehe 
2032 @rinternals{Tunable context properties}, oder
2033 @rinternals{Contexts}.
2034
2035 Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
2036 ineinem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
2037 können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
2038 @code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen
2039 setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
2040 Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch) 
2041 gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
2042 sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
2043 auf alle darin enthaltenen Systeme aus.
2044
2045 Das also bewirkt, dass die zusätzlichen Erniedrigungszeichen in einem System 
2046 ausgeschaltet sind:
2047
2048 @lilypond[quote,verbatim,ragged-right]
2049 <<
2050   \new Staff \relative c'' {
2051     ais4 aes
2052  }
2053   \new Staff \relative c'' {
2054     \set Staff.extraNatural = ##f
2055     ais4 aes
2056  }
2057 >>
2058 @end lilypond
2059
2060 @noindent
2061 während das dazu dient, sie in allen Systemen auszuschalten:
2062
2063 @lilypond[quote,verbatim,ragged-right]
2064 <<
2065   \new Staff \relative c'' {
2066     ais4 aes
2067  }
2068   \new Staff \relative c'' {
2069     \set Score.extraNatural = ##f
2070     ais4 aes
2071  }
2072 >>
2073 @end lilypond
2074
2075 Ein anderes Beispiel ist die Eigenschaft @code{clefOctavation}:
2076 wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort
2077 der Wert der Oktavierung in allen aktuellen Systemen und wird
2078 auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt.
2079
2080 Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft
2081 effektiv wieder von dem Kontext: in den meisten Fällen wird der
2082 Kontext auf ihre Standardeinstellungen zurückgesetzt.
2083 Normalerweise wird aber @code{\unset} nicht benötigt,
2084 denn ein neues @code{\set} erledigt alles, was man braucht.
2085
2086 Die @code{\set}- und @code{\unset}-Befehle könne überall im
2087 Eingabequelltext erscheinen und werden aktiv von dem Moment, an
2088 dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
2089 mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
2090 wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
2091 auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
2092 nicht vom letzten gesetzten Wert.
2093
2094 @lilypond[quote,verbatim,ragged-right,relative=1,fragment]
2095 c4
2096 % make note heads smaller
2097 \set fontSize = #-4
2098 d e
2099 % make note heads larger
2100 \set fontSize = #2.5
2101 f g
2102 % return to default size
2103 \unset fontSize
2104 a b
2105 @end lilypond
2106
2107 Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
2108 Eigenschaften ändern lassen. Beachten Sie, dass Integre und
2109 Zahlen immer mit einem Rautenzeichen beginnen, während
2110 die Werte wahr und falsch (mit @code{##t} und @code{##f}
2111 notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
2112 aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
2113 auch wenn wir später sehen werden, dass Text auf eine sehr viel
2114 allgmeinere und mächtigere Art mit dem @code{markup}-Befehl
2115 eingegeben werden kann.
2116
2117 @unnumberedsubsubsec Setting context properties with @code{\with}
2118
2119 @funindex \with
2120 @cindex Kontexteigenschaft, setzen mit \with
2121
2122 Kontexteigenschaften können auch gesetzt werden, wenn der Kontext
2123 erstellt wird. Das ist in manchen Fällen eine deutlichere Art,
2124 eine Eigenschaft zu bestimmen, die für die gesamte Partitur
2125 erhalten bleichen soll. Wenn ein Kontext mit einem
2126 @code{\new}-Befehl erstellt wird, dem direkt eine
2127 @code{\with @{ .. @}}-Umgebung folgt, können hier die
2128 Eigenschaften bestimmt werden. Wenn also die zusätzlichen
2129 Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
2130 man schreiben:
2131
2132 @example
2133 \new Staff \with @{ extraNatural = ##f @}
2134 @end example
2135
2136 @noindent
2137 etwa so:
2138
2139 @lilypond[quote,verbatim,ragged-right]
2140 <<
2141   \new Staff
2142   \relative c'' {
2143     gis ges aes ais
2144   }
2145   \new Staff \with { extraNatural = ##f }
2146   \relative c'' {
2147     gis ges aes ais
2148   }
2149 >>
2150 @end lilypond
2151
2152 Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
2153 dynamisch mit dem @code{\set}-Befehl geändert werden und mit
2154 @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden.
2155
2156 Die @code{fontSize}-Eigenschaft wird anders behandelt. Wenn sie mit
2157 einer @code{\with}-Umgebung gesetzt wird, wird die Standardschriftgröße
2158 neu gesetzt. Wenn die Schriftgröße später mit @code{\set} verändert
2159 wird, kann dieser neue Standardwert mit dem Befehl
2160 @code{\unset fontSize} erreicht werden.
2161
2162 @unnumberedsubsubsec Setting context properties with @code{\context}
2163
2164 Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
2165 eines bestimmten Typs (etwa alle @code{Staff}-Kontexte) 
2166 gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
2167 spezifieziert, indem seine Bezeichnung benutzt wird, also etwa 
2168 @code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
2169 für die Eigenschaft ist der gleiche, wie er auch in der 
2170 @code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
2171 eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
2172 von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
2173 wirkt sich auf alle Kontexte dieses Types aus, welche sich in der
2174 aktuellen Partitur befinden (d. h. innherhalb einer @code{\score}-
2175 oder @code{\book}-Umgebung. Hier ist ein Beispiel, wie man diese
2176 Funktion anwendet:
2177
2178 @lilypond[verbatim,quote]
2179 \score {
2180   \new Staff {
2181     \relative c'' {
2182       cis4 e d ces
2183     }
2184   }
2185   \layout {
2186     \context {
2187       \Staff
2188       extraNatural = ##t
2189     }
2190   }
2191 }
2192 @end lilypond
2193
2194 @noindent
2195 Kontext-Eigenschaften, die auf diese Weise gestzt werden, können für 
2196 bestimmten Kontexte überschrieben werden, indem die 
2197 @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
2198 innerhalb der aktuellen Noten.
2199
2200
2201 @seealso
2202 Notationsreferenz:
2203 @ruser{Changing context default settings}.
2204 @c FIXME
2205 @c uncomment when backslash-node-name issue is resolved -pm
2206 @c @ruser{The set command}.
2207
2208 Referenz der Interna:
2209 @rinternals{Contexts},
2210 @rinternals{Tunable context properties}.
2211
2212
2213 @node Adding and removing engravers
2214 @subsection Adding and removing engravers
2215
2216 @cindex Engraver, Hinzufügen von
2217 @cindex Engraver, Entfernen von
2218 @cindex Hinzufügen von Engravern
2219 @cindex Entfernen von Engravern
2220
2221 @funindex \consists
2222 @funindex \remove
2223
2224 Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
2225 (Stempeln) beinhaltet, von denen ein jeder einen bestimmten
2226 Teil des fertigen Notensatzes produziert, wie z. B. Taktlinien,
2227 Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
2228 einem Kontext entfernt wird, kann er seine Objekte nicht
2229 länger produzieren. Das ist eine eher grobe Methode, die
2230 Notenausgabe zu beeinflussen, aber es kann von großem
2231 Nutzen sein.
2232
2233 @subsubheading Changing a single context
2234
2235 Um einen Engraver von einem einzelnen Kontext zu entfernen,
2236 wir der @code{\with}-Befehl eingesetzt, direkt hinter
2237 den Befehl zur Kontext-Erstellung geschrieben, wie
2238 in dem vorigen Abschnitt gezeigt.
2239
2240 Als ein Beispiel wollen wir das Beispiel aus dem letzten
2241 Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
2242 Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
2243 erstellt werden.
2244
2245 @lilypond[quote,verbatim,ragged-right]
2246 \new Staff \with {
2247   \remove Staff_symbol_engraver
2248 }
2249 \relative c' {
2250   c4
2251   \set fontSize = #-4  % make note heads smaller
2252   d e
2253   \set fontSize = #2.5  % make note heads larger
2254   f g
2255   \unset fontSize  % return to default size
2256   a b
2257 }
2258 @end lilypond
2259
2260 @cindex Ambitus-Engraver
2261
2262 Engraver können auch zu einem bestimmten
2263 Kontext hinzugefügt werden. Dies geschieht
2264 mit dem Befehl
2265
2266 @code{\consists @var{Engraver_bezeichnung}}
2267
2268 @noindent
2269 welcher auch wieder innerhalb der @code{\with}-Umgebung
2270 gesetzt wird. Einige Chorpartituren zeigen einen
2271 Ambitus direkt zu Beginn der ersten Notenzeile, um
2272 den Stimmumfang des Stückes anzuzeigen, siehe auch
2273 @rglos{ambitus}. Der Ambitus wird vom
2274 @code{Ambitus_engraver} erstellt, der normalerweise
2275 in keinem Kontext enthalten ist. Wenn wir
2276 ihn zum @code{Voice}-Kontext hinzufügen, errechnet
2277 er automatisch den Stimmumfang für diese einzelne Stimme 
2278 und zeigt ihn an:
2279
2280 @lilypond[quote,verbatim,ragged-right]
2281 \new Staff <<
2282   \new Voice \with {
2283     \consists Ambitus_engraver
2284   }
2285   \relative c'' {
2286     \voiceOne
2287     c a b g
2288   }
2289   \new Voice
2290   \relative c' {
2291     \voiceTwo
2292     c e d f
2293   }
2294 >>
2295 @end lilypond
2296
2297 @noindent
2298 wenn wir den Ambitus-Engraver allerdings zum
2299 @code{Staff}-Kontext hinzufügen, wird der Stimmumfang aller
2300 Stimmen in diesem Notensystem errechnet:
2301
2302 @lilypond[quote,verbatim,ragged-right]
2303 \new Staff \with {
2304     \consists Ambitus_engraver
2305   }
2306   <<
2307   \new Voice
2308   \relative c'' {
2309     \voiceOne
2310     c a b g
2311   }
2312   \new Voice
2313   \relative c' {
2314     \voiceTwo
2315     c e d f
2316   }
2317 >>
2318 @end lilypond
2319
2320 @subsubheading Changing all contexts of the same type
2321
2322 @funindex \layout
2323
2324 Die vorigen Beispiele zeigen, wie man Engraver in einem
2325 bestimmten Kontext hinzufügen oder entfernen kann. Es ist
2326 auch möglich, Engraver in jedem Kontext eines bestimmten
2327 Typs hinzuzufügen oder zu entfernen. Dazu werden die
2328 Befehle in dem entsprechenden Kontext in einer
2329 @code{\layout}-Umgebung gesetzt. Wenn wir also z. B. 
2330 den Ambitus für jedes Notensystem in einer Partitur 
2331 mit vier Systemen anzeigen wollen, könnte das so aussehen:
2332
2333 @lilypond[quote,verbatim,ragged-right]
2334 \score {
2335   <<
2336     \new Staff <<
2337       \relative c'' { c a b g }
2338     >>
2339     \new Staff <<
2340       \relative c' { c a b g }
2341     >>
2342     \new Staff <<
2343       \clef "G_8"
2344       \relative c' { c a b g }
2345     >>
2346     \new Staff <<
2347       \clef "bass"
2348       \relative c { c a b g }
2349     >>
2350   >>
2351   \layout {
2352     \context {
2353       \Staff
2354       \consists Ambitus_engraver
2355     }
2356   }
2357 }
2358 @end lilypond
2359
2360 @noindent
2361 Die Werte der Kontext-Eigenschaften können auch für 
2362 alle Kontexte eines bestimmten Typs auf die gleiche
2363 Weise geändert werden, indem der @code{\set}-Befehl in
2364 einer @code{\context}-Umgebung angewendet wird.
2365
2366
2367 @seealso
2368 Notationsreferenz: @ruser{Modifying context plug-ins},
2369 @ruser{Changing context default settings}.
2370
2371
2372 @node Extending the templates
2373 @section Extending the templates
2374
2375 Sie haben sich durch die Übung gearbeitet, Sie
2376 wissen jetzt, wie Sie Notensatz produzieren, und Sie
2377 haben die grundlegenden Konzepte verstanden. Aber wie
2378 erhalten Sie genau die Systeme, die Sie brauchen? Es
2379 gibt eine ganze Anzahl an fertigen Vorlagen
2380 (siehe @ref{Templates}), mit denen Sie beginnen 
2381 können. Aber was, wenn Sie nicht genau das finden,
2382 was Sie brauchen? Lesen Sie weiter.
2383
2384 @menu
2385 * Soprano and cello::
2386 * Four-part SATB vocal score::
2387 * Building a score from scratch::
2388 @end menu
2389
2390 @node Soprano and cello
2391 @subsection Soprano and cello
2392
2393 @cindex Template, Verändern von
2394 @cindex Vorlage, Verändern von
2395
2396 Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
2397 am nächsten kommt. Nehmen wir einmal an, Sie wollen
2398 ein Stück für Sopran und Cello schreiben. In diesem 
2399 Fall könnten Sie mit der Vorlage @qq{Noten und Text} 
2400 (für die Sopran-Stimme) beginnen.
2401
2402 @example
2403 \version @w{"@version{}"}
2404 melody = \relative c' @{
2405   \clef treble
2406   \key c \major
2407   \time 4/4
2408   a4 b c d
2409 @}
2410
2411 text = \lyricmode @{
2412   Aaa Bee Cee Dee
2413 @}
2414
2415 \score @{
2416   <<
2417     \new Voice = "one" @{
2418       \autoBeamOff
2419       \melody
2420     @}
2421     \new Lyrics \lyricsto "one" \text
2422   >>
2423   \layout @{ @}
2424   \midi @{ @}
2425 @}
2426 @end example
2427
2428 Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
2429 Beispiel @qq{Nur Noten} an:
2430
2431 @example
2432 \version @w{"@version{}"}
2433 melody = \relative c' @{
2434   \clef treble
2435   \key c \major
2436   \time 4/4
2437   a4 b c d
2438 @}
2439
2440 \score @{
2441   \new Staff \melody
2442   \layout @{ @}
2443   \midi @{ @}
2444 @}
2445 @end example
2446
2447 Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
2448 brauchen aber den @code{melody}-Abschnitt. Wir wollen 
2449 keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
2450 @code{\score}-Abschnitten würden wir zwei Stimmen
2451 getrennt voneinander erhalten. In diesem Fall wollen wir
2452 sie aber zusammen, als Duett. Schließlich brauchen wir 
2453 innerhalb des @code{\score}-Abschnittes nur einmal die
2454 Befehle @code{\layout} und @code{\midi}.
2455
2456 Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in 
2457 unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
2458 Das würde zu keinem Fehler führen, aber die zweite von ihnen
2459 würde für beide Melodien eingesetzt werden. Wir müssen
2460 ihnen also andere Bezeichnungen zuweisen, um sie voneinander
2461 zu unterscheiden. Nennen wir die Abschnitte also @code{sopranoMusic}
2462 für den Sopran und @code{celloMusic} für die Cellostimme. Wenn
2463 wir schon dabei sind, können wir @code{text}auch nach
2464 @code{sopranoLyrics} umbenennen. Denken Sie daran, beide
2465 Vorkommen der Bezeichnung zu ändern: einmal die Definition
2466 gleich am Anfang (@code{melody = \relative c' @{ }) und
2467 dann auch noch die Benutzung der Variable innerhalb des
2468 @code{\score}-Abschnittes.
2469
2470 Gleichzeitig können wir auch noch das Notensystem für das
2471 Cello ändern -- das Cello hat normalerweise einen Bassschlüssel.
2472 Wir ändern auch die Noten etwas ab.
2473
2474 @example
2475 \version @w{"@version{}"}
2476 sopranoMusic = \relative c' @{
2477   \clef treble
2478   \key c \major
2479   \time 4/4
2480   a4 b c d
2481 @}
2482
2483 sopranoLyrics = \lyricmode @{
2484   Aaa Bee Cee Dee
2485 @}
2486
2487 celloMusic = \relative c @{
2488   \clef bass
2489   \key c \major
2490   \time 4/4
2491   d4 g fis8 e d4
2492 @}
2493
2494 \score @{
2495   <<
2496     \new Voice = "one" @{
2497       \autoBeamOff
2498       \sopranoMusic
2499     @}
2500     \new Lyrics \lyricsto "one" \sopranoLyrics
2501   >>
2502   \layout @{ @}
2503   \midi @{ @}
2504 @}
2505 @end example
2506
2507 Das sieht schon vielversprechend aus, aber die Cello-Stimme 
2508 erscheint noch nicht im Notensatz -- wir haben vergessen,
2509 sie in den @code{\score}-Abschnitt einzufügen. Wenn die
2510 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
2511 wir
2512
2513 @example
2514 \new Staff \celloMusic
2515 @end example
2516
2517 @noindent
2518 unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
2519 die spitzen Klammern (@code{<<} und @code{>>}) um die
2520 Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
2521 ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
2522 zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
2523 sieht jetzt so aus:
2524
2525 @c Indentation in this example is deliberately poor
2526 @example
2527 \score @{
2528   <<
2529   <<
2530     \new Voice = "one" @{
2531       \autoBeamOff
2532       \sopranoMusic
2533     @}
2534     \new Lyrics \lyricsto "one" \sopranoLyrics
2535   >>
2536   \new Staff \celloMusic
2537   >>
2538   \layout @{ @}
2539   \midi @{ @}
2540 @}
2541 @end example
2542
2543 @noindent
2544 Das sieht etwas unschön aus, vor allem die Einrückung stimmt
2545 nicht mehr. Das können wir aber schnell in Ordnung bringen.
2546 Hier also die gesamte Vorlage für Sopran und Cello:
2547
2548 @lilypond[quote,verbatim,ragged-right,addversion]
2549 sopranoMusic = \relative c' {
2550   \clef treble
2551   \key c \major
2552   \time 4/4
2553   a4 b c d
2554 }
2555
2556 sopranoLyrics = \lyricmode {
2557   Aaa Bee Cee Dee
2558 }
2559
2560 celloMusic = \relative c {
2561   \clef bass
2562   \key c \major
2563   \time 4/4
2564   d4 g fis8 e d4
2565 }
2566
2567 \score {
2568   <<
2569     <<
2570       \new Voice = "one" {
2571         \autoBeamOff
2572         \sopranoMusic
2573       }
2574       \new Lyrics \lyricsto "one" \sopranoLyrics
2575     >>
2576     \new Staff \celloMusic
2577   >>
2578   \layout { }
2579   \midi { }
2580 }
2581 @end lilypond
2582
2583
2584 @seealso
2585 Die Vorlagen, mit denen wir begonnen haben, können im
2586 Anhang @qq{Vorlagen} gefunden werden, siehe
2587 @ref{Single staff}.
2588
2589
2590 @node Four-part SATB vocal score
2591 @subsection Four-part SATB vocal score
2592
2593 @cindex Vorlage, SATB
2594 @cindex Vorlage, Chorpartitur
2595 @cindex SATB-Vorlage
2596 @cindex Chorpartitur, Vorlage
2597
2598 Die meisten Partituren für vierstimmigen gemischten Chor
2599 mit Orchesterbegleitung (wie etwa Mendelssohns @notation{Elias}
2600 oder Händels @notation{Messias})  sind so aufgebaut, dass
2601 für jede der vier Stimmen ein eigenes System besteht und
2602 die Orchesterbegleitung dann als Klavierauszug darunter
2603 notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
2604
2605 @c The following should appear as music without code
2606 @lilypond[quote,ragged-right]
2607 global = { \key d \major \time 4/4 }
2608 sopranoMusic = \relative c'' {
2609   \clef "treble"
2610   r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2611 }
2612 sopranoWords = \lyricmode {
2613   Wor -- thy is the lamb that was slain
2614 }
2615 altoMusic = \relative a' {
2616   \clef "treble"
2617   r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
2618 }
2619 altoWords = \sopranoWords
2620 tenorMusic = \relative c' {
2621   \clef "G_8"
2622   r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2623 }
2624 tenorWords = \sopranoWords
2625 bassMusic = \relative c' {
2626   \clef "bass"
2627   r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2628 }
2629 bassWords = \sopranoWords
2630 upper = \relative a' {
2631   \clef "treble"
2632   \global
2633   r4 <a d fis>2 <a e' a>4 |
2634   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2635   <g cis g'>4 <a d fis> <a cis e>2 |
2636 }
2637 lower = \relative c, {
2638   \clef "bass"
2639   \global
2640   <d d'>4 <d d'>2 <cis cis'>4 |
2641   <b b'>4. <b' b'>8 <fis fis'>2 |
2642   <e e'>4 <d d'> <a' a'>2 |
2643 }
2644
2645 \score {
2646   <<  % combine ChoirStaff and PianoStaff in parallel
2647     \new ChoirStaff <<
2648       \new Staff = "sopranos" <<
2649         \set Staff.instrumentName = "Soprano"
2650         \new Voice = "sopranos" { \global \sopranoMusic }
2651       >>
2652       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
2653       \new Staff = "altos" <<
2654         \set Staff.instrumentName = "Alto"
2655         \new Voice = "altos" { \global \altoMusic }
2656       >>
2657       \new Lyrics \lyricsto "altos" { \altoWords }
2658       \new Staff = "tenors" <<
2659         \set Staff.instrumentName = "Tenor"
2660         \new Voice = "tenors" { \global \tenorMusic }
2661       >>
2662       \new Lyrics \lyricsto "tenors" { \tenorWords }
2663       \new Staff = "basses" <<
2664         \set Staff.instrumentName = "Bass"
2665         \new Voice = "basses" { \global \bassMusic }
2666       >>
2667       \new Lyrics \lyricsto "basses" { \bassWords }
2668     >>  % end ChoirStaff
2669
2670     \new PianoStaff <<
2671       \set PianoStaff.instrumentName = "Piano"
2672       \new Staff = "upper" \upper
2673       \new Staff = "lower" \lower
2674     >>
2675   >>
2676 }
2677 @end lilypond
2678
2679 Keine der Vorlage bietet diesen Aufbau direkt an. Die Vorlage, die
2680 am nächsten daran liegt, ist @qq{SATB-Partitur und automatischer 
2681 Klavierauszug}, siehe @ref{Vocal ensembles}. Wir müssen diese
2682 Vorlage aber so anpassen, dass die Noten für das Klavier nicht
2683 automatisch aus dem Chorsatz generiert werden. Die Variablen
2684 für die Noten und den Text des Chores sind in Ordnung, wir
2685 müssen nun noch Variablen für die Klaviernoten hinzufügen.
2686
2687 Die Reihenfolge, in welcher die Variablen in das Chorsystem
2688 (@code{ChoirStaff}) eingefügt werden, entspricht nicht der
2689 in dem Beispiel oben. Wir wollen sie so sortieren, dass die
2690 Texte jeder Stimme direkt unter den Noten notiert werden.
2691 Alle Stimmen sollten als @code{\voiceOne} notiert werden,
2692 welches die Standardeinstellung ist; wir können also die 
2693 @code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
2694 den Schlüssel für den Tenor ändern. Die Methode, mit der
2695 der Text den Stimmen zugewiesen wird, ist uns noch nicht 
2696 bekannt, darum wollen wir sie umändern auf die Weise, die
2697 wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
2698 zu den Systemen hinzu.
2699
2700 Damit erhalten wir folgenden @code{ChoirStaff}:
2701
2702 @example
2703     \new ChoirStaff <<
2704       \new Staff = "sopranos" <<
2705         \set Staff.instrumentName = "Soprano"
2706         \new Voice = "sopranos" @{ \global \sopranoMusic @}
2707       >>
2708       \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
2709       \new Staff = "altos" <<
2710         \set Staff.instrumentName = "Alto"
2711         \new Voice = "altos" @{ \global \altoMusic @}
2712       >>
2713       \new Lyrics \lyricsto "altos" @{ \altoWords @}
2714       \new Staff = "tenors" <<
2715         \set Staff.instrumentName = "Tenor"
2716         \new Voice = "tenors" @{ \global \tenorMusic @}
2717       >>
2718       \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
2719       \new Staff = "basses" <<
2720         \set Staff.instrumentName = "Bass"
2721         \new Voice = "basses" @{ \global \bassMusic @}
2722       >>
2723       \new Lyrics \lyricsto "basses" @{ \bassWords @}
2724     >>  % end ChoirStaff
2725 @end example
2726
2727 Als nächstes müssen wir das Klaviersystem bearbeiten.
2728 Das ist einfach: wir nehmen einfach den Klavierteil
2729 aus der @qq{Piano solo}-Vorlage:
2730
2731 @example
2732 \new PianoStaff <<
2733   \set PianoStaff.instrumentName = "Piano  "
2734   \new Staff = "upper" \upper
2735   \new Staff = "lower" \lower
2736 >>
2737 @end example
2738
2739 @noindent
2740 und fügen die Variablen @code{upper}
2741 und @code{lower} hinzu.
2742
2743 Das Chorsystem und das Pianosystem müssen mit
2744 spitzen Klammern kombiniert werden, damit beide
2745 übereinandern erscheinen:
2746
2747 @example
2748 <<  % combine ChoirStaff and PianoStaff one above the other
2749   \new ChoirStaff <<
2750     \new Staff = "sopranos" <<
2751       \new Voice = "sopranos" @{ \global \sopranoMusic @}
2752     >>
2753     \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
2754     \new Staff = "altos" <<
2755       \new Voice = "altos" @{ \global \altoMusic @}
2756     >>
2757     \new Lyrics \lyricsto "altos" @{ \altoWords @}
2758     \new Staff = "tenors" <<
2759       \clef "G_8"  % tenor clef
2760       \new Voice = "tenors" @{ \global \tenorMusic @}
2761     >>
2762     \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
2763     \new Staff = "basses" <<
2764       \clef "bass"
2765       \new Voice = "basses" @{ \global \bassMusic @}
2766     >>
2767     \new Lyrics \lyricsto "basses" @{ \bassWords @}
2768   >>  % end ChoirStaff
2769
2770   \new PianoStaff <<
2771     \set PianoStaff.instrumentName = "Piano"
2772     \new Staff = "upper" \upper
2773     \new Staff = "lower" \lower
2774   >>
2775 >>
2776 @end example
2777
2778 Alles miteinander kombiniert und mit den Noten für drei
2779 Takte sieht unser Beispiel nun so aus:
2780
2781 @lilypond[quote,verbatim,ragged-right,addversion]
2782 global = { \key d \major \time 4/4 }
2783 sopranoMusic = \relative c'' {
2784   \clef "treble"
2785   r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2786 }
2787 sopranoWords = \lyricmode {
2788   Wor -- thy is the lamb that was slain
2789 }
2790 altoMusic = \relative a' {
2791   \clef "treble"
2792   r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2793 }
2794 altoWords = \sopranoWords
2795 tenorMusic = \relative c' {
2796   \clef "G_8"
2797   r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2798 }
2799 tenorWords = \sopranoWords
2800 bassMusic = \relative c' {
2801   \clef "bass"
2802   r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2803 }
2804 bassWords = \sopranoWords
2805 upper = \relative a' {
2806   \clef "treble"
2807   \global
2808   r4 <a d fis>2 <a e' a>4 |
2809   <d fis d'>4. <d fis d'>8 <a d a'>2 |
2810   <g cis g'>4 <a d fis> <a cis e>2 |
2811 }
2812 lower = \relative c, {
2813   \clef "bass"
2814   \global
2815   <d d'>4 <d d'>2 <cis cis'>4 |
2816   <b b'>4. <b' b'>8 <fis fis'>2 |
2817   <e e'>4 <d d'> <a' a'>2 |
2818 }
2819
2820 \score {
2821   <<  % combine ChoirStaff and PianoStaff in parallel
2822     \new ChoirStaff <<
2823       \new Staff = "sopranos" <<
2824         \set Staff.instrumentName = "Soprano"
2825         \new Voice = "sopranos" { \global \sopranoMusic }
2826       >>
2827       \new Lyrics \lyricsto "sopranos" { \sopranoWords }
2828       \new Staff = "altos" <<
2829         \set Staff.instrumentName = "Alto"
2830         \new Voice = "altos" { \global \altoMusic }
2831       >>
2832       \new Lyrics \lyricsto "altos" { \altoWords }
2833       \new Staff = "tenors" <<
2834         \set Staff.instrumentName = "Tenor"
2835         \new Voice = "tenors" { \global \tenorMusic }
2836       >>
2837       \new Lyrics \lyricsto "tenors" { \tenorWords }
2838       \new Staff = "basses" <<
2839         \set Staff.instrumentName = "Bass"
2840         \new Voice = "basses" { \global \bassMusic }
2841       >>
2842       \new Lyrics \lyricsto "basses" { \bassWords }
2843     >>  % end ChoirStaff
2844
2845     \new PianoStaff <<
2846       \set PianoStaff.instrumentName = "Piano  "
2847       \new Staff = "upper" \upper
2848       \new Staff = "lower" \lower
2849     >>
2850   >>
2851 }
2852 @end lilypond
2853
2854
2855 @node Building a score from scratch
2856 @subsection Building a score from scratch
2857
2858 @cindex Template, eigene schreiben
2859 @cindex Vorlagen, eigene schreiben
2860
2861 Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
2862 gewonnen haben, werden Sie vielleicht feststellen, dass es
2863 manchmal einfacher ist, von Grund auf anzufangen, anstatt
2864 die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
2865 auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
2866 die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
2867 wie man die Partitur für ein Orgelpreludium von Grund auf
2868 konstruiert.
2869
2870 Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt.
2871 Hier notieren wir den Titel, den Namen des Komponisten usw.
2872 Danach schreiben wir die einzelnen Variablen auf und
2873 schließlich am Ende die eigentliche Partitur, den
2874 @code{\score}-Abschnitt. Beginnen wir mit einer groben
2875 Struktur, in die wir dann die Einzelheiten nach und nach
2876 eintragen.
2877
2878 Als Beispiel benutzen wir zwei Takte aus dem Orgelpreludium
2879 @notation{Jesu, meine Freude} von J. S. Bach, notiert
2880 für zwei Manuale und Pedal. Sie können die Noten am Ende
2881 dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
2882 das untere und das Pedalsystem jeweils nur eine. Wir 
2883 brauchen also vier Variablen für die Noten und eine, um
2884 Taktart und Tonart zu definieren.
2885
2886 @example
2887 \version @w{"@version{}"}
2888 \header @{
2889   title = "Jesu, meine Freude"
2890   composer = "J. S. Bach"
2891 @}
2892 TimeKey = @{ \time 4/4 \key c \minor @}
2893 ManualOneVoiceOneMusic = @{s1@}
2894 ManualOneVoiceTwoMusic = @{s1@}
2895 ManualTwoMusic = @{s1@}
2896 PedalOrganMusic = @{s1@}
2897
2898 \score @{
2899 @}
2900 @end example
2901
2902 Im Moment haben wir eine unsichtbare
2903 Note in jede Stimme eingesetzt (@code{s1}).
2904 Die Noten werden später hinzugefügt.
2905
2906 Als nächstes schauen wir uns an, was in die
2907 Partitur (die @code{\score}-Umgebung)
2908 kommt. Dazu wird einfach die Notensystemstruktur
2909 konstruiert, die wir benötigen. Orgelmusik
2910 wird meistens auf drei Systemen notiert, eins
2911 für jedes Manual und ein drittes für die Pedalnoten.
2912 Die Systeme für die Manuale werden mit einer
2913 geschweiften Klammer verbunden, wir 
2914 benutzen hier also ein @code{PianoStaff}.
2915 Das erste Manualsystem braucht zwei Stimmen,
2916 das zweite nur eine.
2917
2918 @example
2919   \new PianoStaff <<
2920     \new Staff = "ManualOne" <<
2921       \new Voice @{ \ManualOneVoiceOneMusic @}
2922       \new Voice @{ \ManualOneVoiceTwoMusic @}
2923     >>  % end ManualOne Staff context
2924     \new Staff = "ManualTwo" <<
2925       \new Voice @{ \ManualTwoMusic @}
2926     >>  % end ManualTwo Staff context
2927   >>  % end PianoStaff context
2928 @end example
2929
2930 Als nächstes soll das System für das Pedal hinzugefügt
2931 werden. Es soll unter das Klaviersystem gesetzt
2932 werden, aber muss gleichzeitig mit ihm erscheinen.
2933 Wir brauchen also spitze Klammern um beide
2934 Definitionen. Sie wegzulassen würde eine Fehlermeldung
2935 in der Log-Datei hervorrufen. Das ist ein sehr
2936 häufiger Fehler, der wohl auch Ihnen früher 
2937 oder später unterläuft. Sie können das fertige
2938 Beispiel am Ende des Abschnittes kopieren und die
2939 Klammern entfernen, um zu sehen, wie die
2940 Fehlermeldung aussehen kann, die Sie in solch
2941 einem Fall erhalten würden.
2942
2943 @example
2944 <<  % PianoStaff and Pedal Staff must be simultaneous
2945   \new PianoStaff <<
2946     \new Staff = "ManualOne" <<
2947       \new Voice @{ \ManualOneVoiceOneMusic @}
2948       \new Voice @{ \ManualOneVoiceTwoMusic @}
2949     >>  % end ManualOne Staff context
2950     \new Staff = "ManualTwo" <<
2951       \new Voice @{ \ManualTwoMusic @}
2952     >>  % end ManualTwo Staff context
2953   >>  % end PianoStaff context
2954   \new Staff = "PedalOrgan" <<
2955     \new Voice @{ \PedalOrganMusic @}
2956   >>
2957 >>
2958 @end example
2959
2960 Es ist nicht notwendig, die simultane Konstruktion
2961 @code{<< .. >>} innerhalb des zweiten Manualsystems
2962 und des Pedalsystems zu benutzen, denn sie enthalten
2963 nur eine Stimme. Andererseits schadet es nichts, sie
2964 zu schreiben, und es ist eine gute Angewohnheit, immer
2965 die spitzen Klammern nach einem @code{\new Staff} zu
2966 schreiben, wenn mehr als eine Stimme vorkommen könnten.
2967 Für Stimmen (@code{Voice}) dagegengilt genau das
2968 Gegenteil: eine neue Stimme sollte immer von 
2969 geschweiften Klammern (@code{@{ .. @}}) gefolgt
2970 werden, falls Sie ihre Noten in mehrere Variable aufteilen,
2971 die nacheinander gesetzt werden sollen.
2972
2973 Fügen wir also diese Struktur zu der @code{\score}-Umgebung
2974 hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
2975 wollen wir die richtigen Schlüssel setzen und die Richtung der
2976 Hälse und Bögen in den Stimmen des oberen Systems
2977 kontrollieren, indem die obere Stimme ein
2978 @code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
2979 erhält. Die Taktart und Tonart werden mit unserer fertigen
2980 Variable @code{\TimeKey} eingefügt.
2981
2982 @example
2983 \score @{
2984   <<  % PianoStaff and Pedal Staff must be simultaneous
2985     \new PianoStaff <<
2986       \new Staff = "ManualOne" <<
2987         \TimeKey  % set time signature and key
2988         \clef "treble"
2989         \new Voice @{ \voiceOne \ManualOneVoiceOneMusic @}
2990         \new Voice @{ \voiceTwo \ManualOneVoiceTwoMusic @}
2991       >>  % end ManualOne Staff context
2992       \new Staff = "ManualTwo" <<
2993         \TimeKey
2994         \clef "bass"
2995         \new Voice @{ \ManualTwoMusic @}
2996       >>  % end ManualTwo Staff context
2997     >>  % end PianoStaff context
2998     \new Staff = "PedalOrgan" <<
2999       \TimeKey
3000       \clef "bass"
3001       \new Voice @{ \PedalOrganMusic @}
3002     >>  % end PedalOrgan Staff
3003   >>
3004 @}  % end Score context
3005 @end example
3006
3007 Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
3008 Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
3009 in einem System sich ändern kann. Jetzt müssen wir nur noch
3010 die Noten einfügen und alle Teile zusammenfügen, indem wir
3011 die Variablen mit einem Backslash in die Partitur einbauen.
3012
3013 @lilypond[quote,verbatim,ragged-right,addversion]
3014 \header {
3015   title = "Jesu, meine Freude"
3016   composer = "J S Bach"
3017 }
3018 TimeKey = { \time 4/4 \key c \minor }
3019 ManualOneVoiceOneMusic = \relative g' {
3020   g4 g f ees | d2 c2 |
3021 }
3022 ManualOneVoiceTwoMusic = \relative c' {
3023   ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
3024   c c4 b8 c8. g16 c b c d |
3025 }
3026 ManualTwoMusic = \relative c' {
3027   c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
3028   f ees f d g aes g f ees d e8~ ees16 f ees d |
3029 }
3030 PedalOrganMusic = \relative c {
3031   r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
3032   r16 g ees f g f g8 c,2 |
3033   }
3034
3035 \score {
3036   <<  % PianoStaff and Pedal Staff must be simultaneous
3037     \new PianoStaff <<
3038       \new Staff = "ManualOne" <<
3039         \TimeKey  % set time signature and key
3040         \clef "treble"
3041         \new Voice { \voiceOne \ManualOneVoiceOneMusic }
3042         \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
3043       >>  % end ManualOne Staff context
3044       \new Staff = "ManualTwo" <<
3045         \TimeKey
3046         \clef "bass"
3047         \new Voice { \ManualTwoMusic }
3048       >>  % end ManualTwo Staff context
3049     >>  % end PianoStaff context
3050     \new Staff = "PedalOrgan" <<
3051       \TimeKey
3052       \clef "bass"
3053       \new Voice { \PedalOrganMusic }
3054     >>  % end PedalOrgan Staff context
3055   >>
3056 }  % end Score context
3057 @end lilypond
3058
3059
3060
3061
3062
3063