1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: 8819d7cb0ba2ab359e4aa2276695afb9c1957c42
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. For details, see the Contributors'
8 Guide, node Updating translation committishes.
12 @c Translators: Till Paala, Reinhold Kainhofer, Michael Gerdau
15 @chapter Grundbegriffe
16 @translationof Fundamental concepts
18 Nachdem im Tutorium gezeigt wurde, wie aus einfachen Text-Dateien
19 wunderschön formatierte Musiknoten erzeugt werden können, stellt
20 dieses Kapitel die Konzepte und Techniken vor, wie auch komplexere
21 Partituren erstellt werden können.
24 * Wie eine LilyPond-Eingabe-Datei funktioniert::
25 * Voice enthält Noten::
26 * Kontexte und Engraver::
27 * Erweiterung der Vorlagen::
30 @node Wie eine LilyPond-Eingabe-Datei funktioniert
31 @section Wie eine LilyPond-Eingabe-Datei funktioniert
32 @translationof How LilyPond input files work
34 Das LilyPond Eingabeformat hat eine ziemlich freie Form, so dass
35 für erfahrene Benutzer viel Freiheit besteht, die Struktur ihrer
36 Quelldateien anzulegen. Für Neulinge kann diese Flexibilität aber
37 erst einmal verwirrend sein. In diesem Kapitel soll darum ein Teil
38 dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung
39 auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats
40 siehe @ruser{Die Dateistruktur}.
43 * Einführung in die Dateistruktur von LilyPond::
44 * Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck::
45 * Musikalische Ausdrücke ineinander verschachteln::
46 * Über die Nicht-Schachtelung von Klammern und Bindebögen::
49 @node Einführung in die Dateistruktur von LilyPond
50 @subsection Einführung in die Dateistruktur von LilyPond
51 @translationof Introduction to the LilyPond file structure
55 @cindex Struktur, Datei
57 Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet:
60 \version @w{"@version{}"}
65 @var{ @dots{} zusammengesetzter Musik-Ausdruck @dots{} } % Die gesamten Noten kommen hier hin!
72 Zu diesem Muster gibt es viele Variationen, aber obiges Beispiel stellt
73 eine hilfreiche Ausgangsbasis dar.
82 Bis jetzt hat keines der verwendeten Beispiele den @code{\score@{@}}
83 Befehl gebraucht. Das liegt daran, dass LilyPond automatisch fehlende
84 Befehle hinzufügt, sollten sie fehlen. Konkret betrachtet LilyPond eine
94 als eine abgekürzte Form von
112 Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
113 enthält, wird LilyPond die Datei so interpretieren, als ob dieser
114 Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige
115 Struktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt,
116 ohne dass der Benutzer davon etwas bemerkt.
118 @cindex Implizite Kontexte
119 @cindex Kontexte, implizit
121 @strong{Ein Wort der Warnung ist jedoch angebracht!} Viele der Beispiele
122 in der Dokumentation von LilyPond lassen die @code{\new Staff} und @code{\new Voice}
123 Befehle zur Erzeugung einer Notenzeile und einer Stimme (beides ist in
124 LilyPond ein sogenannter Kontext) bewusst aus,
125 damit sie implizit von LilyPond im Speicher erzeugt werden.
126 Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für
127 komplexere Partituren können dadurch aber unerwartete Ergebnisse
128 entstehen, teilweise sogar unerwartete leere Notenzeilen. Um
129 die entsprechenden Kontexte in diesem Fall explizit zu erzeugen,
130 siehe @ref{Kontexte und Engraver}.
132 @warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden,
133 empfiehlt es sich, die Notenzeilen und die Stimmen immer explizit
134 mit @code{\new Staff} und @code{\new Voice} zu erzeugen.}
136 Im Moment wollen wir aber zu unserem ersten Beispiel zurückkehren und
137 nur den @code{\score}-Befehl näher betrachten.
139 Eine Partitur (@code{\score}) muss immer genau einen musikalischen Ausdruck
140 enthalten. Es sei daran erinnert, dass ein musikalischer alles mögliche sein
141 kann. Angefangen bei einer einzelnen Note bis hin zu riesigen zusammengesetzten
147 @var{ @dots{} füge hier die gesamte Partitur einer Wagner Oper ein @dots{} }
153 Da sich alles innerhalb der geschweiften Klammern @code{@{ @dots{} @}}
154 befindet, wird es wie ein einziger musikalischer Ausdruck behandelt.
156 Wie wir oben schon gesehen haben kann der @code{\score} Block auch andere
157 Dinge enthalten, wie etwa
180 Wie man sieht, sind die drei Befehle @code{\header}, @code{\layout} und
181 @code{\midi} von spezieller Natur: Im Gegensatz zu vielen anderen Befehlen,
182 die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck
183 und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
184 sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb platziert
185 werden. Tatsächlich werden einige dieser Befehle meist außerhalb des
186 @code{\score}-Blocks gesetzt, z.B. findet sich der @code{\header}
187 sehr oft oberhalb der @code{\score}-Umgebung. Das
188 funktioniert genauso gut.
190 Zwei bisher noch nicht aufgetauchte Befehle sind
191 @code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer
192 Datei vorkommen, führt dies dazu, dass LilyPond eine druckfähige PDF-Datei
193 bzw. eine MIDI-Ausgabe erzeugt. Genauer beschrieben werden sie im
194 Benutzerhandbuch -- @ruser{Partiturlayout} und
195 @ruser{MIDI-Dateien erstellen}.
197 @cindex Partituren, mehrfache
198 @cindex book-Abschnitte, implizit
199 @cindex implizite book-Umgebung
203 Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten.
204 Jeder davon wird als eigenständige Partitur interpretiert, die
205 allerdings alle in dieselbe Ausgabedatei platziert werden.
206 Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird
207 implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer
208 einzigen @file{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
209 dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
210 gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
215 Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
216 PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
217 setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen
218 impliziten @code{\book}-Blocks.
220 Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück
221 innerhalb des @code{\book}-Blocks.
223 @cindex Layout-Umgebung, Platzierung
224 @cindex Platzierung von layout-Umgebung
226 Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
227 @code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein
228 @code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf
229 diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block
230 außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit
231 erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf
232 alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks.
234 Nähere Details finden sich im Abschnitt @ruser{Mehrere Partituren in einem Buch}.
239 Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen, wie
240 auch in @ref{Stücke durch Variablen organisieren} gezeigt.
241 Alle Vorlagen verwenden diese Möglichkeit:
244 melodie = \relative @{
253 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
254 von @code{melodie} (alles nach dem Gleichheitszeichen) und
255 fügt ihn immer dann ein, wenn ein @code{\melodie}
256 vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
257 gut @code{melodie}, @code{GLOBAL}, @code{rechteHandKlavier},
258 oder @code{foofoobarbaz} heißen.
259 Als Variablenname kann fast jeder beliebige Name benutzt werden,
260 allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche,
261 Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl
262 lauten. Für mehr Information siehe
263 @ref{Tipparbeit durch Variablen und Funktionen einsparen}. Die genauen
264 Einschränkungen sind beschrieben in @ruser{Die Dateistruktur}.
268 Eine vollständige Definition des Eingabeformats findet sich in
269 @ruser{Die Dateistruktur}.
272 @node Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
273 @subsection Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
274 @translationof Score is a (single) compound musical expression
281 @cindex zusammengesetzter Musikausdruck
282 @cindex Musikausdruck, zusammengesetzter
285 Im vorigen Kapitel, @ref{Einführung in die Dateistruktur von LilyPond},
286 wurde die allgemeine Struktur einer LilyPond-Quelldatei
287 beschrieben. Aber anscheinend haben wir die wichtigste
288 Frage ausgelassen, nämlich wie man herausfindet, was nach
289 dem @code{\score} geschrieben werden soll.
291 In Wirklichkeit ist das aber gar kein Geheimnis. Diese
292 Zeile ist die Antwort:
295 @emph{Ein @code{\score} Block enthält immer genau einen musikalischen Ausdruck.}
299 Vielleicht wollen Sie noch einmal
300 @ref{Musikalische Ausdrücke erklärt} überfliegen. In diesem
301 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke
302 aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
303 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung
304 und betrachten, wie sich ein großer musikalischer Ausdruck
305 zerlegen lässt. Zur Einfachheit soll nur ein Sänger und Klavier
306 in unserem Beispiel eingesetzt werden. Wir brauchen
307 keine Systemgruppe (StaffGroup), die einfach nur bewirkt,
308 dass die Systeme mit einer Klammer zusammengefasst werden; sie
309 wird also entfernt. Wir @emph{brauchen} aber einen Sänger und ein Klavier.
314 \new Staff = "Sänger" <<
316 \new PianoStaff = "Klavier" <<
323 Hier wurden die Systeme (Staff) benannt: @qq{Sänger} und
324 @qq{Klavier}. Das ist zwar nicht direkt notwendig,
325 aber es ist gut, sich diese Schreibweise anzugewöhnen, damit man
326 immer sofort erkennt, um welches System es sich handelt.
328 Zur Erinnerung: mit @code{<< @dots{} >>} (an Stelle von @code{@{ @dots{} @}})
329 werden Noten gleichzeitig gesetzt.
330 Dadurch werden Vokalstimme und Klaviersystem übereinander
331 ausgegeben. Die @code{<< @dots{} >>}-Konstruktion ist für das
332 Sänger-System nicht notwendig, wenn hier nur die Noten einer
333 einzigen Stimme eingefügt werden sollen, aber @code{<< @dots{} >>}
334 anstelle von geschwungenen Klammern sind notwendig,
335 sobald mehr als eine Stimme oder etwa eine Notenstimme und
336 Gesangstext eingefügt werden sollen. In unserem Fall soll eine
337 Stimme mit Gesangstext notiert werden, sodass die spitzen Klammern
338 benötigt werden. Die Noten sollen erst später hinzugefügt werden,
339 hier also erst mal nur ein paar Platzhalternoten und Text. Wenn
340 Sie sich nicht erinnern, wie man Gesangstext notiert, lesen
341 Sie noch einmal @code{\addlyrics} in @ref{Setting simple songs}.
344 @lilypond[verbatim,quote,ragged-right]
347 \new Staff = "Sänger" <<
348 \new Voice = "Singstimme" { c'1 }
351 \new PianoStaff = "Klavier" <<
352 \new Staff = "oben" { c'1 }
353 \new Staff = "unten" { c'1 }
360 Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
361 für einen Sänger, in dem sich wieder eine Stimme (engl. voice)
362 befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
363 gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
364 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new
365 PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
366 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der
367 dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und
369 für die linke) erstellt werden, auch wenn das untere System noch
370 einen Bassschlüssel erhalten muss.
372 Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
373 geschweiften Klammern neben @code{\new Voice = "Singstimme"}
378 r4 d''8\noBeam g, c4 r
383 schreiben. Aber wenn man seine Datei so direkt schreibt, wird
384 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu
385 verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
386 (oder Variablen) zu verwenden. Sie wurden zu Beginn des vorigen
387 Abschnitts erklärt, erinnern Sie sich? Damit wir sicher gehen
388 können, dass der Inhalt der @code{text}-Variable als Gesangstext
389 interpretiert wird, wird ihm @code{\lyricmode} voran gesetzt. Wie
390 @code{\addlyrics} wird hiermit in den Eingabemodus für Gesangstext
391 gewechselt. Ohne diesen Befehl würde LilyPond versuchen, den Inhalt
392 der Variable als Noten zu interpretieren und dabei eine Menge
393 Fehler produzieren. (Einige andere Eingabemodi sind außerdem noch
394 verfügbar, siehe @ruser{Input modes}.)
396 Also haben wir, wenn wir ein paar Noten und einen Bassschlüssel
397 für die linke Hand hinzufügen, folgendes Beispiel:
400 @lilypond[verbatim,quote,ragged-right]
401 melodie = \relative { r4 d''8\noBeam g, c4 r }
402 text = \lyricmode { And God said, }
403 oben = \relative { <g' d g,>2~ <g d g,> }
404 unten = \relative { b,2 e }
408 \new Staff = "Sänger" <<
409 \new Voice = "Singstimme" { \melodie }
412 \new PianoStaff = "Klavier" <<
413 \new Staff = "oben" { \oben }
414 \new Staff = "unten" {
424 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung
425 sollte man langsam und sorgfältig vorgehen. Am besten fängt
426 man mit dem größten Gebilde an und definiert dann die darin
427 enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
428 genau mit den Einzügen zu sein, so dass jede Zeile, die
429 der gleichen Ebene angehört, wirklich horizontal an der
430 gleichen Stelle beginnt.
434 Benutzerhandbuch: @ruser{Struktur einer Partitur}.
437 @node Musikalische Ausdrücke ineinander verschachteln
438 @subsection Musikalische Ausdrücke ineinander verschachteln
439 @translationof Nesting music expressions
441 @cindex Notenzeilen, temporäre
443 @cindex temporäre Notenzeilen
445 Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleich
446 zu Beginn erzeugt werden -- sie können auch zu einem späteren
447 Zeitpunkt eingeführt werden. Das ist vor allem nützlich, um
448 @rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kurzes Beispiel,
449 wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt
452 @lilypond[verbatim,quote,ragged-right]
469 Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie
470 auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
471 der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
472 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
474 @cindex Notenzeile, Positionierung
475 @cindex Positionierung einer Notenzeile
477 Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
481 @lilypond[verbatim,quote,ragged-right]
482 \new Staff = "Hauptzeile" {
489 alignAboveContext = #"Hauptzeile"
497 Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
498 genauer erklärt wird. Damit kann das Standardverhalten einer
499 einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
500 dass die neue Notenzeile oberhalb der bereits existierenden Zeile
501 mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt
502 standardmäßig unterhalb.
506 Ossia werden oft ohne Notenschlüssel und Taktangabe gedruckt, meist
507 auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich
508 auch in LilyPond möglich, benötigt aber Befehle, die bisher noch
509 nicht vorgestellt wurden. Siehe @ref{Größe von Objekten}
510 und @ruser{Ossia-Systeme}.
513 @node Über die Nicht-Schachtelung von Klammern und Bindebögen
514 @subsection Über die Nicht-Schachtelung von Klammern und Bindebögen
515 @translationof On the un-nestedness of brackets and ties
517 @cindex Klammern, geschachtelt
518 @cindex Schachtelung von Klammern
519 @cindex Klammer-Typen
521 Sie haben bisher zahlreiche verschiedene Arten von Klammern
522 und Klammer-artigen Konstruktionen beim Schreiben von Musik mit
523 LilyPond kennengelernt. Diese folgen verschiedenen Regeln, die zu
524 Beginn vielleicht verwirrend wirken. Bevor die genauen Regeln
525 vorgestellt werden, wollen wir die diversen Klammerarten und Arten
526 von Klammer-artigen Konstrukten kurz rekapitulieren:
528 @c attempt to force this onto a new page
530 @multitable @columnfractions .3 .7
533 @item @code{@{ @dots{} @}}
534 @tab Umschließt ein sequenzielles Musiksegment
535 @item @code{< @dots{} >}
536 @tab Umschließt die Noten eines Akkords
537 @item @code{<< @dots{} >>}
538 @tab Umschließt parallele Musikausdrücke
539 @item @code{( @dots{} )}
540 @tab Markiert den Beginn und das Ende eines Haltebogens
541 @item @code{\( @dots{} \)}
542 @tab Markiert den Beginn und das Ende eines Phasierungsbogens
543 @item @code{[ @dots{} ]}
544 @tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
547 Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
548 erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
549 Haltebögen (durch eine Tilde @code{~} markiert),
550 N-tolen (als @code{\tuplet x/y @{ @dots{} @}} geschrieben) und
551 Vorschlagnoten (als @code{\grace@{ @dots{} @}} notiert).
553 Außerhalb von LilyPond fordert die übliche Benutzung von
554 Klammern, dass die entsprechenden Arten korrekt verschachtelt
555 werden, wie z.B. in @code{<< [ @{ ( @dots{} ) @} ] >>}. Die
556 schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
557 wie die öffnenden Klammern vor. Dies ist auch in LilyPond
558 ein @strong{Muss} für die drei Klammerarten, die in obiger
559 Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie
560 müssen korrekt geschachtelt werden.
561 Die restlichen Klammer-artigen Konstruktionen (durch @q{Markiert}
562 in der Tabelle oben beschrieben), die Haltebögen und die Triolen
564 den anderen Klammern oder Klammer-artigen Konstrukten @strong{nicht}
565 unbedingt korrekt geschachtelt werden. Tatsächlich sind sie auch
566 keine Klammern in dem Sinn, dass sie etwas umschließen, sondern
567 viel mehr Indikatoren, an welcher Stelle ein bestimmtes
568 musikalisches Objekt beginnt oder endet.
570 So kann also z.B. einen Phrasierungsbogen vor einem manuellen
571 Balken beginn, jedoch schon vor dem Ende des Balkens enden.
572 Dies mag zwar musikalisch wenig Sinn ergeben, ist aber in LilyPond
575 @lilypond[quote,verbatim,ragged-right]
576 \relative { g'8\( a b[ c b\) a] g4 }
579 Im Allgemeinen können die verschiedenen Klammerarten,
580 Klammer-artigen Konstruktionen, Haltebögen,
581 Triolen und Vorschlagnoten beliebig kombiniert werden.
582 Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht
583 (Zeile 1), eine Bindebogen, der ebenfalls in eine Triole
584 reicht (Zeile 2), einen Balken und einen Bindebogen in eine Triole,
585 ein Haltebogen, der über zwei Triolen läuft, sowie einen
586 Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4).
588 @lilypond[quote,verbatim,ragged-right]
590 r16[ g' \tuplet 3/2 { r16 e'8] }
591 g,16( a \tuplet 3/2 { b16 d) e }
592 g,8[( a \tuplet 3/2 { b8 d) e~] } |
593 \tuplet 5/4 { e32\( a, b d e } a4.\)
598 @node Voice enthält Noten
599 @section Voice enthält Noten
600 @translationof Voices contain music
602 Sänger brauchen Stimmen zum Singen, und LilyPond braucht sie auch:
603 in der Tat sind alle Noten für alle Instrumente in einer Partitur
604 innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegende Prinzip
609 * Stimmen explizit beginnen::
613 @node Ich höre Stimmen
614 @subsection Ich höre Stimmen
615 @translationof I'm hearing Voices
619 @cindex mehrere Stimmen
620 @cindex Stimmen, mehrere
621 @cindex Voice context
622 @cindex context, Voice
623 @cindex Kontext, Stimme
624 @cindex Stimmenkontext
625 @cindex gleichzeitige Noten
626 @cindex Stimmen versus Akkorde
627 @cindex Akkorde versus Stimmen
628 @cindex Noten gleichzeitig
630 Die grundlegenden und innersten Ebenen in einer LilyPond-Partitur
631 werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice}
632 (Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
633 manchmal auch als @qq{layer} (Ebene) bezeichnet.
635 Tatsächlich ist die Voice-Ebene die einzige, die wirklich Noten
636 enthalten kann. Wenn kein Voice-Kontext explizit erstellt wird,
637 wird er automatisch erstellt, wie am Anfang dieses Kapitels
638 gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
639 Note gleichzeitig spielen. Noten für solche Instrumente brauchen nur
640 eine einzige Stimme. Instrumente, die
641 mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen
642 dagegen oft mehrere Stimmen, um die verschiedenen gleichzeitig
643 erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen
646 Eine einzelne Stimme kann natürlich auch vielen Noten in einem Akkord
647 enthalten -- wann also braucht man dann mehrere Stimmen? Schauen wir
648 uns zuerst dieses Beispiel mit vier Akkorden an:
650 @lilypond[quote,verbatim,ragged-right]
653 <d' g>4 <d fis> <d a'> <d g>
657 Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern
658 @code{< @dots{} >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
659 nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
660 eine Achtelnote sein, gefolgt von einer Achtelnote G (als Durchgangsnote
661 hin zum A)? Hier haben wir also zwei Noten, die zur gleichen Zeit
662 beginnen, aber unterschiedliche Dauern haben: die Viertelnote D und die
663 Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie
664 nicht schreiben, weil alle Noten in einem Akkord die gleiche Länge besitzen
665 müssen. Sie können auch nicht als aufeinander folgende Noten geschrieben
666 werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
669 Wie aber wird das in der LilyPond-Syntax ausgedrückt?
674 Die einfachste Art, Fragmente mit mehr als einer Stimme auf einem System
675 zu notieren, ist, die Stimmen nacheinander (jeweils mit den Klammern
676 @code{@{ @dots{} @}}) zu schreiben und dann mit den spitzen Klammern
677 (@code{<< @dots{} >>}) simultan zu kombinieren. Die beiden Fragmente müssen
678 zusätzlich noch mit zwei Backslash-Zeichen (@code{\\}) voneinander
679 getrennt werden, damit sie als zwei unterschiedliche Stimmen erkannt
680 werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
681 werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
682 den Noten um hauptsächlich homophone Musik handelt, in der hier und da
683 polyphone Stellen vorkommen.
685 So sieht es aus, wenn die Akkorde in zwei Stimmen aufgeteilt werden
686 und zur Durchgangsnote noch ein Bogen hinzugefügt wird:
688 @lilypond[quote,verbatim,ragged-right]
691 % Voice = "1" Voice = "2"
692 << { g'4 fis8( g) a4 g } \\ { d4 d d d } >>
696 Beachten Sie, dass die Hälse der zweiten Stimme nun nach unten zeigen.
698 Hier ein anderes Beispiel:
700 @lilypond[quote,verbatim,ragged-right]
703 % Voice = "1" Voice = "2"
704 << { r4 g' g4. a8 } \\ { d,2 d4 g } >> |
705 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
706 << { a2. r4 } \\ { fis2. s4 } >> |
710 Es ist nicht notwendig, für jeden Takt eine eigene
711 @code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
712 Noten pro Takt kann es die Quelldatei besser lesbar machen, aber
713 wenn in einem Takt viele Noten vorkommen, kann man die gesamten Stimmen
714 separat schreiben, wie hier:
716 @lilypond[quote,verbatim,ragged-right]
719 \relative { % Voice = "1"
724 \relative { % Voice = "2"
733 @cindex Voice, Benennung
734 @cindex Voices crossing brackets
735 @cindex Legatobögen crossing brackets
736 @cindex Bindebögen crossing brackets
738 Dieses Beispiel hat nur zwei Stimmen, aber die gleiche Konstruktion kann
739 angewendet werden, wenn man drei oder mehr Stimmen hat, indem man weitere
740 Backslash-Trenner hinzufügt.
742 Die Stimmenkontexte tragen die Namen @code{"1"}, @code{"2"} usw. Der erste
743 Kontext stellt die @qq{äußeren} Stimmen ein, die höchste Stimme im
744 Kontext @code{"1"} und die tiefste Stimme im Kontext @code{"2"}. Die
745 inneren Stimmen kommen in die Kontexte @code{"3"} und @code{"4"}. In
746 jedem dieser Kontexte wird die vertikale Ausrichtung von Bögen, Hälsen,
747 Dynamik usw. entsprechend eingestellt.
749 @lilypond[quote,verbatim]
750 \new Staff \relative {
753 % Voice = "1" Voice = "2" Voice = "3"
754 << { g4 f e } \\ { r8 e4 d c8~ } >> |
755 << { d2 e } \\ { c8 b16 a b8 g~ 2 } \\ { s4 b c2 } >> |
759 Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten
760 außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
761 uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
762 können nur Noten in der selben Stimmen miteinander verbinden und können
763 also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
764 gilt, dass parallele Stimmen aus eigenen simultanen Konstruktionen auf
765 dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
766 Stimmenkontext verknüpfte Eigenschaften erstrecken sich auf alle
767 simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
768 Beachten Sie, dass Änderungen in einer Stimme sich nicht auf die anderen
769 Stimmen erstrecken, aber sie sind weiterhin in der selben Stimme vorhanden,
770 auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
771 über die gleiche Stimme in zwei Konstrukten verteilt werden können, wie
772 hier an der blauen Dreieckstimme gezeigt.
774 @lilypond[quote,verbatim]
775 \new Staff \relative {
790 % Voice 1 wird fortgesetzt
793 % Voice 2 wird fortgesetzt
804 @funindex \voiceOneStyle
805 @funindex \voiceTwoStyle
806 @funindex \voiceThreeStyle
807 @funindex \voiceFourStyle
808 @funindex \voiceNeutralStyle
810 Die Befehle @code{\voiceXXXStyle} sind vor allem dazu da, um in
811 pädagogischen Dokumenten wie diesem hier angewandt zu werden.
812 Sie verändern die Farbe des Notenkopfes, des Halses und des Balkens, und
813 zusätzlich die Form des Notenkopfes, damit die einzelnen Stimmen
814 einfach auseinander gehalten werden können. Die erste Stimme ist als
815 rote Raute definiert, die zweite Stimme als blaue Dreiecke, die dritte
816 Stimme als grüne Kreise mit Kreuz und die vierte Stimme (die hier nicht
817 benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
818 nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
819 werden, wie Befehle wie diese vom Benutzer selber erstellt werden
820 können. Siehe auch @ref{Sichtbarkeit und Farbe von Objekten} und
821 @ref{Variablen für Layout Anpassungen einsetzen}.
823 @cindex Polyphonie und relativer Notationsmodus
824 @cindex relativer Notationsmodus und Polyphonie
826 Polyphonie ändert nicht die Verhältnisse der Noten innerhalb eines
827 @code{\relative}-Blocks. Jede Note wird weiterhin relativ zu
828 der vorherigen Note errechnet, oder relativ zur ersten Note des vorigen
829 Akkords. So ist etwa hier
832 \relative @{ noteA << < noteB noteC > \\ noteD >> noteE @}
836 @code{NoteB} bezüglich @code{NoteA} @*
837 @code{NoteC} bezüglich @code{NoteB}, nicht @code{noteA}; @*
838 @code{NoteD} bezüglich @code{NoteB}, nicht @code{NoteA} oder
840 @code{NoteE} bezüglich @code{NoteD}, nicht @code{NoteA} errechnet.
842 Eine andere Möglichkeit ist, den @code{\relative}-Befehl vor jede
843 Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
847 \relative @{ NoteA @dots{} @}
849 \relative @{ < NoteB NoteC > @dots{} @}
851 \relative @{ NoteD @dots{} @}
853 \relative @{ NoteE @dots{} @}
856 Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück
857 analysieren. Hier die Noten der ersten zwei Takte von Chopins
858 @notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
859 und dem nächsten Kapitel benutzt werden, um verschiedene Techniken,
860 Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
861 Punkt alles in folgendem Code, das Ihnen seltsam vorkommt, und konzentrieren
862 Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
863 in späteren Abschnitten erklärt werden.
865 @c The following should appear as music without code
866 @lilypond[quote,ragged-right]
867 \new Staff \relative {
873 % Ignoriere diese Befehle vorerst - sie werden in Kap. 4 erklärt
874 \once \override NoteColumn.force-hshift = #0
876 \once \override NoteColumn.force-hshift = #0.5
882 \override NoteColumn.force-hshift = #0
890 Die Richtung der Hälse wird oft benutzt, um anzuzeigen, dass zwei
891 gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
892 oberen Noten nach oben und die Hälse aller unteren Noten nach unten.
893 Das ist der erste Anhaltspunkt, dass mehr als eine Stimme benötigt
896 Aber die wirkliche Notwendigkeit für mehrere Stimmen tritt erst
897 dann auf, wenn unterschiedliche Noten gleichzeitig erklingen, aber
898 unterschiedliche Dauern besitzen. Schauen Sie sich die Noten
899 auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
900 Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
901 nicht als Akkord geschrieben werden, denn alle Noten in einem Akkord
902 besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
903 geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
904 Taktabschnitt benötigt drei Stimmen, und normalerweise schreibt man
905 drei Stimmen für den ganzen Takt, wie im Beispiel unten zu sehen ist;
906 hier sind unterschiedliche Köpfe und Farben für die verschiedenen Stimmen
907 eingesetzt. Noch einmal: der Quellcode für dieses Beispiel wird später
908 erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht
911 @c The following should appear as music without code
912 @c The three voice styles should be defined in -init
913 @lilypond[quote,ragged-right]
914 \new Staff \relative {
923 % Ignoriere diese Befehle vorerst - sie werden in Kap. 4 erklärt
924 \once \override NoteColumn.force-hshift = #0
926 \once \override NoteColumn.force-hshift = #0.5
929 \\ % Keine Voice 3 (wir wollen Hälse nach unten)
932 \override NoteColumn.force-hshift = #0
941 Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen
942 werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
943 wir es gelernt haben, indem wir mit der @code{<< \\ >>}-Konstruktion
944 die drei Stimmen des ersten Taktes notieren:
946 @lilypond[quote,verbatim,ragged-right]
947 \new Staff \relative {
950 { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ { aes'2 f4 fes }
956 @cindex Hals nach unten
957 @cindex Hals nach oben
958 @cindex Notenhals, Richtung
959 @cindex Richtung des Notenhalses
960 @cindex Notenhalsrichtung
961 @cindex Stimmen und Notenhalsrichtung
962 @cindex Notenhalsrichtung in Stimmen
964 Die Richtung des Notenhalses wird automatisch zugewiesen; die ungeraden
965 Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
966 für die Stimmen 1 und 2 stimmen, aber die Hälse in der dritten Stimme
967 sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
968 korrigieren, indem wir die dritte Stimme einfach auslassen und die
969 Noten in die vierte Stimme verschieben. Das wird einfach vorgenommen,
970 indem noch ein Paar @code{\\}-Stimmen hinzugefügt wird.
972 @lilypond[quote,verbatim,ragged-right]
973 \new Staff \relative {
979 \\ % Auslassen von Voice 3
988 Wie zu sehen ist, ändert das die Richtung der Hälse, aber die horizontale
989 Ausrichtung der Noten ist nicht so, wie wir sie wollen. LilyPond
990 verschiebt die inneren Noten wenn sie oder ihre Hälse mit den äußeren
991 Stimmen zusammenstoßen würden, aber das ist nicht richtig für Klaviermusik.
992 In anderen Situationen können die Verschiebungen von LilyPond nicht
993 ausreichend sein, um Überlappungen aufzulösen. LilyPond stellt verschiedene
994 Möglichkeiten zur Verfügung, um die horizontale Ausrichtung von Noten
995 zu beeinflussen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
996 anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt
997 auf; siehe @code{force-hshift}-Eigenschaft in
998 @ref{Überlappende Notation in Ordnung bringen}.
1000 @warning{Gesangstext und Strecker (wie etwa Bögen, Crescendo-Klammern usw.) können
1001 nicht von einer Stimme zur anderen erstellt werden.}
1005 Notationsreferenz: @ruser{Mehrere Stimmen}.
1008 @node Stimmen explizit beginnen
1009 @subsection Stimmen explizit beginnen
1010 @translationof Explicitly instantiating voices
1016 @funindex \voiceThree
1017 @funindex voiceThree
1018 @funindex \voiceFour
1022 @funindex \new Voice
1023 @cindex Voice context, erstellen von
1024 @cindex Stimmenkontexte, erstellen von
1026 Voice-Kontexte können auch manuell innerhalb
1027 eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen
1028 @code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme
1029 entsprechendes Verhalten von vertikaler Verschiebung und Richtung
1030 von Hälsen und anderen Objekten hinzugefügt werden. In längeren
1031 Partituren können die Stimmen damit besser auseinander gehalten
1034 Die @code{<< \\ >>}-Konstruktion, die wir im vorigen Abschnitt
1040 << @{ e'4 f g a @} \\ @{ c,4 d e f @} >>
1050 \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @}
1051 \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @}
1055 Beide würden folgendes Notenbild erzeugen:
1057 @c The following example should not display the code
1058 @lilypond[ragged-right,quote]
1060 \new Voice = "1" { \voiceOne \relative { e'4 f g a } }
1061 \new Voice = "2" { \voiceTwo \relative { c'4 d e f } }
1065 @cindex Stimmen, mehrere zu einer zusammenführen
1066 @cindex eine Stimme wiederherstellen
1068 Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen,
1069 Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen.
1070 @code{\voiceOne} und @code{\voiceThree} lassen diese Objekte
1071 nach oben zeigen, @code{\voiceTwo} und @code{\voiceFour}
1072 dagegen lassen sie abwärts zeigen. Diese Befehle erzeugen eine
1073 horizontale Verschiebung, wenn es erforderlich ist, um Zusammenstöße
1074 zu vermeiden. Der Befehl
1075 @code{\oneVoice} stellt wieder auf das normale Verhalten um.
1077 Schauen wir uns in einigen einfachen Beispielen an, was genau
1078 die Befehle @code{\oneVoice}, @code{\voiceOne} und @code{voiceTwo}
1079 mit Text, Bögen und Dynamikbezeichnung anstellen:
1081 @lilypond[quote,ragged-right,verbatim]
1083 % Default behavior or behavior after \oneVoice
1084 c'4 d8~ 8 e4( f | g4 a) b-> c |
1088 @lilypond[quote,ragged-right,verbatim]
1091 c'4 d8~ 8 e4( f | g4 a) b-> c |
1093 c,4 d8~ 8 e4( f | g4 a) b-> c |
1097 @lilypond[quote,ragged-right,verbatim]
1100 c'4 d8~ 8 e4( f | g4 a) b-> c |
1102 c,4 d8~ 8 e4( f | g4 a) b-> c |
1106 Schauen wir und nun drei unterschiedliche Arten an, den gleichen
1107 Abschnitt polyphoner Musik zu notieren, jede Art mit ihren
1108 Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
1109 das Beispiel vom vorherigen Abschnitt.
1111 Ein Ausdruck, der direkt innerhalb einer @code{<< >>}-Umgebung
1112 auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche
1113 Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also
1114 eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die
1115 farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in
1116 einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
1117 Phrasierungsbogen ober sie gesetzt werden.
1119 @lilypond[quote,ragged-right,verbatim]
1120 \new Staff \relative {
1122 % This section is homophonic
1124 % Start simultaneous section of three voices
1126 % Continue the main voice in parallel
1127 { g4 f e | d2 e) | }
1128 % Initiate second voice
1130 % Set stems, etc., down
1132 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1134 % Initiate third voice
1136 % Set stems, etc, up
1144 @cindex Verschachteln von musikalischen Ausdrücken
1145 @cindex Verschachteln von gleichzeitigen Ausdrücken
1146 @cindex Ausdrücke, Verschachteln von
1147 @cindex Stimmen, temporär
1148 @cindex Stimmen, Verschachteln von
1149 @cindex Verschachteln von Stimmen
1150 @cindex temporäre Stimmen
1152 Tiefer verschachtelte polyphone Konstrukte sind möglich, und
1153 wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg
1154 sein, Noten zu setzen:
1156 @lilypond[quote,ragged-right,verbatim]
1157 \new Staff \relative {
1160 { g4 f e | d2 e) | }
1165 { c8 b16 a b8 g~ 2 | }
1176 @cindex Platzhalternoten
1177 @cindex unsichtbare Noten
1178 @cindex Noten verstecken
1180 Diese Methode, neue Stimmen kurzzeitig zu verschachteln, bietet sich
1181 an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
1182 aber die ganze Partitur polyphon ist, ist es meistens klarer, direkt
1183 unterschiedliche Stimmen über die gesamte Partitur hinweg einzusetzen.
1184 Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen,
1185 an denen die Stimme nicht auftaucht, wie etwa hier:
1187 @lilypond[quote,ragged-right,verbatim]
1188 \new Staff \relative <<
1189 % Initiate first voice
1192 c'16^( d e f g4 f e | d2 e) |
1194 % Initiate second voice
1196 % Set stems, etc, down
1198 s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1200 % Initiate third voice
1202 % Set stems, etc, up
1209 @subsubheading Notenkolumnen
1211 @cindex Notenkolumne
1212 @cindex Notenkollision
1213 @cindex Zusammenstöße von Noten
1214 @cindex Kollisionen von Noten
1215 @cindex Vertikale Position
1216 @cindex shift-Befehle
1217 @cindex Verschieben von Noten
1221 @funindex \shiftOnnn
1227 Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen
1228 Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal
1229 auch mehreren Kolumnen gesetzt, um die Noten am Überschneiden zu
1230 hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
1231 eine eigene Kolumne, und ein stimmenabhängiger Verschiebunsbefehl (engl.
1232 shift) wird eingesetzt, wenn eine Kollision auftreten könnte.
1233 Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
1234 Stimme nach rechts verschoben, relativ gesehen zum D der ersten Stimme,
1235 und im letzten Akkord wird das C der dritten Stimme auch nach
1236 rechts verschoben im Verhältnis zu den anderen Stimmen.
1238 Die Befehle @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} und
1239 @code{\shiftOff} bestimmen den Grad, zu dem Noten und Akkorde
1240 verschoben werden sollen, wenn sich sonst eine Kollision nicht
1241 vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
1242 Stimmen (also normalerweise Stimme 1 und 2) @code{\shiftOff}
1243 eingestellt haben, während für die inneren Stimmen (3 und 4)
1244 @code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
1245 auftritt, werden Stimmen 1 und 3 nach rechts und Stimmen 2 und 4
1246 nach links verschoben.
1248 @code{\shiftOnn} und @code{\shiftOnnn} definieren weitere
1249 Verschiebungsebenen, die man kurzzeitig anwählen kann, um
1250 Zusammenstöße in komplexen Situationen aufzulösen, siehe auch
1251 @ref{Beispiel aus dem Leben}.
1253 Eine Notenkolumne kann nur eine Note (oder einen Akkord) von
1254 einer Stimme mit Hälsen nach oben und eine Note (oder einen
1255 Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
1256 Noten von zwei Stimmen mit den Hälsen in die gleiche Richtung
1257 an der selben Stelle auftreten und in beiden Stimmen ist
1258 keine Verschiebung oder die gleiche Verschiebungsebene
1259 definiert, wird die Fehlermeldung
1260 @qq{diese Stimme benötigt einen @code{@bs{}voiceXx} oder
1261 @code{@bs{}shiftXx} Befehl}
1266 Handbuch zum Lernen:
1267 @ref{Verschieben von Objekten}.
1270 @ruser{Mehrere Stimmen}.
1273 @node Stimmen und Text
1274 @subsection Stimmen und Text
1275 @translationof Voices and vocals
1277 Die Notation von Vokalmusik ihre eigene Schwierigkeit, nämlich
1278 die Kombination von zwei Ausdrücken: den Noten und dem Text.
1279 Achtung: Der Gesangstext wird auf Englisch @qq{lyrics} genannt.
1282 @funindex \new Lyrics
1286 @cindex Lyrics context, erstellen
1287 @cindex Gesangstext, Verbindung mit Noten
1289 Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet,
1290 mit dem einfache Partituren gut erstellt werden können.
1291 Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
1292 komplexer wird, muss der Gesangstext mit einem neuen
1293 @code{Lyrics}-Kontext begonnen werden (mit dem Befehl
1294 @code{\new Lyrics}) und durch den Befehl @code{\lyricsto@{@}}
1295 mit einer bestimmten Stimme verknüpft werden, indem die
1296 Bezeichnung der Stimme benutzt wird.
1298 @lilypond[quote,verbatim]
1300 \new Voice = "one" {
1304 c''4 b8. a16 | g4. f8 | e4 d | c2 |
1307 \new Lyrics \lyricsto "one" {
1308 No more let | sins and | sor -- rows | grow. |
1313 Beachten Sie, dass der Notentext nur mit einem @code{Voice}-Kontext
1314 verknüpft werden kann, nicht mit einem @code{Staff}-Kontext.
1315 In diesem Fall also müssen Sie ein System (@code{Staff}) und
1316 eine Stimme (@code{Voice}) explizit erstellen, damit alles
1319 @cindex Gesangstext und Balken
1320 @cindex Text und Balken
1321 @cindex Balken und Text
1322 @funindex \autoBeamOff
1323 @funindex autoBeamOff
1325 Die automatischen Balken, die LilyPond in der Standardeinstellung
1326 setzt, eignen sich sehr gut für instrumentale Musik, aber nicht
1327 so gut für Musik mit Text, wo man entweder gar keine Balken
1328 benutzt oder sie einsetzt, um Melismen zu verdeutlichen.
1329 Im Beispiel oben wird deshalb der Befehl @code{\autoBeamOff}
1330 eingesetzt um die automatischen Balken (engl. beam) auszuschalten.
1332 @funindex \new ChoirStaff
1333 @funindex \lyricmode
1334 @funindex ChoirStaff
1336 @cindex Vokalpartitur, Aufbau
1337 @cindex Chorpartitur, Aufbau
1339 Wir wollen das frühere Beispiel von @notation{Judas Maccabæus}
1340 benutzen, um diese flexiblere Technik für Gesangstexte
1341 zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
1342 Variablen eingesetzt werden, um den Text und die Noten
1343 von der Partiturstruktur zu trennen. Es wurde zusätzlich
1344 eine Chorpartiturklammer hinzugefügt. Der Gesangstext muss mit
1345 @code{\lyricmode} eingegeben werden, damit er als Text und
1346 nicht als Noten interpretiert werden kann.
1348 @lilypond[quote,verbatim]
1349 global = { \key f \major \time 6/8 \partial 8 }
1351 SopOneMusic = \relative {
1352 c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4
1354 SopOneLyrics = \lyricmode {
1355 Let | flee -- cy flocks the | hills a -- dorn, __
1357 SopTwoMusic = \relative {
1358 r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
1360 SopTwoLyrics = \lyricmode {
1361 Let | flee -- cy flocks the | hills a -- dorn,
1367 \new Voice = "SopOne" {
1371 \new Lyrics \lyricsto "SopOne" {
1376 \new Voice = "SopTwo" {
1380 \new Lyrics \lyricsto "SopTwo" {
1388 Dies ist die Grundstruktur für alle Chorpartituren. Mehr
1389 Systeme können hinzugefügt werden, wenn sie gebraucht werden, mehr
1390 Stimmen können zu jedem System hinzugefügt werden, mehr
1391 Strophen können zum Text hinzugefügt werden, und schließlich
1392 können die Variablen schnell in eine eigene Datei verschoben
1393 werden, wenn sie zu lang werden sollten.
1395 @cindex Choralnotation
1396 @cindex Hymnus-Notation
1397 @cindex SATB-Partitur
1398 @cindex mehrere Strophen
1399 @cindex Strophen, mehrere
1400 @cindex Choral mit mehreren Strophen
1402 Hier ein Beispiel der ersten Zeile eines Chorals mit vier
1403 Strophen für gemischten Chor. In diesem Fall ist der Text
1404 für alle vier Stimmen identisch. Beachten Sie, wie die
1405 Variablen eingesetzt werden, um Inhalt (Noten und Text) und Form
1406 (die Partitur) voneinander zu trennen. Eine Variable wurde
1407 eingesetzt, um die Elemente, die auf beiden Systemen auftauchen,
1408 aufzunehmen, nämlich Taktart und Tonart. Solch eine
1409 Variable wird oft auch mit @qq{global} bezeichnet.
1411 @lilypond[quote,verbatim]
1412 keyTime = { \key c \major \time 4/4 \partial 4 }
1414 SopMusic = \relative { c'4 | e4. e8 g4 g | a4 a g }
1415 AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e }
1416 TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 }
1417 BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 }
1420 \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
1422 \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
1424 \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
1426 \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
1432 \new Voice = "Sop" { \voiceOne \keyTime \SopMusic }
1433 \new Voice = "Alto" { \voiceTwo \AltoMusic }
1434 \new Lyrics \lyricsto "Sop" { \VerseOne }
1435 \new Lyrics \lyricsto "Sop" { \VerseTwo }
1436 \new Lyrics \lyricsto "Sop" { \VerseThree }
1437 \new Lyrics \lyricsto "Sop" { \VerseFour }
1441 \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
1442 \new Voice = "Bass" { \voiceTwo \BassMusic }
1450 Notationsreferenz: @ruser{Notation von Gesang}.
1453 @node Kontexte und Engraver
1454 @section Kontexte und Engraver
1455 @translationof Contexts and engravers
1457 Kontexte und Engraver (@qq{Stempel}) sind in den vorherigen
1458 Abschnitten schon aufgetaucht; hier wollen wir uns ihnen
1459 nun etwas ausführlicher widmen, denn sie sind sehr
1460 wichtig, um Feineinstellungen in der LilyPond-Notenausgabe
1461 vornehmen zu können.
1464 * Was sind Kontexte?::
1465 * Kontexte erstellen::
1466 * Was sind Engraver?::
1467 * Kontexteigenschaften verändern::
1468 * Engraver hinzufügen und entfernen::
1471 @node Was sind Kontexte?
1472 @subsection Was sind Kontexte?
1473 @translationof Contexts explained
1475 @cindex Kontexte erklärt
1477 Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
1479 die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
1480 etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
1482 @lilypond[quote,verbatim]
1483 \relative { cis''4 cis2. | a4 a2. | }
1486 Der Quellcode ist sehr kurz und knapp, während in der
1487 Notenausgabe Taktstriche, Vorzeichen, ein Schlüssel und
1488 eine Taktart hinzugefügt wurden. Während LilyPond
1489 den Eingabetext @emph{interpretiert}, wird die
1490 musikalische Information von rechts nach links gelesen,
1491 in etwa, wie man eine Partitur von links nach
1492 rechts liest. Während das Programm den Code liest,
1493 merkt es sich, wo sich Taktgrenzen befinden und
1494 für welche Tonhöhen Versetzungszeichen gesetzt werden
1495 müssen. Diese Information muss auf mehreren Ebenen
1496 gehandhabt werden, denn Versetzungszeichen etwa
1497 beziehen sich nur auf ein System, Taktstriche dagegen
1498 üblicherweise auf die gesamte Partitur.
1500 Innerhalb von LilyPond sind diese Regeln und
1501 Informationshappen in @emph{Kontexten} (engl.
1502 contexts) gruppiert. Der @code{Voice} (Stimmen)-Kontext
1503 wurde schon vorgestellt. Daneben
1504 gibt es noch die @code{Staff} (Notensystem-) und
1505 @code{Score} (Partitur)-Kontexte. Kontexte sind
1506 hierarchisch geschichtet um die hierarchische
1507 Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
1508 kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
1509 und ein @code{Score}-Kontext kann viele
1510 @code{Staff}-Kontexte beinhalten.
1513 @sourceimage{context-example,5cm,,}
1516 Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
1517 zu erzwingen, bestimmte Notationsobjekte zu erstellen und
1518 verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
1519 zum Beispiel kann eine Vorzeichenregel einführen und der
1520 @code{Staff}-Kontext hält diese Regel dann aufrecht, um
1521 einzuordnen, ob ein Versetzungszeichen gesetzt werden
1524 Ein anderes Beispiel: die Synchronisation der Taktstriche ist
1525 standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
1526 die Systeme einer Partitur aber unterschiedliche Taktarten
1527 enthalten, etwa in einer polymetrischen Partitur mit
1528 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
1529 der @code{Score}- und @code{Staff}-Kontexte verändert werden.
1531 In einfachen Partituren werden die Kontexte implizit erstellt,
1532 und es kann sein, dass Sie sich dessen gar nicht bewusst sind.
1533 Für etwas größere Projekte, etwa mit vielen Systemen, müssen
1534 die Kontexte aber explizit erstellt werden, um sicher zu gehen,
1535 dass man auch wirklich die erwünschte Zahl an Systemen in der
1536 richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
1537 Notation gesetzt werden sollen, ist es üblich, die existierenden
1538 Kontexte zu verändern oder gar gänzlich neue zu definieren.
1540 Zusätzlich zu den @code{Score,} @code{Staff} und
1541 @code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
1542 der Partitur- und Systemebene liegen und Gruppen von Systemen
1543 kontrollieren. Das sind beispielsweise der
1544 @code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
1545 alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
1546 für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
1548 Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren
1550 Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben
1551 begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich
1553 @code{GregorianTranscriptionStaff}.
1557 Notationsreferenz: @ruser{Was sind Kontexte?}.
1560 @node Kontexte erstellen
1561 @subsection Kontexte erstellen
1562 @translationof Creating contexts
1566 @cindex Neue Kontexte
1567 @cindex Erstellen von Kontexten
1568 @cindex Kontexte, Erstellen
1570 In einer Eingabedatei enthält eine @code{Score}-Umgebung (einen
1572 dem Befehl @code{\score} eingeleitet wird, nur einen einzigen
1573 musikalischen Ausdruck und mit ihm verknüpft eine Ausgabedefinition
1574 (entweder eine @code{\layout}- oder eine @code{\midi}-Umgebung).
1575 Üblicherweise wird der @code{Score}-Kontext automatisch von
1576 LilyPond erstellt, wenn der musikalische Ausdruck interpretiert
1579 Wenn nur ein System vorhanden ist, kann man es ruhig
1580 LilyPond überlassen, auch die @code{Voice}- und @code{Staff}-Kontexte
1581 zu erstellen, aber für komplexere Partituren ist es notwendig,
1582 sie mit einem Befehl zu erstellen. Der einfachste Befehl
1583 hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck
1584 vorangestellt, etwa so:
1587 \new @var{Typ} @var{musikalischer Ausdruck}
1591 wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
1592 @code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
1593 beginnt, den @var{muskalischen Ausdruck} innerhalb dieses
1594 Kontexts auszuwerten.
1596 @warning{Der @bs{}@code{new Score}-Befehl sollte nicht benutzt werden,
1597 weil der Partitur-(Score)-Kontext der obersten Ebene
1598 normalerweise automatisch erstellt wird, wenn der musikalische Ausdruck
1599 innerhalb der @code{\score}-Umgebung interpretiert wird. Standard-Werte
1600 von Kontexteigenschaften, die für einen bestimmten @code{Score} gelten
1601 sollen, können innerhalb der @bs{}@code{layout}-Umgebung definiert werden.
1602 Siehe @ref{Kontexteigenschaften verändern}.}
1604 Wir haben schon viele explizite Beispiel gesehen, in denen
1605 neue @code{Staff}- und @code{Voice}-Kontexte erstellt wurden, aber
1606 um noch einmal ins Gedächtnis zu rufen, wie diese Befehle benutzt
1607 werden, hier ein kommentiertes Beispiel aus dem richtigen Leben:
1609 @lilypond[quote,verbatim,ragged-right]
1610 \score { % start of single compound music expression
1611 << % start of simultaneous staves section
1613 \new Staff { % create RH staff
1616 \new Voice { % create voice for RH notes
1617 \relative { % start of RH notes
1623 \new Staff << % create LH staff; needs two simultaneous voices
1626 \new Voice { % create LH voice one
1628 \relative { % start of LH voice one notes
1629 g8 <bes d> ees, <g c> |
1630 g8 <bes d> ees, <g c> |
1631 } % end of LH voice one notes
1632 } % end of LH voice one
1633 \new Voice { % create LH voice two
1635 \relative { % start of LH voice two notes
1638 } % end of LH voice two notes
1639 } % end of LH voice two
1640 >> % end of LH staff
1641 >> % end of simultaneous staves section
1642 } % end of single compound music expression
1645 (Beachten Sie, dass wir hier alle Zeilen, die eine neue
1646 Umgebung entweder mit einer geschweiften Klammer (@code{@{})
1647 oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
1648 jeweils zwei Leerzeichen, und die entsprechenden
1649 schließenden Klammern mit der gleichen Anzahl Leerzeichen
1650 eingerückt werden. Dies ist nicht erforderlich, es wird aber
1651 zu einem großen Teil die nicht passenden Klammerpaar-Fehler
1652 eliminieren und ist darum sehr empfohlen. Es macht es
1653 möglich, die Struktur einer Partitur auf einen Blick zu
1654 verstehen, und alle nicht passenden Klammern
1655 erschließen sich schnell. Beachten Sie auch, dass das
1656 untere Notensystem mit eckigen Klammern erstellt wird,
1657 denn innerhalb dieses Systems brauchen wir zwei Stimmen,
1658 um die Noten darzustellen. Das obere System braucht
1659 nur einen einzigen musikalischen Ausdruck und ist deshalb
1660 von geschweiften Klammern umschlossen.)
1662 @cindex Kontexte, Benennung
1663 @cindex Benennung von Kontexten
1665 Der @code{\new}-Befehl kann einem Kontext auch einen
1666 Namen zur Identifikation geben, um ihn von anderen Kontexten des
1667 selben Typs zu unterscheiden:
1670 \new @var{Typ} = @var{Name} @var{musikalischer Ausdruck}
1673 Beachten Sie den Unterschied zwischen der Bezeichnung des
1674 Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
1675 Namen, der aus beliebigen Buchstaben bestehen kann
1676 und vom Benutzer frei erfunden werden kann. Zahlen und
1677 Leerzeichen können auch benutzt werden, in dem Fall
1678 muss der Name aber von doppelten Anführungszeichen
1679 umgeben werden, also etwa
1680 @code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
1682 benutzt, um später auf genau diesen spezifischen Kontext
1683 zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
1684 zu Gesangstexten angewandt, siehe @ref{Stimmen und Text}.
1688 Notationsreferenz: @ruser{Kontexte erstellen und referenzieren}.
1691 @node Was sind Engraver?
1692 @subsection Was sind Engraver?
1693 @translationof Engravers explained
1696 @cindex Stempel (Engraver)
1698 Jedes Zeichen des fertigen Notensatzes von LilyPond wird
1699 von einem @code{Engraver} (Stempel) produziert. Es gibt
1700 also einen Engraver, der die Systeme erstellt, einen, der die
1701 Notenköpfe ausgibt, einen für die Hälse, einen für die
1702 Balken usw. Insgesamt gibt es über 120 Engraver! Zum
1703 Glück braucht man für die meisten Partituren nur ein
1704 paar Engraver, und für einfache Partituren muss man eigentlich
1705 überhaupt nichts über sie wissen.
1707 Engraver leben und wirken aus den Kontexten heraus. Engraver
1708 wie der @code{Metronome_mark_engraver}, dessen Aktion
1709 und Ausgabe sich auf die gesamte Partitur bezieht, wirken
1710 in der obersten Kontextebene -- dem @code{Score}-Kontext.
1712 Der @code{Clef_engraver} (Schlüssel-Stempel) und der
1713 @code{Key_engraver} (Vorzeichen-Stempel) finden sich in
1714 jedem @code{Staff}-Kontext, denn unterschiedliche Systeme
1715 könnten unterschiedliche Tonarten und Notenschlüssel
1718 Der @code{Note_heads_engraver} (Notenkopf-Stempel) und der
1719 @code{Stem_engraver} (Hals-Stempel) befinden sich in jedem
1720 @code{Voice}-Kontext, der untersten Kontextebene.
1722 Jeder Engraver bearbeitet die bestimmten Objekte, die mit
1723 seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
1724 dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
1725 die mit Kontexten assoziiert sind, können verändert werden,
1726 um die Wirkungsweise des Engravers oder das Erscheinungsbild
1727 der von ihm produzierten Elemente in der Partitur zu ändern.
1729 Alle Engraver haben zusammengesetzte Bezeichnung, die aus
1730 den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
1731 das erste Wort hat einen Großbuchstaben, und die restlichen
1732 Wörter werden mit einem Unterstrich angefügt. Ein
1733 @code{Staff_symbol_engraver} verantwortet also die Erstellung
1734 der Notenlinien, ein @code{Clef_engraver} entscheidet über die
1735 Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
1736 wird gleichzeitig die Referenztonhöhe auf dem Notensystem festgelegt.
1738 Hier die meistgebräuchlichen Engraver mit ihrer Funktion.
1739 Sie werden sehen, dass es mit etwas Englischkenntnissen
1740 einfach ist, die Funktion eines Engravers von seiner Bezeichnung
1743 @multitable @columnfractions .3 .7
1746 @item Accidental_engraver
1747 @tab Erstellt Versetzungszeichen, vorgeschlagene und Warnversetzungszeichen.
1749 @tab Erstellt Balken.
1751 @tab Erstellt Notenschlüssel.
1752 @item Completion_heads_engraver
1753 @tab Teilt Noten in kleiner Werte, wenn sie über den Taktstrich reichen.
1754 @item Dynamic_engraver
1755 @tab Erstellt Dynamik-Klammern und Dynamik-Texte.
1756 @item Forbid_line_break_engraver
1757 @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist.
1759 @tab Erstellt die Vorzeichen.
1760 @item Metronome_mark_engraver
1761 @tab Erstellt Metronom-Bezeichnungen.
1762 @item Note_heads_engraver
1763 @tab Erstellt Notenköpfe.
1765 @tab Erstellt Pausen.
1766 @item Staff_symbol_engraver
1767 @tab Erstellt die (standardmäßig) fünf Notenlinien des Systems.
1769 @tab Erstellt die Notenhälse und Tremolos mit einem Hals.
1770 @item Time_signature_engraver
1771 @tab Erstellt die Taktartbezeichnung.
1776 Es soll später gezeigt werden, wie die LilyPond-Ausgabe
1777 verändert werden kann, indem die Wirkungsweise der
1778 Engraver beeinflusst wird.
1782 Referenz der Interna: @rinternals{Engravers and Performers}.
1785 @node Kontexteigenschaften verändern
1786 @subsection Kontexteigenschaften verändern
1787 @translationof Modifying context properties
1789 @cindex Kontext-Eigenschaften, Verändern
1790 @cindex Eigenschaften von Kontexten
1791 @cindex Verändern von Kontext-Eigenschaften
1797 Kontexte sind dafür verantwortlich, die Werte bestimmter
1798 Kontext-@emph{Eigenschaften} zu speichern. Viele davon
1799 können verändert werden, um die Interpretation der
1800 Eingabe zu beeinflussen und die Ausgabe zu verändern.
1801 Kontexte werden mit dem @code{\set}-Befehl geändert.
1805 \set @emph{KontextBezeichnung}.@emph{EigenschaftsBezeichnung} = #@emph{Wert}
1809 verwendet, wobei @emph{KontextBezeichnung} üblicherweise
1811 @code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
1812 ausgelassen werden; in diesem Fall wird der aktuelle
1813 Kontext (üblicherweise @code{Voice}) angenommen.
1815 Die Bezeichnung von Kontexten-Eigenschaften besteht
1816 aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
1817 verbunden sind. Alle außer dem ersten werden am Anfang
1818 groß geschrieben. Hier einige Beispiele der gebräuchlichsten
1819 Kontext-Eigenschaften. Es gibt sehr viel mehr.
1821 @c attempt to force this onto a new page
1823 @multitable @columnfractions .25 .15 .45 .15
1824 @headitem Eigenschaftsbezeichnung
1829 @tab boolescher Wert
1830 @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt.
1831 @tab @code{#t}, @code{#f}
1832 @item currentBarNumber
1834 @tab Setzt die aktuelle Taktnummer.
1837 @tab boolescher Wert
1838 @tab Wenn wahr, werden Legatobögen über und unter die Noten gesetzt.
1839 @tab @code{#t}, @code{#f}
1840 @item instrumentName
1842 @tab Setzt die Instrumentenbezeichnung am Anfang eines Systems.
1843 @tab @code{"Cello I"}
1846 @tab Vergrößert oder verkleinert die Schriftgröße.
1850 @tab Setzt den Text zu Beginn einer Strophe.
1855 Ein boolescher Wert ist entweder wahr (@code{#t})
1856 oder falsch (@code{#f}),
1857 ein Integer eine positive ganze Zahl, ein Real (reelle Zahl) eine positive
1858 oder negative Dezimalzahl, und Text wird in doppelte
1859 Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
1860 das Vorkommen des Rautenzeichens
1861 (@code{#}) an unterschiedlichen Stellen: als Teil eines
1862 booleschen Wertes vor dem @code{t} oder @code{f}, aber
1863 auch vor einem @emph{Wert} in der
1864 @code{\set}-Befehlskette. Wenn ein boolescher Wert
1865 eingegeben werden soll, braucht man also zwei
1866 Rautenzeichen, z. B. @code{##t}.
1868 @cindex Eigenschaften in Kontexten
1869 @cindex Veränderung von Eigenschaften in Kontexten
1871 Bevor eine Eigenschaft geändert werden kann, muss man wissen,
1872 in welchem Kontext sie sich befindet. Manchmal versteht das
1873 sich von selbst, aber in einigen Fällen kann es zunächst
1874 unverständlich erscheinen. Wenn der falsche Kontext angegeben
1875 wird, wird keine Fehlermeldung produziert, aber die
1876 Veränderung wird einfach nicht ausgeführt.
1877 @code{instrumentName} befindet sich offensichtlich innerhalb
1878 von einem @code{Staff}-Kontext, denn das Notensystem soll
1879 benannt werden. In dem folgenden Beispiel erhält das erste
1880 System korrekt die Instrumentenbezeichnung, das zweite aber
1881 nicht, weil der Kontext ausgelassen wurde.
1883 @lilypond[quote,verbatim,ragged-right]
1885 \new Staff \relative {
1886 \set Staff.instrumentName = #"Soprano"
1889 \new Staff \relative {
1890 \set instrumentName = #"Alto" % Wrong!
1896 Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
1897 zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
1898 im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
1899 Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
1900 gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
1903 Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
1904 falsch geschrieben wird und die Änderung also nicht ausgeführt werden
1905 kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
1906 mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
1907 wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
1908 zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
1909 die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
1910 Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
1911 fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
1912 unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
1913 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
1914 Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
1915 @rinternals{Tunable context properties}, oder
1916 @rinternals{Contexts}.
1918 Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
1919 in einem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
1920 können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
1921 @code{extraNatural}-Eigenschaft dienen, die zusätzliche Auflösungszeichen
1922 setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
1923 Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch)
1924 gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
1925 sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
1926 auf alle darin enthaltenen Systeme aus.
1928 Das also bewirkt, dass die zusätzlichen Auflösungszeichen in einem System
1931 @lilypond[quote,verbatim,ragged-right]
1933 \new Staff \relative {
1936 \new Staff \relative {
1937 \set Staff.extraNatural = ##f
1944 während dies dazu dient, sie in allen Systemen auszuschalten:
1946 @lilypond[quote,verbatim,ragged-right]
1948 \new Staff \relative {
1951 \new Staff \relative {
1952 \set Score.extraNatural = ##f
1958 Ein anderes Beispiel ist die Eigenschaft @code{clefTransposition}:
1959 wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort
1960 der Wert der Tranponierung in allen aktuellen Systemen und wird
1961 auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt.
1963 Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft
1964 effektiv wieder von dem Kontext: in den meisten Fällen wird der
1965 Kontext auf ihre Standardeinstellungen zurückgesetzt.
1966 Normalerweise wird aber @code{\unset} nicht benötigt,
1967 denn ein neues @code{\set} erledigt alles, was man braucht.
1969 Die @code{\set}- und @code{\unset}-Befehle könne überall im
1970 Eingabequelltext erscheinen und werden aktiv von dem Moment, an
1971 dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
1972 mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
1973 wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
1974 auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
1975 nicht vom letzten gesetzten Wert.
1977 @lilypond[quote,verbatim,ragged-right]
1980 % make note heads smaller
1983 % make note heads larger
1984 \set fontSize = #2.5
1986 % return to default size
1992 Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
1993 Eigenschaften ändern lassen. Beachten Sie, dass Integer und
1994 Zahlen immer mit einem Rautenzeichen beginnen, während
1995 die Werte wahr und falsch (mit @code{##t} und @code{##f}
1996 notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
1997 aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
1998 auch wenn wir später sehen werden, dass Text auf eine sehr viel
1999 allgemeinere und mächtigere Art mit dem @code{\markup}-Befehl
2000 eingegeben werden kann.
2002 @subsubheading Kontexteigenschaften mit @code{\with} setzen
2006 @cindex Kontexteigenschaft, setzen mit \with
2008 Die Standardwerte von Kontexteigenschaften können zu dem Zeitpunkt
2009 definiert werden, an welchem der Kontext erstellt wird. Manchmal
2010 ist das eine saubere Weise, eine Eigenschaft zu bestimmen, die für
2011 die gesamte Partitur erhalten bleiben soll. Wenn ein Kontext mit
2012 einem @code{\new}-Befehl erstellt wird, können in einer
2013 direkt folgenden @code{\with @{ @dots{} @}}-Umgebung die Eigenschaften
2014 bestimmt werden. Wenn also die zusätzlichen
2015 Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
2019 \new Staff \with @{ extraNatural = ##f @}
2025 @lilypond[quote,verbatim,ragged-right]
2029 gisis'4 gis aeses aes
2032 \new Staff \with { extraNatural = ##f } {
2034 gisis'4 gis aeses aes
2040 Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
2041 dynamisch mit dem @code{\set}-Befehl geändert werden und mit
2042 @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden,
2043 wie sie vorher in der @code{\with}-Umgebung definiert wurden.
2045 @cindex Schriftgröße, Standardeinstellung
2046 @cindex fontSize (Schriftgröße), Standardeinstellung
2048 Wenn also die @code{fontSize}-Eigenschaft in einer @code{\with}-Umgebung
2049 definiert wird, wird der Standardwert für die Schriftgröße
2050 festgelegt. Wenn dieser Wert später mit @code{\set} verändert
2051 wird, kann dieser neue Standardwert mit dem Befehl
2052 @code{\unset fontSize} wieder erreicht werden.
2054 @subsubheading Kontexteigenschaften mit @code{\context} setzen
2056 @cindex Kontexteigenschaften, mit \context setzen
2057 @cindex Eigenschaften von Kontexten, mit \context setzen
2061 Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
2062 eines bestimmten Typs (etwa alle @code{Staff}-Kontexte)
2063 gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
2064 spezifiziert, indem seine Bezeichnung benutzt wird, also etwa
2065 @code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
2066 für die Eigenschaft ist der gleiche, wie er auch in der
2067 @code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
2068 eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
2069 von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
2070 wirkt sich auf alle Kontexte dieses Typs aus, welche sich in der
2071 aktuellen Partitur befinden (d. h. innerhalb einer @code{\score}-
2072 oder @code{\book}-Umgebung). Hier ist ein Beispiel, wie man diese
2075 @lilypond[verbatim,quote]
2091 Wenn die Veränderung der Eigenschaft sich auf alle Systeme einer
2092 @code{score}-Umgebung beziehen soll:
2094 @lilypond[quote,verbatim]
2099 gisis'4 gis aeses aes
2104 gisis'4 gis aeses aes
2110 \Score extraNatural = ##f
2117 Kontext-Eigenschaften, die auf diese Weise gesetzt werden, können für
2118 bestimmten Kontexte überschrieben werden, indem die
2119 @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
2120 innerhalb der aktuellen Noten.
2125 @ruser{Die Standardeinstellungen von Kontexten ändern},
2126 @ruser{Der set-Befehl}.
2128 Referenz der Interna:
2129 @rinternals{Contexts},
2130 @rinternals{Tunable context properties}.
2133 @node Engraver hinzufügen und entfernen
2134 @subsection Engraver hinzufügen und entfernen
2135 @translationof Adding and removing engravers
2137 @cindex Engraver, Hinzufügen von
2138 @cindex Engraver, Entfernen von
2139 @cindex Hinzufügen von Engravern
2140 @cindex Entfernen von Engravern
2147 Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
2148 (Stempeln) beinhaltet, von denen ein jeder einen bestimmten
2149 Teil des fertigen Notensatzes produziert, wie z. B. Taktstriche,
2150 Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
2151 einem Kontext entfernt wird, kann er seine Objekte nicht
2152 länger produzieren. Das ist eine eher grobe Methode, die
2153 Notenausgabe zu beeinflussen, aber es kann von großem
2156 @subsubheading Einen einzelnen Kontext verändern
2158 Um einen Engraver von einem einzelnen Kontext zu entfernen,
2159 wir der @code{\with}-Befehl eingesetzt, direkt hinter
2160 den Befehl zur Kontext-Erstellung geschrieben, wie
2161 in dem vorigen Abschnitt gezeigt.
2163 Als ein Beispiel wollen wir das Beispiel aus dem letzten
2164 Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
2165 Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
2168 @lilypond[quote,verbatim,ragged-right]
2170 \remove "Staff_symbol_engraver"
2174 \set fontSize = #-4 % make note heads smaller
2176 \set fontSize = #2.5 % make note heads larger
2178 \unset fontSize % return to default size
2183 @cindex Ambitus-Engraver
2185 Engraver können auch zu einem bestimmten
2186 Kontext hinzugefügt werden. Dies geschieht
2189 @code{\consists @var{Engraver_bezeichnung}}
2192 welcher auch wieder innerhalb der @code{\with}-Umgebung
2193 gesetzt wird. Einige Chorpartituren zeigen einen
2194 Ambitus direkt zu Beginn der ersten Notenzeile, um
2195 den Stimmumfang des Stückes anzuzeigen, siehe auch
2196 @rglos{ambitus}. Der Ambitus wird vom
2197 @code{Ambitus_engraver} erstellt, der normalerweise
2198 in keinem Kontext enthalten ist. Wenn wir
2199 ihn zum @code{Voice}-Kontext hinzufügen, errechnet
2200 er automatisch den Stimmumfang für diese einzelne Stimme
2203 @lilypond[quote,verbatim,ragged-right]
2206 \consists "Ambitus_engraver"
2223 wenn wir den Ambitus-Engraver allerdings zum
2224 @code{Staff}-Kontext hinzufügen, wird der Stimmumfang aller
2225 Stimmen in diesem Notensystem errechnet:
2227 @lilypond[quote,verbatim,ragged-right]
2229 \consists "Ambitus_engraver"
2247 @subsubheading Alle Kontexte des gleichen Typs verändern
2252 Die vorigen Beispiele zeigen, wie man Engraver in einem
2253 bestimmten Kontext hinzufügen oder entfernen kann. Es ist
2254 auch möglich, Engraver in jedem Kontext eines bestimmten
2255 Typs hinzuzufügen oder zu entfernen. Dazu werden die
2256 Befehle in dem entsprechenden Kontext in einer
2257 @code{\layout}-Umgebung gesetzt. Wenn wir also z. B.
2258 den Ambitus für jedes Notensystem in einer Partitur
2259 mit vier Systemen anzeigen wollen, könnte das so aussehen:
2261 @lilypond[quote,verbatim,ragged-right]
2290 \consists "Ambitus_engraver"
2297 Die Werte der Kontext-Eigenschaften können auch für
2298 alle Kontexte eines bestimmten Typs auf die gleiche
2299 Weise geändert werden, indem der @code{\set}-Befehl in
2300 einer @code{\context}-Umgebung angewendet wird.
2304 Notationsreferenz: @ruser{Umgebungs-Plugins verändern},
2305 @ruser{Die Standardeinstellungen von Kontexten ändern}.
2308 Die @code{Stem_engraver} und @code{Beam_engraver} fügen ihre
2309 Objekte an Notenköpfe an. Wenn der @code{Note_heads_engraver}
2310 entfernt wird, werden keine Notenköpfe erstellt und demzufolge auch keine
2311 Hälse oder Bögen dargestellt.
2314 @node Erweiterung der Vorlagen
2315 @section Erweiterung der Vorlagen
2316 @translationof Extending the templates
2318 Sie haben sich durch das Tutorium gearbeitet, Sie
2319 wissen jetzt, wie Sie Notensatz produzieren, und Sie
2320 haben die grundlegenden Konzepte verstanden. Aber wie
2321 erhalten Sie genau die Systeme, die Sie brauchen? Es
2322 gibt eine ganze Anzahl an fertigen Vorlagen
2323 (siehe @ref{Vorlagen}), mit denen Sie beginnen
2324 können. Aber was, wenn Sie nicht genau das finden,
2325 was Sie brauchen? Lesen Sie weiter.
2328 * Sopran und Cello::
2329 * Vierstimmige SATB-Partitur::
2330 * Eine Partitur von Grund auf erstellen::
2331 * Tipparbeit durch Variablen und Funktionen einsparen::
2332 * Partituren und Stimmen::
2336 @node Sopran und Cello
2337 @subsection Sopran und Cello
2338 @translationof Soprano and cello
2340 @cindex Template, Verändern von
2341 @cindex Vorlage, Verändern von
2342 @cindex Veränderung von Vorlagen
2344 Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
2345 am nächsten kommt. Nehmen wir einmal an, Sie wollen
2346 ein Stück für Sopran und Cello schreiben. In diesem
2347 Fall könnten Sie mit der Vorlage @qq{Noten und Text}
2348 (für die Sopran-Stimme) beginnen.
2351 \version @w{"@version{}"}
2353 melody = \relative @{
2360 text = \lyricmode @{
2366 \new Voice = "one" @{
2370 \new Lyrics \lyricsto "one" \text
2377 Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
2378 Beispiel @qq{Nur Noten} an:
2381 \version @w{"@version{}"}
2383 melody = \relative @{
2397 Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
2398 brauchen aber den @code{melody}-Abschnitt. Wir wollen
2399 keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
2400 @code{\score}-Abschnitten würden wir zwei Stimmen
2401 getrennt voneinander erhalten. In diesem Fall wollen wir
2402 sie aber zusammen, als Duett. Schließlich brauchen wir
2403 innerhalb des @code{\score}-Abschnittes nur einmal die
2404 Befehle @code{\layout} und @code{\midi}.
2406 Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in
2407 unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
2408 Das würde zu keinem Fehler führen, aber die zweite von ihnen
2409 würde für beide Melodien eingesetzt werden. Wir müssen
2410 ihnen also andere Bezeichnungen zuweisen, um sie voneinander
2411 zu unterscheiden. Nennen wir die Abschnitte also @code{SopranNoten}
2412 für den Sopran und @code{CelloNoten} für die Cellostimme. Wenn
2413 wir schon dabei sind, können wir @code{text}auch nach
2414 @code{SoprText} umbenennen. Denken Sie daran, beide
2415 Vorkommen der Bezeichnung zu ändern: einmal die Definition
2416 gleich am Anfang (@code{melody = \relative @{ }) und
2417 dann auch noch die Benutzung der Variable innerhalb des
2418 @code{\score}-Abschnittes.
2420 Gleichzeitig können wir auch noch das Notensystem für das
2421 Cello ändern -- das Cello hat normalerweise einen Bassschlüssel.
2422 Wir ändern auch die Noten etwas ab.
2425 \version @w{"@version{}"}
2427 SopranNoten = \relative @{
2434 SoprText = \lyricmode @{
2438 CelloNoten = \relative @{
2447 \new Voice = "eins" @{
2451 \new Lyrics \lyricsto "eins" \Soprantext
2458 Das sieht schon vielversprechend aus, aber die Cello-Stimme
2459 erscheint noch nicht im Notensatz -- wir haben vergessen,
2460 sie in den @code{\score}-Abschnitt einzufügen. Wenn die
2461 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
2465 \new Staff \CelloNoten
2469 unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
2470 die spitzen Klammern (@code{<<} und @code{>>}) um die
2471 Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
2472 ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
2473 zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
2476 @c Indentation in this example is deliberately poor
2481 \new Voice = "eins" @{
2485 \new Lyrics \lyricsto "eins" \SoprText
2487 \new Staff \CelloNoten
2495 Das sieht etwas unschön aus, vor allem die Einrückung stimmt
2496 nicht mehr. Das können wir aber schnell in Ordnung bringen.
2497 Hier also die gesamte Vorlage für Sopran und Cello:
2499 @lilypond[quote,verbatim,ragged-right,addversion]
2500 sopranoMusic = \relative {
2507 sopranoLyrics = \lyricmode {
2511 celloMusic = \relative {
2521 \new Voice = "one" {
2525 \new Lyrics \lyricsto "one" \sopranoLyrics
2527 \new Staff \celloMusic
2536 Die Vorlagen, mit denen wir begonnen haben, können im
2537 Anhang @qq{Vorlagen} gefunden werden, siehe
2538 @ref{Vorlagen für ein einzelnes System}.
2541 @node Vierstimmige SATB-Partitur
2542 @subsection Vierstimmige SATB-Partitur
2543 @translationof Four-part SATB vocal score
2545 @cindex Vorlage, SATB
2546 @cindex Vorlage, Chorpartitur
2547 @cindex SATB-Vorlage
2548 @cindex Chorpartitur, Vorlage
2550 Die meisten Partituren für vierstimmigen gemischten Chor
2551 mit Orchesterbegleitung (wie etwa Mendelssohns @notation{Elias}
2552 oder Händels @notation{Messias}) sind so aufgebaut, dass
2553 für jede der vier Stimmen ein eigenes System besteht und
2554 die Orchesterbegleitung dann als Klavierauszug darunter
2555 notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
2557 @c The following should appear as music without code
2558 @lilypond[quote,ragged-right]
2559 global = { \key d \major \time 4/4 }
2561 sopranoMusic = \relative {
2563 r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2565 sopranoWords = \lyricmode {
2566 Wor -- thy | is the lamb | that was slain |
2569 altoMusic = \relative {
2571 r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 |
2573 altoWords = \sopranoWords
2575 tenorMusic = \relative {
2577 r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2579 tenorWords = \sopranoWords
2581 bassMusic = \relative {
2583 r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2585 bassWords = \sopranoWords
2590 r4 <a' d fis>2 <a e' a>4 |
2591 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2592 <g cis g'>4 <a d fis> <a cis e>2 |
2598 <d, d'>4 <d d'>2 <cis cis'>4 |
2599 <b b'>4. <b' b'>8 <fis fis'>2 |
2600 <e e'>4 <d d'> <a' a'>2 |
2604 << % combine ChoirStaff and PianoStaff in parallel
2606 \new Staff = "sopranos" <<
2607 \set Staff.instrumentName = #"Soprano"
2608 \new Voice = "sopranos" {
2613 \new Lyrics \lyricsto "sopranos" {
2616 \new Staff = "altos" <<
2617 \set Staff.instrumentName = #"Alto"
2618 \new Voice = "altos" {
2623 \new Lyrics \lyricsto "altos" { \altoWords }
2624 \new Staff = "tenors" <<
2625 \set Staff.instrumentName = #"Tenor"
2626 \new Voice = "tenors" {
2631 \new Lyrics \lyricsto "tenors" { \tenorWords }
2632 \new Staff = "basses" <<
2633 \set Staff.instrumentName = #"Bass"
2634 \new Voice = "basses" {
2639 \new Lyrics \lyricsto "basses" {
2644 \set PianoStaff.instrumentName = #"Piano"
2645 \new Staff = "upper" \upper
2646 \new Staff = "lower" \lower
2652 @warning{Das vorliegende Layout kann sehr einfach erzeugt werden. Am Besten
2653 verwenden sie dafür das vordefinierte Beispiel @code{satb.ly}, siehe auch
2654 @ref{Built-in templates}. Zum Zweck der einfachen Handhabung wird der
2655 verwendete Kontextaufbau bewusst versteckt und sich darauf verlassen, dass LilyPond
2656 alles automatisch bereit stellt. Lassen sie uns zu Lehrzwecken probieren,
2657 das alles von Grund auf selbst zu entwickeln. Irgendwann werden sie das sowieso machen
2658 müssen, nämlich genau dann, wenn ein vorgegebenes Beispiel ihre
2659 Anforderungen nicht angemessen erfüllt.}
2661 Dem gewünschten Ergebnis am nächsten kommt sicher das
2662 @ref{SATB-Partitur und automatischer Klavierauszug} -- wir müssen diese
2663 Vorlage aber so anpassen, dass die Noten für das Klavier nicht
2664 automatisch aus dem Chorsatz generiert werden. Die Variablen
2665 für die Noten und den Text des Chores sind in Ordnung, wir
2666 müssen nun noch Variablen für die Klaviernoten hinzufügen.
2668 Die Reihenfolge, in welcher die Variablen in das Chorsystem
2669 (@code{ChoirStaff}) eingefügt werden, entspricht nicht der
2670 in dem Beispiel oben. Wir wollen sie so sortieren, dass die
2671 Texte jeder Stimme direkt unter den Noten notiert werden.
2672 Alle Stimmen sollten als @code{\voiceOne} notiert werden,
2673 welches die Standardeinstellung ist; wir können also die
2674 @code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
2675 den Schlüssel für den Tenor ändern. Die Methode, mit der
2676 der Text den Stimmen zugewiesen wird, ist uns noch nicht
2677 bekannt, darum wollen wir sie umändern auf die Weise, die
2678 wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
2679 zu den Systemen hinzu.
2681 Damit erhalten wir folgenden @code{ChoirStaff}:
2685 \new Staff = "sopranos" <<
2686 \set Staff.instrumentName = #"Soprano"
2687 \new Voice = "sopranos" @{
2692 \new Lyrics \lyricsto "sopranos" @{
2695 \new Staff = "altos" <<
2696 \set Staff.instrumentName = #"Alto"
2697 \new Voice = "altos" @{
2702 \new Lyrics \lyricsto "altos" @{
2705 \new Staff = "tenors" <<
2706 \set Staff.instrumentName = #"Tenor"
2707 \new Voice = "tenors" @{
2712 \new Lyrics \lyricsto "tenors" @{
2715 \new Staff = "basses" <<
2716 \set Staff.instrumentName = #"Bass"
2717 \new Voice = "basses" @{
2722 \new Lyrics \lyricsto "basses" @{
2728 Als nächstes müssen wir das Klaviersystem bearbeiten.
2729 Das ist einfach: wir nehmen einfach den Klavierteil
2730 aus der @qq{Piano solo}-Vorlage:
2734 \set PianoStaff.instrumentName = #"Piano "
2735 \new Staff = "upper" \upper
2736 \new Staff = "lower" \lower
2741 und fügen die Variablen @code{upper}
2742 und @code{lower} hinzu.
2744 Das Chorsystem und das Pianosystem müssen mit
2745 spitzen Klammern kombiniert werden, damit beide
2746 übereinander erscheinen:
2749 << % ChoirStaff und PianoStaff parallel kombinieren
2751 \new Staff = "sopranos" <<
2752 \new Voice = "sopranos" @{
2757 \new Lyrics \lyricsto "sopranos" @{
2760 \new Staff = "altos" <<
2761 \new Voice = "altos" @{
2766 \new Lyrics \lyricsto "altos" @{
2769 \new Staff = "tenors" <<
2770 \clef "G_8" % tenor clef
2771 \new Voice = "tenors" @{
2776 \new Lyrics \lyricsto "tenors" @{
2779 \new Staff = "basses" <<
2781 \new Voice = "basses" @{
2786 \new Lyrics \lyricsto "basses" @{
2792 \set PianoStaff.instrumentName = #"Piano"
2793 \new Staff = "upper" \upper
2794 \new Staff = "lower" \lower
2799 Alles miteinander kombiniert und mit den Noten für drei
2800 Takte sieht unser Beispiel nun so aus:
2802 @lilypond[quote,verbatim,ragged-right,addversion]
2803 global = { \key d \major \time 4/4 }
2804 sopranoMusic = \relative {
2806 r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2808 sopranoWords = \lyricmode {
2809 Wor -- thy | is the lamb | that was slain |
2811 altoMusic = \relative {
2813 r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2815 altoWords = \sopranoWords
2816 tenorMusic = \relative {
2818 r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2820 tenorWords = \sopranoWords
2821 bassMusic = \relative {
2823 r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2825 bassWords = \sopranoWords
2829 r4 <a' d fis>2 <a e' a>4 |
2830 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2831 <g cis g'>4 <a d fis> <a cis e>2 |
2836 <d, d'>4 <d d'>2 <cis cis'>4 |
2837 <b b'>4. <b' b'>8 <fis fis'>2 |
2838 <e e'>4 <d d'> <a' a'>2 |
2842 << % combine ChoirStaff and PianoStaff in parallel
2844 \new Staff = "sopranos" <<
2845 \set Staff.instrumentName = #"Soprano"
2846 \new Voice = "sopranos" {
2851 \new Lyrics \lyricsto "sopranos" {
2854 \new Staff = "altos" <<
2855 \set Staff.instrumentName = #"Alto"
2856 \new Voice = "altos" {
2861 \new Lyrics \lyricsto "altos" {
2864 \new Staff = "tenors" <<
2865 \set Staff.instrumentName = #"Tenor"
2866 \new Voice = "tenors" {
2871 \new Lyrics \lyricsto "tenors" {
2874 \new Staff = "basses" <<
2875 \set Staff.instrumentName = #"Bass"
2876 \new Voice = "basses" {
2881 \new Lyrics \lyricsto "basses" {
2887 \set PianoStaff.instrumentName = #"Piano "
2888 \new Staff = "upper" \upper
2889 \new Staff = "lower" \lower
2896 @node Eine Partitur von Grund auf erstellen
2897 @subsection Eine Partitur von Grund auf erstellen
2898 @translationof Building a score from scratch
2900 @cindex Template, eigene schreiben
2901 @cindex Vorlagen, eigene schreiben
2902 @cindex eigene Vorlagen erstellen
2903 @cindex Erstellen von eigenen Vorlagen
2904 @cindex Schreiben von eigenen Vorlagen
2906 Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
2907 gewonnen haben, werden Sie vielleicht feststellen, dass es
2908 manchmal einfacher ist, von Grund auf anzufangen, anstatt
2909 die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
2910 auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
2911 die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
2912 wie man die Partitur für ein Orgelpräludium von Grund auf
2915 Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt.
2916 Hier notieren wir den Titel, den Namen des Komponisten usw.
2917 Danach schreiben wir die einzelnen Variablen auf und
2918 schließlich am Ende die eigentliche Partitur, den
2919 @code{\score}-Abschnitt. Beginnen wir mit einer groben
2920 Struktur, in die wir dann die Einzelheiten nach und nach
2923 Als Beispiel benutzen wir zwei Takte aus dem Orgelpräludium
2924 @notation{Jesu, meine Freude} von J. S. Bach, notiert
2925 für zwei Manuale und Pedal. Sie können die Noten am Ende
2926 dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
2927 das untere und das Pedalsystem jeweils nur eine. Wir
2928 brauchen also vier Variablen für die Noten und eine, um
2929 Taktart und Tonart zu definieren.
2932 \version @w{"@version{}"}
2934 title = "Jesu, meine Freude"
2935 composer = "J S Bach"
2937 keyTime = @{ \key c \minor \time 4/4 @}
2938 ManualOneVoiceOneMusic = @{ s1 @}
2939 ManualOneVoiceTwoMusic = @{ s1 @}
2940 ManualTwoMusic = @{ s1 @}
2941 PedalOrganMusic = @{ s1 @}
2947 Im Moment haben wir eine unsichtbare
2948 Note in jede Stimme eingesetzt (@code{s1}).
2949 Die Noten werden später hinzugefügt.
2951 Als nächstes schauen wir uns an, was in die
2952 Partitur (die @code{\score}-Umgebung)
2953 kommt. Dazu wird einfach die Notensystemstruktur
2954 konstruiert, die wir benötigen. Orgelmusik
2955 wird meistens auf drei Systemen notiert, eins
2956 für jedes Manual und ein drittes für die Pedalnoten.
2957 Die Systeme für die Manuale werden mit einer
2958 geschweiften Klammer verbunden, wir
2959 benutzen hier also ein @code{PianoStaff}.
2960 Das erste Manualsystem braucht zwei Stimmen,
2961 das zweite nur eine.
2965 \new Staff = "ManualOne" <<
2967 \ManualOneVoiceOneMusic
2970 \ManualOneVoiceTwoMusic
2972 >> % Ende ManualOne Systemkontext
2973 \new Staff = "ManualTwo" <<
2977 >> % Ende ManualTwo Systemkontext
2978 >> % Ende PianoStaff Kontext
2981 Als nächstes soll das System für das Pedal hinzugefügt
2982 werden. Es soll unter das Klaviersystem gesetzt
2983 werden, aber muss gleichzeitig mit ihm erscheinen.
2984 Wir brauchen also spitze Klammern um beide
2985 Definitionen. Sie wegzulassen würde eine Fehlermeldung
2986 in der Log-Datei hervorrufen. Das ist ein sehr
2987 häufiger Fehler, der wohl auch Ihnen früher
2988 oder später unterläuft. Sie können das fertige
2989 Beispiel am Ende des Abschnittes kopieren und die
2990 Klammern entfernen, um zu sehen, wie die
2991 Fehlermeldungen aussehen könnten, die Sie in solch
2992 einem Fall erhalten würden.
2995 << % PianoStaff and Pedal Staff must be simultaneous
2997 \new Staff = "ManualOne" <<
2999 \ManualOneVoiceOneMusic
3002 \ManualOneVoiceTwoMusic
3004 >> % end ManualOne Staff context
3005 \new Staff = "ManualTwo" <<
3009 >> % end ManualTwo Staff context
3010 >> % end PianoStaff context
3011 \new Staff = "PedalOrgan" <<
3019 Es ist nicht notwendig, die simultane Konstruktion
3020 @code{<< @dots{} >>} innerhalb des zweiten Manualsystems
3021 und des Pedalsystems zu benutzen, denn sie enthalten
3022 nur eine Stimme. Andererseits schadet es nichts, sie
3023 zu schreiben, und es ist eine gute Angewohnheit, immer
3024 die spitzen Klammern nach einem @code{\new Staff} zu
3025 schreiben, wenn mehr als eine Stimme vorkommen könnten.
3026 Für Stimmen (@code{Voice}) dagegen gilt genau das
3027 Gegenteil: eine neue Stimme sollte immer von
3028 geschweiften Klammern (@code{@{ @dots{} @}}) gefolgt
3029 werden, falls Sie ihre Noten in mehrere Variable aufteilen,
3030 die nacheinander gesetzt werden sollen.
3032 Fügen wir also diese Struktur zu der @code{\score}-Umgebung
3033 hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
3034 wollen wir die richtigen Schlüssel setzen und die Richtung der
3035 Hälse und Bögen in den Stimmen des oberen Systems
3036 kontrollieren, indem die obere Stimme ein
3037 @code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
3038 erhält. Die Taktart und Tonart werden mit unserer fertigen
3039 Variable @code{\keyTime} eingefügt.
3043 << % PianoStaff and Pedal Staff must be simultaneous
3045 \new Staff = "ManualOne" <<
3046 \keyTime % set key and time signature
3050 \ManualOneVoiceOneMusic
3054 \ManualOneVoiceTwoMusic
3056 >> % end ManualOne Staff context
3057 \new Staff = "ManualTwo" <<
3063 >> % end ManualTwo Staff context
3064 >> % end PianoStaff context
3065 \new Staff = "PedalOrgan" <<
3071 >> % end PedalOrgan Staff
3073 @} % end Score context
3076 @cindex Spreizbarkeit von Systemen
3077 @cindex Dehnung von Systemen, vertikal
3078 @cindex Systeme, vertikales Dehnen
3080 Das Layout des Orgelsystems oben ist fast perfekt, es hat jedoch einen kleinen
3081 Fehler, den man nicht bemerken kann, wenn man nur ein einzelnes System
3082 betrachtet: Der Abstand des Pedalsystems zum System der linken Hand
3083 sollte in etwa der gleiche sein wie der Abstand zwischen den Systemen
3084 der linken und rechten Hand. Die Dehnbarkeit von Systemen in einem
3085 Klaviersystem (@code{PianoStaff})-Kontext ist beschränkt (sodass der
3086 Abstand zwischen den Systemen der linken und rechten Hand nicht zu groß
3087 wird), und das Pedalsystem sollte sich genauso verhalten.
3089 @cindex Untereigenschaft
3090 @cindex sub-properties
3091 @cindex graphische Objekte
3093 @cindex Objekte, graphische
3095 Die Spreizbarkeit von Systemen kann mit der @code{staff-staff-spacing}-Eigenschaft
3096 des @code{VerticalAxisGroup}-@qq{graphischen Objekts} (üblicherweise als
3097 @qq{Grob} innerhalb der LilyPond-Dokumentation bezeichnet) kontrolliert
3098 werden. An dieser Stelle brauchen Sie sich um die Details nicht zu
3099 sorgen, sie werden später erklärt. Sehr Neugierige können sich den
3100 Abschnitt @ruser{Grundlagen zum Verändern von Eigenschaften} anschauen. Im Moment
3101 kann man nicht nur die @code{strechability} (Spreizbarkeit)-Untereigenschaft verändern,
3102 darum müssen hier auch die anderen Untereigenschaften kopiert werden. Die
3103 Standardeinstellungen dieser Untereigenschaften finden sich in der Datei
3104 @file{scm/define-grobs.scm} in den Definitionen für den
3105 @code{VerticalAxisGroup}-Grob. Der Wert für @code{strechability} wird aus
3106 der Definition für das Klaviersystem (@code{PianoStaff}) entnommen
3107 (in der Datei @file{ly/engraver-init.ly}), damit die Werte identisch
3112 << % PianoStaff and Pedal Staff must be simultaneous
3114 \new Staff = "ManualOne" <<
3115 \keyTime % set key and time signature
3119 \ManualOneVoiceOneMusic
3123 \ManualOneVoiceTwoMusic
3125 >> % end ManualOne Staff context
3126 \new Staff = "ManualTwo" \with @{
3127 \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
3134 >> % end ManualTwo Staff context
3135 >> % end PianoStaff context
3136 \new Staff = "PedalOrgan" <<
3142 >> % end PedalOrgan Staff
3144 @} % end Score context
3146 Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
3147 Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
3148 in einem System sich ändern kann. Jetzt müssen wir nur noch
3149 die Noten einfügen und alle Teile zusammenfügen, indem wir
3150 die Variablen mit einem Backslash in die Partitur einbauen.
3152 @lilypond[quote,verbatim,ragged-right,addversion]
3154 title = "Jesu, meine Freude"
3155 composer = "J S Bach"
3157 keyTime = { \key c \minor \time 4/4 }
3158 ManualOneVoiceOneMusic = \relative {
3162 ManualOneVoiceTwoMusic = \relative {
3163 ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
3164 8 c4 b8 c8. g16 c b c d |
3166 ManualTwoMusic = \relative {
3167 c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
3168 f16 ees f d g aes g f ees d ees8~ 16 f ees d |
3170 PedalOrganMusic = \relative {
3171 r8 c16 d ees d ees8~ 16 a, b g c b c8 |
3172 r16 g ees f g f g8 c,2 |
3176 << % PianoStaff and Pedal Staff must be simultaneous
3178 \new Staff = "ManualOne" <<
3179 \keyTime % set key and time signature
3183 \ManualOneVoiceOneMusic
3187 \ManualOneVoiceTwoMusic
3189 >> % end ManualOne Staff context
3190 \new Staff = "ManualTwo" \with {
3191 \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
3198 >> % end ManualTwo Staff context
3199 >> % end PianoStaff context
3200 \new Staff = "PedalOrgan" <<
3206 >> % end PedalOrgan Staff context
3208 } % end Score context
3216 @node Tipparbeit durch Variablen und Funktionen einsparen
3217 @subsection Tipparbeit durch Variablen und Funktionen einsparen
3218 @translationof Saving typing with variables and functions
3222 Bis jetzt wurde immer derartige Notation vorgestellt:
3224 @lilypond[quote,verbatim,ragged-right]
3225 hornNotes = \relative { c''4 b dis c }
3234 Sie können sich vorstellen, dass das etwa für minimalistische
3235 Musik sehr nützlich sein könnte:
3237 @lilypond[quote,verbatim,ragged-right]
3238 fragmentA = \relative { a'4 a8. b16 }
3239 fragmentB = \relative { a'8. gis16 ees4 }
3241 violin = \new Staff {
3242 \fragmentA \fragmentA |
3243 \fragmentB \fragmentA |
3253 Diese Variablen (die man auch als Makros oder Benutzer-Befehl
3254 bezeichnet) können jedoch auch für eigene Anpassungen eingesetzt
3257 @lilypond[quote,verbatim,ragged-right]
3258 dolce = \markup { \italic \bold dolce }
3260 centreText = { \once \override TextScript.self-alignment-X = #CENTER }
3263 \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
3266 violin = \relative {
3268 c''4._\dolce b8 a8 g a b |
3270 c4.^"hi there!" d8 e f g d |
3271 c4.\fthenp b8 c4 c-. |
3282 Derartige Variablen sind offensichtlich sehr nützlich, sich
3283 Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu
3284 benutzen, wenn man sie nur einmal benutzen will, denn sie
3285 vereinfachen die Struktur einer Datei sehr stark. Hier das
3286 vorige Beispiel ohne jede Benutzung von Variablen. Es ist
3287 sehr viel schwerer lesbar, besonders die letzte Zeile.
3290 violin = \relative @{
3292 c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
3293 \once \override TextScript.self-alignment-X = #CENTER
3294 c4.^"hi there!" d8 e f g d |
3296 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
3303 Bisher haben wir vor allem statische Ersetzungen betrachtet:
3304 wenn LilyPond etwa @code{\centreText} sieht, wird es ersetzt mit
3305 all dem Code, mit dem wir es definiert haben (also alles,
3306 was sich rechts von @code{centreText=} befindet).
3308 LilyPond kann auch nicht-statische Ersetzungen bewältigen. Man
3309 kann sie sich als Funktionen vorstellen.
3311 @lilypond[quote,verbatim,ragged-right]
3313 #(define-music-function
3317 \once \override TextScript.padding = #padding
3321 c''4^"piu mosso" b a b
3323 c4^"piu mosso" b a b
3325 c4^"piu mosso" b a b
3329 Die Benutzung von Variablen ist auch eine gute Möglichkeit,
3330 Arbeit zu vermeiden, wenn sich einmal die Syntax von LilyPond
3331 ändern sollte (siehe auch @rprogram{Dateien mit convert-ly aktualisieren}).
3332 Wenn man eine einzige Definition hat (wie etwa @code{\dolce}),
3333 die für alle Vorkommen in der Notation eingesetzt wird, muss
3334 man auch nur einmal diese Definition aktualisieren, anstatt
3335 dass man sie in jeder @file{.ly}-Datei einzeln ändern müsste.
3338 @node Partituren und Stimmen
3339 @subsection Partituren und Stimmen
3340 @translationof Scores and parts
3342 In Orchestermusik werden alle Noten zweimal gedruckt. Einmal
3343 in einer Stimme für die Spieler, und einmal ein der Partitur
3344 für den Dirigenten. Variablen können benutzen, um sich doppelte
3345 Arbeit zu ersparen. Die Noten werden nur einmal eingegeben und
3346 in einer Variable abgelegt. Der Inhalt der Variable wird dann
3347 benutzt um sowohl die Stimme als auch die Partitur zu erstellen.
3349 Es bietet sich an, die Noten in einer extra Datei abzulegen.
3350 Nehmen wir an, dass die Datei @file{horn-music.ly} folgende
3351 Noten eines Horn/@/Fagott-Duos enthält:
3354 hornNotes = \relative @{
3356 r4 f8 a | cis4 f | e4 d |
3361 Eine Stimme wird also erstellt, indem man folgendes in eine
3365 \include "horn-music.ly"
3368 instrument = "Horn in F"
3372 \transpose f c' \hornNotes
3379 \include "horn-music.ly"
3383 ersetzt den Inhalt von @file{horn-music.ly} an dieser Position
3384 in der Datei, sodass @code{hornNotes} im Folgenden definiert
3385 ist. Der Befehl @code{\transpose f@tie{}c'} zeigt an, dass
3386 das Argument (@code{\hornNotes}) eine Quinte nach oben transponiert
3387 werden soll. Klingendes @code{f} wird als @code{c'}, wie es
3388 die Stimmung eines normalen F-Hornes verlangt. Die Transposition
3389 kann in folgender Notenausgabe gesehen werden:
3391 @lilypond[quote,ragged-right]
3392 \transpose f c' \relative {
3394 r4 f8 a | cis4 f | e4 d |
3398 In Ensemblestücken sind manche Stimmen für viele Takte stumm.
3399 Das wird durch eine besondere Pause notiert, die Mehrtaktpause.
3400 Sie wird mit einem großen @code{R} notiert, gefolgt von der
3401 Dauer (@code{1}@tie{}für eine Ganze, @code{2}@tie{}für eine Halbe usw.). Indem man die Dauern multipliziert, kann man auch
3402 längere Dauern erzeugen. Diese Pause etwa dauert drei Takte
3409 Wenn die Stimme gesetzt wird, sollen Mehrtaktpausen zusammen gefasst werden.
3410 Zu diesem Zweck gibt es eine Musik Funktion:
3413 \compressMMRests @{ ... @}
3416 Angewendet auf @code{hornNotes} erhält man:
3418 @lilypond[quote,ragged-right]
3419 \compressMMRests \transpose f c' \relative {
3422 r4 f8 a | cis4 f | e4 d |
3426 Die Partitur wird erstellt, indem man alle Noten kombiniert.
3427 Angenommen, die andere Stimme ist in @code{bassoonNotes}
3428 in der Datei @file{bassoon-music.ly} definiert, würde eine
3429 Partitur erstellt mit:
3432 \include "bassoon-music.ly"
3433 \include "horn-music.ly"
3436 \new Staff \hornNotes
3437 \new Staff \bassoonNotes
3444 @lilypond[quote,ragged-right]
3450 r4 f8 a | cis4 f | e4 d |
3455 r4 d,8 f | gis4 c | b4 bes |
3456 a8 e f4 | g4 d | gis4 f |
3462 Handbuch zum Lernen:
3463 @ref{Stücke durch Variablen organisieren}.
3466 @ruser{Transponieren},
3467 @ruser{Orchesterstimmen erstellen},
3468 @ruser{Ganztaktpausen},
3469 @ruser{LilyPond-Dateien einfügen}.