1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: c1df40da9f8b2794e173583c363f9e736e5531bd
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
15 @chapter Grundbegriffe
16 @translationof Fundamental concepts
18 Nachdem im Tutorial 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 Beispiele::
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}.
42 Die meisten Beispiele in diesem Handbuch sind kleine Schnipsel, wie
49 Wie hoffentlich bekannt ist, lässt sich solch ein Schnipsel nicht
50 in dieser Form übersetzen. Diese Beispiele sind also nur Kurzformen
51 von wirklichen Beispielen. Sie müssen wenigstens zusätzlich in
52 geschweifte Klammern gesetzt werden.
60 Die meisten Beispiele benutzen auch den @code{\relative c'}-Befehl.
61 Der ist nicht nötig, um die Dateien zu übersetzen, aber in den meisten
62 Fällen sieht der Notensatz seltsam aus, wenn man den Befehl
65 @lilypond[quote,fragment,ragged-right,verbatim]
71 Eine komplette Definition des Eingabeformats findet sich
72 im Kapitel @ruser{Die Dateistruktur}.
75 * Einführung in die Dateistruktur von LilyPond::
76 * Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck::
77 * Musikalische Ausdrücke ineinander verschachteln::
78 * Über die Nicht-Schachtelung von Klammern und Bindebögen::
81 @node Einführung in die Dateistruktur von LilyPond
82 @subsection Einführung in die Dateistruktur von LilyPond
83 @translationof Introduction to the LilyPond file structure
87 @cindex Struktur, Datei
89 Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet:
92 \version @w{"@version{}"}
97 @var{...zusammengesetzter Musik-Ausdruck...} % Die gesamten Noten kommen hier hin!
104 Aufgrund der Flexibilität von LilyPond gibt es viele Variationen dieses
105 Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt.
114 Bisher hat noch keines der Beispiele den @code{\score@{@}}-Befehl
115 benutzt, da Lilypond derartige zusätzliche Befehle automatisch
116 bei Bedarf einfügt, wenn die Eingabedatei eine einfache Struktur
119 Sehen wir uns als ein solches einfaches Beispiel an:
128 Im Hintergrund kommen hier noch einige Ebenen dazu: LilyPond-Code
129 in der obigen Form ist in Wirklichkeit eine Abkürzung. Auch wenn man so
130 Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt
131 der vollständige Code, der hier gemeint ist, eigentlich:
149 Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
150 enthält, wird LilyPond die Datei so interpretieren, als ob dieser
151 Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige
152 Struktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt,
153 ohne dass der Benutzer davon etwas bemerkt.
155 @cindex Implizite Kontexte
156 @cindex Kontexte, implizit
158 @strong{Ein Wort der Warnung ist jedoch angebracht!} Viele der Beispiele
159 in der Dokumentation von LilyPond lassen die @code{\new Staff} und @code{\new Voice}
160 Befehle zur Erzeugung einer Notenzeile und einer Stimme (beides ist in
161 LilyPond ein sogenannter Kontext) bewusst aus,
162 damit sie implizit von LilyPond im Speicher erzeugt werden.
163 Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für
164 komplexere Partituren können dadurch aber unerwartete Ergebnisse
165 entstehen, teilweise sogar unerwartete leere Notenzeilen. Um
166 die entsprechenden Kontexte in diesem Fall explizit zu erzeugen,
167 siehe @ref{Kontexte und Engraver}.
169 @warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden,
170 empfiehlt es sich, die Notenzeilen und die Stimmen immer explizit
171 mit @code{\new Staff} und @code{\new Voice} zu erzeugen.}
173 Im Moment wollen wir aber zu unserem ersten Beispiel zurückkehren und
174 nur den @code{\score}-Befehl näher betrachten.
176 Eine Partitur (@code{\score}) muss immer mit einem musikalischen Ausdruck
177 beginnen. Das ist letztendlich alle Musik, angefangen bei einer
179 Note bis hin zu einer riesigen Partitur mit vielen Notensystemen
180 (bezeichnet hier durch @code{GrandStaff}):
185 @var{...hier die gesamte Partitur...}
191 Da sich alles innerhalb der geschweiften Klammern @code{@{ ... @}}
192 befindet, wird es wie ein einziger musikalischer Ausdruck behandelt.
195 Ein @code{\score} auch andere Dinge enthalten, wie etwa
218 Wie man sieht, sind die drei Befehle @code{\header}, @code{\layout} und
219 @code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen,
220 die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck
221 und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
222 sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb plaziert
223 werden. Tatsächlich werden einige dieser Befehle meist außerhalb des
224 @code{\score}-Blocksgesetzt, zum Beispiel findet sich der @code{\header}
225 sehr oft oberhalb der @code{\score}-Umgebung. Das
226 funktioniert genauso gut.
228 Zwei bisher noch nicht aufgetauchte Befehle sind
229 @code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer
230 Datei vorkommen, führt dies dazu, dass Lilypond eine druckfähige PDF-Datei
231 bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im
232 Benutzerhandbuch -- @ruser{Partiturlayout} und
233 @ruser{MIDI-Dateien erstellen}.
235 @cindex Partituren, mehrfache
236 @cindex book-Abschnitte, implizit
237 @cindex implizite book-Umgebung
241 Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten.
242 Jeder davon wird als eigenständige Partitur interpretiert, die
243 allerdings alle in dieselbe Ausgabedatei plaziert werden.
244 Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird
245 implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer
246 einzigen @file{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
247 dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
248 gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
253 Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
254 PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
255 setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen
256 impliziten @code{\book}-Blocks.
258 Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück
259 innerhalb des @code{\book}-Blocks.
261 @cindex Layout-Umgebung, Platzierung
262 @cindex Platzierung von layout-Umgebung
264 Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
265 @code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein
266 @code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf
267 diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block
268 außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit
269 erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf
270 alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks.
272 Nähere Details finden sich im Abschnitt @ruser{Mehrere Partituren in einem Buch}.
277 Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen, wie auch gezeigt in @ref{Stücke durch Bezeichner organisieren}.
278 Alle Vorlagen verwenden diese Möglichkeit:
281 melodie = \relative c' @{
290 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
291 von @code{melodie} (alles nach dem Gleichheitszeichen) und
292 fügt ihn immer dann ein, wenn ein @code{\melodie}
293 vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
294 gut @code{melodie}, @code{GLOBAL}, @code{rechteHandKlavier},
295 oder @code{foofoobarbaz} heißen.
296 Als Variablenname kann fast jeder beliebige Name benutzt werden,
297 allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche,
298 Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl
299 lauten. Für mehr Information siehe
300 @ref{Tipparbeit durch Variablen und Funktionen ersparen}. Die genauen
301 Einschränkungen sind beschrieben in @ruser{Die Dateistruktur}.
305 Eine vollständige Definition des Eingabeformats findet sich in
306 @ruser{Die Dateistruktur}.
309 @node Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
310 @subsection Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
311 @translationof Score is a (single) compound musical expression
318 @cindex zusammengesetzter Musikausdruck
319 @cindex Musikausdruck, zusammengesetzter
322 Im vorigen Kapitel, @ref{Einführung in die Dateistruktur von LilyPond},
323 wurde die allgemeine Struktur einer LilyPond-Quelldatei
324 beschrieben. Aber anscheinend haben wir die wichtigste
325 Frage ausgelassen, nämlich wie man herausfindet, was nach
326 dem @code{\score} geschrieben werden soll.
328 In Wirklichkeit ist das aber gar kein Geheimnis. Diese
329 Zeile ist die Antwort:
332 @emph{Eine Partitur fängt immer mit @code{\score} an, gefolgt
333 von einem einzelnen musikalischen Ausdruck.}
337 Vielleicht wollen Sie noch einmal
338 @ref{Musikalische Ausdrücke erklärt} überfliegen. In diesem
339 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke
340 aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
341 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung
342 und betrachten, wie sich ein großer musikalischer Ausdruck
343 zerlegen lässt. Zur Einfachheit soll nur ein Sänger und Klavier
344 in unserem Beispiel eingesetzt werden. Wir brauchen
345 keine Systemgruppe (StaffGroup), die einfach nur bewirkt,
346 dass die Systeme mit einer Klammer zusammengefasst werden; sie
347 wird also entfernt. Wir @emph{brauchen} aber einen Sänger und ein Klavier.
353 \new Staff = "Sänger" <<
355 \new PianoStaff = "Klavier" <<
363 Hier wurden die Systeme (Staff) benannt: @qq{Sänger} und
364 @qq{Klavier}. Das ist nicht direkt notwendig in diesem Fall,
365 aber es ist gut, sich diese Schreibweise anzugewöhnen, damit man
366 immer sofort erkennt, um welches System es sich handelt.
368 Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig
369 gesetzt. Dadurch werden Vokalstimme und Klaviersysteme übereinander
370 ausgegeben. Die @code{<< ... >>}-Konstruktion ist für das
371 Sänger-System nicht notwendig, wenn hier nur die Noten einer
372 einzigen Stimme eingefügt werden sollen, aber @code{<< ... >>}
373 anstelle von geschwungenen Klammern sind notwendig,
374 sobald mehr als eine Stimme oder etwa eine Notenstimme und
375 Gesangstext eingefügt werden sollen. In unserem Fall soll eine
376 Stimme mit Gesangstext notiert werden, sodass die spitzen Klammern
377 benötigt werden. Die Noten sollen erst später hinzugefügt werden,
378 hier also erstmal nur ein paar Platzhalternoten und Text. Wenn
379 Sie sich nicht erinnern, wie man Gesangstext notiert, lesen
380 Sie noch einmal @code{\addlyrics} in @ref{Setting simple songs}.
383 @lilypond[verbatim,quote,ragged-right]
386 \new Staff = "Sänger" <<
387 \new Voice = "Singstimme" { c'1 }
390 \new PianoStaff = "Klavier" <<
391 \new Staff = "oben" { }
392 \new Staff = "unten" { }
399 Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
400 für einen Sänger, in dem sich wieder eine Stimme (engl. voice)
401 befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
402 gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
403 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new
404 PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
405 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der
406 dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und
408 für die linke) erstellt werden, auch wenn das untere System noch
409 einen Bassschlüssel erhalten muss.
411 Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
412 geschweiften Klammern neben @code{\new Voice = "Singstimme"}
422 schreiben. Aber wenn man seine Datei so direkt schreibt, wird
423 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu
424 verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
425 (oder Variablen) zu verwenden. Sie wurden zu Beginn des vorigen
426 Abschnitts erklärt, erinnern Sie sich? Damit wir sicher gehen
427 können, dass der Inhalt der @code{text}-Variable als Gesangstext
428 interpretiert wird, wird ihm @code{\lyricmode} vorangesetzt. Wie
429 @code{\addlyrics} wird hiermit in den Eingabemodus für Gesangstext
430 gewechselt. Ohne diesen Befehl würde LilyPond versuchen, den Inhalt
431 der Variable als Noten zu interpretieren und dabei eine Menge
432 Fehler produzieren. (Einige andere Eingabemodi sind außerdem noch
433 verfügbar, siehe @ruser{Input modes}.)
435 Also haben wir, wenn wir ein paar Noten und einen Bassschlüssel
436 für die linke Hand hinzufügen, folgendes Beispiel:
439 @lilypond[verbatim,quote,ragged-right]
440 melodie = \relative c'' { r4 d8\noBeam g, c4 r }
441 text = \lyricmode { And God said, }
442 oben = \relative c'' { <g d g,>2~ <g d g,> }
443 unten = \relative c { b2 e }
447 \new Staff = "Sänger" <<
448 \new Voice = "Singstimme" { \melodie }
451 \new PianoStaff = "Klavier" <<
452 \new Staff = "oben" { \oben }
453 \new Staff = "unten" {
463 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung
464 sollte man langsam und sorgfältig vorgehen. Am besten fängt
465 man mit dem größten Gebilde an und definiert dann die darin
466 enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
467 genau mit den Einzügen zu sein, so dass jede Zeile, die
468 der gleichen Ebene angehört, wirklich horizontal an der
469 gleichen Stelle beginnt.
473 Benutzerhandbuch: @ruser{Struktur einer Partitur}.
476 @node Musikalische Ausdrücke ineinander verschachteln
477 @subsection Musikalische Ausdrücke ineinander verschachteln
478 @translationof Nesting music expressions
480 @cindex Notenzeilen, temporäre
482 @cindex temporäre Notenzeilen
484 Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleich
485 zu Beginn erzeugt werden -- sie können auch zu einem späteren
486 Zeitpunkt eingeführt weden. Das ist vor allem nützlich, um
487 @rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kurzes Beispiel,
488 wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt
491 @lilypond[verbatim,quote,ragged-right]
508 Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie
509 auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
510 der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
511 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
513 @cindex Notenzeile, Positionierung
514 @cindex Positionierung einer Notenzeile
516 Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
520 @lilypond[verbatim,quote,ragged-right]
521 \new Staff = "Hauptzeile" {
528 alignAboveContext = #"Hauptzeile"
536 Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
537 genauer erklärt wird. Damit kann das Standardverhalten einer
538 einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
539 dass die neue Notenzeile oberhalb der bereits existierenden Zeile
540 mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt
541 standardmäßig unterhalb.
545 Ossia werden oft ohne Notenschlüssel und Taktangabe gedruckt, meist
546 auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich
547 auch in LilyPond möglich, benötigt aber Befehle, die bisher noch
548 nicht vorgestellt wurden. Siehe @ref{Größe von Objekten}
549 und @ruser{Ossia-Systeme}.
552 @node Über die Nicht-Schachtelung von Klammern und Bindebögen
553 @subsection Über die Nicht-Schachtelung von Klammern und Bindebögen
554 @translationof On the un-nestedness of brackets and ties
556 @cindex Klammern, geschachtelt
557 @cindex Schachtelung von Klammern
558 @cindex Klammer-Typen
560 Sie haben bisher zahlreiche verschiedene Arten von Klammern
561 und Klammer-artigen Konstruktionen beim Schreiben von Musik mit
562 LilyPond kennengelernt. Diese folgen verschiedenen Regeln, die zu
563 Beginn vielleicht verwirrend wirken. Bevor die genauen Regeln
564 vorgestellt werden, wollen wir die diversen Klammerarten und Arten
565 von Klammer-artigen Konstrukten kurz rekapitulieren:
567 @c attempt to force this onto a new page
569 @multitable @columnfractions .3 .7
572 @item @code{@{ .. @}}
573 @tab Umschließt ein sequenzielles Musiksegment
575 @tab Umschließt die Noten eines Akkords
576 @item @code{<< .. >>}
577 @tab Umschließt parallele Musikausdrücke
579 @tab Markiert den Beginn und das Ende eines Haltebogens
580 @item @code{\( .. \)}
581 @tab Markiert den Beginn und das Ende eines Phasierungsbogens
583 @tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
586 Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
587 erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
588 Haltebögen (durch eine Tilde @code{~} markiert),
589 Triolen (als @code{\times x/y @{..@}} geschrieben) und
590 Vorschlagnoten (als @code{\grace@{..@}} notiert).
592 Außerhalb von LilyPond fordert die übliche Benutzung von
593 Klammern, dass die entsprechenden Arten korrekt verschachtelt
594 werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die
595 schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
596 wie die öffnenden Klammern vor. Dies ist auch in LilyPond
597 ein @strong{Muss} für die drei Klammerarten, die in obiger
598 Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie
599 müssen korrekt geschachtelt werden.
600 Die restlichen Klammer-artigen Konstruktionen (durch @q{Markiert}
601 in der Tabelle oben beschrieben), die Haltebögen und die Triolen
603 den anderen Klammern oder Klammer-artigen Konstrukten @strong{nicht}
604 unbedingt korrekt geschachtelt werden. Tatsächlich sind sie auch
605 keine Klammern in dem Sinn, dass sie etwas umschließen, sondern
606 viel mehr Indikatoren, an welcher Stelle ein bestimmtes
607 musikalisches Objekt beginnt oder endet.
609 So kann also z.B. einen Phrasierungsbogen vor einem manuellen
610 Balken beginn, jedoch schon vor dem Ende des Balkens enden.
611 Dies mag zwar musikalisch wenig Sinn ergeben, ist aber in LilyPond
614 @lilypond[quote,verbatim,ragged-right,relative=2]
615 { g8\( a b[ c b\) a] g4 }
618 Im Allgemeinen können die verschiedenen Klammerarten,
619 Klammer-artigen Konstruktionen, Haltebögen,
620 Triolen und Vorschlagnoten beliebig kombiniert werden.
621 Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht
622 (Zeile 1), eine Bindebogen, der ebenfalls in eine Triole
623 reicht (Zeile 2), einen Balken und einen Bindeboden in eine Triole,
624 ein Haltebogen, der über zwei Triolen läuft, sowie einen
625 Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4).
627 @lilypond[quote,verbatim,ragged-right]
629 r16[ g \times 2/3 { r16 e'8] }
630 g16( a \times 2/3 { b16 d) e' }
631 g8[( a \times 2/3 { b8 d') e'~] } |
632 \times 4/5 { e'32\( a b d' e' } a'4.\)
637 @node Voice enthält Noten
638 @section Voice enthält Noten
639 @translationof Voices contain music
641 Sänger brauchen Stimmen zum Singen, und LilyPond braucht sie auch:
642 in der Tat sind alle Noten für alle Instrumente in einer Partitur
643 innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegendste Prinzip
648 * Stimmen explizit beginnen::
652 @node Ich höre Stimmen
653 @subsection Ich höre Stimmen
654 @translationof I'm hearing Voices
658 @cindex mehrere Stimmen
659 @cindex Stimmen, mehrere
660 @cindex Voice context
661 @cindex context, Voice
662 @cindex Kontext, Stimme
663 @cindex Stimmenkontext
664 @cindex gleichzeitige Noten
665 @cindex Stimmen versus Akkorde
666 @cindex Akkorde versus Stimmen
667 @cindex Noten gleichzeitig
669 Die grundlegendsten und innersten Ebenen ein einer LilyPond-Partitur
670 werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice}
671 (Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
672 manchmal auch als @qq{layer} (Ebene) bezeichnet.
674 Tatsächlich ist die Stimmenebene die einzige, die wirklich Noten
675 enthalten kann. Wenn kein Stimmenkontext explizit erstellt wird,
676 wird er automatisch erstellt, wie am Anfang dieses Kapitels
677 gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
678 Note gleichzeitig spielen. Noten für solche Instrumente sind
679 monophon und brauchen nur eine einzige Stimme. Instrumente, die
680 mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen
681 dagegen oft mehrere Stimmen, um die verschiedenen gleichzeitig
682 erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen
685 Eine einzelne Stimme kann natürlich auch vielen Noten in einem Akkord
686 enthalten -- wann also braucht man dann mehrere Stimmen? Schauen wir
687 uns zuerst dieses Beispiel mit vier Akkorden an:
689 @lilypond[quote,verbatim,ragged-right,relative=1]
691 <d g>4 <d fis> <d a'> <d g>
694 Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern
695 @code{< ... >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
696 nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
697 eine Achtelnote sein, gefolgt von einer Achtelnote G (als Durchgangsnote
698 hin zum A)? Hier haben wir also zwei Noten, die zur gleichen Zeit
699 beginnen, aber unterschiedliche Dauern haben: die Viertelnote D und die
700 Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie
701 nicht schreiben, weil alle Noten in einem Akkord die gleiche Länge besitzen
702 müssen. Sie können auch nicht als aufeinanderfolgende Noten geschrieben
703 werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
706 Wie aber wird das in der LilyPond-Syntax ausgedrückt?
711 Die einfachste Art, Fragmente mit mehr als einer Stimme auf einem System
712 zu notieren, ist, die Stimmen nacheinander (jeweils mit den Klammern
713 @code{@{ ... @}}) zu schreiben und dann mit den spitzen Klammern
714 (@code{<<...>>}) simultan zu kombinieren. Die beiden Fragmente müssen
715 zusätzlich noch mit zwei Backslash-Zeichen (@code{\\}) voneinander
716 getrennt werden, damit sie als zwei unterschiedliche Stimmen erkannt
717 werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
718 werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
719 den Noten um hauptsächlich homophone Musik handelt, in der hier und da
720 polyphone Stellen vorkommen.
722 So sieht es aus, wenn die Akkorde in zwei Stimmen aufgeteilt werden
723 und zur Durchgangsnote noch ein Bogen hinzugefügt wird:
725 @lilypond[quote,verbatim,ragged-right,relative=2]
727 % Voice "1" Voice "2"
728 << { g4 fis8( g) a4 g } \\ { d4 d d d } >>
731 Beachte, dass die Hälse der zweiten Stimme nun nach unten zeigen.
733 Hier ein anderes Beispiel:
735 @lilypond[quote,verbatim,ragged-right,relative=2]
737 % Voice "1" Voice "2"
738 << { r4 g g4. a8 } \\ { d,2 d4 g } >>
739 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >>
740 << { a2. r4 } \\ { fis2. s4 } >>
743 Es ist nicht notwendig, für jeden Takt eine eigene
744 @code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
745 Noten pro Takt kann es die Quelldatei besser lesbar machen, aber
746 wenn in einem Takt viele Noten vorkommen, kann man die gesamten Stimmen
747 separat schreiben, wie hier:
749 @lilypond[quote,verbatim,ragged-right,relative=2]
764 Dieses Beispiel hat nur zwei Stimmen, aber die gleiche Konstruktion kann
765 angewendet werden, wenn man drei oder mehr Stimmen hat, indem man weitere
766 Backslash-Trenner hinzufügt.
768 Die Stimmenkontexte tragen die Namen @code{"1"}, @code{"2"} usw. In jedem
769 dieser Kontexte wird die vertikale Ausrichtung von Hälsen, Bögen, Dynamik-Zeichen
770 usw. entsprechend ausgerichtet.
772 @lilypond[quote,verbatim]
773 \new Staff \relative c' {
776 % Voice "1" Voice "2" Voice "3"
777 << { g4 f e } \\ { r8 e4 d c8~ } >> |
778 << { d2 e } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b c2 } >> |
782 Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten
783 außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
784 uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
785 können nur Noten in der selben Stimmen miteinander verbinden und können
786 also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
787 gilt, dass parallele Stimmen aus eigenen simultanen Konstruktionen auf
788 dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
789 Stimmenkontext verknüpfte Eigenschaften erstrecken sich auf alle
790 simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
791 Beachten Sie, dass Änderungen in einer Stimme sich nicht auf die anderen
792 Stimmen erstrecken, aber sie sind weiterhin in der selben Stimme vorhanden,
793 auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
794 über die gleiche Stimme in zwei Konstrukten verteilt werden können, wie
795 hier an der blauen Dreieckstimme gezeigt.
797 @lilypond[quote,verbatim]
798 \new Staff \relative c' {
817 { c8 b16 a b8 g~ g2 }
827 @funindex \voiceOneStyle
828 @funindex \voiceTwoStyle
829 @funindex \voiceThreeStyle
830 @funindex \voiceFourStyle
831 @funindex \voiceNeutralStyle
833 Die Befehle @code{\voiceXXXStyle} sind vor allem dazu da, um in
834 pädagogischen Dokumenten wie diesem hier angewandt zu werden.
835 Sie verändern die Farbe des Notenkopfes, des Halses und des Balkens, und
836 zusätzlich die Form des Notenkopfes, damit die einzelnen Stimmen
837 einfach auseinander gehalten werden können. Die erste Stimme ist als
838 rote Raute definiert, die zweite Stimme als blaue Dreiecke, die dritte
839 Stimme als grüne Kreise mit Kreuz und die vierte Stimme (die hier nicht
840 benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
841 nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
842 werden, wie Befehle wie diese vom Benutzer selber erstellt werden
843 können. Siehe auch @ref{Sichtbarkeit und Farbe von Objekten} und
844 @ref{Variablen für Optimierungen einsetzen}.
846 @cindex Polyphonie und relativer Notationsmodus
847 @cindex relativer Notationsmodus und Polyphonie
849 Polyphonie ändert nicht die Verhältnisse der Noten innerhalb eines
850 @code{\relative}-Blocks. Jede Note wird weiterhin relativ zu
851 der vorherigen Note errechnet, oder relativ zur ersten Note des vorigen
852 Akkords. So ist etwa hier
855 \relative c' @{ NoteA << < NoteB NoteC > \\ NoteD >> NoteE @}
859 @code{NoteB} bezüglich @code{NoteA} @*
860 @code{NoteC} bezüglich @code{NoteB}, nicht @code{noteA}; @*
861 @code{NoteD} bezüglich @code{NoteB}, nicht @code{NoteA} oder
863 @code{NoteE} bezüglich @code{NoteD}, nicht @code{NoteA} errechnet.
865 Eine andere Möglichkeit ist, den @code{\relative}-Befehl vor jede
866 Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
870 \relative c' @{ NoteA ... @}
872 \relative c'' @{ < NoteB NoteC > ... @}
874 \relative g' @{ NoteD ... @}
876 \relative c' @{ NoteE ... @}
879 Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück
880 analysieren. Hier die Noten der ersten zwei Takte von Chopins
881 @notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
882 und dem nächsten Kapitel benutzt werden, um verschiedene Techniken,
883 Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
884 Punkt alles in folgendem Code, das Ihnen seltsam vorkommt, und konzentrieren
885 Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
886 in späteren Abschnitten erklärt werden.
888 @c The following should appear as music without code
889 @lilypond[quote,ragged-right]
890 \new Staff \relative c'' {
899 % Ignore these for now - they are explained in Ch 4
900 \once \override NoteColumn #'force-hshift = #0
902 \once \override NoteColumn #'force-hshift = #0.5
910 Die Richtung der Hälse wird oft benutzt, um anzuzeigen, dass zwei
911 gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
912 oberen Noten nach oben und die Hälse aller unteren Noten nach unten.
913 Das ist der erste Anhaltspunkt, dass mehr als eine Stimme benötigt
916 Aber die wirkliche Notwendigkeit für mehrere Stimmen tritt erst
917 dann auf, wenn unterschiedliche Noten gleichzeitig erklingen, aber
918 unterschiedliche Dauern besitzen. Schauen Sie sich die Noten
919 auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
920 Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
921 nicht als Akkord geschrieben werden, denn alle Noten in einem Akkord
922 besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
923 geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
924 Taktabschnitt benötigt drei Stimmen, und normalerweise schreibt man
925 drei Stimmen für den ganzen Takt, wie im Beispiel unten zu sehen ist;
926 hier sind unterschiedliche Köpfe und Farben für die verschiedenen Stimmen
927 eingesetzt. Noch einmal: der Quellcode für dieses Beispiel wird später
928 erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht
931 @c The following should appear as music without code
932 @c The three voice styles should be defined in -init
933 @lilypond[quote,ragged-right]
934 \new Staff \relative c'' {
945 \\ % No Voice three (we want stems down)
948 % Ignore these for now - they are explained in Ch 4
949 \once \override NoteColumn #'force-hshift = #0
951 \once \override NoteColumn #'force-hshift = #0.5
959 Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen
960 werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
961 wir es gelernt haben, indem wir mit der @code{<< \\ >>}-Konstruktion
962 die drei Stimmen des ersten Taktes notieren:
964 @lilypond[quote,verbatim,ragged-right]
965 \new Staff \relative c'' {
968 { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des }
974 @cindex Hals nach unten
975 @cindex Hals nach oben
976 @cindex Notenhals, Richtung
977 @cindex Richtung des Notenhalses
978 @cindex Notenhalsrichtung
979 @cindex Stimmen und Notenhalsrichtung
980 @cindex Notenhalsrichtung in Stimmen
982 Die Richtung des Notenhalses wird automatisch zugewiesen; die ungeraden
983 Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
984 für die Stimmen 1 und 2 stimmen, aber die Hälse in der dritten Stimme
985 sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
986 korrigieren, indem wir die dritte Stimme einfach auslassen und die
987 Noten in die vierte Stimme verschieben. Das wird einfach vorgenommen,
988 indem noch ein Paar @code{\\}-Stimmen hinzugefügt wird.
991 @lilypond[quote,verbatim,ragged-right]
992 \new Staff \relative c'' {
998 \\ % Stimme drei auslassen
1007 Wie zu sehen ist, ändert das die Richtung der Hälse, aber zeigt ein
1008 anderes Problem auf, auf das man manchmal bei mehreren Stimmen stößt:
1009 Die Hälse einer Stimme können mit den Hälsen anderer Stimmen kollidieren.
1010 LilyPond erlaubt Noten in verschiedenen Stimmen sich auf der gleichen
1011 vertikalen Position zu befinden, wenn die Hälse in entgegengesetzte
1012 Richtungen zeigen, und positioniert die dritte und vierte Stimme dann
1013 so, dass Zusammenstöße möglichst vermieden werden. Das funktioniert
1014 gewöhnlich recht gut, aber in diesem Beispiel sind die Noten der untersten
1015 Stimme eindeutig standardmäßig schlecht positioniert. LilyPond bietet
1016 verschiedene Möglichkeiten, die horizontale Position von Noten
1017 anzupassen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
1018 anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt auf; siehe @code{force-hshift}-Eigenschaft in
1019 @ref{Überlappende Notation in Ordnung bringen}.
1023 Notationsreferenz: @ruser{Mehrere Stimmen}.
1026 @node Stimmen explizit beginnen
1027 @subsection Stimmen explizit beginnen
1028 @translationof Explicitly instantiating voices
1034 @funindex \voiceThree
1035 @funindex voiceThree
1036 @funindex \voiceFour
1040 @funindex \new Voice
1041 @cindex Voice context, erstellen von
1042 @cindex Stimmenkontexte, erstellen von
1044 Voice-Kontexte können auch manuell innerhalb
1045 eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen
1046 @code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme
1047 entsprechendes Verhalten von vertikaler Verschiebung und Richtung
1048 von Hälsen und anderen Objekten hinzugefügt werden. In längeren
1049 Partituren können die Stimmen damit besser auseinander gehalten
1052 Die @code{<< \\ >>}-Konstruktion, die wir im vorigen Abschnitt
1058 << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
1068 \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
1069 \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
1073 Beide würden folgendes Notenbild erzeugen:
1075 @c The following example should not display the code
1076 @lilypond[ragged-right,quote]
1078 \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
1079 \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
1083 @cindex Stimmen, mehrere zu einer zusammenführen
1084 @cindex eine Stimme wiederherstellen
1086 Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen,
1087 Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen.
1088 @code{\voiceOne} und @code{\voiceThree} lassen diese Objekte
1089 nach oben zeigen, @code{\voiceTwo} und @code{\voiceFour}
1090 dagegen lassen sie abwärts zeigen. Diese Befehle erzeugen eine
1091 horizontale Verschiebung, wenn es erforderlich ist, um Zusammenstöße
1092 zu vermeiden. Der Befehl
1093 @code{\oneVoice} stellt wieder auf das normale Verhalten um.
1095 Schauen wir uns in einigen einfachen Beispielen an, was genau
1096 die Befehle @code{\oneVoice}, @code{\voiceOne} und @code{voiceTwo}
1097 mit Text, Bögen und Dynamikbezeichnung anstellen:
1099 @lilypond[quote,ragged-right,verbatim]
1101 % Default behavior or behavior after \oneVoice
1102 c4 d8~ d e4( f | g4 a) b-> c |
1106 @lilypond[quote,ragged-right,verbatim]
1109 c4 d8~ d e4( f | g4 a) b-> c |
1111 c,4 d8~ d e4( f | g4 a) b-> c |
1115 @lilypond[quote,ragged-right,verbatim]
1118 c4 d8~ d e4( f | g4 a) b-> c |
1120 c,4 d8~ d e4( f | g4 a) b-> c |
1124 Schauen wir und nun drei unterschiedliche Arten an, den gleichen
1125 Abschnitt polyphoner Musik zu notieren, jede Art mit ihren
1126 Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
1127 das Beispiel vom vorherigen Abschnitt.
1129 Ein Ausdruck, der direkt innerhalb einer @code{<< >>}-Umgebung
1130 auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche
1131 Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also
1132 eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die
1133 farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in
1134 einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
1135 Phrasierungsbogen ober sie gesetzt werden.
1137 @lilypond[quote,ragged-right,verbatim]
1138 \new Staff \relative c' {
1140 % The following notes are monophonic
1142 % Start simultaneous section of three voices
1144 % Continue the main voice in parallel
1145 { g4 f e | d2 e) | }
1146 % Initiate second voice
1148 % Set stems, etc., down
1150 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
1152 % Initiate third voice
1154 % Set stems, etc, up
1162 @cindex Verschachteln von musikalischen Ausdrücken
1163 @cindex Verschachteln von gleichzeitigen Ausdrücken
1164 @cindex Ausdrücke, Verschachteln von
1165 @cindex Stimmen, temporär
1166 @cindex Stimmen, Verschachteln von
1167 @cindex Verschachteln von Stimmen
1168 @cindex temporäre Stimmen
1170 Tiefer verschachtelte polyphone Konstrukte sind möglich, und
1171 wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg
1172 sein, Noten zu setzen:
1174 @lilypond[quote,ragged-right,verbatim]
1175 \new Staff \relative c' {
1178 { g4 f e | d2 e2) | }
1183 { c8 b16 a b8 g~ g2 | }
1194 @cindex Platzhalternoten
1195 @cindex unsichtbare Noten
1196 @cindex Noten verstecken
1198 Diese Methode, neue Stimmen kurzzeitig zu verschachteln, bietet sich
1199 an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
1200 aber die ganze Partitur polyphon ist, ist es meistens klarer, direkt
1201 unterschiedliche Stimmen über die gesamte Partitur hinweg einzusetzen.
1202 Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen,
1203 an denen die Stimme nicht auftaucht, wie etwa hier:
1205 @lilypond[quote,ragged-right,verbatim]
1206 \new Staff \relative c' <<
1207 % Initiate first voice
1210 c16^( d e f g4 f e | d2 e) |
1212 % Initiate second voice
1214 % Set stems, etc, down
1216 s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
1218 % Initiate third voice
1220 % Set stems, etc, up
1227 @subsubheading Notenkolumnen
1229 @cindex Notenkolumne
1230 @cindex Notenkollision
1231 @cindex Zusammenstöße von Noten
1232 @cindex Kollisionen von Noten
1233 @cindex Vertikale Position
1234 @cindex shift-Befehle
1235 @cindex Verschieben von Noten
1239 @funindex \shiftOnnn
1245 Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen
1246 Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal
1247 auch mehreren Kolumnen gesetzt, um die Noten am Überschneiden zu
1248 hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
1249 eine eigene Kolumne, und ein stimmenabhängiger Verschiebunsbefehl (engl.
1250 shift) wird eingesetzt, wenn eine Kollision auftreten könnte.
1251 Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
1252 Stimme nach rechts verschoben, relativ gesehen zum D der ersten Stimme,
1253 und im letzten Akkord wird das C der dritten Stimme auch nach
1254 rechts verschoben im Verhältnis zu den anderen Stimmen.
1256 Die Befehle @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} und
1257 @code{\shiftOff} bestimmen den Grad, zu dem Noten und Akkorde
1258 verschoben werden sollen, wenn sich sonst eine Kollision nicht
1259 vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
1260 Stimmen (also normalerweise Stimme 1 und 2) @code{\shiftOff}
1261 eingestellt haben, während für die inneren Stimmen (3 und 4)
1262 @code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
1263 auftritt, werden Stimmen 1 und 3 nach rechts und Stimmen 2 und 4
1264 nach links verschoben.
1266 @code{\shiftOnn} und @code{\shiftOnnn} definieren weitere
1267 Verschiebungsebenen, die man kurzzeitig anwählen kann, um
1268 Zusammenstöße in komplexen Situationen aufzulösen, siehe auch
1269 @ref{Beispiele aus dem Leben}.
1271 Eine Notenkolumne kann nur eine Note (oder einen Akkord) von
1272 einer Stimme mit Hälsen nach oben und eine Note (oder einen
1273 Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
1274 Noten von zwei Stimmen mit den Hälsen in die gleiche Richtung
1275 an der selben Stelle auftreten und in beiden Stimmen ist
1276 keine Verschiebung oder die gleiche Verschiebungsebene
1277 definiert, wird die Fehlermeldung
1278 @qq{zu viele kollidierende Notenspalten werden ignoriert}
1283 Notationsreferenz: @ruser{Mehrere Stimmen}.
1286 @node Stimmen und Text
1287 @subsection Stimmen und Text
1288 @translationof Voices and vocals
1290 Die Notation von Vokalmusik ihre eigene Schwierigkeit, nämlich
1291 die Kombination von zwei Ausdrücken: den Noten und dem Text.
1292 Achtung: Der Gesangstext wird auf Englisch @qq{lyrics} genannt.
1295 @funindex \new Lyrics
1299 @cindex Lyrics context, erstellen
1300 @cindex Gesangtext, Verbindung mit Noten
1302 Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet,
1303 mit dem einfache Partituren gut erstellt werden können.
1304 Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
1305 komplexer wird, muss der Gesangstext mit einem neuen
1306 @code{Lyrics}-Kontext begonnen werden (mit dem Befehl
1307 @code{\new Lyrics}) und durch den Befehl @code{\lyricsto@{@}}
1308 mit einer bestimmten Stimme verknüpft werden, indem die
1309 Bezeichnung der Stimme benutzt wird.
1311 @lilypond[quote,verbatim]
1313 \new Voice = "one" {
1317 c4 b8. a16 | g4. f8 | e4 d | c2 |
1320 \new Lyrics \lyricsto "one" {
1321 No more let | sins and | sor -- rows | grow. |
1326 Beachten Sie, dass der Notentext nur mit einem @code{Voice}-Kontext
1327 verknüpft werden kann, nicht mit einem @code{Staff}-Kontext.
1328 In diesem Fall also müssen Sie ein System (@code{Staff}) und
1329 eine Stimme (@code{Voice}) explizit erstellen, damit alles
1332 @cindex Gesangstext und Balken
1333 @cindex Text und Balken
1334 @cindex Balken und Text
1335 @funindex \autoBeamOff
1336 @funindex autoBeamOff
1338 Die automatischen Balken, die LilyPond in der Standardeinstellung
1339 setzt, eignen sich sehr gut für instrumentale Musik, aber nicht
1340 so gut für Musik mit Text, wo man entweder gar keine Balken
1341 benutzt oder sie einsetzt, um Melismen zu verdeutlichen.
1342 Im Beispiel oben wird deshalb der Befehl @code{\autoBeamOff}
1343 eingesetzt um die automatischen Balken (engl. beam) auszuschalten.
1345 @funindex \new ChoirStaff
1346 @funindex \lyricmode
1347 @funindex ChoirStaff
1349 @cindex Vokalpartitur, Aufbau
1350 @cindex Chorpartitur, Aufbau
1352 Wir wollen das frühere Beispiel von @notation{Judas Maccabæus}
1353 benutzen, um diese flexiblere Technik für Gesangstexte
1354 zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
1355 Variablen eingesetzt werden, um den Text und die Noten
1356 von der Partiturstruktur zu trennen. Es wurde zusätzlich
1357 eine Chorpartiturklammer hinzugefügt. Der Gesangtext muss mit
1358 @code{\lyricmode} eingegeben werden, damit er als Text und
1359 nicht als Noten interpretiert werden kann.
1361 @lilypond[quote,verbatim]
1362 global = { \key f \major \time 6/8 \partial 8 }
1364 SopOneMusic = \relative c'' {
1365 c8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ c4
1367 SopOneLyrics = \lyricmode {
1368 Let | flee -- cy flocks the | hills a -- dorn, __
1370 SopTwoMusic = \relative c' {
1371 r8 | r4. r4 c8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
1373 SopTwoLyrics = \lyricmode {
1374 Let | flee -- cy flocks the | hills a -- dorn,
1380 \new Voice = "SopOne" {
1384 \new Lyrics \lyricsto "SopOne" {
1389 \new Voice = "SopTwo" {
1393 \new Lyrics \lyricsto "SopTwo" {
1401 Dies ist die Grundstruktur für alle Chorpartituren. Mehr
1402 Systeme können hinzugefügt werden, wenn sie gebraucht werden, mehr
1403 Stimmen können zu jedem System hinzugefügt werden, mehr
1404 Strophen können zum Text hinzugefügt werden, und schließlich
1405 können die Variablen schnell in eine eigene Datei verschoben
1406 werden, wenn sie zu lang werden sollten.
1408 @cindex Choralnotation
1409 @cindex Hymnus-Notation
1410 @cindex SATB-Partitur
1411 @cindex mehrere Strophen
1412 @cindex Strophen, mehrere
1413 @cindex Choral mit mehreren Strophen
1415 Hier ein Beispiel der ersten Zeile eines Chorals mit vier
1416 Strophen für gemischten Chor. In diesem Fall ist der Text
1417 für alle vier Stimmen identisch. Beachten Sie, wie die
1418 Variablen eingesetzt werden, um Inhalt (Noten und Text) und Form
1419 (die Partitur) voneinander zu trennen. Eine Variable wurde
1420 eingesetzt, um die Elemente, die auf beiden Systemen auftauchen,
1421 aufzunehmen, nämlich Taktart und Tonart. Solch eine
1422 Variable wird oft auch mit @qq{global} bezeichnet.
1424 @lilypond[quote,verbatim]
1425 keyTime = { \key c \major \time 4/4 \partial 4 }
1427 SopMusic = \relative c' { c4 | e4. e8 g4 g | a4 a g }
1428 AltoMusic = \relative c' { c4 | c4. c8 e4 e | f4 f e }
1429 TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 }
1430 BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 }
1433 \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
1435 \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
1437 \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
1439 \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
1445 \new Voice = "Sop" { \voiceOne \keyTime \SopMusic }
1446 \new Voice = "Alto" { \voiceTwo \AltoMusic }
1447 \new Lyrics \lyricsto "Sop" { \VerseOne }
1448 \new Lyrics \lyricsto "Sop" { \VerseTwo }
1449 \new Lyrics \lyricsto "Sop" { \VerseThree }
1450 \new Lyrics \lyricsto "Sop" { \VerseFour }
1454 \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
1455 \new Voice = "Bass" { \voiceTwo \BassMusic }
1463 Notation Reference: @ruser{Notation von Gesang}.
1466 @node Kontexte und Engraver
1467 @section Kontexte und Engraver
1468 @translationof Contexts and engravers
1470 Kontexte und Engraver (@qq{Stempel}) sind in den vorherigen
1471 Abschnitten schon aufgetaucht; hier wollen wir uns ihnen
1472 nun etwas ausführlicher widmen, denn sie sind sehr
1473 wichtig, um Feineinstellungen in der LilyPond-Notenausgabe
1474 vornehmen zu können.
1477 * Was sind Kontexte?::
1478 * Kontexte erstellen::
1479 * Was sind Engraver?::
1480 * Kontexteigenschaften verändern::
1481 * Engraver hinzufügen und entfernen::
1484 @node Was sind Kontexte?
1485 @subsection Was sind Kontexte?
1486 @translationof Contexts explained
1488 @cindex Kontexte erklärt
1490 Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
1492 die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
1493 etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
1495 @lilypond[quote,verbatim,relative=2]
1496 cis4 cis2. | a4 a2. |
1499 Der Quellcode ist sehr kurz und knapp, während in der
1500 Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und
1501 eine Taktart hinzugefügt wurden. Während LilyPond
1502 den Eingabetext @emph{interpretiert}, wird die
1503 musikalische Information von rechts nach links gelesen,
1504 in etwa, wie man eine Partitur von links nach
1505 rechts liest. Während das Programm den Code liest,
1506 merkt es sich, wo sich Taktgrenzen befinden und
1507 für welche Tonhöhen Versetzungszeichen gesetzt werden
1508 müssen. Diese Information muss auf mehreren Ebenen
1509 gehandhabt werden, denn Versetzungszeichen etwa
1510 beziehen sich nur auf ein System, Taktlinien dagegen
1511 üblicherweise auf die gesamte Partitur.
1513 Innerhalb von LilyPond sind diese Regeln und
1514 Informationshappen in @emph{Kontexten} (engl.
1515 contexts) gruppiert. Der @code{Voice} (Stimmen)-Kontext
1516 wurde schon vorgestellt. Daneben
1517 gibt es noch die @code{Staff} (Notensystem-) und
1518 @code{Score} (Partitur)-Kontexte. Kontexte sind
1519 hierarchisch geschichtet um die hierarchische
1520 Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
1521 kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
1522 und ein @code{Score}-Kontext kann viele
1523 @code{Staff}-Kontexte beinhalten.
1526 @sourceimage{context-example,5cm,,}
1529 Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
1530 zu erzwingen, bestimmte Notationsobjekte zu erstellen und
1531 verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
1532 zum Beispiel kann eine Vorzeichenregel einführen und der
1533 @code{Staff}-Kontext hält diese Regel dann aufrecht, um
1534 einzuordnen, ob ein Versetzungszeichen gesetzt werden
1537 Ein anderes Beispiel: die Synchronisation der Taktlinien ist
1538 standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
1539 die Systeme einer Partitur aber unterschiedliche Taktarten
1540 enthalten, etwa in einer polymetrischen Partitur mit
1541 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
1542 der @code{Score}- und @code{Staff}-Kontexte verändert werden.
1544 In einfachen Partituren werden die Kontexte implizit erstellt,
1545 und es kann sein, dass Sie sich dessen gar nicht bewusst sind.
1546 Für etwas größere Projekte, etwa mit vielen Systemen, müssen
1547 die Kontexte aber explizit erstellt werden, um sicher zu gehen,
1548 dass man auch wirklich die erwünschte Zahl an Systemen in der
1549 richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
1550 Notation gesetzt werden sollen, ist es üblich, die existierenden
1551 Kontexte zu verändern oder gar gänzlich neue zu definieren.
1553 Zusätzlich zu den @code{Score,} @code{Staff} und
1554 @code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
1555 der Partitur- und Systemebene liegen und Gruppen von Systemen
1556 kontrollieren. Das sind beispielsweise der
1557 @code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
1558 alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
1559 für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
1561 Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren
1563 Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben
1564 begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich
1566 @code{GregorianTranscriptionStaff}.
1570 Notationreferenz: @ruser{Was sind Kontexte?}.
1573 @node Kontexte erstellen
1574 @subsection Kontexte erstellen
1575 @translationof Creating contexts
1579 @cindex Neue Kontexte
1580 @cindex Erstellen von Kontexten
1581 @cindex Kontexte, Erstellen
1583 In einer Eingabedatei enthält eine @code{Score}-Umgebung (einen
1585 dem Befehl @code{\score} eingeleitet wird, nur einen einzigen
1586 musikalischen Ausdruck und mit ihm verknüpft eine Ausgabedefinition
1587 (entweder eine @code{\layout}- oder eine @code{\midi}-Umgebung).
1588 Üblicherweise wird der @code{Score}-Kontext automatisch von
1589 LilyPond erstellt, wenn der musikalische Ausdruck interpretiert
1592 Wenn nur ein System vorhanden ist, kann man es ruhig
1593 LilyPond überlassen, auch die @code{Voice}- und @code{Staff}-Kontexte
1594 zu erstellen, aber für komplexere Partituren ist es notwendig,
1595 sie mit einem Befehl zu erstellen. Der einfachste Befehl
1596 hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck
1597 vorangestellt, etwa so:
1600 \new @var{Typ} @var{musikalischer Ausdruck}
1604 wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
1605 @code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
1606 beginnt, den @var{muskalischen Ausdruck} innerhalb dieses
1607 Kontexts auszuwerten.
1609 @warning{Der @bs{}@code{new Score}-Befehl sollte nicht benutzt werden,
1610 weil der Partitur-(Score)-Kontext der obersten Ebene
1611 normalerweise automatisch erstellt wird, wenn der musikalische Ausdruck
1612 innerhalb der @code{\score}-Umgebung interpretiert wird. Standard-Werte
1613 von Kontexteigenschaften, die für einen bestimmten @code{Score} gelten
1614 sollen, können innerhalb der @bs{}@code{layout}-Umgebung definiert werden.
1615 Siehe @ref{Kontexteigenschaften verändern}.}
1617 Wir haben schon viele explizite Beispiel gesehen, in denen
1618 neue @code{Staff}- und @code{Voice}-Kontexte erstellt wurden, aber
1619 um noch einmal ins Gedächtnis zu rufen, wie diese Befehle benutzt
1620 werden, hier ein kommentiertes Beispiel aus dem richtigen Leben:
1622 @lilypond[quote,verbatim,ragged-right]
1623 \score { % start of single compound music expression
1624 << % start of simultaneous staves section
1626 \new Staff { % create RH staff
1629 \new Voice { % create voice for RH notes
1630 \relative c'' { % start of RH notes
1636 \new Staff << % create LH staff; needs two simultaneous voices
1639 \new Voice { % create LH voice one
1641 \relative g { % start of LH voice one notes
1642 g8 <bes d> ees, <g c>
1643 g8 <bes d> ees, <g c>
1644 } % end of LH voice one notes
1645 } % end of LH voice one
1646 \new Voice { % create LH voice two
1648 \relative g { % start of LH voice two notes
1651 } % end of LH voice two notes
1652 } % end of LH voice two
1653 >> % end of LH staff
1654 >> % end of simultaneous staves section
1655 } % end of single compound music expression
1658 (Beachten Sie, dass wir hier alle Zeilen, die eine neue
1659 Umgebung entweder mit einer geschweiften Klammer (@code{@{})
1660 oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
1661 jeweils zwei Leerzeichen, und die entsprechenden
1662 schließenden Klammern mit der gleichen Anzahl Leerzeichen
1663 eingerückt werden. Dies ist nicht erforderlich, es wird aber
1664 zu einem großen Teil die nicht passenden Klammerpaar-Fehler
1665 eliminieren und ist darum sehr empfohlen. Es macht es
1666 möglich, die Struktur einer Partitur auf einen Blick zu
1667 verstehen, und alle nicht passenden Klammern
1668 erschließen sich schnell. Beachten Sie auch, dass das
1669 untere Notensystem mit eckigen Klammern erstellt wird,
1670 denn innerhalb dieses Systems brauchen wir zwei Stimmen,
1671 um die Noten darzustellen. Das obere System braucht
1672 nur einen einzigen musikalischen Ausdruck und ist deshalb
1673 von geschweiften Klammern umschlossen.)
1675 @cindex Kontexte, Benennung
1676 @cindex Benennung von Kontexten
1678 Der @code{\new}-Befehl kann einem Kontext auch einen
1679 Namen zur Identifikation geben, um ihn von anderen Kontexten des
1680 selben Typs zu unterscheiden:
1683 \new @var{Typ} = @var{Name} @var{musikalischer Ausdruck}
1686 Beachten Sie den Unterschied zwischen der Bezeichnung des
1687 Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
1688 Namen, der aus beliebigen Buchstaben bestehen kann
1689 und vom Benutzer frei erfunden werden kann. Zahlen und
1690 Leerzeichen können auch benutzt werden, in dem Fall
1691 muss der Name aber von doppelten Anführungszeichen
1692 umgeben werden, also etwa
1693 @code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
1695 benutzt, um später auf genau diesen spezifischen Kontext
1696 zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
1697 zu Gesangstexten angewandt, siehe @ref{Stimmen und Text}.
1701 Notationsreferenz: @ruser{Kontexte erstellen}.
1704 @node Was sind Engraver?
1705 @subsection Was sind Engraver?
1706 @translationof Engravers explained
1709 @cindex Stempel (Engraver)
1711 Jedes Zeichen des fertigen Notensatzes von LilyPond wird
1712 von einem @code{Engraver} (Stempel) produziert. Es gibt
1713 also einen Engraver, der die Systeme erstellt, einen, der die
1714 Notenköpfe ausgibt, einen für die Hälse, einen für die
1715 Balken usw. Insgesamt gibt es über 120 Engraver! Zum
1716 Glück braucht man für die meisten Partituren nur ein
1717 paar Engraver, und für einfache Partituren muss man eigentlich
1718 überhaupt nichts über sie wissen.
1720 Engraver leben und wirken aus den Kontexten heraus. Engraver
1721 wie der @code{Metronome_mark_engraver}, dessen Aktion
1722 und Ausgabe sich auf die gesamte Partitur bezieht, wirken
1723 in der obersten Kontextebene -- dem @code{Score}-Kontext.
1725 Der @code{Clef_engraver} (Schlüssel-Stempel) und der
1726 @code{Key_engraver} (Vorzeichen-Stempel) finden sich in
1727 jedem @code{Staff}-Kontext, denn unterschiedliche Systeme
1728 könnten unterschiedliche Tonarten und Notenschlüssel
1731 Der @code{Note_heads_engraver} (Notenkopf-Stempel) und der
1732 @code{Stem_engraver} (Hals-Stempel) befinden sich in jedem
1733 @code{Voice}-Kontext, der untersten Kontextebene.
1735 Jeder Engraver bearbeitet die bestimmten Objekte, die mit
1736 seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
1737 dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
1738 die mit Kontexten assoziiert sind, können verändert werden,
1739 um die Wirkungsweise des Engravers oder das Erscheinungsbild
1740 der von ihm produzierten Elemente in der Partitur zu ändern.
1742 Alle Engraver haben zusammengesetzte Bezeichnung, die aus
1743 den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
1744 das erste Wort hat einen Großbuchstaben, und die restlichen
1745 Wörter werden mit einem Unterstrich angefügt. Ein
1746 @code{Staff_symbol_engraver} verantwortet also die Erstellung
1747 der Notenlinien, ein @code{Clef_engraver} entscheidet über die
1748 Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
1749 wird gleichzeitig die Referenztonhöhe auf dem Notensystem festgelegt.
1751 Hier die meistgebräuchlichen Engraver mit ihrer Funktion.
1752 Sie werden sehen, dass es mit etwas Englischkenntnissen
1753 einfach ist, die Funktion eines Engravers von seiner Bezeichnung
1756 @multitable @columnfractions .3 .7
1759 @item Accidental_engraver
1760 @tab Erstellt Versetzungszeichen, vorgeschlagene und Warnversetzungszeichen.
1762 @tab Erstellt Balken.
1764 @tab Erstellt Notenschlüssel.
1765 @item Completion_heads_engraver
1766 @tab Teilt Noten in kleiner Werte, wenn sie über die Taktlinie reichen.
1767 @c The old Dynamic_engraver is deprecated. -jm
1768 @item New_dynamic_engraver
1769 @tab Erstellt Dynamik-Klammern und Dynamik-Texte.
1770 @item Forbid_line_break_engraver
1771 @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist.
1773 @tab Erstellt die Vorzeichen.
1774 @item Metronome_mark_engraver
1775 @tab Erstellt Metronom-Bezeichnungen.
1776 @item Note_heads_engraver
1777 @tab Erstellt Notenköpfe.
1779 @tab Erstellt Pausen.
1780 @item Staff_symbol_engraver
1781 @tab Ersetllt die (standardmäßig) fünf Notenlinien des Systems.
1783 @tab Erstellt die Notenhälse und Tremolos mit einem Hals.
1784 @item Time_signature_engraver
1785 @tab Erstellt die Taktartbezeichnung.
1790 Es soll später gezeigt werden, wie die LilyPond-Ausgabe
1791 verändert werden kann, indem die Wirkungsweise der
1792 Engraver beeinflusst wird.
1796 Referenz der Interna: @rinternals{Engravers and Performers}.
1799 @node Kontexteigenschaften verändern
1800 @subsection Kontexteigenschaften verändern
1801 @translationof Modifying context properties
1803 @cindex Kontext-Eigenschaften, Verändern
1804 @cindex Eigenschaften von Kontexten
1805 @cindex Verändern von Kontext-Eigenschaften
1811 Kontexte sind dafür verantwortlich, die Werte bestimmter
1812 Kontext-@emph{Eigenschaften} zu speichern. Viele davon
1813 können verändert werden, um die Interpretation der
1814 Eingabe zu beeinflussen und die Ausgabe zu verändern.
1815 Kontexte werden mit dem @code{\set}-Befehl geändert.
1819 \set @var{KontextBezeichnung}.@var{eigenschaftsBezeichnung} = #@var{Wert}
1823 verwendet, wobei @var{KontextBezeichnung} üblicherweise
1825 @code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
1826 ausgelassen werden; in diesem Fall wird der aktuelle
1827 Kontext (üblicherweise @code{Voice}) eingesetzt.
1829 Die Bezeichnung von Kontexten-Eigenschaften besteht
1830 aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
1831 verbunden sind. Alle außer dem ersten werden am Anfang
1832 groß geschrieben. Hier einige Beispiele der gebräuchlichsten
1833 Kontext-Eigenschaften. Es gibt sehr viel mehr.
1835 @c attempt to force this onto a new page
1837 @multitable @columnfractions .25 .15 .45 .15
1838 @headitem eigenschaftsBezeichnung
1843 @tab boolescher Wert
1844 @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt.
1845 @tab @code{#t}, @code{#f}
1846 @item currentBarNumber
1848 @tab Setzt die aktuelle Taktnummer.
1851 @tab boolescher Wert
1852 @tab Wenn wahr, werden Legatobögen über und unter die Noten gesetzt.
1853 @tab @code{#t}, @code{#f}
1854 @item instrumentName
1856 @tab Setzt die Instrumentenbezeichnung am Anfang eines Systems.
1857 @tab @code{"Cello I"}
1860 @tab Vergrößert oder verkleinert die Schriftgröße.
1864 @tab Setzt den Text zu Beginn einer Strophe.
1869 Ein boolescher Wert ist entweder wahr (@code{#t})
1870 oder falsch (@code{#f}),
1871 ein Integer eine positive ganze Zahl, ein Real (reelle Zahl) eine positive
1872 oder negative Dezimalzahl, und Text wird in doppelte
1873 Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
1874 das Vorkommen des Rautenzeichens
1875 (@code{#}) an unterschiedlichen Stellen: als Teil eines
1876 booleschen Wertes vor dem @code{t} oder @code{f}, aber
1877 auch vor einem @emph{Wert} in der
1878 @code{\set}-Befehlskette. Wenn ein boolescher Wert
1879 eingegeben werden soll, braucht man also zwei
1880 Rautenzeichen, z. B. @code{##t}.
1882 @cindex Eigenschaften in Kontexten
1883 @cindex Veränderung von Eigenschaften in Kontexten
1885 Bevor eine Eigenschaft geändert werden kann, muss man wissen,
1886 in welchem Kontext sie sich befindet. Manchmal versteht das
1887 sich von selbst, aber in einigen Fällen kann es zunächst
1888 unverständlich erscheinen. Wenn der falsche Kontext angegeben
1889 wird, wird keine Fehlermeldung produziert, aber die
1890 Veränderung wird einfach nicht ausgeführt.
1891 @code{instrumentName} befindet sich offensichtlich innerhalb
1892 von einem @code{Staff}-Kontext, denn das Notensystem soll
1893 benannt werden. In dem folgenden Beispiel erhält das erste
1894 System korrekt die Instrumentenbezeichnung, das zweite aber
1895 nicht, weil der Kontext ausgelassen wurde.
1897 @lilypond[quote,verbatim,ragged-right]
1899 \new Staff \relative c'' {
1900 \set Staff.instrumentName = #"Soprano"
1903 \new Staff \relative c' {
1904 \set instrumentName = #"Alto" % Wrong!
1910 Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
1911 zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
1912 im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
1913 Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
1914 gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
1917 Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
1918 falsch geschrieben wird und die Änderung also nicht ausgeführt werden
1919 kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
1920 mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
1921 wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
1922 zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
1923 die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
1924 Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
1925 fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
1926 unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
1927 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
1928 Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
1929 @rinternals{Tunable context properties}, oder
1930 @rinternals{Contexts}.
1932 Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
1933 in einem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
1934 können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
1935 @code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen
1936 setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
1937 Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch)
1938 gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
1939 sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
1940 auf alle darin enthaltenen Systeme aus.
1942 Das also bewirkt, dass die zusätzlichen Erniedrigungszeichen in einem System
1945 @lilypond[quote,verbatim,ragged-right]
1947 \new Staff \relative c'' {
1950 \new Staff \relative c'' {
1951 \set Staff.extraNatural = ##f
1958 während das dazu dient, sie in allen Systemen auszuschalten:
1960 @lilypond[quote,verbatim,ragged-right]
1962 \new Staff \relative c'' {
1965 \new Staff \relative c'' {
1966 \set Score.extraNatural = ##f
1972 Ein anderes Beispiel ist die Eigenschaft @code{clefOctavation}:
1973 wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort
1974 der Wert der Oktavierung in allen aktuellen Systemen und wird
1975 auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt.
1977 Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft
1978 effektiv wieder von dem Kontext: in den meisten Fällen wird der
1979 Kontext auf ihre Standardeinstellungen zurückgesetzt.
1980 Normalerweise wird aber @code{\unset} nicht benötigt,
1981 denn ein neues @code{\set} erledigt alles, was man braucht.
1983 Die @code{\set}- und @code{\unset}-Befehle könne überall im
1984 Eingabequelltext erscheinen und werden aktiv von dem Moment, an
1985 dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
1986 mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
1987 wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
1988 auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
1989 nicht vom letzten gesetzten Wert.
1991 @lilypond[quote,verbatim,ragged-right,relative=1]
1993 % make note heads smaller
1996 % make note heads larger
1997 \set fontSize = #2.5
1999 % return to default size
2004 Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
2005 Eigenschaften ändern lassen. Beachten Sie, dass Integer und
2006 Zahlen immer mit einem Rautenzeichen beginnen, während
2007 die Werte wahr und falsch (mit @code{##t} und @code{##f}
2008 notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
2009 aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
2010 auch wenn wir später sehen werden, dass Text auf eine sehr viel
2011 allgemeinere und mächtigere Art mit dem @code{\markup}-Befehl
2012 eingegeben werden kann.
2014 @subsubheading Kontexteigenschaften mit @code{\with} setzen
2018 @cindex Kontexteigenschaft, setzen mit \with
2020 Die Standardwerte von Kontexteigenschaften können zu dem Zeitpunkt
2021 definiert werden, an welchem der Kontext erstellt wird. Manchmal
2022 ist das eine saubere Weise, eine Eigenschaft zu bestimmen, die für
2023 die gesamte Partitur erhalten bleichen soll. Wenn ein Kontext mit
2024 einem @code{\new}-Befehl erstellt wird, können in einer
2025 direkt folgenden @code{\with @{ .. @}}-Umgebung die Eigenschaften
2026 bestimmt werden. Wenn also die zusätzlichen
2027 Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
2031 \new Staff \with @{ extraNatural = ##f @}
2037 @lilypond[quote,verbatim,ragged-right]
2041 gisis4 gis aeses aes
2043 \new Staff \with { extraNatural = ##f } {
2045 gisis4 gis aeses aes
2051 Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
2052 dynamisch mit dem @code{\set}-Befehl geändert werden und mit
2053 @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden,
2054 wie sie vorher in der @code{\with}-Umgebung definiert wurden.
2056 @cindex Schriftgröße, Standardeinstellung
2057 @cindex fontSize (Schriftgröße), Standardeinstellung
2059 Wenn also die @code{fontSize}-Eigenschaft in einer @code{\with}-Umgebung
2060 definiert wird, wird der Standardwert für die Schriftgröße
2061 festgelegt. Wenn dieser Wert später mit @code{\set} verändert
2062 wird, kann dieser neue Standardwert mit dem Befehl
2063 @code{\unset fontSize} wieder erreicht werden.
2065 @subsubheading Kontexteigenschaften mit @code{\context} setzen
2067 @cindex Kontexteigenschaften, mit \context setzen
2068 @cindex Eigenschaften von Kontexten, mit \context setzen
2072 Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
2073 eines bestimmten Typs (etwa alle @code{Staff}-Kontexte)
2074 gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
2075 spezifiziert, indem seine Bezeichnung benutzt wird, also etwa
2076 @code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
2077 für die Eigenschaft ist der gleiche, wie er auch in der
2078 @code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
2079 eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
2080 von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
2081 wirkt sich auf alle Kontexte dieses Types aus, welche sich in der
2082 aktuellen Partitur befinden (d. h. innerhalb einer @code{\score}-
2083 oder @code{\book}-Umgebung). Hier ist ein Beispiel, wie man diese
2086 @lilypond[verbatim,quote]
2102 Wenn die Veränderung der Eigenschaft sich auf alle Systeme einer
2103 @code{score}-Umgebung beziehen soll:
2105 @lilypond[quote,verbatim]
2110 gisis4 gis aeses aes
2115 gisis4 gis aeses aes
2121 \Score extraNatural = ##f
2128 Kontext-Eigenschaften, die auf diese Weise gesetzt werden, können für
2129 bestimmten Kontexte überschrieben werden, indem die
2130 @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
2131 innerhalb der aktuellen Noten.
2136 @ruser{Die Standardeinstellungen von Kontexten ändern},
2137 @ruser{Der set-Befehl}.
2139 Referenz der Interna:
2140 @rinternals{Contexts},
2141 @rinternals{Tunable context properties}.
2144 @node Engraver hinzufügen und entfernen
2145 @subsection Engraver hinzufügen und entfernen
2146 @translationof Adding and removing engravers
2148 @cindex Engraver, Hinzufügen von
2149 @cindex Engraver, Entfernen von
2150 @cindex Hinzufügen von Engravern
2151 @cindex Entfernen von Engravern
2158 Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
2159 (Stempeln) beinhaltet, von denen ein jeder einen bestimmten
2160 Teil des fertigen Notensatzes produziert, wie z. B. Taktlinien,
2161 Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
2162 einem Kontext entfernt wird, kann er seine Objekte nicht
2163 länger produzieren. Das ist eine eher grobe Methode, die
2164 Notenausgabe zu beeinflussen, aber es kann von großem
2168 @subsubheading Einen einzelnen Kontext verändern
2170 Um einen Engraver von einem einzelnen Kontext zu entfernen,
2171 wir der @code{\with}-Befehl eingesetzt, direkt hinter
2172 den Befehl zur Kontext-Erstellung geschrieben, wie
2173 in dem vorigen Abschnitt gezeigt.
2175 Als ein Beispiel wollen wir das Beispiel aus dem letzten
2176 Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
2177 Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
2180 @lilypond[quote,verbatim,ragged-right]
2182 \remove Staff_symbol_engraver
2186 \set fontSize = #-4 % make note heads smaller
2188 \set fontSize = #2.5 % make note heads larger
2190 \unset fontSize % return to default size
2195 @cindex Ambitus-Engraver
2197 Engraver können auch zu einem bestimmten
2198 Kontext hinzugefügt werden. Dies geschieht
2201 @code{\consists @var{Engraver_bezeichnung}}
2204 welcher auch wieder innerhalb der @code{\with}-Umgebung
2205 gesetzt wird. Einige Chorpartituren zeigen einen
2206 Ambitus direkt zu Beginn der ersten Notenzeile, um
2207 den Stimmumfang des Stückes anzuzeigen, siehe auch
2208 @rglos{ambitus}. Der Ambitus wird vom
2209 @code{Ambitus_engraver} erstellt, der normalerweise
2210 in keinem Kontext enthalten ist. Wenn wir
2211 ihn zum @code{Voice}-Kontext hinzufügen, errechnet
2212 er automatisch den Stimmumfang für diese einzelne Stimme
2215 @lilypond[quote,verbatim,ragged-right]
2218 \consists Ambitus_engraver
2235 wenn wir den Ambitus-Engraver allerdings zum
2236 @code{Staff}-Kontext hinzufügen, wird der Stimmumfang aller
2237 Stimmen in diesem Notensystem errechnet:
2239 @lilypond[quote,verbatim,ragged-right]
2241 \consists Ambitus_engraver
2260 @subsubheading Alle Kontexte des gleichen Typs verändern
2264 Die vorigen Beispiele zeigen, wie man Engraver in einem
2265 bestimmten Kontext hinzufügen oder entfernen kann. Es ist
2266 auch möglich, Engraver in jedem Kontext eines bestimmten
2267 Typs hinzuzufügen oder zu entfernen. Dazu werden die
2268 Befehle in dem entsprechenden Kontext in einer
2269 @code{\layout}-Umgebung gesetzt. Wenn wir also z. B.
2270 den Ambitus für jedes Notensystem in einer Partitur
2271 mit vier Systemen anzeigen wollen, könnte das so aussehen:
2273 @lilypond[quote,verbatim,ragged-right]
2302 \consists Ambitus_engraver
2309 Die Werte der Kontext-Eigenschaften können auch für
2310 alle Kontexte eines bestimmten Typs auf die gleiche
2311 Weise geändert werden, indem der @code{\set}-Befehl in
2312 einer @code{\context}-Umgebung angewendet wird.
2316 Notationsreferenz: @ruser{Umgebungs-Plugins verändern},
2317 @ruser{Die Standardeinstellungen von Kontexten ändern}.
2320 Die @code{Stem_engraver} und @code{Beam_engraver} fügen ihre
2321 Objekte an Notenköpfe an. Wenn der @code{Note_heads_engraver}
2322 entfernt wird, werden keine Notenköpfe erstellt und demzufolge auch keine
2323 Hälse oder Bögen dargestellt.
2326 @node Erweiterung der Beispiele
2327 @section Erweiterung der Beispiele
2328 @translationof Extending the templates
2330 Sie haben sich durch die Übung gearbeitet, Sie
2331 wissen jetzt, wie Sie Notensatz produzieren, und Sie
2332 haben die grundlegenden Konzepte verstanden. Aber wie
2333 erhalten Sie genau die Systeme, die Sie brauchen? Es
2334 gibt eine ganze Anzahl an fertigen Vorlagen
2335 (siehe @ref{Vorlagen}), mit denen Sie beginnen
2336 können. Aber was, wenn Sie nicht genau das finden,
2337 was Sie brauchen? Lesen Sie weiter.
2340 * Sopran und Cello::
2341 * Vierstimmige SATB-Partitur::
2342 * Eine Partitur von Grund auf erstellen::
2343 * Tipparbeit durch Variablen und Funktionen ersparen::
2344 * Partitur und Stimmen::
2348 @node Sopran und Cello
2349 @subsection Sopran und Cello
2350 @translationof Soprano and cello
2352 @cindex Template, Verändern von
2353 @cindex Vorlage, Verändern von
2354 @cindex Veränderung von Vorlagen
2356 Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
2357 am nächsten kommt. Nehmen wir einmal an, Sie wollen
2358 ein Stück für Sopran und Cello schreiben. In diesem
2359 Fall könnten Sie mit der Vorlage @qq{Noten und Text}
2360 (für die Sopran-Stimme) beginnen.
2363 \version @w{"@version{}"}
2364 melody = \relative c' @{
2371 text = \lyricmode @{
2377 \new Voice = "one" @{
2381 \new Lyrics \lyricsto "one" \text
2388 Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
2389 Beispiel @qq{Nur Noten} an:
2392 \version @w{"@version{}"}
2394 melody = \relative c' @{
2408 Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
2409 brauchen aber den @code{melody}-Abschnitt. Wir wollen
2410 keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
2411 @code{\score}-Abschnitten würden wir zwei Stimmen
2412 getrennt voneinander erhalten. In diesem Fall wollen wir
2413 sie aber zusammen, als Duett. Schließlich brauchen wir
2414 innerhalb des @code{\score}-Abschnittes nur einmal die
2415 Befehle @code{\layout} und @code{\midi}.
2417 Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in
2418 unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
2419 Das würde zu keinem Fehler führen, aber die zweite von ihnen
2420 würde für beide Melodien eingesetzt werden. Wir müssen
2421 ihnen also andere Bezeichnungen zuweisen, um sie voneinander
2422 zu unterscheiden. Nennen wir die Abschnitte also @code{SopranNoten}
2423 für den Sopran und @code{CelloNoten} für die Cellostimme. Wenn
2424 wir schon dabei sind, können wir @code{text}auch nach
2425 @code{SoprText} umbenennen. Denken Sie daran, beide
2426 Vorkommen der Bezeichnung zu ändern: einmal die Definition
2427 gleich am Anfang (@code{melody = \relative c' @{ }) und
2428 dann auch noch die Benutzung der Variable innerhalb des
2429 @code{\score}-Abschnittes.
2431 Gleichzeitig können wir auch noch das Notensystem für das
2432 Cello ändern -- das Cello hat normalerweise einen Bassschlüssel.
2433 Wir ändern auch die Noten etwas ab.
2436 \version @w{"@version{}"}
2438 SopranNoten = \relative c' @{
2445 SoprText = \lyricmode @{
2449 CelloNoten = \relative c @{
2458 \new Voice = "eins" @{
2462 \new Lyrics \lyricsto "eins" \Soprantext
2469 Das sieht schon vielversprechend aus, aber die Cello-Stimme
2470 erscheint noch nicht im Notensatz -- wir haben vergessen,
2471 sie in den @code{\score}-Abschnitt einzufügen. Wenn die
2472 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
2476 \new Staff \CelloNoten
2480 unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
2481 die spitzen Klammern (@code{<<} und @code{>>}) um die
2482 Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
2483 ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
2484 zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
2487 @c Indentation in this example is deliberately poor
2492 \new Voice = "eins" @{
2496 \new Lyrics \lyricsto "eins" \SoprText
2498 \new Staff \CelloNoten
2506 Das sieht etwas unschön aus, vor allem die Einrückung stimmt
2507 nicht mehr. Das können wir aber schnell in Ordnung bringen.
2508 Hier also die gesamte Vorlage für Sopran und Cello:
2510 @lilypond[quote,verbatim,ragged-right,addversion]
2511 sopranoMusic = \relative c' {
2518 sopranoLyrics = \lyricmode {
2522 celloMusic = \relative c {
2532 \new Voice = "one" {
2536 \new Lyrics \lyricsto "one" \sopranoLyrics
2538 \new Staff \celloMusic
2547 Die Vorlagen, mit denen wir begonnen haben, können im
2548 Anhang @qq{Vorlagen} gefunden werden, siehe
2549 @ref{Ein einzelnes System}.
2552 @node Vierstimmige SATB-Partitur
2553 @subsection Vierstimmige SATB-Partitur
2554 @translationof Four-part SATB vocal score
2556 @cindex Vorlage, SATB
2557 @cindex Vorlage, Chorpartitur
2558 @cindex SATB-Vorlage
2559 @cindex Chorpartitur, Vorlage
2561 Die meisten Partituren für vierstimmigen gemischten Chor
2562 mit Orchesterbegleitung (wie etwa Mendelssohns @notation{Elias}
2563 oder Händels @notation{Messias}) sind so aufgebaut, dass
2564 für jede der vier Stimmen ein eigenes System besteht und
2565 die Orchesterbegleitung dann als Klavierauszug darunter
2566 notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
2568 @c The following should appear as music without code
2569 @lilypond[quote,ragged-right]
2570 global = { \key d \major \time 4/4 }
2572 sopranoMusic = \relative c'' {
2574 r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2576 sopranoWords = \lyricmode {
2577 Wor -- thy | is the lamb | that was slain |
2579 altoMusic = \relative a' {
2581 r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
2583 altoWords = \sopranoWords
2584 tenorMusic = \relative c' {
2586 r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2588 tenorWords = \sopranoWords
2589 bassMusic = \relative c' {
2591 r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2593 bassWords = \sopranoWords
2594 upper = \relative a' {
2597 r4 <a d fis>2 <a e' a>4
2598 <d fis d'>4. <d fis d'>8 <a d a'>2
2599 <g cis g'>4 <a d fis> <a cis e>2
2601 lower = \relative c, {
2604 <d d'>4 <d d'>2 <cis cis'>4
2605 <b b'>4. <b' b'>8 <fis fis'>2
2606 <e e'>4 <d d'> <a' a'>2
2610 << % combine ChoirStaff and PianoStaff in parallel
2612 \new Staff = "sopranos" <<
2613 \set Staff.instrumentName = #"Soprano"
2614 \new Voice = "sopranos" {
2619 \new Lyrics \lyricsto "sopranos" {
2622 \new Staff = "altos" <<
2623 \set Staff.instrumentName = #"Alto"
2624 \new Voice = "altos" {
2629 \new Lyrics \lyricsto "altos" {
2632 \new Staff = "tenors" <<
2633 \set Staff.instrumentName = #"Tenor"
2634 \new Voice = "tenors" {
2639 \new Lyrics \lyricsto "tenors" {
2642 \new Staff = "basses" <<
2643 \set Staff.instrumentName = #"Bass"
2644 \new Voice = "basses" {
2649 \new Lyrics \lyricsto "basses" {
2655 \set PianoStaff.instrumentName = #"Piano"
2656 \new Staff = "upper" \upper
2657 \new Staff = "lower" \lower
2663 Keine der Vorlage bietet diesen Aufbau direkt an. Die Vorlage, die
2664 am nächsten daran liegt, ist @qq{SATB-Partitur und automatischer
2665 Klavierauszug}, siehe @ref{Vokalensemble}. Wir müssen diese
2666 Vorlage aber so anpassen, dass die Noten für das Klavier nicht
2667 automatisch aus dem Chorsatz generiert werden. Die Variablen
2668 für die Noten und den Text des Chores sind in Ordnung, wir
2669 müssen nun noch Variablen für die Klaviernoten hinzufügen.
2671 Die Reihenfolge, in welcher die Variablen in das Chorsystem
2672 (@code{ChoirStaff}) eingefügt werden, entspricht nicht der
2673 in dem Beispiel oben. Wir wollen sie so sortieren, dass die
2674 Texte jeder Stimme direkt unter den Noten notiert werden.
2675 Alle Stimmen sollten als @code{\voiceOne} notiert werden,
2676 welches die Standardeinstellung ist; wir können also die
2677 @code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
2678 den Schlüssel für den Tenor ändern. Die Methode, mit der
2679 der Text den Stimmen zugewiesen wird, ist uns noch nicht
2680 bekannt, darum wollen wir sie umändern auf die Weise, die
2681 wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
2682 zu den Systemen hinzu.
2684 Damit erhalten wir folgenden @code{ChoirStaff}:
2688 \new Staff = "sopranos" <<
2689 \set Staff.instrumentName = #"Sopran"
2690 \new Voice = "sopranos" @{
2695 \new Lyrics \lyricsto "sopranos" @{
2698 \new Staff = "altos" <<
2699 \set Staff.instrumentName = #"Alt"
2700 \new Voice = "altos" @{
2705 \new Lyrics \lyricsto "altos" @{
2708 \new Staff = "tenors" <<
2709 \set Staff.instrumentName = #"Tenor"
2710 \new Voice = "tenors" @{
2715 \new Lyrics \lyricsto "tenors" @{
2718 \new Staff = "basses" <<
2719 \set Staff.instrumentName = #"Bass"
2720 \new Voice = "basses" @{
2725 \new Lyrics \lyricsto "basses" @{
2731 Als nächstes müssen wir das Klaviersystem bearbeiten.
2732 Das ist einfach: wir nehmen einfach den Klavierteil
2733 aus der @qq{Piano solo}-Vorlage:
2737 \set PianoStaff.instrumentName = #"Piano "
2738 \new Staff = "oben" \oben
2739 \new Staff = "unten" \unten
2744 und fügen die Variablen @code{oben}
2745 und @code{unten} hinzu.
2747 Das Chorsystem und das Pianosystem müssen mit
2748 spitzen Klammern kombiniert werden, damit beide
2749 übereinander erscheinen:
2752 << % ChoirStaff und PianoStaff parallel kombinieren
2754 \new Staff = "sopranos" <<
2755 \new Voice = "sopranos" @{
2760 \new Lyrics \lyricsto "sopranos" @{
2763 \new Staff = "altos" <<
2764 \new Voice = "altos" @{
2769 \new Lyrics \lyricsto "altos" @{
2772 \new Staff = "tenors" <<
2773 \clef "G_8" % tenor clef
2774 \new Voice = "tenors" @{
2779 \new Lyrics \lyricsto "tenors" @{
2782 \new Staff = "basses" <<
2784 \new Voice = "basses" @{
2789 \new Lyrics \lyricsto "basses" @{
2795 \set PianoStaff.instrumentName = #"Piano"
2796 \new Staff = "upper" \upper
2797 \new Staff = "lower" \lower
2802 Alles miteinander kombiniert und mit den Noten für drei
2803 Takte sieht unser Beispiel nun so aus:
2805 @lilypond[quote,verbatim,ragged-right,addversion]
2810 sopranoMusic = \relative c'' {
2812 r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2814 sopranoWords = \lyricmode {
2815 Wor -- thy | is the lamb | that was slain |
2817 altoMusic = \relative a' {
2819 r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2821 altoWords = \sopranoWords
2822 tenorMusic = \relative c' {
2824 r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2826 tenorWords = \sopranoWords
2827 bassMusic = \relative c' {
2829 r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2831 bassWords = \sopranoWords
2832 upper = \relative a' {
2835 r4 <a d fis>2 <a e' a>4
2836 <d fis d'>4. <d fis d'>8 <a d a'>2
2837 <g cis g'>4 <a d fis> <a cis e>2
2839 lower = \relative c, {
2842 <d d'>4 <d d'>2 <cis cis'>4
2843 <b b'>4. <b' b'>8 <fis fis'>2
2844 <e e'>4 <d d'> <a' a'>2
2848 << % combine ChoirStaff and PianoStaff in parallel
2850 \new Staff = "sopranos" <<
2851 \set Staff.instrumentName = #"Soprano"
2852 \new Voice = "sopranos" {
2857 \new Lyrics \lyricsto "sopranos" {
2860 \new Staff = "altos" <<
2861 \set Staff.instrumentName = #"Alto"
2862 \new Voice = "altos" {
2867 \new Lyrics \lyricsto "altos" {
2870 \new Staff = "tenors" <<
2871 \set Staff.instrumentName = #"Tenor"
2872 \new Voice = "tenors" {
2877 \new Lyrics \lyricsto "tenors" {
2880 \new Staff = "basses" <<
2881 \set Staff.instrumentName = #"Bass"
2882 \new Voice = "basses" {
2887 \new Lyrics \lyricsto "basses" {
2893 \set PianoStaff.instrumentName = #"Piano "
2894 \new Staff = "upper" \upper
2895 \new Staff = "lower" \lower
2902 @node Eine Partitur von Grund auf erstellen
2903 @subsection Eine Partitur von Grund auf erstellen
2904 @translationof Building a score from scratch
2906 @cindex Template, eigene schreiben
2907 @cindex Vorlagen, eigene schreiben
2908 @cindex eigene Vorlagen erstellen
2909 @cindex Erstellen von eigenen Vorlagen
2910 @cindex Schreiben von eigenen Vorlagen
2912 Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
2913 gewonnen haben, werden Sie vielleicht feststellen, dass es
2914 manchmal einfacher ist, von Grund auf anzufangen, anstatt
2915 die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
2916 auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
2917 die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
2918 wie man die Partitur für ein Orgelpreludium von Grund auf
2921 Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt.
2922 Hier notieren wir den Titel, den Namen des Komponisten usw.
2923 Danach schreiben wir die einzelnen Variablen auf und
2924 schließlich am Ende die eigentliche Partitur, den
2925 @code{\score}-Abschnitt. Beginnen wir mit einer groben
2926 Struktur, in die wir dann die Einzelheiten nach und nach
2929 Als Beispiel benutzen wir zwei Takte aus dem Orgelpreludium
2930 @notation{Jesu, meine Freude} von J. S. Bach, notiert
2931 für zwei Manuale und Pedal. Sie können die Noten am Ende
2932 dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
2933 das untere und das Pedalsystem jeweils nur eine. Wir
2934 brauchen also vier Variablen für die Noten und eine, um
2935 Taktart und Tonart zu definieren.
2938 \version @w{"@version{}"}
2940 title = "Jesu, meine Freude"
2941 composer = "J. S. Bach"
2943 keyTime = @{ \key c \minor \time 4/4 @}
2944 ManualOneVoiceOneMusic = @{ s1 @}
2945 ManualOneVoiceTwoMusic = @{ s1 @}
2946 ManualTwoMusic = @{ s1 @}
2947 PedalOrganMusic = @{ s1 @}
2953 Im Moment haben wir eine unsichtbare
2954 Note in jede Stimme eingesetzt (@code{s1}).
2955 Die Noten werden später hinzugefügt.
2957 Als nächstes schauen wir uns an, was in die
2958 Partitur (die @code{\score}-Umgebung)
2959 kommt. Dazu wird einfach die Notensystemstruktur
2960 konstruiert, die wir benötigen. Orgelmusik
2961 wird meistens auf drei Systemen notiert, eins
2962 für jedes Manual und ein drittes für die Pedalnoten.
2963 Die Systeme für die Manuale werden mit einer
2964 geschweiften Klammer verbunden, wir
2965 benutzen hier also ein @code{PianoStaff}.
2966 Das erste Manualsystem braucht zwei Stimmen,
2967 das zweite nur eine.
2971 \new Staff = "ManualOne" <<
2973 \ManualOneVoiceOneMusic
2976 \ManualOneVoiceTwoMusic
2978 >> % Ende ManualOne Systemkontext
2979 \new Staff = "ManualTwo" <<
2983 >> % Ende ManualTwo Systemkontext
2984 >> % Ende PianoStaff Kontext
2987 Als nächstes soll das System für das Pedal hinzugefügt
2988 werden. Es soll unter das Klaviersystem gesetzt
2989 werden, aber muss gleichzeitig mit ihm erscheinen.
2990 Wir brauchen also spitze Klammern um beide
2991 Definitionen. Sie wegzulassen würde eine Fehlermeldung
2992 in der Log-Datei hervorrufen. Das ist ein sehr
2993 häufiger Fehler, der wohl auch Ihnen früher
2994 oder später unterläuft. Sie können das fertige
2995 Beispiel am Ende des Abschnittes kopieren und die
2996 Klammern entfernen, um zu sehen, wie die
2997 Fehlermeldung aussehen kann, die Sie in solch
2998 einem Fall erhalten würden.
3001 << % PianoStaff and Pedal Staff must be simultaneous
3003 \new Staff = "ManualOne" <<
3005 \ManualOneVoiceOneMusic
3008 \ManualOneVoiceTwoMusic
3010 >> % end ManualOne Staff context
3011 \new Staff = "ManualTwo" <<
3015 >> % end ManualTwo Staff context
3016 >> % end PianoStaff context
3017 \new Staff = "PedalOrgan" <<
3025 Es ist nicht notwendig, die simultane Konstruktion
3026 @code{<< .. >>} innerhalb des zweiten Manualsystems
3027 und des Pedalsystems zu benutzen, denn sie enthalten
3028 nur eine Stimme. Andererseits schadet es nichts, sie
3029 zu schreiben, und es ist eine gute Angewohnheit, immer
3030 die spitzen Klammern nach einem @code{\new Staff} zu
3031 schreiben, wenn mehr als eine Stimme vorkommen könnten.
3032 Für Stimmen (@code{Voice}) dagegen gilt genau das
3033 Gegenteil: eine neue Stimme sollte immer von
3034 geschweiften Klammern (@code{@{ .. @}}) gefolgt
3035 werden, falls Sie ihre Noten in mehrere Variable aufteilen,
3036 die nacheinander gesetzt werden sollen.
3038 Fügen wir also diese Struktur zu der @code{\score}-Umgebung
3039 hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
3040 wollen wir die richtigen Schlüssel setzen und die Richtung der
3041 Hälse und Bögen in den Stimmen des oberen Systems
3042 kontrollieren, indem die obere Stimme ein
3043 @code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
3044 erhält. Die Taktart und Tonart werden mit unserer fertigen
3045 Variable @code{\keyTime} eingefügt.
3049 << % PianoStaff and Pedal Staff must be simultaneous
3051 \new Staff = "ManualOne" <<
3052 \keyTime % set time signature and key
3056 \ManualOneVoiceOneMusic
3060 \ManualOneVoiceTwoMusic
3062 >> % end ManualOne Staff context
3063 \new Staff = "ManualTwo" <<
3069 >> % end ManualTwo Staff context
3070 >> % end PianoStaff context
3071 \new Staff = "PedalOrgan" <<
3077 >> % end PedalOrgan Staff
3079 @} % end Score context
3082 @cindex Spreizbarkeit von Systemen
3083 @cindex Dehnung von Systemen, vertikal
3084 @cindex Systeme, vertikales Dehnen
3086 Das Layout des Orgelsystems oben ist fast perfekt, es hat jedoch einen kleinen
3087 Fehler, den man nicht bemerken kann, wenn man nur ein einzelnes System
3088 betrachtet: Der Abstand des Pedalsystems zum System der linken Hand
3089 sollte in etwa der gleiche sein wie der Abstand zwischen den Systemen
3090 der linken und rechten Hand. Die Dehnbarkeit von Systemen in einem
3091 Klaviersystem (@code{PianoStaff})-Kontext ist beschränkt (sodass der
3092 Abstand zwischen den Systemen der linken und rechten Hand nicht zu groß
3093 wird), und das Pedalsystem sollte sich genauso verhalten.
3095 @cindex Untereigenschaft
3096 @cindex sub-properties
3097 @cindex graphische Objekte
3099 @cindex Objekte, graphische
3101 Die Spreizbarkeit von Systemen kann mit der @code{staff-staff-spacing}-Eigenschaft
3102 des @code{VerticalAxisGroup}-@qq{graphischen Objekts} (üblicherweise als
3103 @qq{Grob} innerhalb der LilyPond-Dokumentation bezeichnet) kontrolliert
3104 werden. An dieser Stelle brauchen Sie sich um die Details nicht zu
3105 sorgen, sie werden später erklärt. Sehr Neugierige können sich den
3106 Abschnitt @ruser{Grundlagen zum Verändern von Eigenschaften} anschauen. Im Moment
3107 kann man nicht nur die @code{strechability} (Spreizbarkeit)-Untereigenschaft verändern,
3108 darum müssen hier auch die anderen Untereigenschaften kopiert werden. Die
3109 Standardeinstellungen dieser Untereigenschaften finden sich in der Datei
3110 @file{scm/define-grobs.scm} in den Definitionen für den
3111 @code{VerticalAxisGroup}-Grob. Der Wert für @code{strechability} wird aus
3112 der Definition für das Klaviersystem (@code{PianoStaff}) entnommen
3113 (in der Datei @file{ly/engraver-init.ly}), damit die Werte identisch
3118 << % PianoStaff and Pedal Staff must be simultaneous
3120 \new Staff = "ManualOne" <<
3121 \keyTime % set key and time signature
3125 \ManualOneVoiceOneMusic
3129 \ManualOneVoiceTwoMusic
3131 >> % end ManualOne Staff context
3132 \new Staff = "ManualTwo" \with @{
3133 \override VerticalAxisGroup
3134 #'staff-staff-spacing #'stretchability = 5
3141 >> % end ManualTwo Staff context
3142 >> % end PianoStaff context
3143 \new Staff = "PedalOrgan" <<
3149 >> % end PedalOrgan Staff
3151 @} % end Score context
3154 Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
3155 Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
3156 in einem System sich ändern kann. Jetzt müssen wir nur noch
3157 die Noten einfügen und alle Teile zusammenfügen, indem wir
3158 die Variablen mit einem Backslash in die Partitur einbauen.
3160 @lilypond[quote,verbatim,ragged-right,addversion]
3162 title = "Jesu, meine Freude"
3163 composer = "J S Bach"
3165 keyTime = { \key c \minor \time 4/4 }
3166 ManualOneVoiceOneMusic = \relative g' {
3170 ManualOneVoiceTwoMusic = \relative c' {
3171 ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
3172 c8 c4 b8 c8. g16 c b c d |
3174 ManualTwoMusic = \relative c' {
3175 c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
3176 f16 ees f d g aes g f ees d e8~ ees16 f ees d |
3178 PedalOrganMusic = \relative c {
3179 r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
3180 r16 g ees f g f g8 c,2 |
3184 << % PianoStaff and Pedal Staff must be simultaneous
3186 \new Staff = "ManualOne" <<
3187 \keyTime % set time signature and key
3191 \ManualOneVoiceOneMusic
3195 \ManualOneVoiceTwoMusic
3197 >> % end ManualOne Staff context
3198 \new Staff = "ManualTwo" \with {
3199 \override VerticalAxisGroup
3200 #'staff-staff-spacing #'stretchability = 5
3207 >> % end ManualTwo Staff context
3208 >> % end PianoStaff context
3209 \new Staff = "PedalOrgan" <<
3215 >> % end PedalOrgan Staff context
3217 } % end Score context
3225 @node Tipparbeit durch Variablen und Funktionen ersparen
3226 @subsection Tipparbeit durch Variablen und Funktionen ersparen
3227 @translationof Saving typing with variables and functions
3231 Bis jetzt wurde immer derartige Notation vorgestellt:
3233 @lilypond[quote,verbatim,ragged-right]
3234 hornNotes = \relative c'' { c4 b dis c }
3243 Sie können sich vorstellen, dass das etwa für minimalistische
3244 Musik sehr nützlich sein könnte:
3246 @lilypond[quote,verbatim,ragged-right]
3247 fragmentA = \relative c'' { a4 a8. b16 }
3248 fragmentB = \relative c'' { a8. gis16 ees4 }
3249 violin = \new Staff {
3250 \fragmentA \fragmentA |
3251 \fragmentB \fragmentA |
3261 Diese Variablen (die man auch als Makros oder Benutzer-Befehl
3262 bezeichnet) können jedoch auch für eigene Anpassungen eingesetzt
3265 @c TODO Avoid padtext - not needed with skylining
3266 @lilypond[quote,verbatim,ragged-right]
3267 dolce = \markup { \italic \bold dolce }
3268 padText = { \once \override TextScript #'padding = #5.0 }
3270 \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p
3273 violin = \relative c'' {
3275 c4._\dolce b8 a8 g a b
3277 c4.^"hi there!" d8 e' f g d
3278 c,4.\fthenp b8 c4 c-.
3286 \layout{ragged-right=##t}
3290 Derartige Variablen sind offensichtlich sehr nützlich, zu Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu
3291 benutzen, wenn man sie nur einmal benutzen will, denn sie
3292 vereinfachen die Struktur einer Datei sehr stark. Hier das
3293 vorige Beispiel ohne jede Benutzung von Variablen. Es ist
3294 sehr viel schwerer lesbar, besonders die letzte Zeile.
3297 violin = \relative c'' @{
3299 c4._\markup @{ \italic \bold dolce @} b8 a8 g a b
3300 \once \override TextScript #'padding = #5.0
3301 c4.^"hi there!" d8 e' f g d
3303 \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
3310 @c TODO Replace the following with a better example -td
3311 @c Skylining handles this correctly without padText
3313 Bisher haben wir vor allem statische Ersetzungen betrachtet:
3314 wenn LilyPond etwa @code{\padText} sieht, wird es ersetzt mit
3315 all dem Code, mit dem wir es definiert haben (also alles,
3316 was sich rechts von @code{padtext=} befindet).
3318 LilyPond kann auch nicht-statische Ersetzungen bewältigen. Man
3319 kann sie sich als Funktionen vorstellen.
3321 @lilypond[quote,verbatim,ragged-right]
3323 #(define-music-function
3324 (parser location padding)
3327 \once \override TextScript #'padding = $padding
3331 c4^"piu mosso" b a b |
3333 c4^"piu mosso" d e f |
3335 c4^"piu mosso" fis a g |
3339 Die Benutzung von Variablen ist auch eine gute Möglichkeit,
3340 Arbeit zu vermeiden, wenn sich einmal die Syntax von LilyPond
3341 ändern sollte (siehe auch @rprogram{Updating old input files
3343 Wenn man eine einzige Definition hat (wie etwa @code{\dolce}),
3344 die für alle Vorkommen in der Notation eingesetzt wird, muss
3345 man auch nur einmal diese Definition aktualisieren, anstatt
3346 dass man sie in jeder @file{.ly}-Datei einzeln ändern müsste.
3349 @node Partitur und Stimmen
3350 @subsection Partitur und Stimmen
3351 @translationof Scores and parts
3353 In Orchestermusik werden alle Noten zweimal gedruckt. Einmal
3354 in einer Stimme für die Spieler, und einmal ein der Partitur
3355 für den Dirigenten. Variablen können benutzen, um sich doppelte
3356 Arbeit zu ersparen. Die Noten werden nur einmal eingegeben und
3357 in einer Variable abgelegt. Der Inhalt der Variable wird dann
3358 benutzt um sowohl die Stimme als auch die Partitur zu erstellen.
3360 Es bietet sich an, die Noten in einer extra Datei abzulegen.
3361 Nehmen wir an, dass die Datei @file{horn-music.ly} folgende
3362 Noten eines Horn/@/Fagott-Duos enthält:
3365 hornNotes = \relative c @{
3367 r4 f8 a | cis4 f | e4 d |
3372 Eine Stimme wird also erstellt, indem man folgendes in eine
3376 \include "horn-music.ly"
3379 instrument = "Horn in F"
3383 \transpose f c' \hornNotes
3390 \include "horn-music.ly"
3394 ersetzt den Inhalt von @file{horn-music.ly} an dieser Position
3395 in der Datei, sodass @code{hornNotes} im Folgenden definiert
3396 ist. Der Befehl @code{\transpose f@tie{}c'} zeigt an, dass
3397 das Argument (@code{\hornNotes}) eine Quinte nach oben transponiert
3398 werden soll. Klingendes @code{f} wird als @code{c'}, wie es
3399 die Stimmung eines normalen F-Hornes verlangt. Die Transposition
3400 kann in folgender Notenausgabe gesehen werden:
3402 @lilypond[quote,ragged-right]
3403 \transpose f c' \relative c {
3405 r4 f8 a | cis4 f | e4 d |
3409 In Ensemblestücken sind manche Stimmen für viele Takte stumm.
3410 Das wird durch eine besondere Pause notiert, die Mehrtaktpause.
3411 Sie wird mit einem großen @code{R} notiert, gefolgt von der
3412 Dauer (@code{1}@tie{}für eine Ganze, @code{2}@tie{}für eine Halbe usw.). Indem man die Dauern multipliziert, kann man auch
3413 längere Dauern erzeugen. Diese Pause etwa dauert drei Takte
3420 Wenn die Stimme gesetzt wird, werden Mehrtaktpausen komprimiert. Das geschieht, indem man folgendes in die Datei
3424 \set Score.skipBars = ##t
3428 Dieser Befehl setzt die Eigenschaft @code{skipBars} im
3429 @code{Score}-Kontext auf wahr (@code{##t}). Die Pause und diese Option zu der Musik von oben hinzugefügt, ergibt folgendes
3432 @lilypond[quote,ragged-right]
3433 \transpose f c' \relative c {
3435 \set Score.skipBars = ##t
3437 r4 f8 a | cis4 f | e4 d |
3441 Die Partitur wird erstellt, indem man alle Noten kombiniert.
3442 Angenommen, die andere Stimme ist in @code{bassoonNotes}
3443 in der Datei @file{bassoon-music.ly} definiert, würde eine
3444 Partitur erstellt mit:
3447 \include "bassoon-music.ly"
3448 \include "horn-music.ly"
3451 \new Staff \hornNotes
3452 \new Staff \bassoonNotes
3459 @lilypond[quote,ragged-right]
3465 r4 f8 a | cis4 f | e4 d |
3470 r4 d,8 f | gis4 c | b4 bes |
3471 a8 e f4 | g4 d | gis4 f |