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
202 Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten.
203 Jeder davon wird als eigenständige Partitur interpretiert, die
204 allerdings alle in dieselbe Ausgabedatei platziert werden.
205 Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird
206 implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer
207 einzigen @file{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
208 dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
209 gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
214 Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
215 PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
216 setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen
217 impliziten @code{\book}-Blocks.
219 Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück
220 innerhalb des @code{\book}-Blocks.
222 @cindex Layout-Umgebung, Platzierung
223 @cindex Platzierung von layout-Umgebung
225 Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
226 @code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein
227 @code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf
228 diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block
229 außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit
230 erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf
231 alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks.
233 Nähere Details finden sich im Abschnitt @ruser{Mehrere Partituren in einem Buch}.
238 Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen, wie
239 auch in @ref{Stücke durch Variablen organisieren} gezeigt.
240 Alle Vorlagen verwenden diese Möglichkeit:
243 melodie = \relative @{
252 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
253 von @code{melodie} (alles nach dem Gleichheitszeichen) und
254 fügt ihn immer dann ein, wenn ein @code{\melodie}
255 vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
256 gut @code{melodie}, @code{GLOBAL}, @code{rechteHandKlavier},
257 oder @code{foofoobarbaz} heißen.
258 Als Variablenname kann fast jeder beliebige Name benutzt werden,
259 allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche,
260 Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl
261 lauten. Für mehr Information siehe
262 @ref{Tipparbeit durch Variablen und Funktionen einsparen}. Die genauen
263 Einschränkungen sind beschrieben in @ruser{Die Dateistruktur}.
267 Eine vollständige Definition des Eingabeformats findet sich in
268 @ruser{Die Dateistruktur}.
271 @node Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
272 @subsection Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
273 @translationof Score is a (single) compound musical expression
279 @cindex zusammengesetzter Musikausdruck
280 @cindex Musikausdruck, zusammengesetzter
283 Im vorigen Kapitel, @ref{Einführung in die Dateistruktur von LilyPond},
284 wurde die allgemeine Struktur einer LilyPond-Quelldatei
285 beschrieben. Aber anscheinend haben wir die wichtigste
286 Frage ausgelassen, nämlich wie man herausfindet, was nach
287 dem @code{\score} geschrieben werden soll.
289 In Wirklichkeit ist das aber gar kein Geheimnis. Diese
290 Zeile ist die Antwort:
293 @emph{Ein @code{\score} Block enthält immer genau einen musikalischen Ausdruck.}
297 Vielleicht wollen Sie noch einmal
298 @ref{Musikalische Ausdrücke erklärt} überfliegen. In diesem
299 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke
300 aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
301 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung
302 und betrachten, wie sich ein großer musikalischer Ausdruck
303 zerlegen lässt. Zur Einfachheit soll nur ein Sänger und Klavier
304 in unserem Beispiel eingesetzt werden. Wir brauchen
305 keine Systemgruppe (StaffGroup), die einfach nur bewirkt,
306 dass die Systeme mit einer Klammer zusammengefasst werden; sie
307 wird also entfernt. Wir @emph{brauchen} aber einen Sänger und ein Klavier.
312 \new Staff = "Sänger" <<
314 \new PianoStaff = "Klavier" <<
321 Hier wurden die Systeme (Staff) benannt: @qq{Sänger} und
322 @qq{Klavier}. Das ist zwar nicht direkt notwendig,
323 aber es ist gut, sich diese Schreibweise anzugewöhnen, damit man
324 immer sofort erkennt, um welches System es sich handelt.
326 Zur Erinnerung: mit @code{<< @dots{} >>} (an Stelle von @code{@{ @dots{} @}})
327 werden Noten gleichzeitig gesetzt.
328 Dadurch werden Vokalstimme und Klaviersystem übereinander
329 ausgegeben. Die @code{<< @dots{} >>}-Konstruktion ist für das
330 Sänger-System nicht notwendig, wenn hier nur die Noten einer
331 einzigen Stimme eingefügt werden sollen, aber @code{<< @dots{} >>}
332 anstelle von geschwungenen Klammern sind notwendig,
333 sobald mehr als eine Stimme oder etwa eine Notenstimme und
334 Gesangstext eingefügt werden sollen. In unserem Fall soll eine
335 Stimme mit Gesangstext notiert werden, sodass die spitzen Klammern
336 benötigt werden. Die Noten sollen erst später hinzugefügt werden,
337 hier also erst mal nur ein paar Platzhalternoten und Text. Wenn
338 Sie sich nicht erinnern, wie man Gesangstext notiert, lesen
339 Sie noch einmal @code{\addlyrics} in @ref{Setting simple songs}.
342 @lilypond[verbatim,quote,ragged-right]
345 \new Staff = "Sänger" <<
346 \new Voice = "Singstimme" { c'1 }
349 \new PianoStaff = "Klavier" <<
350 \new Staff = "oben" { c'1 }
351 \new Staff = "unten" { c'1 }
358 Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
359 für einen Sänger, in dem sich wieder eine Stimme (engl. voice)
360 befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
361 gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
362 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new
363 PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
364 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der
365 dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und
367 für die linke) erstellt werden, auch wenn das untere System noch
368 einen Bassschlüssel erhalten muss.
370 Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
371 geschweiften Klammern neben @code{\new Voice = "Singstimme"}
376 r4 d''8\noBeam g, c4 r
381 schreiben. Aber wenn man seine Datei so direkt schreibt, wird
382 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu
383 verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
384 (oder Variablen) zu verwenden. Sie wurden zu Beginn des vorigen
385 Abschnitts erklärt, erinnern Sie sich? Damit wir sicher gehen
386 können, dass der Inhalt der @code{text}-Variable als Gesangstext
387 interpretiert wird, wird ihm @code{\lyricmode} voran gesetzt. Wie
388 @code{\addlyrics} wird hiermit in den Eingabemodus für Gesangstext
389 gewechselt. Ohne diesen Befehl würde LilyPond versuchen, den Inhalt
390 der Variable als Noten zu interpretieren und dabei eine Menge
391 Fehler produzieren. (Einige andere Eingabemodi sind außerdem noch
392 verfügbar, siehe @ruser{Input modes}.)
394 Also haben wir, wenn wir ein paar Noten und einen Bassschlüssel
395 für die linke Hand hinzufügen, folgendes Beispiel:
398 @lilypond[verbatim,quote,ragged-right]
399 melodie = \relative { r4 d''8\noBeam g, c4 r }
400 text = \lyricmode { And God said, }
401 oben = \relative { <g' d g,>2~ <g d g,> }
402 unten = \relative { b,2 e }
406 \new Staff = "Sänger" <<
407 \new Voice = "Singstimme" { \melodie }
410 \new PianoStaff = "Klavier" <<
411 \new Staff = "oben" { \oben }
412 \new Staff = "unten" {
422 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung
423 sollte man langsam und sorgfältig vorgehen. Am besten fängt
424 man mit dem größten Gebilde an und definiert dann die darin
425 enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
426 genau mit den Einzügen zu sein, so dass jede Zeile, die
427 der gleichen Ebene angehört, wirklich horizontal an der
428 gleichen Stelle beginnt.
432 Benutzerhandbuch: @ruser{Struktur einer Partitur}.
435 @node Musikalische Ausdrücke ineinander verschachteln
436 @subsection Musikalische Ausdrücke ineinander verschachteln
437 @translationof Nesting music expressions
439 @cindex Notenzeilen, temporäre
441 @cindex temporäre Notenzeilen
443 Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleich
444 zu Beginn erzeugt werden -- sie können auch zu einem späteren
445 Zeitpunkt eingeführt werden. Das ist vor allem nützlich, um
446 @rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kurzes Beispiel,
447 wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt
450 @lilypond[verbatim,quote,ragged-right]
467 Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie
468 auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
469 der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
470 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
472 @cindex Notenzeile, Positionierung
473 @cindex Positionierung einer Notenzeile
475 Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
479 @lilypond[verbatim,quote,ragged-right]
480 \new Staff = "Hauptzeile" {
487 alignAboveContext = #"Hauptzeile"
495 Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
496 genauer erklärt wird. Damit kann das Standardverhalten einer
497 einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
498 dass die neue Notenzeile oberhalb der bereits existierenden Zeile
499 mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt
500 standardmäßig unterhalb.
504 Ossia werden oft ohne Notenschlüssel und Taktangabe gedruckt, meist
505 auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich
506 auch in LilyPond möglich, benötigt aber Befehle, die bisher noch
507 nicht vorgestellt wurden. Siehe @ref{Größe von Objekten}
508 und @ruser{Ossia-Systeme}.
511 @node Über die Nicht-Schachtelung von Klammern und Bindebögen
512 @subsection Über die Nicht-Schachtelung von Klammern und Bindebögen
513 @translationof On the un-nestedness of brackets and ties
515 @cindex Klammern, geschachtelt
516 @cindex Schachtelung von Klammern
517 @cindex Klammer-Typen
519 Sie haben bisher zahlreiche verschiedene Arten von Klammern
520 und Klammer-artigen Konstruktionen beim Schreiben von Musik mit
521 LilyPond kennengelernt. Diese folgen verschiedenen Regeln, die zu
522 Beginn vielleicht verwirrend wirken. Bevor die genauen Regeln
523 vorgestellt werden, wollen wir die diversen Klammerarten und Arten
524 von Klammer-artigen Konstrukten kurz rekapitulieren:
526 @c attempt to force this onto a new page
528 @multitable @columnfractions .3 .7
531 @item @code{@{ @dots{} @}}
532 @tab Umschließt ein sequenzielles Musiksegment
533 @item @code{< @dots{} >}
534 @tab Umschließt die Noten eines Akkords
535 @item @code{<< @dots{} >>}
536 @tab Umschließt parallele Musikausdrücke
537 @item @code{( @dots{} )}
538 @tab Markiert den Beginn und das Ende eines Haltebogens
539 @item @code{\( @dots{} \)}
540 @tab Markiert den Beginn und das Ende eines Phasierungsbogens
541 @item @code{[ @dots{} ]}
542 @tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
545 Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
546 erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
547 Haltebögen (durch eine Tilde @code{~} markiert),
548 N-tolen (als @code{\tuplet x/y @{ @dots{} @}} geschrieben) und
549 Vorschlagnoten (als @code{\grace@{ @dots{} @}} notiert).
551 Außerhalb von LilyPond fordert die übliche Benutzung von
552 Klammern, dass die entsprechenden Arten korrekt verschachtelt
553 werden, wie z.B. in @code{<< [ @{ ( @dots{} ) @} ] >>}. Die
554 schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
555 wie die öffnenden Klammern vor. Dies ist auch in LilyPond
556 ein @strong{Muss} für die drei Klammerarten, die in obiger
557 Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie
558 müssen korrekt geschachtelt werden.
559 Die restlichen Klammer-artigen Konstruktionen (durch @q{Markiert}
560 in der Tabelle oben beschrieben), die Haltebögen und die Triolen
562 den anderen Klammern oder Klammer-artigen Konstrukten @strong{nicht}
563 unbedingt korrekt geschachtelt werden. Tatsächlich sind sie auch
564 keine Klammern in dem Sinn, dass sie etwas umschließen, sondern
565 viel mehr Indikatoren, an welcher Stelle ein bestimmtes
566 musikalisches Objekt beginnt oder endet.
568 So kann also z.B. einen Phrasierungsbogen vor einem manuellen
569 Balken beginn, jedoch schon vor dem Ende des Balkens enden.
570 Dies mag zwar musikalisch wenig Sinn ergeben, ist aber in LilyPond
573 @lilypond[quote,verbatim,ragged-right]
574 \relative { g'8\( a b[ c b\) a] g4 }
577 Im Allgemeinen können die verschiedenen Klammerarten,
578 Klammer-artigen Konstruktionen, Haltebögen,
579 Triolen und Vorschlagnoten beliebig kombiniert werden.
580 Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht
581 (Zeile 1), eine Bindebogen, der ebenfalls in eine Triole
582 reicht (Zeile 2), einen Balken und einen Bindebogen in eine Triole,
583 ein Haltebogen, der über zwei Triolen läuft, sowie einen
584 Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4).
586 @lilypond[quote,verbatim,ragged-right]
588 r16[ g' \tuplet 3/2 { r16 e'8] }
589 g,16( a \tuplet 3/2 { b16 d) e }
590 g,8[( a \tuplet 3/2 { b8 d) e~] } |
591 \tuplet 5/4 { e32\( a, b d e } a4.\)
596 @node Voice enthält Noten
597 @section Voice enthält Noten
598 @translationof Voices contain music
600 Sänger brauchen Stimmen zum Singen, und LilyPond braucht sie auch:
601 in der Tat sind alle Noten für alle Instrumente in einer Partitur
602 innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegende Prinzip
607 * Stimmen explizit beginnen::
611 @node Ich höre Stimmen
612 @subsection Ich höre Stimmen
613 @translationof I'm hearing Voices
617 @cindex mehrere Stimmen
618 @cindex Stimmen, mehrere
619 @cindex Voice context
620 @cindex context, Voice
621 @cindex Kontext, Stimme
622 @cindex Stimmenkontext
623 @cindex gleichzeitige Noten
624 @cindex Stimmen versus Akkorde
625 @cindex Akkorde versus Stimmen
626 @cindex Noten gleichzeitig
628 Die grundlegenden und innersten Ebenen in einer LilyPond-Partitur
629 werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice}
630 (Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
631 manchmal auch als @qq{layer} (Ebene) bezeichnet.
633 Tatsächlich ist die Voice-Ebene die einzige, die wirklich Noten
634 enthalten kann. Wenn kein Voice-Kontext explizit erstellt wird,
635 wird er automatisch erstellt, wie am Anfang dieses Kapitels
636 gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
637 Note gleichzeitig spielen. Noten für solche Instrumente brauchen nur
638 eine einzige Stimme. Instrumente, die
639 mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen
640 dagegen oft mehrere Stimmen, um die verschiedenen gleichzeitig
641 erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen
644 Eine einzelne Stimme kann natürlich auch vielen Noten in einem Akkord
645 enthalten -- wann also braucht man dann mehrere Stimmen? Schauen wir
646 uns zuerst dieses Beispiel mit vier Akkorden an:
648 @lilypond[quote,verbatim,ragged-right]
651 <d' g>4 <d fis> <d a'> <d g>
655 Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern
656 @code{< @dots{} >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
657 nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
658 eine Achtelnote sein, gefolgt von einer Achtelnote G (als Durchgangsnote
659 hin zum A)? Hier haben wir also zwei Noten, die zur gleichen Zeit
660 beginnen, aber unterschiedliche Dauern haben: die Viertelnote D und die
661 Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie
662 nicht schreiben, weil alle Noten in einem Akkord die gleiche Länge besitzen
663 müssen. Sie können auch nicht als aufeinander folgende Noten geschrieben
664 werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
667 Wie aber wird das in der LilyPond-Syntax ausgedrückt?
672 Die einfachste Art, Fragmente mit mehr als einer Stimme auf einem System
673 zu notieren, ist, die Stimmen nacheinander (jeweils mit den Klammern
674 @code{@{ @dots{} @}}) zu schreiben und dann mit den spitzen Klammern
675 (@code{<< @dots{} >>}) simultan zu kombinieren. Die beiden Fragmente müssen
676 zusätzlich noch mit zwei Backslash-Zeichen (@code{\\}) voneinander
677 getrennt werden, damit sie als zwei unterschiedliche Stimmen erkannt
678 werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
679 werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
680 den Noten um hauptsächlich homophone Musik handelt, in der hier und da
681 polyphone Stellen vorkommen.
683 So sieht es aus, wenn die Akkorde in zwei Stimmen aufgeteilt werden
684 und zur Durchgangsnote noch ein Bogen hinzugefügt wird:
686 @lilypond[quote,verbatim,ragged-right]
689 % Voice = "1" Voice = "2"
690 << { g'4 fis8( g) a4 g } \\ { d4 d d d } >>
694 Beachten Sie, dass die Hälse der zweiten Stimme nun nach unten zeigen.
696 Hier ein anderes Beispiel:
698 @lilypond[quote,verbatim,ragged-right]
701 % Voice = "1" Voice = "2"
702 << { r4 g' g4. a8 } \\ { d,2 d4 g } >> |
703 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
704 << { a2. r4 } \\ { fis2. s4 } >> |
708 Es ist nicht notwendig, für jeden Takt eine eigene
709 @code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
710 Noten pro Takt kann es die Quelldatei besser lesbar machen, aber
711 wenn in einem Takt viele Noten vorkommen, kann man die gesamten Stimmen
712 separat schreiben, wie hier:
714 @lilypond[quote,verbatim,ragged-right]
717 \relative { % Voice = "1"
722 \relative { % Voice = "2"
731 @cindex Voice, Benennung
732 @cindex Voices crossing brackets
733 @cindex Legatobögen crossing brackets
734 @cindex Bindebögen crossing brackets
736 Dieses Beispiel hat nur zwei Stimmen, aber die gleiche Konstruktion kann
737 angewendet werden, wenn man drei oder mehr Stimmen hat, indem man weitere
738 Backslash-Trenner hinzufügt.
740 Die Stimmenkontexte tragen die Namen @code{"1"}, @code{"2"} usw. Der erste
741 Kontext stellt die @qq{äußeren} Stimmen ein, die höchste Stimme im
742 Kontext @code{"1"} und die tiefste Stimme im Kontext @code{"2"}. Die
743 inneren Stimmen kommen in die Kontexte @code{"3"} und @code{"4"}. In
744 jedem dieser Kontexte wird die vertikale Ausrichtung von Bögen, Hälsen,
745 Dynamik usw. entsprechend eingestellt.
747 @lilypond[quote,verbatim]
748 \new Staff \relative {
751 % Voice = "1" Voice = "2" Voice = "3"
752 << { g4 f e } \\ { r8 e4 d c8~ } >> |
753 << { d2 e } \\ { c8 b16 a b8 g~ 2 } \\ { s4 b c2 } >> |
757 Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten
758 außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
759 uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
760 können nur Noten in der selben Stimmen miteinander verbinden und können
761 also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
762 gilt, dass parallele Stimmen aus eigenen simultanen Konstruktionen auf
763 dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
764 Stimmenkontext verknüpfte Eigenschaften erstrecken sich auf alle
765 simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
766 Beachten Sie, dass Änderungen in einer Stimme sich nicht auf die anderen
767 Stimmen erstrecken, aber sie sind weiterhin in der selben Stimme vorhanden,
768 auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
769 über die gleiche Stimme in zwei Konstrukten verteilt werden können, wie
770 hier an der blauen Dreieckstimme gezeigt.
772 @lilypond[quote,verbatim]
773 \new Staff \relative {
788 % Voice 1 wird fortgesetzt
791 % Voice 2 wird fortgesetzt
802 @funindex \voiceOneStyle
803 @funindex \voiceTwoStyle
804 @funindex \voiceThreeStyle
805 @funindex \voiceFourStyle
806 @funindex \voiceNeutralStyle
808 Die Befehle @code{\voiceXXXStyle} sind vor allem dazu da, um in
809 pädagogischen Dokumenten wie diesem hier angewandt zu werden.
810 Sie verändern die Farbe des Notenkopfes, des Halses und des Balkens, und
811 zusätzlich die Form des Notenkopfes, damit die einzelnen Stimmen
812 einfach auseinander gehalten werden können. Die erste Stimme ist als
813 rote Raute definiert, die zweite Stimme als blaue Dreiecke, die dritte
814 Stimme als grüne Kreise mit Kreuz und die vierte Stimme (die hier nicht
815 benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
816 nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
817 werden, wie Befehle wie diese vom Benutzer selber erstellt werden
818 können. Siehe auch @ref{Sichtbarkeit und Farbe von Objekten} und
819 @ref{Variablen für Layout Anpassungen einsetzen}.
821 @cindex Polyphonie und relativer Notationsmodus
822 @cindex relativer Notationsmodus und Polyphonie
824 Polyphonie ändert nicht die Verhältnisse der Noten innerhalb eines
825 @code{\relative}-Blocks. Jede Note wird weiterhin relativ zu
826 der vorherigen Note errechnet, oder relativ zur ersten Note des vorigen
827 Akkords. So ist etwa hier
830 \relative @{ noteA << < noteB noteC > \\ noteD >> noteE @}
834 @code{NoteB} bezüglich @code{NoteA} @*
835 @code{NoteC} bezüglich @code{NoteB}, nicht @code{noteA}; @*
836 @code{NoteD} bezüglich @code{NoteB}, nicht @code{NoteA} oder
838 @code{NoteE} bezüglich @code{NoteD}, nicht @code{NoteA} errechnet.
840 Eine andere Möglichkeit ist, den @code{\relative}-Befehl vor jede
841 Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
845 \relative @{ NoteA @dots{} @}
847 \relative @{ < NoteB NoteC > @dots{} @}
849 \relative @{ NoteD @dots{} @}
851 \relative @{ NoteE @dots{} @}
854 Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück
855 analysieren. Hier die Noten der ersten zwei Takte von Chopins
856 @notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
857 und dem nächsten Kapitel benutzt werden, um verschiedene Techniken,
858 Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
859 Punkt alles in folgendem Code, das Ihnen seltsam vorkommt, und konzentrieren
860 Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
861 in späteren Abschnitten erklärt werden.
863 @c The following should appear as music without code
864 @lilypond[quote,ragged-right]
865 \new Staff \relative {
871 % Ignoriere diese Befehle vorerst - sie werden in Kap. 4 erklärt
872 \once \override NoteColumn.force-hshift = #0
874 \once \override NoteColumn.force-hshift = #0.5
880 \override NoteColumn.force-hshift = #0
888 Die Richtung der Hälse wird oft benutzt, um anzuzeigen, dass zwei
889 gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
890 oberen Noten nach oben und die Hälse aller unteren Noten nach unten.
891 Das ist der erste Anhaltspunkt, dass mehr als eine Stimme benötigt
894 Aber die wirkliche Notwendigkeit für mehrere Stimmen tritt erst
895 dann auf, wenn unterschiedliche Noten gleichzeitig erklingen, aber
896 unterschiedliche Dauern besitzen. Schauen Sie sich die Noten
897 auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
898 Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
899 nicht als Akkord geschrieben werden, denn alle Noten in einem Akkord
900 besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
901 geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
902 Taktabschnitt benötigt drei Stimmen, und normalerweise schreibt man
903 drei Stimmen für den ganzen Takt, wie im Beispiel unten zu sehen ist;
904 hier sind unterschiedliche Köpfe und Farben für die verschiedenen Stimmen
905 eingesetzt. Noch einmal: der Quellcode für dieses Beispiel wird später
906 erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht
909 @c The following should appear as music without code
910 @c The three voice styles should be defined in -init
911 @lilypond[quote,ragged-right]
912 \new Staff \relative {
921 % Ignoriere diese Befehle vorerst - sie werden in Kap. 4 erklärt
922 \once \override NoteColumn.force-hshift = #0
924 \once \override NoteColumn.force-hshift = #0.5
927 \\ % Keine Voice 3 (wir wollen Hälse nach unten)
930 \override NoteColumn.force-hshift = #0
939 Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen
940 werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
941 wir es gelernt haben, indem wir mit der @code{<< \\ >>}-Konstruktion
942 die drei Stimmen des ersten Taktes notieren:
944 @lilypond[quote,verbatim,ragged-right]
945 \new Staff \relative {
948 { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ { aes'2 f4 fes }
954 @cindex Hals nach unten
955 @cindex Hals nach oben
956 @cindex Notenhals, Richtung
957 @cindex Richtung des Notenhalses
958 @cindex Notenhalsrichtung
959 @cindex Stimmen und Notenhalsrichtung
960 @cindex Notenhalsrichtung in Stimmen
962 Die Richtung des Notenhalses wird automatisch zugewiesen; die ungeraden
963 Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
964 für die Stimmen 1 und 2 stimmen, aber die Hälse in der dritten Stimme
965 sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
966 korrigieren, indem wir die dritte Stimme einfach auslassen und die
967 Noten in die vierte Stimme verschieben. Das wird einfach vorgenommen,
968 indem noch ein Paar @code{\\}-Stimmen hinzugefügt wird.
970 @lilypond[quote,verbatim,ragged-right]
971 \new Staff \relative {
977 \\ % Auslassen von Voice 3
986 Wie zu sehen ist, ändert das die Richtung der Hälse, aber die horizontale
987 Ausrichtung der Noten ist nicht so, wie wir sie wollen. LilyPond
988 verschiebt die inneren Noten wenn sie oder ihre Hälse mit den äußeren
989 Stimmen zusammenstoßen würden, aber das ist nicht richtig für Klaviermusik.
990 In anderen Situationen können die Verschiebungen von LilyPond nicht
991 ausreichend sein, um Überlappungen aufzulösen. LilyPond stellt verschiedene
992 Möglichkeiten zur Verfügung, um die horizontale Ausrichtung von Noten
993 zu beeinflussen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
994 anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt
995 auf; siehe @code{force-hshift}-Eigenschaft in
996 @ref{Überlappende Notation in Ordnung bringen}.
998 @warning{Gesangstext und Strecker (wie etwa Bögen, Crescendo-Klammern usw.) können
999 nicht von einer Stimme zur anderen erstellt werden.}
1003 Notationsreferenz: @ruser{Mehrere Stimmen}.
1006 @node Stimmen explizit beginnen
1007 @subsection Stimmen explizit beginnen
1008 @translationof Explicitly instantiating voices
1012 @funindex \voiceThree
1013 @funindex \voiceFour
1015 @funindex \new Voice
1016 @cindex Voice context, erstellen von
1017 @cindex Stimmenkontexte, erstellen von
1019 Voice-Kontexte können auch manuell innerhalb
1020 eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen
1021 @code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme
1022 entsprechendes Verhalten von vertikaler Verschiebung und Richtung
1023 von Hälsen und anderen Objekten hinzugefügt werden. In längeren
1024 Partituren können die Stimmen damit besser auseinander gehalten
1027 Die @code{<< \\ >>}-Konstruktion, die wir im vorigen Abschnitt
1033 << @{ e'4 f g a @} \\ @{ c,4 d e f @} >>
1043 \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @}
1044 \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @}
1048 Beide würden folgendes Notenbild erzeugen:
1050 @c The following example should not display the code
1051 @lilypond[ragged-right,quote]
1053 \new Voice = "1" { \voiceOne \relative { e'4 f g a } }
1054 \new Voice = "2" { \voiceTwo \relative { c'4 d e f } }
1058 @cindex Stimmen, mehrere zu einer zusammenführen
1059 @cindex eine Stimme wiederherstellen
1061 Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen,
1062 Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen.
1063 @code{\voiceOne} und @code{\voiceThree} lassen diese Objekte
1064 nach oben zeigen, @code{\voiceTwo} und @code{\voiceFour}
1065 dagegen lassen sie abwärts zeigen. Diese Befehle erzeugen eine
1066 horizontale Verschiebung, wenn es erforderlich ist, um Zusammenstöße
1067 zu vermeiden. Der Befehl
1068 @code{\oneVoice} stellt wieder auf das normale Verhalten um.
1070 Schauen wir uns in einigen einfachen Beispielen an, was genau
1071 die Befehle @code{\oneVoice}, @code{\voiceOne} und @code{voiceTwo}
1072 mit Text, Bögen und Dynamikbezeichnung anstellen:
1074 @lilypond[quote,ragged-right,verbatim]
1076 % Default behavior or behavior after \oneVoice
1077 c'4 d8~ 8 e4( f | g4 a) b-> c |
1081 @lilypond[quote,ragged-right,verbatim]
1084 c'4 d8~ 8 e4( f | g4 a) b-> c |
1086 c,4 d8~ 8 e4( f | g4 a) b-> c |
1090 @lilypond[quote,ragged-right,verbatim]
1093 c'4 d8~ 8 e4( f | g4 a) b-> c |
1095 c,4 d8~ 8 e4( f | g4 a) b-> c |
1099 Schauen wir und nun drei unterschiedliche Arten an, den gleichen
1100 Abschnitt polyphoner Musik zu notieren, jede Art mit ihren
1101 Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
1102 das Beispiel vom vorherigen Abschnitt.
1104 Ein Ausdruck, der direkt innerhalb einer @code{<< >>}-Umgebung
1105 auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche
1106 Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also
1107 eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die
1108 farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in
1109 einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
1110 Phrasierungsbogen ober sie gesetzt werden.
1112 @lilypond[quote,ragged-right,verbatim]
1113 \new Staff \relative {
1115 % This section is homophonic
1117 % Start simultaneous section of three voices
1119 % Continue the main voice in parallel
1120 { g4 f e | d2 e) | }
1121 % Initiate second voice
1123 % Set stems, etc., down
1125 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1127 % Initiate third voice
1129 % Set stems, etc, up
1137 @cindex Verschachteln von musikalischen Ausdrücken
1138 @cindex Verschachteln von gleichzeitigen Ausdrücken
1139 @cindex Ausdrücke, Verschachteln von
1140 @cindex Stimmen, temporär
1141 @cindex Stimmen, Verschachteln von
1142 @cindex Verschachteln von Stimmen
1143 @cindex temporäre Stimmen
1145 Tiefer verschachtelte polyphone Konstrukte sind möglich, und
1146 wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg
1147 sein, Noten zu setzen:
1149 @lilypond[quote,ragged-right,verbatim]
1150 \new Staff \relative {
1153 { g4 f e | d2 e) | }
1158 { c8 b16 a b8 g~ 2 | }
1169 @cindex Platzhalternoten
1170 @cindex unsichtbare Noten
1171 @cindex Noten verstecken
1173 Diese Methode, neue Stimmen kurzzeitig zu verschachteln, bietet sich
1174 an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
1175 aber die ganze Partitur polyphon ist, ist es meistens klarer, direkt
1176 unterschiedliche Stimmen über die gesamte Partitur hinweg einzusetzen.
1177 Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen,
1178 an denen die Stimme nicht auftaucht, wie etwa hier:
1180 @lilypond[quote,ragged-right,verbatim]
1181 \new Staff \relative <<
1182 % Initiate first voice
1185 c'16^( d e f g4 f e | d2 e) |
1187 % Initiate second voice
1189 % Set stems, etc, down
1191 s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
1193 % Initiate third voice
1195 % Set stems, etc, up
1202 @subsubheading Notenkolumnen
1204 @cindex Notenkolumne
1205 @cindex Notenkollision
1206 @cindex Zusammenstöße von Noten
1207 @cindex Kollisionen von Noten
1208 @cindex Vertikale Position
1209 @cindex shift-Befehle
1210 @cindex Verschieben von Noten
1214 @funindex \shiftOnnn
1220 Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen
1221 Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal
1222 auch mehreren Kolumnen gesetzt, um die Noten am Überschneiden zu
1223 hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
1224 eine eigene Kolumne, und ein stimmenabhängiger Verschiebunsbefehl (engl.
1225 shift) wird eingesetzt, wenn eine Kollision auftreten könnte.
1226 Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
1227 Stimme nach rechts verschoben, relativ gesehen zum D der ersten Stimme,
1228 und im letzten Akkord wird das C der dritten Stimme auch nach
1229 rechts verschoben im Verhältnis zu den anderen Stimmen.
1231 Die Befehle @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} und
1232 @code{\shiftOff} bestimmen den Grad, zu dem Noten und Akkorde
1233 verschoben werden sollen, wenn sich sonst eine Kollision nicht
1234 vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
1235 Stimmen (also normalerweise Stimme 1 und 2) @code{\shiftOff}
1236 eingestellt haben, während für die inneren Stimmen (3 und 4)
1237 @code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
1238 auftritt, werden Stimmen 1 und 3 nach rechts und Stimmen 2 und 4
1239 nach links verschoben.
1241 @code{\shiftOnn} und @code{\shiftOnnn} definieren weitere
1242 Verschiebungsebenen, die man kurzzeitig anwählen kann, um
1243 Zusammenstöße in komplexen Situationen aufzulösen, siehe auch
1244 @ref{Beispiel aus dem Leben}.
1246 Eine Notenkolumne kann nur eine Note (oder einen Akkord) von
1247 einer Stimme mit Hälsen nach oben und eine Note (oder einen
1248 Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
1249 Noten von zwei Stimmen mit den Hälsen in die gleiche Richtung
1250 an der selben Stelle auftreten und in beiden Stimmen ist
1251 keine Verschiebung oder die gleiche Verschiebungsebene
1252 definiert, wird die Fehlermeldung
1253 @qq{diese Stimme benötigt einen @code{@bs{}voiceXx} oder
1254 @code{@bs{}shiftXx} Befehl}
1259 Handbuch zum Lernen:
1260 @ref{Verschieben von Objekten}.
1263 @ruser{Mehrere Stimmen}.
1266 @node Stimmen und Text
1267 @subsection Stimmen und Text
1268 @translationof Voices and vocals
1270 Die Notation von Vokalmusik ihre eigene Schwierigkeit, nämlich
1271 die Kombination von zwei Ausdrücken: den Noten und dem Text.
1272 Achtung: Der Gesangstext wird auf Englisch @qq{lyrics} genannt.
1275 @funindex \new Lyrics
1278 @cindex Lyrics context, erstellen
1279 @cindex Gesangstext, Verbindung mit Noten
1281 Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet,
1282 mit dem einfache Partituren gut erstellt werden können.
1283 Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
1284 komplexer wird, muss der Gesangstext mit einem neuen
1285 @code{Lyrics}-Kontext begonnen werden (mit dem Befehl
1286 @code{\new Lyrics}) und durch den Befehl @code{\lyricsto@{@}}
1287 mit einer bestimmten Stimme verknüpft werden, indem die
1288 Bezeichnung der Stimme benutzt wird.
1290 @lilypond[quote,verbatim]
1292 \new Voice = "one" {
1296 c''4 b8. a16 | g4. f8 | e4 d | c2 |
1299 \new Lyrics \lyricsto "one" {
1300 No more let | sins and | sor -- rows | grow. |
1305 Beachten Sie, dass der Notentext nur mit einem @code{Voice}-Kontext
1306 verknüpft werden kann, nicht mit einem @code{Staff}-Kontext.
1307 In diesem Fall also müssen Sie ein System (@code{Staff}) und
1308 eine Stimme (@code{Voice}) explizit erstellen, damit alles
1311 @cindex Gesangstext und Balken
1312 @cindex Text und Balken
1313 @cindex Balken und Text
1314 @funindex \autoBeamOff
1316 Die automatischen Balken, die LilyPond in der Standardeinstellung
1317 setzt, eignen sich sehr gut für instrumentale Musik, aber nicht
1318 so gut für Musik mit Text, wo man entweder gar keine Balken
1319 benutzt oder sie einsetzt, um Melismen zu verdeutlichen.
1320 Im Beispiel oben wird deshalb der Befehl @code{\autoBeamOff}
1321 eingesetzt um die automatischen Balken (engl. beam) auszuschalten.
1323 @funindex \new ChoirStaff
1324 @funindex \lyricmode
1325 @funindex ChoirStaff
1327 @cindex Vokalpartitur, Aufbau
1328 @cindex Chorpartitur, Aufbau
1330 Wir wollen das frühere Beispiel von @notation{Judas Maccabæus}
1331 benutzen, um diese flexiblere Technik für Gesangstexte
1332 zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
1333 Variablen eingesetzt werden, um den Text und die Noten
1334 von der Partiturstruktur zu trennen. Es wurde zusätzlich
1335 eine Chorpartiturklammer hinzugefügt. Der Gesangstext muss mit
1336 @code{\lyricmode} eingegeben werden, damit er als Text und
1337 nicht als Noten interpretiert werden kann.
1339 @lilypond[quote,verbatim]
1340 global = { \key f \major \time 6/8 \partial 8 }
1342 SopOneMusic = \relative {
1343 c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4
1345 SopOneLyrics = \lyricmode {
1346 Let | flee -- cy flocks the | hills a -- dorn, __
1348 SopTwoMusic = \relative {
1349 r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
1351 SopTwoLyrics = \lyricmode {
1352 Let | flee -- cy flocks the | hills a -- dorn,
1358 \new Voice = "SopOne" {
1362 \new Lyrics \lyricsto "SopOne" {
1367 \new Voice = "SopTwo" {
1371 \new Lyrics \lyricsto "SopTwo" {
1379 Dies ist die Grundstruktur für alle Chorpartituren. Mehr
1380 Systeme können hinzugefügt werden, wenn sie gebraucht werden, mehr
1381 Stimmen können zu jedem System hinzugefügt werden, mehr
1382 Strophen können zum Text hinzugefügt werden, und schließlich
1383 können die Variablen schnell in eine eigene Datei verschoben
1384 werden, wenn sie zu lang werden sollten.
1386 @cindex Choralnotation
1387 @cindex Hymnus-Notation
1388 @cindex SATB-Partitur
1389 @cindex mehrere Strophen
1390 @cindex Strophen, mehrere
1391 @cindex Choral mit mehreren Strophen
1393 Hier ein Beispiel der ersten Zeile eines Chorals mit vier
1394 Strophen für gemischten Chor. In diesem Fall ist der Text
1395 für alle vier Stimmen identisch. Beachten Sie, wie die
1396 Variablen eingesetzt werden, um Inhalt (Noten und Text) und Form
1397 (die Partitur) voneinander zu trennen. Eine Variable wurde
1398 eingesetzt, um die Elemente, die auf beiden Systemen auftauchen,
1399 aufzunehmen, nämlich Taktart und Tonart. Solch eine
1400 Variable wird oft auch mit @qq{global} bezeichnet.
1402 @lilypond[quote,verbatim]
1403 keyTime = { \key c \major \time 4/4 \partial 4 }
1405 SopMusic = \relative { c'4 | e4. e8 g4 g | a4 a g }
1406 AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e }
1407 TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 }
1408 BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 }
1411 \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
1413 \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
1415 \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
1417 \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
1423 \new Voice = "Sop" { \voiceOne \keyTime \SopMusic }
1424 \new Voice = "Alto" { \voiceTwo \AltoMusic }
1425 \new Lyrics \lyricsto "Sop" { \VerseOne }
1426 \new Lyrics \lyricsto "Sop" { \VerseTwo }
1427 \new Lyrics \lyricsto "Sop" { \VerseThree }
1428 \new Lyrics \lyricsto "Sop" { \VerseFour }
1432 \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
1433 \new Voice = "Bass" { \voiceTwo \BassMusic }
1441 Notationsreferenz: @ruser{Notation von Gesang}.
1444 @node Kontexte und Engraver
1445 @section Kontexte und Engraver
1446 @translationof Contexts and engravers
1448 Kontexte und Engraver (@qq{Stempel}) sind in den vorherigen
1449 Abschnitten schon aufgetaucht; hier wollen wir uns ihnen
1450 nun etwas ausführlicher widmen, denn sie sind sehr
1451 wichtig, um Feineinstellungen in der LilyPond-Notenausgabe
1452 vornehmen zu können.
1455 * Was sind Kontexte?::
1456 * Kontexte erstellen::
1457 * Was sind Engraver?::
1458 * Kontexteigenschaften verändern::
1459 * Engraver hinzufügen und entfernen::
1462 @node Was sind Kontexte?
1463 @subsection Was sind Kontexte?
1464 @translationof Contexts explained
1466 @cindex Kontexte erklärt
1468 Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
1470 die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
1471 etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
1473 @lilypond[quote,verbatim]
1474 \relative { cis''4 cis2. | a4 a2. | }
1477 Der Quellcode ist sehr kurz und knapp, während in der
1478 Notenausgabe Taktstriche, Vorzeichen, ein Schlüssel und
1479 eine Taktart hinzugefügt wurden. Während LilyPond
1480 den Eingabetext @emph{interpretiert}, wird die
1481 musikalische Information von rechts nach links gelesen,
1482 in etwa, wie man eine Partitur von links nach
1483 rechts liest. Während das Programm den Code liest,
1484 merkt es sich, wo sich Taktgrenzen befinden und
1485 für welche Tonhöhen Versetzungszeichen gesetzt werden
1486 müssen. Diese Information muss auf mehreren Ebenen
1487 gehandhabt werden, denn Versetzungszeichen etwa
1488 beziehen sich nur auf ein System, Taktstriche dagegen
1489 üblicherweise auf die gesamte Partitur.
1491 Innerhalb von LilyPond sind diese Regeln und
1492 Informationshappen in @emph{Kontexten} (engl.
1493 contexts) gruppiert. Der @code{Voice} (Stimmen)-Kontext
1494 wurde schon vorgestellt. Daneben
1495 gibt es noch die @code{Staff} (Notensystem-) und
1496 @code{Score} (Partitur)-Kontexte. Kontexte sind
1497 hierarchisch geschichtet um die hierarchische
1498 Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
1499 kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
1500 und ein @code{Score}-Kontext kann viele
1501 @code{Staff}-Kontexte beinhalten.
1504 @sourceimage{context-example,5cm,,}
1507 Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
1508 zu erzwingen, bestimmte Notationsobjekte zu erstellen und
1509 verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
1510 zum Beispiel kann eine Vorzeichenregel einführen und der
1511 @code{Staff}-Kontext hält diese Regel dann aufrecht, um
1512 einzuordnen, ob ein Versetzungszeichen gesetzt werden
1515 Ein anderes Beispiel: die Synchronisation der Taktstriche ist
1516 standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
1517 die Systeme einer Partitur aber unterschiedliche Taktarten
1518 enthalten, etwa in einer polymetrischen Partitur mit
1519 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
1520 der @code{Score}- und @code{Staff}-Kontexte verändert werden.
1522 In einfachen Partituren werden die Kontexte implizit erstellt,
1523 und es kann sein, dass Sie sich dessen gar nicht bewusst sind.
1524 Für etwas größere Projekte, etwa mit vielen Systemen, müssen
1525 die Kontexte aber explizit erstellt werden, um sicher zu gehen,
1526 dass man auch wirklich die erwünschte Zahl an Systemen in der
1527 richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
1528 Notation gesetzt werden sollen, ist es üblich, die existierenden
1529 Kontexte zu verändern oder gar gänzlich neue zu definieren.
1531 Zusätzlich zu den @code{Score,} @code{Staff} und
1532 @code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
1533 der Partitur- und Systemebene liegen und Gruppen von Systemen
1534 kontrollieren. Das sind beispielsweise der
1535 @code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
1536 alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
1537 für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
1539 Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren
1541 Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben
1542 begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich
1544 @code{GregorianTranscriptionStaff}.
1548 Notationsreferenz: @ruser{Was sind Kontexte?}.
1551 @node Kontexte erstellen
1552 @subsection Kontexte erstellen
1553 @translationof Creating contexts
1556 @cindex Neue Kontexte
1557 @cindex Erstellen von Kontexten
1558 @cindex Kontexte, Erstellen
1560 In einer Eingabedatei enthält eine @code{Score}-Umgebung (einen
1562 dem Befehl @code{\score} eingeleitet wird, nur einen einzigen
1563 musikalischen Ausdruck und mit ihm verknüpft eine Ausgabedefinition
1564 (entweder eine @code{\layout}- oder eine @code{\midi}-Umgebung).
1565 Üblicherweise wird der @code{Score}-Kontext automatisch von
1566 LilyPond erstellt, wenn der musikalische Ausdruck interpretiert
1569 Wenn nur ein System vorhanden ist, kann man es ruhig
1570 LilyPond überlassen, auch die @code{Voice}- und @code{Staff}-Kontexte
1571 zu erstellen, aber für komplexere Partituren ist es notwendig,
1572 sie mit einem Befehl zu erstellen. Der einfachste Befehl
1573 hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck
1574 vorangestellt, etwa so:
1577 \new @var{Typ} @var{musikalischer Ausdruck}
1581 wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
1582 @code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
1583 beginnt, den @var{muskalischen Ausdruck} innerhalb dieses
1584 Kontexts auszuwerten.
1586 @warning{Der @bs{}@code{new Score}-Befehl sollte nicht benutzt werden,
1587 weil der Partitur-(Score)-Kontext der obersten Ebene
1588 normalerweise automatisch erstellt wird, wenn der musikalische Ausdruck
1589 innerhalb der @code{\score}-Umgebung interpretiert wird. Standard-Werte
1590 von Kontexteigenschaften, die für einen bestimmten @code{Score} gelten
1591 sollen, können innerhalb der @bs{}@code{layout}-Umgebung definiert werden.
1592 Siehe @ref{Kontexteigenschaften verändern}.}
1594 Wir haben schon viele explizite Beispiel gesehen, in denen
1595 neue @code{Staff}- und @code{Voice}-Kontexte erstellt wurden, aber
1596 um noch einmal ins Gedächtnis zu rufen, wie diese Befehle benutzt
1597 werden, hier ein kommentiertes Beispiel aus dem richtigen Leben:
1599 @lilypond[quote,verbatim,ragged-right]
1600 \score { % start of single compound music expression
1601 << % start of simultaneous staves section
1603 \new Staff { % create RH staff
1606 \new Voice { % create voice for RH notes
1607 \relative { % start of RH notes
1613 \new Staff << % create LH staff; needs two simultaneous voices
1616 \new Voice { % create LH voice one
1618 \relative { % start of LH voice one notes
1619 g8 <bes d> ees, <g c> |
1620 g8 <bes d> ees, <g c> |
1621 } % end of LH voice one notes
1622 } % end of LH voice one
1623 \new Voice { % create LH voice two
1625 \relative { % start of LH voice two notes
1628 } % end of LH voice two notes
1629 } % end of LH voice two
1630 >> % end of LH staff
1631 >> % end of simultaneous staves section
1632 } % end of single compound music expression
1635 (Beachten Sie, dass wir hier alle Zeilen, die eine neue
1636 Umgebung entweder mit einer geschweiften Klammer (@code{@{})
1637 oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
1638 jeweils zwei Leerzeichen, und die entsprechenden
1639 schließenden Klammern mit der gleichen Anzahl Leerzeichen
1640 eingerückt werden. Dies ist nicht erforderlich, es wird aber
1641 zu einem großen Teil die nicht passenden Klammerpaar-Fehler
1642 eliminieren und ist darum sehr empfohlen. Es macht es
1643 möglich, die Struktur einer Partitur auf einen Blick zu
1644 verstehen, und alle nicht passenden Klammern
1645 erschließen sich schnell. Beachten Sie auch, dass das
1646 untere Notensystem mit eckigen Klammern erstellt wird,
1647 denn innerhalb dieses Systems brauchen wir zwei Stimmen,
1648 um die Noten darzustellen. Das obere System braucht
1649 nur einen einzigen musikalischen Ausdruck und ist deshalb
1650 von geschweiften Klammern umschlossen.)
1652 @cindex Kontexte, Benennung
1653 @cindex Benennung von Kontexten
1655 Der @code{\new}-Befehl kann einem Kontext auch einen
1656 Namen zur Identifikation geben, um ihn von anderen Kontexten des
1657 selben Typs zu unterscheiden:
1660 \new @var{Typ} = @var{Name} @var{musikalischer Ausdruck}
1663 Beachten Sie den Unterschied zwischen der Bezeichnung des
1664 Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
1665 Namen, der aus beliebigen Buchstaben bestehen kann
1666 und vom Benutzer frei erfunden werden kann. Zahlen und
1667 Leerzeichen können auch benutzt werden, in dem Fall
1668 muss der Name aber von doppelten Anführungszeichen
1669 umgeben werden, also etwa
1670 @code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
1672 benutzt, um später auf genau diesen spezifischen Kontext
1673 zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
1674 zu Gesangstexten angewandt, siehe @ref{Stimmen und Text}.
1678 Notationsreferenz: @ruser{Kontexte erstellen und referenzieren}.
1681 @node Was sind Engraver?
1682 @subsection Was sind Engraver?
1683 @translationof Engravers explained
1686 @cindex Stempel (Engraver)
1688 Jedes Zeichen des fertigen Notensatzes von LilyPond wird
1689 von einem @code{Engraver} (Stempel) produziert. Es gibt
1690 also einen Engraver, der die Systeme erstellt, einen, der die
1691 Notenköpfe ausgibt, einen für die Hälse, einen für die
1692 Balken usw. Insgesamt gibt es über 120 Engraver! Zum
1693 Glück braucht man für die meisten Partituren nur ein
1694 paar Engraver, und für einfache Partituren muss man eigentlich
1695 überhaupt nichts über sie wissen.
1697 Engraver leben und wirken aus den Kontexten heraus. Engraver
1698 wie der @code{Metronome_mark_engraver}, dessen Aktion
1699 und Ausgabe sich auf die gesamte Partitur bezieht, wirken
1700 in der obersten Kontextebene -- dem @code{Score}-Kontext.
1702 Der @code{Clef_engraver} (Schlüssel-Stempel) und der
1703 @code{Key_engraver} (Vorzeichen-Stempel) finden sich in
1704 jedem @code{Staff}-Kontext, denn unterschiedliche Systeme
1705 könnten unterschiedliche Tonarten und Notenschlüssel
1708 Der @code{Note_heads_engraver} (Notenkopf-Stempel) und der
1709 @code{Stem_engraver} (Hals-Stempel) befinden sich in jedem
1710 @code{Voice}-Kontext, der untersten Kontextebene.
1712 Jeder Engraver bearbeitet die bestimmten Objekte, die mit
1713 seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
1714 dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
1715 die mit Kontexten assoziiert sind, können verändert werden,
1716 um die Wirkungsweise des Engravers oder das Erscheinungsbild
1717 der von ihm produzierten Elemente in der Partitur zu ändern.
1719 Alle Engraver haben zusammengesetzte Bezeichnung, die aus
1720 den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
1721 das erste Wort hat einen Großbuchstaben, und die restlichen
1722 Wörter werden mit einem Unterstrich angefügt. Ein
1723 @code{Staff_symbol_engraver} verantwortet also die Erstellung
1724 der Notenlinien, ein @code{Clef_engraver} entscheidet über die
1725 Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
1726 wird gleichzeitig die Referenztonhöhe auf dem Notensystem festgelegt.
1728 Hier die meistgebräuchlichen Engraver mit ihrer Funktion.
1729 Sie werden sehen, dass es mit etwas Englischkenntnissen
1730 einfach ist, die Funktion eines Engravers von seiner Bezeichnung
1733 @multitable @columnfractions .3 .7
1736 @item Accidental_engraver
1737 @tab Erstellt Versetzungszeichen, vorgeschlagene und Warnversetzungszeichen.
1739 @tab Erstellt Balken.
1741 @tab Erstellt Notenschlüssel.
1742 @item Completion_heads_engraver
1743 @tab Teilt Noten in kleiner Werte, wenn sie über den Taktstrich reichen.
1744 @item Dynamic_engraver
1745 @tab Erstellt Dynamik-Klammern und Dynamik-Texte.
1746 @item Forbid_line_break_engraver
1747 @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist.
1749 @tab Erstellt die Vorzeichen.
1750 @item Metronome_mark_engraver
1751 @tab Erstellt Metronom-Bezeichnungen.
1752 @item Note_heads_engraver
1753 @tab Erstellt Notenköpfe.
1755 @tab Erstellt Pausen.
1756 @item Staff_symbol_engraver
1757 @tab Erstellt die (standardmäßig) fünf Notenlinien des Systems.
1759 @tab Erstellt die Notenhälse und Tremolos mit einem Hals.
1760 @item Time_signature_engraver
1761 @tab Erstellt die Taktartbezeichnung.
1766 Es soll später gezeigt werden, wie die LilyPond-Ausgabe
1767 verändert werden kann, indem die Wirkungsweise der
1768 Engraver beeinflusst wird.
1772 Referenz der Interna: @rinternals{Engravers and Performers}.
1775 @node Kontexteigenschaften verändern
1776 @subsection Kontexteigenschaften verändern
1777 @translationof Modifying context properties
1779 @cindex Kontext-Eigenschaften, Verändern
1780 @cindex Eigenschaften von Kontexten
1781 @cindex Verändern von Kontext-Eigenschaften
1787 Kontexte sind dafür verantwortlich, die Werte bestimmter
1788 Kontext-@emph{Eigenschaften} zu speichern. Viele davon
1789 können verändert werden, um die Interpretation der
1790 Eingabe zu beeinflussen und die Ausgabe zu verändern.
1791 Kontexte werden mit dem @code{\set}-Befehl geändert.
1795 \set @emph{KontextBezeichnung}.@emph{EigenschaftsBezeichnung} = #@emph{Wert}
1799 verwendet, wobei @emph{KontextBezeichnung} üblicherweise
1801 @code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
1802 ausgelassen werden; in diesem Fall wird der aktuelle
1803 Kontext (üblicherweise @code{Voice}) angenommen.
1805 Die Bezeichnung von Kontexten-Eigenschaften besteht
1806 aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
1807 verbunden sind. Alle außer dem ersten werden am Anfang
1808 groß geschrieben. Hier einige Beispiele der gebräuchlichsten
1809 Kontext-Eigenschaften. Es gibt sehr viel mehr.
1811 @c attempt to force this onto a new page
1813 @multitable @columnfractions .25 .15 .45 .15
1814 @headitem Eigenschaftsbezeichnung
1819 @tab boolescher Wert
1820 @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt.
1821 @tab @code{#t}, @code{#f}
1822 @item currentBarNumber
1824 @tab Setzt die aktuelle Taktnummer.
1827 @tab boolescher Wert
1828 @tab Wenn wahr, werden Legatobögen über und unter die Noten gesetzt.
1829 @tab @code{#t}, @code{#f}
1830 @item instrumentName
1832 @tab Setzt die Instrumentenbezeichnung am Anfang eines Systems.
1833 @tab @code{"Cello I"}
1836 @tab Vergrößert oder verkleinert die Schriftgröße.
1840 @tab Setzt den Text zu Beginn einer Strophe.
1845 Ein boolescher Wert ist entweder wahr (@code{#t})
1846 oder falsch (@code{#f}),
1847 ein Integer eine positive ganze Zahl, ein Real (reelle Zahl) eine positive
1848 oder negative Dezimalzahl, und Text wird in doppelte
1849 Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
1850 das Vorkommen des Rautenzeichens
1851 (@code{#}) an unterschiedlichen Stellen: als Teil eines
1852 booleschen Wertes vor dem @code{t} oder @code{f}, aber
1853 auch vor einem @emph{Wert} in der
1854 @code{\set}-Befehlskette. Wenn ein boolescher Wert
1855 eingegeben werden soll, braucht man also zwei
1856 Rautenzeichen, z. B. @code{##t}.
1858 @cindex Eigenschaften in Kontexten
1859 @cindex Veränderung von Eigenschaften in Kontexten
1861 Bevor eine Eigenschaft geändert werden kann, muss man wissen,
1862 in welchem Kontext sie sich befindet. Manchmal versteht das
1863 sich von selbst, aber in einigen Fällen kann es zunächst
1864 unverständlich erscheinen. Wenn der falsche Kontext angegeben
1865 wird, wird keine Fehlermeldung produziert, aber die
1866 Veränderung wird einfach nicht ausgeführt.
1867 @code{instrumentName} befindet sich offensichtlich innerhalb
1868 von einem @code{Staff}-Kontext, denn das Notensystem soll
1869 benannt werden. In dem folgenden Beispiel erhält das erste
1870 System korrekt die Instrumentenbezeichnung, das zweite aber
1871 nicht, weil der Kontext ausgelassen wurde.
1873 @lilypond[quote,verbatim,ragged-right]
1875 \new Staff \relative {
1876 \set Staff.instrumentName = #"Soprano"
1879 \new Staff \relative {
1880 \set instrumentName = #"Alto" % Wrong!
1886 Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
1887 zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
1888 im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
1889 Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
1890 gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
1893 Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
1894 falsch geschrieben wird und die Änderung also nicht ausgeführt werden
1895 kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
1896 mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
1897 wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
1898 zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
1899 die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
1900 Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
1901 fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
1902 unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
1903 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
1904 Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
1905 @rinternals{Tunable context properties}, oder
1906 @rinternals{Contexts}.
1908 Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
1909 in einem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
1910 können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
1911 @code{extraNatural}-Eigenschaft dienen, die zusätzliche Auflösungszeichen
1912 setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
1913 Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch)
1914 gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
1915 sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
1916 auf alle darin enthaltenen Systeme aus.
1918 Das also bewirkt, dass die zusätzlichen Auflösungszeichen in einem System
1921 @lilypond[quote,verbatim,ragged-right]
1923 \new Staff \relative {
1926 \new Staff \relative {
1927 \set Staff.extraNatural = ##f
1934 während dies dazu dient, sie in allen Systemen auszuschalten:
1936 @lilypond[quote,verbatim,ragged-right]
1938 \new Staff \relative {
1941 \new Staff \relative {
1942 \set Score.extraNatural = ##f
1948 Ein anderes Beispiel ist die Eigenschaft @code{clefTransposition}:
1949 wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort
1950 der Wert der Tranponierung in allen aktuellen Systemen und wird
1951 auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt.
1953 Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft
1954 effektiv wieder von dem Kontext: in den meisten Fällen wird der
1955 Kontext auf ihre Standardeinstellungen zurückgesetzt.
1956 Normalerweise wird aber @code{\unset} nicht benötigt,
1957 denn ein neues @code{\set} erledigt alles, was man braucht.
1959 Die @code{\set}- und @code{\unset}-Befehle könne überall im
1960 Eingabequelltext erscheinen und werden aktiv von dem Moment, an
1961 dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
1962 mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
1963 wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
1964 auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
1965 nicht vom letzten gesetzten Wert.
1967 @lilypond[quote,verbatim,ragged-right]
1970 % make note heads smaller
1973 % make note heads larger
1974 \set fontSize = #2.5
1976 % return to default size
1982 Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
1983 Eigenschaften ändern lassen. Beachten Sie, dass Integer und
1984 Zahlen immer mit einem Rautenzeichen beginnen, während
1985 die Werte wahr und falsch (mit @code{##t} und @code{##f}
1986 notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
1987 aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
1988 auch wenn wir später sehen werden, dass Text auf eine sehr viel
1989 allgemeinere und mächtigere Art mit dem @code{\markup}-Befehl
1990 eingegeben werden kann.
1992 @subsubheading Kontexteigenschaften mit @code{\with} setzen
1995 @cindex Kontexteigenschaft, setzen mit \with
1997 Die Standardwerte von Kontexteigenschaften können zu dem Zeitpunkt
1998 definiert werden, an welchem der Kontext erstellt wird. Manchmal
1999 ist das eine saubere Weise, eine Eigenschaft zu bestimmen, die für
2000 die gesamte Partitur erhalten bleiben soll. Wenn ein Kontext mit
2001 einem @code{\new}-Befehl erstellt wird, können in einer
2002 direkt folgenden @code{\with @{ @dots{} @}}-Umgebung die Eigenschaften
2003 bestimmt werden. Wenn also die zusätzlichen
2004 Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
2008 \new Staff \with @{ extraNatural = ##f @}
2014 @lilypond[quote,verbatim,ragged-right]
2018 gisis'4 gis aeses aes
2021 \new Staff \with { extraNatural = ##f } {
2023 gisis'4 gis aeses aes
2029 Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
2030 dynamisch mit dem @code{\set}-Befehl geändert werden und mit
2031 @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden,
2032 wie sie vorher in der @code{\with}-Umgebung definiert wurden.
2034 @cindex Schriftgröße, Standardeinstellung
2035 @cindex fontSize (Schriftgröße), Standardeinstellung
2037 Wenn also die @code{fontSize}-Eigenschaft in einer @code{\with}-Umgebung
2038 definiert wird, wird der Standardwert für die Schriftgröße
2039 festgelegt. Wenn dieser Wert später mit @code{\set} verändert
2040 wird, kann dieser neue Standardwert mit dem Befehl
2041 @code{\unset fontSize} wieder erreicht werden.
2043 @subsubheading Kontexteigenschaften mit @code{\context} setzen
2045 @cindex Kontexteigenschaften, mit \context setzen
2046 @cindex Eigenschaften von Kontexten, mit \context setzen
2049 Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
2050 eines bestimmten Typs (etwa alle @code{Staff}-Kontexte)
2051 gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
2052 spezifiziert, indem seine Bezeichnung benutzt wird, also etwa
2053 @code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
2054 für die Eigenschaft ist der gleiche, wie er auch in der
2055 @code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
2056 eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
2057 von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
2058 wirkt sich auf alle Kontexte dieses Typs aus, welche sich in der
2059 aktuellen Partitur befinden (d. h. innerhalb einer @code{\score}-
2060 oder @code{\book}-Umgebung). Hier ist ein Beispiel, wie man diese
2063 @lilypond[verbatim,quote]
2079 Wenn die Veränderung der Eigenschaft sich auf alle Systeme einer
2080 @code{score}-Umgebung beziehen soll:
2082 @lilypond[quote,verbatim]
2087 gisis'4 gis aeses aes
2092 gisis'4 gis aeses aes
2098 \Score extraNatural = ##f
2105 Kontext-Eigenschaften, die auf diese Weise gesetzt werden, können für
2106 bestimmten Kontexte überschrieben werden, indem die
2107 @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
2108 innerhalb der aktuellen Noten.
2113 @ruser{Die Standardeinstellungen von Kontexten ändern},
2114 @ruser{Der set-Befehl}.
2116 Referenz der Interna:
2117 @rinternals{Contexts},
2118 @rinternals{Tunable context properties}.
2121 @node Engraver hinzufügen und entfernen
2122 @subsection Engraver hinzufügen und entfernen
2123 @translationof Adding and removing engravers
2125 @cindex Engraver, Hinzufügen von
2126 @cindex Engraver, Entfernen von
2127 @cindex Hinzufügen von Engravern
2128 @cindex Entfernen von Engravern
2135 Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
2136 (Stempeln) beinhaltet, von denen ein jeder einen bestimmten
2137 Teil des fertigen Notensatzes produziert, wie z. B. Taktstriche,
2138 Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
2139 einem Kontext entfernt wird, kann er seine Objekte nicht
2140 länger produzieren. Das ist eine eher grobe Methode, die
2141 Notenausgabe zu beeinflussen, aber es kann von großem
2144 @subsubheading Einen einzelnen Kontext verändern
2146 Um einen Engraver von einem einzelnen Kontext zu entfernen,
2147 wir der @code{\with}-Befehl eingesetzt, direkt hinter
2148 den Befehl zur Kontext-Erstellung geschrieben, wie
2149 in dem vorigen Abschnitt gezeigt.
2151 Als ein Beispiel wollen wir das Beispiel aus dem letzten
2152 Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
2153 Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
2156 @lilypond[quote,verbatim,ragged-right]
2158 \remove "Staff_symbol_engraver"
2162 \set fontSize = #-4 % make note heads smaller
2164 \set fontSize = #2.5 % make note heads larger
2166 \unset fontSize % return to default size
2171 @cindex Ambitus-Engraver
2173 Engraver können auch zu einem bestimmten
2174 Kontext hinzugefügt werden. Dies geschieht
2177 @code{\consists @var{Engraver_bezeichnung}}
2180 welcher auch wieder innerhalb der @code{\with}-Umgebung
2181 gesetzt wird. Einige Chorpartituren zeigen einen
2182 Ambitus direkt zu Beginn der ersten Notenzeile, um
2183 den Stimmumfang des Stückes anzuzeigen, siehe auch
2184 @rglos{ambitus}. Der Ambitus wird vom
2185 @code{Ambitus_engraver} erstellt, der normalerweise
2186 in keinem Kontext enthalten ist. Wenn wir
2187 ihn zum @code{Voice}-Kontext hinzufügen, errechnet
2188 er automatisch den Stimmumfang für diese einzelne Stimme
2191 @lilypond[quote,verbatim,ragged-right]
2194 \consists "Ambitus_engraver"
2211 wenn wir den Ambitus-Engraver allerdings zum
2212 @code{Staff}-Kontext hinzufügen, wird der Stimmumfang aller
2213 Stimmen in diesem Notensystem errechnet:
2215 @lilypond[quote,verbatim,ragged-right]
2217 \consists "Ambitus_engraver"
2235 @subsubheading Alle Kontexte des gleichen Typs verändern
2239 Die vorigen Beispiele zeigen, wie man Engraver in einem
2240 bestimmten Kontext hinzufügen oder entfernen kann. Es ist
2241 auch möglich, Engraver in jedem Kontext eines bestimmten
2242 Typs hinzuzufügen oder zu entfernen. Dazu werden die
2243 Befehle in dem entsprechenden Kontext in einer
2244 @code{\layout}-Umgebung gesetzt. Wenn wir also z. B.
2245 den Ambitus für jedes Notensystem in einer Partitur
2246 mit vier Systemen anzeigen wollen, könnte das so aussehen:
2248 @lilypond[quote,verbatim,ragged-right]
2277 \consists "Ambitus_engraver"
2284 Die Werte der Kontext-Eigenschaften können auch für
2285 alle Kontexte eines bestimmten Typs auf die gleiche
2286 Weise geändert werden, indem der @code{\set}-Befehl in
2287 einer @code{\context}-Umgebung angewendet wird.
2291 Notationsreferenz: @ruser{Umgebungs-Plugins verändern},
2292 @ruser{Die Standardeinstellungen von Kontexten ändern}.
2295 Die @code{Stem_engraver} und @code{Beam_engraver} fügen ihre
2296 Objekte an Notenköpfe an. Wenn der @code{Note_heads_engraver}
2297 entfernt wird, werden keine Notenköpfe erstellt und demzufolge auch keine
2298 Hälse oder Bögen dargestellt.
2301 @node Erweiterung der Vorlagen
2302 @section Erweiterung der Vorlagen
2303 @translationof Extending the templates
2305 Sie haben sich durch das Tutorium gearbeitet, Sie
2306 wissen jetzt, wie Sie Notensatz produzieren, und Sie
2307 haben die grundlegenden Konzepte verstanden. Aber wie
2308 erhalten Sie genau die Systeme, die Sie brauchen? Es
2309 gibt eine ganze Anzahl an fertigen Vorlagen
2310 (siehe @ref{Vorlagen}), mit denen Sie beginnen
2311 können. Aber was, wenn Sie nicht genau das finden,
2312 was Sie brauchen? Lesen Sie weiter.
2315 * Sopran und Cello::
2316 * Vierstimmige SATB-Partitur::
2317 * Eine Partitur von Grund auf erstellen::
2318 * Tipparbeit durch Variablen und Funktionen einsparen::
2319 * Partituren und Stimmen::
2323 @node Sopran und Cello
2324 @subsection Sopran und Cello
2325 @translationof Soprano and cello
2327 @cindex Template, Verändern von
2328 @cindex Vorlage, Verändern von
2329 @cindex Veränderung von Vorlagen
2331 Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
2332 am nächsten kommt. Nehmen wir einmal an, Sie wollen
2333 ein Stück für Sopran und Cello schreiben. In diesem
2334 Fall könnten Sie mit der Vorlage @qq{Noten und Text}
2335 (für die Sopran-Stimme) beginnen.
2338 \version @w{"@version{}"}
2340 melody = \relative @{
2347 text = \lyricmode @{
2353 \new Voice = "one" @{
2357 \new Lyrics \lyricsto "one" \text
2364 Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
2365 Beispiel @qq{Nur Noten} an:
2368 \version @w{"@version{}"}
2370 melody = \relative @{
2384 Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
2385 brauchen aber den @code{melody}-Abschnitt. Wir wollen
2386 keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
2387 @code{\score}-Abschnitten würden wir zwei Stimmen
2388 getrennt voneinander erhalten. In diesem Fall wollen wir
2389 sie aber zusammen, als Duett. Schließlich brauchen wir
2390 innerhalb des @code{\score}-Abschnittes nur einmal die
2391 Befehle @code{\layout} und @code{\midi}.
2393 Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in
2394 unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
2395 Das würde zu keinem Fehler führen, aber die zweite von ihnen
2396 würde für beide Melodien eingesetzt werden. Wir müssen
2397 ihnen also andere Bezeichnungen zuweisen, um sie voneinander
2398 zu unterscheiden. Nennen wir die Abschnitte also @code{SopranNoten}
2399 für den Sopran und @code{CelloNoten} für die Cellostimme. Wenn
2400 wir schon dabei sind, können wir @code{text}auch nach
2401 @code{SoprText} umbenennen. Denken Sie daran, beide
2402 Vorkommen der Bezeichnung zu ändern: einmal die Definition
2403 gleich am Anfang (@code{melody = \relative @{ }) und
2404 dann auch noch die Benutzung der Variable innerhalb des
2405 @code{\score}-Abschnittes.
2407 Gleichzeitig können wir auch noch das Notensystem für das
2408 Cello ändern -- das Cello hat normalerweise einen Bassschlüssel.
2409 Wir ändern auch die Noten etwas ab.
2412 \version @w{"@version{}"}
2414 SopranNoten = \relative @{
2421 SoprText = \lyricmode @{
2425 CelloNoten = \relative @{
2434 \new Voice = "eins" @{
2438 \new Lyrics \lyricsto "eins" \Soprantext
2445 Das sieht schon vielversprechend aus, aber die Cello-Stimme
2446 erscheint noch nicht im Notensatz -- wir haben vergessen,
2447 sie in den @code{\score}-Abschnitt einzufügen. Wenn die
2448 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
2452 \new Staff \CelloNoten
2456 unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
2457 die spitzen Klammern (@code{<<} und @code{>>}) um die
2458 Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
2459 ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
2460 zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
2463 @c Indentation in this example is deliberately poor
2468 \new Voice = "eins" @{
2472 \new Lyrics \lyricsto "eins" \SoprText
2474 \new Staff \CelloNoten
2482 Das sieht etwas unschön aus, vor allem die Einrückung stimmt
2483 nicht mehr. Das können wir aber schnell in Ordnung bringen.
2484 Hier also die gesamte Vorlage für Sopran und Cello:
2486 @lilypond[quote,verbatim,ragged-right,addversion]
2487 sopranoMusic = \relative {
2494 sopranoLyrics = \lyricmode {
2498 celloMusic = \relative {
2508 \new Voice = "one" {
2512 \new Lyrics \lyricsto "one" \sopranoLyrics
2514 \new Staff \celloMusic
2523 Die Vorlagen, mit denen wir begonnen haben, können im
2524 Anhang @qq{Vorlagen} gefunden werden, siehe
2525 @ref{Vorlagen für ein einzelnes System}.
2528 @node Vierstimmige SATB-Partitur
2529 @subsection Vierstimmige SATB-Partitur
2530 @translationof Four-part SATB vocal score
2532 @cindex Vorlage, SATB
2533 @cindex Vorlage, Chorpartitur
2534 @cindex SATB-Vorlage
2535 @cindex Chorpartitur, Vorlage
2537 Die meisten Partituren für vierstimmigen gemischten Chor
2538 mit Orchesterbegleitung (wie etwa Mendelssohns @notation{Elias}
2539 oder Händels @notation{Messias}) sind so aufgebaut, dass
2540 für jede der vier Stimmen ein eigenes System besteht und
2541 die Orchesterbegleitung dann als Klavierauszug darunter
2542 notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
2544 @c The following should appear as music without code
2545 @lilypond[quote,ragged-right]
2546 global = { \key d \major \time 4/4 }
2548 sopranoMusic = \relative {
2550 r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2552 sopranoWords = \lyricmode {
2553 Wor -- thy | is the lamb | that was slain |
2556 altoMusic = \relative {
2558 r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 |
2560 altoWords = \sopranoWords
2562 tenorMusic = \relative {
2564 r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2566 tenorWords = \sopranoWords
2568 bassMusic = \relative {
2570 r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2572 bassWords = \sopranoWords
2577 r4 <a' d fis>2 <a e' a>4 |
2578 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2579 <g cis g'>4 <a d fis> <a cis e>2 |
2585 <d, d'>4 <d d'>2 <cis cis'>4 |
2586 <b b'>4. <b' b'>8 <fis fis'>2 |
2587 <e e'>4 <d d'> <a' a'>2 |
2591 << % combine ChoirStaff and PianoStaff in parallel
2593 \new Staff = "sopranos" <<
2594 \set Staff.instrumentName = #"Soprano"
2595 \new Voice = "sopranos" {
2600 \new Lyrics \lyricsto "sopranos" {
2603 \new Staff = "altos" <<
2604 \set Staff.instrumentName = #"Alto"
2605 \new Voice = "altos" {
2610 \new Lyrics \lyricsto "altos" { \altoWords }
2611 \new Staff = "tenors" <<
2612 \set Staff.instrumentName = #"Tenor"
2613 \new Voice = "tenors" {
2618 \new Lyrics \lyricsto "tenors" { \tenorWords }
2619 \new Staff = "basses" <<
2620 \set Staff.instrumentName = #"Bass"
2621 \new Voice = "basses" {
2626 \new Lyrics \lyricsto "basses" {
2631 \set PianoStaff.instrumentName = #"Piano"
2632 \new Staff = "upper" \upper
2633 \new Staff = "lower" \lower
2639 @warning{Das vorliegende Layout kann sehr einfach erzeugt werden. Am Besten
2640 verwenden sie dafür das vordefinierte Beispiel @code{satb.ly}, siehe auch
2641 @ref{Built-in templates}. Zum Zweck der einfachen Handhabung wird der
2642 verwendete Kontextaufbau bewusst versteckt und sich darauf verlassen, dass LilyPond
2643 alles automatisch bereit stellt. Lassen sie uns zu Lehrzwecken probieren,
2644 das alles von Grund auf selbst zu entwickeln. Irgendwann werden sie das sowieso machen
2645 müssen, nämlich genau dann, wenn ein vorgegebenes Beispiel ihre
2646 Anforderungen nicht angemessen erfüllt.}
2648 Dem gewünschten Ergebnis am nächsten kommt sicher das
2649 @ref{SATB-Partitur und automatischer Klavierauszug} -- wir müssen diese
2650 Vorlage aber so anpassen, dass die Noten für das Klavier nicht
2651 automatisch aus dem Chorsatz generiert werden. Die Variablen
2652 für die Noten und den Text des Chores sind in Ordnung, wir
2653 müssen nun noch Variablen für die Klaviernoten hinzufügen.
2655 Die Reihenfolge, in welcher die Variablen in das Chorsystem
2656 (@code{ChoirStaff}) eingefügt werden, entspricht nicht der
2657 in dem Beispiel oben. Wir wollen sie so sortieren, dass die
2658 Texte jeder Stimme direkt unter den Noten notiert werden.
2659 Alle Stimmen sollten als @code{\voiceOne} notiert werden,
2660 welches die Standardeinstellung ist; wir können also die
2661 @code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
2662 den Schlüssel für den Tenor ändern. Die Methode, mit der
2663 der Text den Stimmen zugewiesen wird, ist uns noch nicht
2664 bekannt, darum wollen wir sie umändern auf die Weise, die
2665 wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
2666 zu den Systemen hinzu.
2668 Damit erhalten wir folgenden @code{ChoirStaff}:
2672 \new Staff = "sopranos" <<
2673 \set Staff.instrumentName = #"Soprano"
2674 \new Voice = "sopranos" @{
2679 \new Lyrics \lyricsto "sopranos" @{
2682 \new Staff = "altos" <<
2683 \set Staff.instrumentName = #"Alto"
2684 \new Voice = "altos" @{
2689 \new Lyrics \lyricsto "altos" @{
2692 \new Staff = "tenors" <<
2693 \set Staff.instrumentName = #"Tenor"
2694 \new Voice = "tenors" @{
2699 \new Lyrics \lyricsto "tenors" @{
2702 \new Staff = "basses" <<
2703 \set Staff.instrumentName = #"Bass"
2704 \new Voice = "basses" @{
2709 \new Lyrics \lyricsto "basses" @{
2715 Als nächstes müssen wir das Klaviersystem bearbeiten.
2716 Das ist einfach: wir nehmen einfach den Klavierteil
2717 aus der @qq{Piano solo}-Vorlage:
2721 \set PianoStaff.instrumentName = #"Piano "
2722 \new Staff = "upper" \upper
2723 \new Staff = "lower" \lower
2728 und fügen die Variablen @code{upper}
2729 und @code{lower} hinzu.
2731 Das Chorsystem und das Pianosystem müssen mit
2732 spitzen Klammern kombiniert werden, damit beide
2733 übereinander erscheinen:
2736 << % ChoirStaff und PianoStaff parallel kombinieren
2738 \new Staff = "sopranos" <<
2739 \new Voice = "sopranos" @{
2744 \new Lyrics \lyricsto "sopranos" @{
2747 \new Staff = "altos" <<
2748 \new Voice = "altos" @{
2753 \new Lyrics \lyricsto "altos" @{
2756 \new Staff = "tenors" <<
2757 \clef "G_8" % tenor clef
2758 \new Voice = "tenors" @{
2763 \new Lyrics \lyricsto "tenors" @{
2766 \new Staff = "basses" <<
2768 \new Voice = "basses" @{
2773 \new Lyrics \lyricsto "basses" @{
2779 \set PianoStaff.instrumentName = #"Piano"
2780 \new Staff = "upper" \upper
2781 \new Staff = "lower" \lower
2786 Alles miteinander kombiniert und mit den Noten für drei
2787 Takte sieht unser Beispiel nun so aus:
2789 @lilypond[quote,verbatim,ragged-right,addversion]
2790 global = { \key d \major \time 4/4 }
2791 sopranoMusic = \relative {
2793 r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
2795 sopranoWords = \lyricmode {
2796 Wor -- thy | is the lamb | that was slain |
2798 altoMusic = \relative {
2800 r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2802 altoWords = \sopranoWords
2803 tenorMusic = \relative {
2805 r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
2807 tenorWords = \sopranoWords
2808 bassMusic = \relative {
2810 r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
2812 bassWords = \sopranoWords
2816 r4 <a' d fis>2 <a e' a>4 |
2817 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2818 <g cis g'>4 <a d fis> <a cis e>2 |
2823 <d, d'>4 <d d'>2 <cis cis'>4 |
2824 <b b'>4. <b' b'>8 <fis fis'>2 |
2825 <e e'>4 <d d'> <a' a'>2 |
2829 << % combine ChoirStaff and PianoStaff in parallel
2831 \new Staff = "sopranos" <<
2832 \set Staff.instrumentName = #"Soprano"
2833 \new Voice = "sopranos" {
2838 \new Lyrics \lyricsto "sopranos" {
2841 \new Staff = "altos" <<
2842 \set Staff.instrumentName = #"Alto"
2843 \new Voice = "altos" {
2848 \new Lyrics \lyricsto "altos" {
2851 \new Staff = "tenors" <<
2852 \set Staff.instrumentName = #"Tenor"
2853 \new Voice = "tenors" {
2858 \new Lyrics \lyricsto "tenors" {
2861 \new Staff = "basses" <<
2862 \set Staff.instrumentName = #"Bass"
2863 \new Voice = "basses" {
2868 \new Lyrics \lyricsto "basses" {
2874 \set PianoStaff.instrumentName = #"Piano "
2875 \new Staff = "upper" \upper
2876 \new Staff = "lower" \lower
2883 @node Eine Partitur von Grund auf erstellen
2884 @subsection Eine Partitur von Grund auf erstellen
2885 @translationof Building a score from scratch
2887 @cindex Template, eigene schreiben
2888 @cindex Vorlagen, eigene schreiben
2889 @cindex eigene Vorlagen erstellen
2890 @cindex Erstellen von eigenen Vorlagen
2891 @cindex Schreiben von eigenen Vorlagen
2893 Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
2894 gewonnen haben, werden Sie vielleicht feststellen, dass es
2895 manchmal einfacher ist, von Grund auf anzufangen, anstatt
2896 die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
2897 auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
2898 die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
2899 wie man die Partitur für ein Orgelpräludium von Grund auf
2902 Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt.
2903 Hier notieren wir den Titel, den Namen des Komponisten usw.
2904 Danach schreiben wir die einzelnen Variablen auf und
2905 schließlich am Ende die eigentliche Partitur, den
2906 @code{\score}-Abschnitt. Beginnen wir mit einer groben
2907 Struktur, in die wir dann die Einzelheiten nach und nach
2910 Als Beispiel benutzen wir zwei Takte aus dem Orgelpräludium
2911 @notation{Jesu, meine Freude} von J. S. Bach, notiert
2912 für zwei Manuale und Pedal. Sie können die Noten am Ende
2913 dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
2914 das untere und das Pedalsystem jeweils nur eine. Wir
2915 brauchen also vier Variablen für die Noten und eine, um
2916 Taktart und Tonart zu definieren.
2919 \version @w{"@version{}"}
2921 title = "Jesu, meine Freude"
2922 composer = "J S Bach"
2924 keyTime = @{ \key c \minor \time 4/4 @}
2925 ManualOneVoiceOneMusic = @{ s1 @}
2926 ManualOneVoiceTwoMusic = @{ s1 @}
2927 ManualTwoMusic = @{ s1 @}
2928 PedalOrganMusic = @{ s1 @}
2934 Im Moment haben wir eine unsichtbare
2935 Note in jede Stimme eingesetzt (@code{s1}).
2936 Die Noten werden später hinzugefügt.
2938 Als nächstes schauen wir uns an, was in die
2939 Partitur (die @code{\score}-Umgebung)
2940 kommt. Dazu wird einfach die Notensystemstruktur
2941 konstruiert, die wir benötigen. Orgelmusik
2942 wird meistens auf drei Systemen notiert, eins
2943 für jedes Manual und ein drittes für die Pedalnoten.
2944 Die Systeme für die Manuale werden mit einer
2945 geschweiften Klammer verbunden, wir
2946 benutzen hier also ein @code{PianoStaff}.
2947 Das erste Manualsystem braucht zwei Stimmen,
2948 das zweite nur eine.
2952 \new Staff = "ManualOne" <<
2954 \ManualOneVoiceOneMusic
2957 \ManualOneVoiceTwoMusic
2959 >> % Ende ManualOne Systemkontext
2960 \new Staff = "ManualTwo" <<
2964 >> % Ende ManualTwo Systemkontext
2965 >> % Ende PianoStaff Kontext
2968 Als nächstes soll das System für das Pedal hinzugefügt
2969 werden. Es soll unter das Klaviersystem gesetzt
2970 werden, aber muss gleichzeitig mit ihm erscheinen.
2971 Wir brauchen also spitze Klammern um beide
2972 Definitionen. Sie wegzulassen würde eine Fehlermeldung
2973 in der Log-Datei hervorrufen. Das ist ein sehr
2974 häufiger Fehler, der wohl auch Ihnen früher
2975 oder später unterläuft. Sie können das fertige
2976 Beispiel am Ende des Abschnittes kopieren und die
2977 Klammern entfernen, um zu sehen, wie die
2978 Fehlermeldungen aussehen könnten, die Sie in solch
2979 einem Fall erhalten würden.
2982 << % PianoStaff and Pedal Staff must be simultaneous
2984 \new Staff = "ManualOne" <<
2986 \ManualOneVoiceOneMusic
2989 \ManualOneVoiceTwoMusic
2991 >> % end ManualOne Staff context
2992 \new Staff = "ManualTwo" <<
2996 >> % end ManualTwo Staff context
2997 >> % end PianoStaff context
2998 \new Staff = "PedalOrgan" <<
3006 Es ist nicht notwendig, die simultane Konstruktion
3007 @code{<< @dots{} >>} innerhalb des zweiten Manualsystems
3008 und des Pedalsystems zu benutzen, denn sie enthalten
3009 nur eine Stimme. Andererseits schadet es nichts, sie
3010 zu schreiben, und es ist eine gute Angewohnheit, immer
3011 die spitzen Klammern nach einem @code{\new Staff} zu
3012 schreiben, wenn mehr als eine Stimme vorkommen könnten.
3013 Für Stimmen (@code{Voice}) dagegen gilt genau das
3014 Gegenteil: eine neue Stimme sollte immer von
3015 geschweiften Klammern (@code{@{ @dots{} @}}) gefolgt
3016 werden, falls Sie ihre Noten in mehrere Variable aufteilen,
3017 die nacheinander gesetzt werden sollen.
3019 Fügen wir also diese Struktur zu der @code{\score}-Umgebung
3020 hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
3021 wollen wir die richtigen Schlüssel setzen und die Richtung der
3022 Hälse und Bögen in den Stimmen des oberen Systems
3023 kontrollieren, indem die obere Stimme ein
3024 @code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
3025 erhält. Die Taktart und Tonart werden mit unserer fertigen
3026 Variable @code{\keyTime} eingefügt.
3030 << % PianoStaff and Pedal Staff must be simultaneous
3032 \new Staff = "ManualOne" <<
3033 \keyTime % set key and time signature
3037 \ManualOneVoiceOneMusic
3041 \ManualOneVoiceTwoMusic
3043 >> % end ManualOne Staff context
3044 \new Staff = "ManualTwo" <<
3050 >> % end ManualTwo Staff context
3051 >> % end PianoStaff context
3052 \new Staff = "PedalOrgan" <<
3058 >> % end PedalOrgan Staff
3060 @} % end Score context
3063 @cindex Spreizbarkeit von Systemen
3064 @cindex Dehnung von Systemen, vertikal
3065 @cindex Systeme, vertikales Dehnen
3067 Das Layout des Orgelsystems oben ist fast perfekt, es hat jedoch einen kleinen
3068 Fehler, den man nicht bemerken kann, wenn man nur ein einzelnes System
3069 betrachtet: Der Abstand des Pedalsystems zum System der linken Hand
3070 sollte in etwa der gleiche sein wie der Abstand zwischen den Systemen
3071 der linken und rechten Hand. Die Dehnbarkeit von Systemen in einem
3072 Klaviersystem (@code{PianoStaff})-Kontext ist beschränkt (sodass der
3073 Abstand zwischen den Systemen der linken und rechten Hand nicht zu groß
3074 wird), und das Pedalsystem sollte sich genauso verhalten.
3076 @cindex Untereigenschaft
3077 @cindex sub-properties
3078 @cindex graphische Objekte
3080 @cindex Objekte, graphische
3082 Die Spreizbarkeit von Systemen kann mit der @code{staff-staff-spacing}-Eigenschaft
3083 des @code{VerticalAxisGroup}-@qq{graphischen Objekts} (üblicherweise als
3084 @qq{Grob} innerhalb der LilyPond-Dokumentation bezeichnet) kontrolliert
3085 werden. An dieser Stelle brauchen Sie sich um die Details nicht zu
3086 sorgen, sie werden später erklärt. Sehr Neugierige können sich den
3087 Abschnitt @ruser{Grundlagen zum Verändern von Eigenschaften} anschauen. Im Moment
3088 kann man nicht nur die @code{strechability} (Spreizbarkeit)-Untereigenschaft verändern,
3089 darum müssen hier auch die anderen Untereigenschaften kopiert werden. Die
3090 Standardeinstellungen dieser Untereigenschaften finden sich in der Datei
3091 @file{scm/define-grobs.scm} in den Definitionen für den
3092 @code{VerticalAxisGroup}-Grob. Der Wert für @code{strechability} wird aus
3093 der Definition für das Klaviersystem (@code{PianoStaff}) entnommen
3094 (in der Datei @file{ly/engraver-init.ly}), damit die Werte identisch
3099 << % PianoStaff and Pedal Staff must be simultaneous
3101 \new Staff = "ManualOne" <<
3102 \keyTime % set key and time signature
3106 \ManualOneVoiceOneMusic
3110 \ManualOneVoiceTwoMusic
3112 >> % end ManualOne Staff context
3113 \new Staff = "ManualTwo" \with @{
3114 \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
3121 >> % end ManualTwo Staff context
3122 >> % end PianoStaff context
3123 \new Staff = "PedalOrgan" <<
3129 >> % end PedalOrgan Staff
3131 @} % end Score context
3133 Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
3134 Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
3135 in einem System sich ändern kann. Jetzt müssen wir nur noch
3136 die Noten einfügen und alle Teile zusammenfügen, indem wir
3137 die Variablen mit einem Backslash in die Partitur einbauen.
3139 @lilypond[quote,verbatim,ragged-right,addversion]
3141 title = "Jesu, meine Freude"
3142 composer = "J S Bach"
3144 keyTime = { \key c \minor \time 4/4 }
3145 ManualOneVoiceOneMusic = \relative {
3149 ManualOneVoiceTwoMusic = \relative {
3150 ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
3151 8 c4 b8 c8. g16 c b c d |
3153 ManualTwoMusic = \relative {
3154 c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
3155 f16 ees f d g aes g f ees d ees8~ 16 f ees d |
3157 PedalOrganMusic = \relative {
3158 r8 c16 d ees d ees8~ 16 a, b g c b c8 |
3159 r16 g ees f g f g8 c,2 |
3163 << % PianoStaff and Pedal Staff must be simultaneous
3165 \new Staff = "ManualOne" <<
3166 \keyTime % set key and time signature
3170 \ManualOneVoiceOneMusic
3174 \ManualOneVoiceTwoMusic
3176 >> % end ManualOne Staff context
3177 \new Staff = "ManualTwo" \with {
3178 \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
3185 >> % end ManualTwo Staff context
3186 >> % end PianoStaff context
3187 \new Staff = "PedalOrgan" <<
3193 >> % end PedalOrgan Staff context
3195 } % end Score context
3203 @node Tipparbeit durch Variablen und Funktionen einsparen
3204 @subsection Tipparbeit durch Variablen und Funktionen einsparen
3205 @translationof Saving typing with variables and functions
3209 Bis jetzt wurde immer derartige Notation vorgestellt:
3211 @lilypond[quote,verbatim,ragged-right]
3212 hornNotes = \relative { c''4 b dis c }
3221 Sie können sich vorstellen, dass das etwa für minimalistische
3222 Musik sehr nützlich sein könnte:
3224 @lilypond[quote,verbatim,ragged-right]
3225 fragmentA = \relative { a'4 a8. b16 }
3226 fragmentB = \relative { a'8. gis16 ees4 }
3228 violin = \new Staff {
3229 \fragmentA \fragmentA |
3230 \fragmentB \fragmentA |
3240 Diese Variablen (die man auch als Makros oder Benutzer-Befehl
3241 bezeichnet) können jedoch auch für eigene Anpassungen eingesetzt
3244 @lilypond[quote,verbatim,ragged-right]
3245 dolce = \markup { \italic \bold dolce }
3247 centreText = { \once \override TextScript.self-alignment-X = #CENTER }
3250 \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
3253 violin = \relative {
3255 c''4._\dolce b8 a8 g a b |
3257 c4.^"hi there!" d8 e f g d |
3258 c4.\fthenp b8 c4 c-. |
3269 Derartige Variablen sind offensichtlich sehr nützlich, sich
3270 Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu
3271 benutzen, wenn man sie nur einmal benutzen will, denn sie
3272 vereinfachen die Struktur einer Datei sehr stark. Hier das
3273 vorige Beispiel ohne jede Benutzung von Variablen. Es ist
3274 sehr viel schwerer lesbar, besonders die letzte Zeile.
3277 violin = \relative @{
3279 c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
3280 \once \override TextScript.self-alignment-X = #CENTER
3281 c4.^"hi there!" d8 e f g d |
3283 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
3290 Bisher haben wir vor allem statische Ersetzungen betrachtet:
3291 wenn LilyPond etwa @code{\centreText} sieht, wird es ersetzt mit
3292 all dem Code, mit dem wir es definiert haben (also alles,
3293 was sich rechts von @code{centreText=} befindet).
3295 LilyPond kann auch nicht-statische Ersetzungen bewältigen. Man
3296 kann sie sich als Funktionen vorstellen.
3298 @lilypond[quote,verbatim,ragged-right]
3300 #(define-music-function
3304 \once \override TextScript.padding = #padding
3308 c''4^"piu mosso" b a b
3310 c4^"piu mosso" b a b
3312 c4^"piu mosso" b a b
3316 Die Benutzung von Variablen ist auch eine gute Möglichkeit,
3317 Arbeit zu vermeiden, wenn sich einmal die Syntax von LilyPond
3318 ändern sollte (siehe auch @rprogram{Dateien mit convert-ly aktualisieren}).
3319 Wenn man eine einzige Definition hat (wie etwa @code{\dolce}),
3320 die für alle Vorkommen in der Notation eingesetzt wird, muss
3321 man auch nur einmal diese Definition aktualisieren, anstatt
3322 dass man sie in jeder @file{.ly}-Datei einzeln ändern müsste.
3325 @node Partituren und Stimmen
3326 @subsection Partituren und Stimmen
3327 @translationof Scores and parts
3329 In Orchestermusik werden alle Noten zweimal gedruckt. Einmal
3330 in einer Stimme für die Spieler, und einmal ein der Partitur
3331 für den Dirigenten. Variablen können benutzen, um sich doppelte
3332 Arbeit zu ersparen. Die Noten werden nur einmal eingegeben und
3333 in einer Variable abgelegt. Der Inhalt der Variable wird dann
3334 benutzt um sowohl die Stimme als auch die Partitur zu erstellen.
3336 Es bietet sich an, die Noten in einer extra Datei abzulegen.
3337 Nehmen wir an, dass die Datei @file{horn-music.ly} folgende
3338 Noten eines Horn/@/Fagott-Duos enthält:
3341 hornNotes = \relative @{
3343 r4 f8 a | cis4 f | e4 d |
3348 Eine Stimme wird also erstellt, indem man folgendes in eine
3352 \include "horn-music.ly"
3355 instrument = "Horn in F"
3359 \transpose f c' \hornNotes
3366 \include "horn-music.ly"
3370 ersetzt den Inhalt von @file{horn-music.ly} an dieser Position
3371 in der Datei, sodass @code{hornNotes} im Folgenden definiert
3372 ist. Der Befehl @code{\transpose f@tie{}c'} zeigt an, dass
3373 das Argument (@code{\hornNotes}) eine Quinte nach oben transponiert
3374 werden soll. Klingendes @code{f} wird als @code{c'}, wie es
3375 die Stimmung eines normalen F-Hornes verlangt. Die Transposition
3376 kann in folgender Notenausgabe gesehen werden:
3378 @lilypond[quote,ragged-right]
3379 \transpose f c' \relative {
3381 r4 f8 a | cis4 f | e4 d |
3385 In Ensemblestücken sind manche Stimmen für viele Takte stumm.
3386 Das wird durch eine besondere Pause notiert, die Mehrtaktpause.
3387 Sie wird mit einem großen @code{R} notiert, gefolgt von der
3388 Dauer (@code{1}@tie{}für eine Ganze, @code{2}@tie{}für eine Halbe usw.). Indem man die Dauern multipliziert, kann man auch
3389 längere Dauern erzeugen. Diese Pause etwa dauert drei Takte
3396 Wenn die Stimme gesetzt wird, sollen Mehrtaktpausen zusammen gefasst werden.
3397 Zu diesem Zweck gibt es eine Musik Funktion:
3400 \compressMMRests @{ ... @}
3403 Angewendet auf @code{hornNotes} erhält man:
3405 @lilypond[quote,ragged-right]
3406 \compressMMRests \transpose f c' \relative {
3409 r4 f8 a | cis4 f | e4 d |
3413 Die Partitur wird erstellt, indem man alle Noten kombiniert.
3414 Angenommen, die andere Stimme ist in @code{bassoonNotes}
3415 in der Datei @file{bassoon-music.ly} definiert, würde eine
3416 Partitur erstellt mit:
3419 \include "bassoon-music.ly"
3420 \include "horn-music.ly"
3423 \new Staff \hornNotes
3424 \new Staff \bassoonNotes
3431 @lilypond[quote,ragged-right]
3437 r4 f8 a | cis4 f | e4 d |
3442 r4 d,8 f | gis4 c | b4 bes |
3443 a8 e f4 | g4 d | gis4 f |
3449 Handbuch zum Lernen:
3450 @ref{Stücke durch Variablen organisieren}.
3453 @ruser{Transponieren},
3454 @ruser{Orchesterstimmen erstellen},
3455 @ruser{Ganztaktpausen},
3456 @ruser{LilyPond-Dateien einfügen}.