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