1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: 0bbabe9eef32b46216a722cc0d49df759227b7be
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{}"}
95 @var{...zusammengesetzter Musik-Ausdruck...} % Die gesamten Noten kommen hier hin!
102 Aufgrund der Flexibilität von LilyPond gibt es viele Variationen dieses
103 Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt.
112 Bisher hat noch keines der Beispiele den @code{\score@{@}}-Befehl
113 benutzt, da Lilypond derartige zusätzliche Befehle automatisch
114 bei Bedarf einfügt, wenn die Eingabedatei eine einfache Struktur
117 Sehen wir uns als ein solches einfaches Beispiel an:
126 Im Hintergrund kommen hier noch einige Ebenen dazu: LilyPond-Code
127 in der obigen Form ist in Wirklichkeit eine Abkürzung. Auch wenn man so
128 Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt
129 der vollständige Code, der hier gemeint ist, eigentlich:
147 Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
148 enthält, wird LilyPond die Datei so interpretieren, als ob dieser
149 Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige
150 Stuktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt,
151 ohne dass der Benutzer davon etwas bemerkt.
153 @cindex Implizite Kontexte
154 @cindex Kontexte, implizit
156 @strong{Ein Wort der Warnung ist jedoch angebracht!} Viele der Beispiele
157 in der Dokumentation von LilyPond lassen die @code{\new Staff} und @code{\new Voice}
158 Befehle zur Erzeugung einer Notenzeile und einer Stimme (beides ist in
159 LilyPond ein sogenannter Kontext) bewusst aus,
160 damit sie implizit von LilyPond im Speicher erzeugt werden.
161 Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für
162 komplexere Partituren können dadurch aber unerwartete Ergebnisse
163 entstehen, teilweise sogar unerwartete leere Notenzeilen. Um
164 die entsprechenden Kontexte in diesem Fall explizit zu erzeugen,
165 siehe @ref{Kontexte und Engraver}.
167 @warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden,
168 empfielt es sich, die Notenzeilen und die Stimmen immer explizit
169 mit @code{\new Staff} und @code{\new Voice} zu erzeugen.}
171 Im Moment wollen wir aber zu unserem ersten Beispiel zurückkehren und
172 nur den @code{\score}-Befehl näher betrachten.
174 Eine Partitur (@code{\score}) muss immer mit einem musikalischen Ausdruck
175 beginnen. Das ist letztendlich alle Musik, angefangen bei einer
177 Note bis hin zu einer riesigen Partitur mit vielen Notensystemen
178 (bezeichnet durch @code{GrandStaff}):
183 @var{...hier die gesamte Partitur...}
189 Da sich alles innerhalb der geschweiften Klammern @code{@{ ... @}}
190 befindet, wird es wie ein einziger musikalischer Ausdruck behandelt.
193 Ein @code{\score} auch andere Dinge enthalten, wie etwa
216 Wie man sieht, sind die drei Befehle @code{\header}, @code{\layout} und
217 @code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen,
218 die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck
219 und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
220 sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb plaziert
221 werden. Tatsächlich werden einige dieser Befehle meist außerhalb des
222 @code{\score}-Blocksgesetzt, zum Beispiel findet sich der @code{\header}
223 sehr oft oberhalb der @code{\score}-Umgebung. Das
224 funktioniert genauso gut.
226 Zwei bisher noch nicht aufgetauchte Befehle sind
227 @code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer
228 Datei vorkommen, führt dies dazu, dass Lilypond eine druckfähige PDF-Datei
229 bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im
230 Benutzerhandbuch -- @ruser{Partiturlayout} und
231 @ruser{MIDI-Dateien erstellen}.
233 @cindex Partituren, mehrfache
234 @cindex book-Abschnitte, implizit
235 @cindex implizite book-Umgebung
239 Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten.
240 Jeder davon wird als eigenständige Partitur interpretiert, die
241 allerdings alle in dieselbe Ausgabedatei plaziert weden.
242 Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird
243 implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer
244 einzigen @code{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
245 dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
246 gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
251 Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
252 PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
253 setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen
254 impliziten @code{\book}-Blocks.
256 Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück
257 innerhalb des @code{\book}-Blocks.
259 @cindex Layout-Umgebung, Platzierung
260 @cindex Platzierung von layout-Umgebung
262 Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
263 @code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein
264 @code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf
265 diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block
266 außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit
267 erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf
268 alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks.
270 Nähere Details finden sich im Abschnitt @ruser{Mehrere Partituren in einem Buch}.
275 Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen, wie auch gezeigt in @ref{Organizing pieces with variables}.
276 Alle Vorlagen verwenden diese Möglichkeit:
279 melodie = \relative c' @{
288 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
289 von @code{melodie} (alles nach dem Gleichheitszeichen) und
290 fügt ihn immer dann ein, wenn ein @code{\melodie}
291 vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
292 gut @code{melodie}, @code{GLOBAL},
293 @code{rechteHandklavier}, oder @code{foofoobarbaz} heißen. Für mehr
295 @ref{Tipparbeit sparen durch Bezeichner und Funktionen}.
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. Die genauen Einschränkungen sind beschrieben in
300 @ruser{Die Dateistruktur}.
304 Eine vollständige Definition des Eingabeformats findet sich in
305 @ruser{Die Dateistruktur}.
308 @node Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
309 @subsection Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
310 @translationof Score is a (single) compound musical expression
317 @cindex zusammengesetzter Musikausdruck
318 @cindex Musikausdruck, zusammengesetzter
321 Im vorigen Kapitel, @ref{Einführung in die Dateistruktur von LilyPond},
322 wurde die allgemeine Struktur einer LilyPond-Quelldatei
323 beschrieben. Aber anscheinend haben wir die wichtigste
324 Frage ausgelassen, nämlich wie man herausfindet, was nach
325 dem @code{\score} geschrieben werden soll.
327 In Wirklichkeit ist das aber gar kein Geheimnis. Diese
328 Zeile ist die Antwort:
331 @emph{Eine Partitur fängt immer mit @code{\score} an, gefolgt
332 von einem einzelnen musikalischen Ausdruck.}
336 Vielleicht wollen Sie noch einmal
337 @ref{Musikalische Ausdrücke erklärt} überfliegen. In diesem
338 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke
339 aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
340 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung
341 und betrachten, wie sich ein großer musikalischer Ausdruck
342 zerlegen lässt. Zur Einfachheit soll nur ein Sänger und Klavier
343 in unserem Beispiel eingesetzt werden. Wir brauchen
344 keine Systemgruppe (StaffGroup), die einfach nur bewirkt,
345 dass die Systeme mit einer Klammer zusammengefasst werden; sie
346 wird also entfernt. Wir @emph{brauchen} aber einen Sänger und ein Klavier.
352 \new Staff = "Sänger" <<
354 \new PianoStaff = "Klavier" <<
362 Hier wurden die Systeme (Staff) benannt: @qq{Sänger} und
363 @qq{Klavier}. Das ist nicht direkt notwendig in diesem Fall,
364 aber es ist gut, sich diese Schreibweise anzugewöhnen, damit man
365 immer sofort erkennt, um welches System es sich handelt.
367 Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig
368 gesetzt. Dadurch werden Vokalstimme und Klaviersysteme übereinander
369 ausgegeben. Die @code{<< ... >>}-Konstruktion ist für das
370 Sänger-System nicht notwendig, wenn hier nur die Noten einer
371 einzigen Stimme eingefügt werden sollen, aber @code{<< ... >>}
372 anstelle von geschwungenen Klammern sind notwendig,
373 sobald mehr als eine Stimme oder etwa eine Notenstimme und
374 Gesangstext eingefügt werden sollen. In unserem Fall soll eine
375 Stimme mit Gesangstext notiert werden, sodass die spitzen Klammern
376 benötigt werden. Die Noten sollen erst später hinzugefügt werden,
377 hier also erstmal nur ein paar Platzhalternoten und Text. Wenn
378 Sie sich nicht erinnern, wie man Gesangstext notiert, lesen
379 Sie noch einmal @code{\addlyrics} in @ref{Setting simple songs}.
381 @lilypond[verbatim,quote,ragged-right]
384 \new Staff = "Sänger" <<
385 \new Voice = "Singstimme" { c'1 }
388 \new PianoStaff = "Klavier" <<
389 \new Staff = "oben" { }
390 \new Staff = "unten" { }
397 Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
398 für einen Sänger, in dem sich wieder eine Stimme (engl. voice)
399 befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
400 gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
401 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new
402 PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
403 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der
404 dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und
406 für die linke) erstellt werden, auch wenn das untere System noch
407 einen Bassschlüssel erhalten muss.
409 Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
410 geschweiften Klammern neben @code{\new Voice = "Singstimme"}
420 schreiben. Aber wenn man seine Datei so direkt schreibt, wird
421 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu
422 verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
423 (oder Variablen) zu verwenden. Sie wurden zu Beginn des vorigen
424 Abschnitts erklärt, erinnern Sie sich? Damit wir sicher gehen
425 können, dass der Inhalt der @code{text}-Variable als Gesangstext
426 interpretiert wird, wird ihm @code{\lyricmode} vorangesetzt. Wie
427 @code{\addlyrics} wird hiermit in den Eingabemodus für Gesangstext
428 gewechselt. Ohne diesen Befehl würde LilyPond versuchen, den Inhalt
429 der Variable als Noten zu interpretieren und dabei eine Menge
430 Fehler produzieren. (Einige andere Eingabemodi sind außerdem noch
431 verfügtbar, siehe @ruser{Input modes}.)
433 Also haben wir, wenn wir ein paar Noten und einen Bassschlüssel
434 für die linke Hand hinzufügen, folgendes Beispiel:
436 @lilypond[verbatim,quote,ragged-right]
437 melodie = \relative c'' { r4 d8\noBeam g, c4 r }
438 text = \lyricmode { And God said, }
439 oben = \relative c'' { <g d g,>2~ <g d g,> }
440 unten = \relative c { b2 e2 }
444 \new Staff = "Sänger" <<
445 \new Voice = "Singstimme" { \melodie }
448 \new PianoStaff = "Klavier" <<
449 \new Staff = "oben" { \oben }
450 \new Staff = "unten" {
460 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung
461 sollte man langsam und sorgfältig vorgehen. Am besten fängt
462 man mit dem größten Gebilde an und definiert dann die darin
463 enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
464 genau mit den Einzügen zu sein, so dass jede Zeile, die
465 der gleichen Ebene angehört, wirklich horizontal an der
466 gleichen Stelle beginnt.
470 Benutzerhandbuch: @ruser{Struktur einer Partitur}.
473 @node Musikalische Ausdrücke ineinander verschachteln
474 @subsection Musikalische Ausdrücke ineinander verschachteln
475 @translationof Nesting music expressions
477 @cindex Notenzeilen, temporäre
479 @cindex temporäre Notenzeilen
481 Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleich
482 zu Beginn erzeugt werden -- sie können auch zu einem späteren
483 Zeitpunkt eingeführt weden. Das ist vor allem nützlichm um
484 @rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kures Beispiel,
485 wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt
488 @lilypond[verbatim,quote,ragged-right]
505 Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie
506 auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
507 der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
508 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
510 @cindex Notenzeile, Positionierung
511 @cindex Positionierung einer Notenzeile
513 Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
516 @lilypond[verbatim,quote,ragged-right]
517 \new Staff = "Hauptzeile" {
524 alignAboveContext = #"Hauptzeile" }
532 Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
533 genauer erklärt wird. Damit kann das Standardverhalten einer
534 einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
535 dass die neue Notenzeile oberhalb der bereits existierenden Zeile
536 mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt
537 standardmäßig unterhalb.
541 Ossia werden oft ohne Notenschlüssel und Taktangabe gedruck, meist
542 auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich
543 auch in LilyPond möglich, benötigt aber Befehle, die bisher noch
544 nicht vorgestellt wurden. Siehe @ref{Größe von Objekten}
545 und @ruser{Ossia-Systeme}.
548 @node Über die Nicht-Schachtelung von Klammern und Bindebögen
549 @subsection Über die Nicht-Schachtelung von Klammern und Bindebögen
550 @translationof On the un-nestedness of brackets and ties
552 @cindex Klammern, geschachtelt
553 @cindex Schachtelung von Klammern
554 @cindex Klammer-Typen
556 Sie haben bisher zahlreiche verschiedene Arten von Klammern
557 und Klammer-artigen Konstruktionen beim Schreiben von Musik mit
558 LilyPond kennengelernt. Diese folgen verschiedenen Regeln, die zu
559 Beginn vielleicht verwirrend wirken. Bevor die genauen Regeln
560 vorgestellt werden, wollen wir die diversen Klammerarten und Arten
561 von Klammer-artigen Konstrukten kurz rekapitulieren:
563 @c attempt to force this onto a new page
565 @multitable @columnfractions .3 .7
568 @item @code{@{ .. @}}
569 @tab Umschließt ein sequenzielles Musiksegment
571 @tab Umschließt die Noten eines Akkords
572 @item @code{<< .. >>}
573 @tab Umschließt parallele Musikausdrücke
575 @tab Markiert den Beginn und das Ende eines Haltebogens
576 @item @code{\( .. \)}
577 @tab Markiert den Beginn und das Ende eines Phasierungsbogens
579 @tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
582 Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
583 erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
584 Haltebögen (durch eine Tilde @code{~} markiert),
585 Triolen (als @code{\times x/y @{..@}} geschrieben) und
586 Vorschlagnoten (als @code{\grace@{..@}} notiert).
588 Außerhalb von LilyPond fordert die übliche Benutzung von
589 Klammern, dass die entsprechenden Arten korrekt verschachtelt
590 werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die
591 schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
592 wie die öffnenden Klammern vor. Dies ist auch in LilyPond
593 ein @strong{Muss} für die drei Klammerarten, die in obiger
594 Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie
595 müssen korrekt geschachtelt werden.
596 Die restlichen Klammer-artigen Konstruktionen (durch @q{Markiert}
597 in der Tabelle oben beschrieben), die Haltebögen und die Triolen
599 den anderen Klammern oder Klammer-artigen Konstrukten @strong{nicht}
600 unbedingt korrekt geschachtelt werden. Tatsächlich sind sie auch
601 keine Klammern in dem Sinn, dass sie etwas umschließen, sondern
602 viel mehr Indikatoren, an welcher Stelle ein bestimmtes
603 musikalisches Objekt beginnt oder endet.
605 So kann also z.B. einen Phrasierungsbogen vor einem manuellen
606 Balken beginn, jedoch schon vor dem Ende des Balkens enden.
607 Dies mag zwar musikalisch wenig Sinn ergeben, ist aber in LilyPond
610 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
611 { g8\( a b[ c b\) a] }
614 Im Allgemeinen können die verschiedenen Klammerarten,
615 Klammer-artigen Konstruktionen, Haltebögen,
616 Triolen und Vorschlagnoten beliebig kombiniert werden.
617 Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht
618 (Zeile 1), eine Bindebogen, der ebenfalls in eine Triole
619 reicht (Zeile 2), einen Balken und einen Bindeboden in eine Triole,
620 ein Haltebogen, der über zwei Triolen läuft, sowie einen
621 Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4).
623 @lilypond[quote,verbatim,fragment,ragged-right]
625 r16[ g16 \times 2/3 {r16 e'8] }
626 g16( a \times 2/3 {b d) e' }
627 g8[( a \times 2/3 {b d') e'~]}
628 \times 4/5 {e'32\( a b d' e'} a'4.\)
633 @node Voice enthält Noten
634 @section Voice enthält Noten
635 @translationof Voices contain music
637 Sänger brauchen Stimmen zum Singen, und LilyPond braucht sie auch:
638 in der Tat sind alle Noten für alle Instrumente in einer Partitur
639 innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegendste Prinzip
644 * Stimmen explizit beginnen::
648 @node Ich höre Stimmen
649 @subsection Ich höre Stimmen
650 @translationof I'm hearing Voices
654 @cindex mehrere Stimmen
655 @cindex Stimmen, mehrere
656 @cindex Voice context
657 @cindex context, Voice
658 @cindex Kontext, Stimme
659 @cindex Stimmenkontext
660 @cindex gleichzeitige Noten
661 @cindex Stimmen versus Akkorde
662 @cindex Akkorde versus Stimmen
663 @cindex Noten gleichzeitig
665 Die grundegendsten und innersten Ebenen ein einer LilyPond-Partitur
666 werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice}
667 (Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
668 manchmal auch als @qq{layer} (Ebene) bezeichnet.
670 Tatsächlich ist die Stimmenebene die einzige, die wirklich Noten
671 enthalten kann. Wenn kein Stimmenkontext explizit erstellt wird,
672 wird er automatisch erstellt, wie am Anfang dieses Kapitels
673 gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
674 Note gleichzeitig spielen. Noten für solche Instrumente sind
675 monophon und brauchen nur eine einzige Stimme. Instrumente, die
676 mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen
677 dagegeben oft mehrere Stimmen, um die verschiedenen gleichzeitig
678 erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen
681 Eine einzelne Stimme kann natürlich auch vielen Noten in einem Akkord
682 enhalten -- wann also braucht man dann mehrere Stimmen? Schauen wir
683 uns zuerst dieses Beispiel mit vier Akkorden an:
685 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
687 <d g>4 <d fis> <d a'> <d g>
690 Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern
691 @code{< ... >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
692 nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
693 eine Achtelnote sein, gefolgt von einer Achtelnote G (als Durchgangsnote
694 hin zum A)? Hier haben wir also zwei Noten, die zur gleichen Zeit
695 beginnen, aber unterschiedliche Dauern haben: die Viertelnote D und die
696 Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie
697 nicht schreiben, weil alle Noten in einem Akkord die gleiche Länge besitzen
698 müssen. Sie können auch nicht als aufeinanderfolgende Noten geschrieben
699 werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
702 Wie aber wird das in der LilyPond-Syntax ausgedrückt?
707 Die einfachste Art, Fragmente mit mehr als einer Stimme auf einem System
708 zu notieren, ist, die Stimmen nacheinander (jeweils mit den Klammern
709 @code{@{ ... @}}) zu schreiben und dann mit den spitzen Klammern
710 (@code{<<...>>}) simultan zu kombinieren. Die beiden Fragmente müssen
711 zusätzlich noch mit zwei Backslash-Zeichen (@code{\\}) voneinander
712 getrennt werden, damit sie als zwei unterschiedliche Stimmen erkannt
713 werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
714 werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
715 den Noten um hauptsächlich homophone Musik handelt, in der hier und da
716 polyphone Stellen vorkommen.
718 So sieht es aus, wenn die Akkorde in zwei Stimmen aufgeteilt werden
719 und zur Durchgangsnote noch ein Bogen hinzugefügt wird:
721 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
723 % Voice "1" Voice "2"
724 << { g4 fis8( g) a4 g } \\ { d4 d d d } >>
727 Beachte, dass die Hälse der zweiten Stimme nun nach unten zeigen.
729 Hier ein anderes Beispiel:
731 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
733 % Voice "1" Voice "2"
734 << { r4 g g4. a8 } \\ { d,2 d4 g } >>
735 << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >>
736 << { a2. r4 } \\ { fis2. s4 } >>
739 Es ist nicht notwendig, für jeden Takt eine eigene
740 @code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
741 Noten pro Takt kann es die Quelldatei besser lesbar machen, aber
742 wenn in einem Takt viele Noten vorkommen, kann man die gesamten Stimmen
743 separat schreiben, wie hier:
745 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
760 Dieses Beispiel hat nur zwei Stimmen, aber die gleiche Konstruktion kann
761 angewendet werden, wenn man drei oder mehr Stimmen hat, indem man weitere
762 Backslash-Trenner hinzufügt.
764 Die Stimmenkontexte tragen die Namen @code{"1"}, @code{"2"} usw. In jedem
765 dieser Kontexte wird die vertikale Ausrichtung von Hälsen, Bögen, Dynamik-Zeichen
766 usw. entsprechend ausgerichtet.
768 @lilypond[quote,verbatim,fragment]
769 \new Staff \relative c' {
772 % Voice "1" Voice "2" Voice "3"
773 << { g4 f e } \\ { r8 e4 d c8 ~ } >>
774 << { d2 e2 } \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >>
778 Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten
779 außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
780 uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
781 können nur Noten in der selben Stimmen miteinander verbinden und können
782 also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
783 gilt, dass parallele Stimmen aus eigenen simultanen Konstruktionen auf
784 dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
785 Stimmenkontext verknüpfte Eigenschaften erstrecken sich auf alle
786 simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
787 Beachten Sie, dass Änderungen in einer Stimme sich nicht auf die anderen
788 Stimmen erstrecken, aber sie sind weiterhin in der selben Stimme vorhanden,
789 auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
790 über die gleiche Stimme in zwei Konstrukten verteilt werden können, wie
791 hier an der blauen Dreieckstimme gezeigt.
793 @lilypond[quote,verbatim]
794 \new Staff \relative c' {
813 { c8 b16 a b8 g ~ g2 }
823 @funindex \voiceOneStyle
824 @funindex \voiceTwoStyle
825 @funindex \voiceThreeStyle
826 @funindex \voiceFourStyle
827 @funindex \voiceNeutralStyle
829 Die Befehle @code{\voiceXXXStyle} sind vor allem dazu da, um in
830 pädagogischen Dokumenten wie diesem hier angewandt zu werden.
831 Sie verändern die Farbe des Notenkopfes, des Halses und des Balkens, und
832 zusätzlich die Form des Notenkopfes, damit die einzelnen Stimmen
833 einfach auseinander gehalten werden können. Die erste Stimme ist als
834 rote Raute definiert, die zweite Stimme als blaue Dreiecke, die dritte
835 Stimme als grüne Kreise mit Kreuz und die vierte Stimme (die hier nicht
836 benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
837 nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
838 werden, wie Befehle wie diese vom Benutzer selber erstellt werden
839 können. Siehe auch @ref{Sichtbarkeit und Farbe von Objekten} und
840 @ref{Variablen für Optimierungen einsetzen}.
842 @cindex Polyphonie und relativer Notationsmodus
843 @cindex relativer Notationsmodus und Polyphonie
845 Polyphonie ändert nicht die Verhältnisse der Noten innerhalb eines
846 @code{\relative @{ @}}-Blocks. Jede Note wird weiterhin relativ zu
847 der vorherigen Note errechnet, oder relativ zur ersten Note des vorigen
848 Akkords. So ist etwa hier
851 \relative c' @{ NoteA << < NoteB NoteC > \\ NoteD >> NoteE @}
855 @code{NoteB} bezüglich @code{NoteA} @*
856 @code{NoteC} bezüglich @code{NoteB}, nicht @code{noteA}; @*
857 @code{NoteD} bezüglich @code{NoteB}, nicht @code{NoteA} oder
859 @code{NoteE} bezüglich @code{NoteD}, nicht @code{NoteA} errechnet.
861 Eine andere Möglichkeit ist, den @code{\relative}-Befehl vor jede
862 Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
866 \relative c' @{ NoteA ... @}
868 \relative c'' @{ < NoteB NoteC > ... @}
870 \relative g' @{ NoteD ... @}
872 \relative c' @{ NoteE ... @}
875 Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück
876 analysieren. Hier die Noten der ersten zwei Takte von Chopins
877 @notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
878 und dem nächsten Kapitel benutzt werden, um verschiedene Techniken,
879 Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
880 Punkt alles in folgendem Code, das Ihnen seltsam vorkommt, und konzentrieren
881 Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
882 in späteren Abschnitten erklärt werden.
884 @c The following should appear as music without code
885 @lilypond[quote,ragged-right]
886 \new Staff \relative c'' {
895 % Ignore these for now - they are explained in Ch 4
896 \once \override NoteColumn #'force-hshift = #0
898 \once \override NoteColumn #'force-hshift = #0.5
906 Die Richtung der Hälse wird oft benutzt, um anzuzeigen, dass zwei
907 gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
908 oberen Noten nach oben und die Hälse aller unteren Noten nach unten.
909 Das ist der erste Anhaltspunkt, dass mehr als eine Stimme benötigt
912 Aber die wirkliche Notwendigkeit für mehrere Stimmen tritt erst
913 dann auf, wenn unterschiedliche Noten gleichzeitig erklingen, aber
914 unterschiedliche Dauern besitzen. Schauen Sie sich die Noten
915 auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
916 Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
917 nicht als Akkord geschrieben werden, denn alle Noten in einem Akkord
918 besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
919 geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
920 Taktabschnitt benötigt drei Stimmen, und normalerweise schreibt man
921 drei Stimmen für den ganzen Takt, wie im Beispiel unten zu sehen ist;
922 hier sind unterschiedliche Köpfe und Farben für die verschiedenen Stimmen
923 eingesetzt. Nocheinmal: der Quellcode für dieses Beispiel wird später
924 erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht
927 @c The following should appear as music without code
928 @c The three voice styles should be defined in -init
929 @lilypond[quote,ragged-right]
930 \new Staff \relative c'' {
941 \\ % No Voice three (we want stems down)
944 % Ignore these for now - they are explained in Ch 4
945 \once \override NoteColumn #'force-hshift = #0
947 \once \override NoteColumn #'force-hshift = #0.5
955 Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen
956 werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
957 wir es gelernt haben, indem wir mit der @code{<< \\ >>}-Konstruktion
958 die drei Stimmen des ersten Taktes notieren:
960 @lilypond[quote,verbatim,fragment,ragged-right]
961 \new Staff \relative c'' {
964 { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
970 @cindex Hals nach unten
971 @cindex Hals nach oben
972 @cindex Notenhals, Richtung
973 @cindex Richtung des Notenhalses
974 @cindex Notenhalsrichtung
975 @cindex Stimmen und Notenhalsrichtung
976 @cindex Notenhalsrichtung in Stimmen
978 Die Richtung des Notenhalses wird automatisch zugewiesen; die ungeraden
979 Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
980 für die Stimmen 1 und 2 stimmen, aber die Hälse in der dritten Stimme
981 sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
982 korrigieren, indem wir die dritte Stimme einfach auslassen und die
983 Noten in die vierte Stimme verschieben. Das wird einfach vorgenommen,
984 indem noch ein Paar @code{\\}-Stimmen hinzugefügt wird.
987 @lilypond[quote,verbatim,fragment,ragged-right]
988 \new Staff \relative c'' {
994 \\ % Stimme drei auslassen
1003 Wie zu sehen ist, ändert das die Richtung der Hälse, aber zeigt ein
1004 anderes Problem auf, auf das man manchmal bei mehreren Stimmen stößt:
1005 Die Hälse einer Stimme können mit den Hälsen anderer Stimmen kollidieren.
1006 LilyPond erlaubt Noten in verschiedenen Stimmen sich auf der gleichen
1007 vertikalen Position zu befinden, wenn die Hälse in entgegengesetzte
1008 Richtungen zeigen, und positioniert die dritte und vierte Stimme dann
1009 so, dass Zusammenstöße möglichst vermieden werden. Das funktioniert
1010 gewöhnlich recht gut, aber in diesem Beispiel sind die Noten der untersten
1011 Stimme eindeutig standardmäßig schlecht positioniert. LilyPond bietet
1012 verschiedene Möglichkeiten, die horizontale Position von Noten
1013 anzupassen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
1014 anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt auf; siehe @code{force-hshift}-Eigenschaft in @ref{Überlappende Notation in Ordnung bringen}.
1018 Notationsreferenz: @ruser{Mehrere Stimmen}.
1021 @node Stimmen explizit beginnen
1022 @subsection Stimmen explizit beginnen
1023 @translationof Explicitly instantiating voices
1029 @funindex \voiceThree
1030 @funindex voiceThree
1031 @funindex \voiceFour
1035 @funindex \new Voice
1036 @cindex Voice context, erstellen von
1037 @cindex Stimmenkontexte, erstellen von
1039 Voice-Kontexte können auch manuell innerhalb
1040 eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen
1041 @code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme
1042 entsprechendes Verhalten von vertikaler Verschiebung und Richtung
1043 von Hälsen und anderen Objekten hinzugefügt werden. In längeren
1044 Partituren können die Stimmen damit besser auseinander gehalten
1047 Die @code{<< \\ >>}-Konstruktion, die wir im vorigen Abschnitt
1053 << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
1063 \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
1064 \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
1068 Beide würden folgendes Notenbild erzeugen:
1070 @c The following example should not display the code
1071 @lilypond[ragged-right,quote]
1073 \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
1074 \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
1078 @cindex Stimmen, mehrere zu einer zusammenführen
1079 @cindex eine Stimme wiederherstellen
1081 Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen,
1082 Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen.
1083 @code{\voiceOne} und @code{\voiceThree} lassen diese Objekte
1084 nach oben zeigen, @code{\voiceTwo} und @code{\voiceFour}
1085 dagegen lassen sie abwärts zeigen. Diese Befehle erzeugen eine
1086 horizontale Verschiebung, wenn es erforderlich ist, um Zusammenstöße
1087 zu vermeiden. Der Befehl
1088 @code{\oneVoice} stellt wieder auf das normale Verhalten um.
1090 Schauen wir uns in einigen einfachen Beispielen an, was genau
1091 die Befehle @code{\oneVoice}, @code{\voiceOne} und @code{voiceTwo}
1092 mit Text, Bögen und Dynamikbezeichnung anstellen:
1094 @lilypond[quote,ragged-right,verbatim]
1096 % Default behavior or behavior after \oneVoice
1097 c d8~ d e4( f g a) b-> c
1101 @lilypond[quote,ragged-right,verbatim]
1104 c d8~ d e4 (f g a) b-> c
1106 c, d8~ d e4 (f g a) b-> c
1110 @lilypond[quote,ragged-right,verbatim]
1113 c d8~ d e4 (f g a) b-> c
1115 c, d8~ d e4 (f g a) b-> c
1119 Schauen wir und nun drei unterschiedliche Arten an, den gleichen
1120 Abschnitt polyphoner Musik zu notieren, jede Art mit ihren
1121 Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
1122 das Beispiel vom vorherigen Abschnitt.
1124 Ein Ausdruck, der direkt innerhalb einer @code{<< >>}-Umgebung
1125 auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche
1126 Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also
1127 eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die
1128 farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in
1129 einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
1130 Phrasierungsbogen ober sie gesetzt werden.
1132 @lilypond[quote,ragged-right,verbatim]
1133 \new Staff \relative c' {
1135 % The following notes are monophonic
1137 % Start simultaneous section of three voices
1139 % Continue the main voice in parallel
1140 { g4 f e | d2 e2) | }
1141 % Initiate second voice
1143 % Set stems, etc., down
1145 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
1147 % Initiate third voice
1149 % Set stems, etc, up
1157 @cindex Verschachteln von musikalischen Ausdrücken
1158 @cindex Verschachteln von gleichzeitigen Ausdrücken
1159 @cindex Ausdrücke, Verschachteln von
1160 @cindex Stimmen, temporär
1161 @cindex Stimmen, Verschachteln von
1162 @cindex Verschachteln von Stimmen
1163 @cindex temporäre Stimmen
1165 Tiefer verschachtelte polyphone Konstrukte sind möglich, und
1166 wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg
1167 sein, Noten zu setzen:
1169 @lilypond[quote,ragged-right,verbatim]
1170 \new Staff \relative c' {
1173 { g4 f e | d2 e2) | }
1178 { c8 b16 a b8 g~ g2 }
1189 @cindex Platzhalternoten
1190 @cindex unsichtbare Noten
1191 @cindex Noten verstecken
1193 Diese Methode, neue Stimmen kurzzeitig zu verschachteln, bietet sich
1194 an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
1195 aber die ganze Partitur polyphon ist, ist es meistens klarer, direkt
1196 unterschiedliche Stimmen über die gesamte Partitur hinweg einzusetzen.
1197 Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen,
1198 an denen die Stimme nicht auftaucht, wie etwa hier:
1200 @lilypond[quote,ragged-right,verbatim]
1201 \new Staff \relative c' <<
1202 % Initiate first voice
1205 c16^( d e f g4 f e | d2 e2) |
1207 % Initiate second voice
1209 % Set stems, etc, down
1211 s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
1213 % Initiate third voice
1215 % Set stems, etc, up
1222 @subsubheading Notenkolumnen
1224 @cindex Notenkolumne
1225 @cindex Notenkollision
1226 @cindex Zusammenstöße von Noten
1227 @cindex Kollisionen von Noten
1228 @cindex Vertikale Position
1229 @cindex shift-Befehle
1230 @cindex Verschieben von Noten
1234 @funindex \shiftOnnn
1240 Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen
1241 Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal
1242 auch mehreren Kolumnen getzt, um die Noten am Überschneiden zu
1243 hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
1244 eine eigene Kolumne, und ein stimmenabhängiger Verschiebunsbefehl (engl.
1245 shift) wird eingesetzt, wenn eine Kollision auftreten könnte.
1246 Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
1247 Stimme nach rechts verschoben, relativ gesehen zum D der ersten Stimme,
1248 und im letzten Akkord wird das C der dritten Stimme auch nach
1249 rechts verschoben im Verhältnis zu den anderen Stimmen.
1251 Die Befehle @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} und
1252 @code{\shiftOff} bestimmen den Grad, zu dem Noten und Akkorde
1253 verschoben werden sollen, wenn sich sonst eine Kollision nicht
1254 vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
1255 Stimmen (also normalerweise Stimme 1 und 2) @code{\shiftOff}
1256 eingestellt haben, während für die inneren Stimmen (3 und 4)
1257 @code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
1258 auftritt, werden Stimmen 1 und 3 nach rechts und Stimmen 2 und 4
1259 nach links verschoben.
1261 @code{\shiftOnn} und @code{\shiftOnnn} definieren weitere
1262 Verschiebungsebenen, die man kurzzeitig anwählen kann, um
1263 Zusammenstöße in komplexen Situationen aufzulösen, siehe auch
1264 @ref{Beispiele aus dem Leben}.
1266 Eine Notenkolumne kann nur eine Note (oder einen Akkord) von
1267 einer Stimme mit Hälsen nach oben und eine Note (oder einen
1268 Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
1269 Noten von zwei Stimmen mit den Hälsen in die gleiche Richtung
1270 an der selben Stelle auftreten und in beiden Stimmen ist
1271 keine Verschiebung oder die gleiche Verschiebungsebene
1272 definiert, wird die Fehlermeldung
1273 @qq{zu viele kollidierende Notenspalten werden ignoriert}
1278 Notationsreferenz: @ruser{Mehrere Stimmen}.
1281 @node Stimmen und Text
1282 @subsection Stimmen und Text
1283 @translationof Voices and vocals
1285 Die Notation von Vokalmusik ihre eigene Schwierigkeit, nämlich
1286 die Kombination von zwei Ausdrücken: den Noten und dem Text.
1287 Achtung: Der Gesangstext wird auf Englisch @qq{lyrics} genannt.
1290 @funindex \new Lyrics
1294 @cindex Lyrics context, erstellen
1295 @cindex Gesangtext, Verbindung mit Noten
1297 Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet,
1298 mit dem einfache Partituren gut erstellt werden können.
1299 Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
1300 komplexer wird, muss der Gesangstext mit einem neuen
1301 @code{Lyrics}-Kontext begonnen werden (mit dem Befehl
1302 @code{\new Lyrics}) und durch den Befehl @code{\lyricsto@{@}}
1303 mit einer bestimmten Stimme verknüpft werden, indem die
1304 Bezeichnung der Stimme benutzt wird.
1306 @lilypond[quote,verbatim,fragment]
1308 \new Voice = "one" \relative c'' {
1311 c4 b8. a16 g4. f8 e4 d c2
1313 \new Lyrics \lyricsto "one" {
1314 No more let sins and sor -- rows grow.
1319 Beachten Sie, dass der Notentext nur mit einem @code{Voice}-Kontext
1320 verknüpft werden kann, nicht mit einem @code{Staff}-Kontext.
1321 In diesem Fall also müssen Sie ein System (@code{Staff}) und
1322 eine Stimme (@code{Voice}) explizit erstellen, damit alles
1325 @cindex Gesangstext und Balken
1326 @cindex Text und Balken
1327 @cindex Balken und Text
1328 @funindex \autoBeamOff
1329 @funindex autoBeamOff
1331 Die automatischen Balken, die LilyPond in der Standardeinstellung
1332 setzt, eignen sich sehr gut für instrumentale Musik, aber nicht
1333 so gut für Musik mit Text, wo man entweder gar keine Balken
1334 benutzt oder sie einsetzt, um Melismen zu verdeutlichen.
1335 Im Beispiel oben wird deshalb der Befehl @code{\autoBeamOff}
1336 eingesetzt um die automatischen Balken (engl. beam) auszuschalten.
1338 @funindex \new ChoirStaff
1339 @funindex \lyricmode
1340 @funindex ChoirStaff
1342 @cindex Vokalpartitur, Aufbau
1343 @cindex Chorpartitur, Aufbau
1345 Wir wollen das frühere Beispiel von @notation{Judas Maccabæus}
1346 benutzen, um diese flexiblere Technik für Gesangstexte
1347 zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
1348 Variablen eingesetzt werden, um den Text und die Noten
1349 von der Partiturstruktur zu trennen. Es wurde zusätzlich
1350 eine Chorpartiturklammer hinzugefügt. Der Gesangtext muss mit
1351 @code{\lyricmode} eingegeben werden, damit er als Text und
1352 nicht als Noten interpretiert werden kann.
1354 @lilypond[quote,verbatim]
1355 global = { \time 6/8 \partial 8 \key f \major}
1356 SopOneMusic = \relative c'' {
1357 c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 | }
1358 SopTwoMusic = \relative c' {
1359 r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' | }
1360 SopOneLyrics = \lyricmode {
1361 Let | flee -- cy flocks the | hills a -- dorn, __ | }
1362 SopTwoLyrics = \lyricmode {
1363 Let | flee -- cy flocks the | hills a -- dorn, | }
1368 \new Voice = "SopOne" {
1372 \new Lyrics \lyricsto "SopOne" {
1377 \new Voice = "SopTwo" {
1381 \new Lyrics \lyricsto "SopTwo" {
1389 Dies ist die Grundstruktur für alle Chorpartituren. Mehr
1390 Systeme können hinzugefügt werden, wenn sie gebraucht werden, mehr
1391 Stimmen können zu jedem System hinzugefügt werden, mehr
1392 Strophen können zum Text hinzugefügt werden, und schließlich
1393 können die Variablen schnell in eine eigene Datei verschoben
1394 werden, wenn sie zu lang werden sollten.
1396 @cindex Choralnotation
1397 @cindex Hymnus-Notation
1398 @cindex SATB-Partitur
1399 @cindex mehrere Strophen
1400 @cindex Strophen, mehrere
1401 @cindex Choral mit mehreren Strophen
1403 Hier ein Beispiel der ersten Zeile eines Chorals mit vier
1404 Strophen für gemischten Chor. In diesem Fall ist der Text
1405 für alle vier Stimmen identisch. Beachten Sie, wie die
1406 Variablen eingesetzt werden, um Inhalt (Noten und Text) und Form
1407 (die Partitur) voneinander zu trennen. Eine Variable wurde
1408 eingesetzt, um die Elemente, die auf beiden Systemen auftauchen,
1409 aufzunehmen, nämlich Taktart und Tonart. Solch eine
1410 Variable wird oft auch mit @qq{global} bezeichnet.
1412 @lilypond[quote,verbatim]
1413 TimeKey = { \time 4/4 \partial 4 \key c \major}
1414 SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g | }
1415 AltoMusic = \relative c' { c4 | c4. c8 e4 e | f f e | }
1416 TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 | }
1417 BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 | }
1418 VerseOne = \lyricmode {
1419 E -- | ter -- nal fa -- ther, | strong to save, | }
1420 VerseTwo = \lyricmode {
1421 O | Christ, whose voice the | wa -- ters heard, | }
1422 VerseThree = \lyricmode {
1423 O | Ho -- ly Spi -- rit, | who didst brood | }
1424 VerseFour = \lyricmode {
1425 O | Tri -- ni -- ty of | love and pow'r | }
1431 \new Voice = "Sop" { \voiceOne \TimeKey \SopMusic }
1432 \new Voice = "Alto" { \voiceTwo \AltoMusic }
1433 \new Lyrics \lyricsto "Sop" { \VerseOne }
1434 \new Lyrics \lyricsto "Sop" { \VerseTwo }
1435 \new Lyrics \lyricsto "Sop" { \VerseThree }
1436 \new Lyrics \lyricsto "Sop" { \VerseFour }
1440 \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
1441 \new Voice = "Bass" { \voiceTwo \BassMusic }
1447 @cindex Strophe und Refrain
1450 Dieser Abschnitt schließt mit einem Beispiel, das eine Solo-Strophe
1451 mit anschließendem zweistimmigem Refrain auf zwei Systemen zeigt.
1452 Die Positionierung des einstimmigen Abschnitss und der mehrstimmigen
1453 Stelle ist etwas kompliziert; es braucht etwas Aufmerksamkeit,
1454 um der Erklärung folgen zu können.
1456 Beginnen wir mit einer @code{score}-Umgebung, in der eine
1457 Chorpartitur (@code{ChoirStaff}) gesetzt wird. Die Partitur soll
1458 schließlich mit der eckigen Klammer beginnen.
1459 Normalerweise bräuchten wir spitze Klammern im Quelltext
1460 nach dem @code{\new ChoirStaff}, damit die Systeme paralell
1461 gesetzt werden, aber hier wollen wir diese Parallelsierung
1462 ja erst nach dem Solo. Also benutzen wir geschweifte Klammern.
1463 Innerhalb der Chorpartitur erstellen wir zuerst das System,
1464 das die Strophe enthält. Es braucht Noten und Text parallel,
1465 also setzen wir hier die spitzen Klammern um @code{\new Voice}
1466 und @code{\new Lyrics}.
1468 @lilypond[quote,verbatim,ragged-right]
1469 versenotes = \relative c'' {
1475 versewords = \lyricmode {
1476 One two three four five six
1481 \new Voice = "verse" {
1484 \new Lyrics \lyricsto verse {
1493 Damit erhalten wir die Strophe.
1495 Jetzt soll @notation{refrainA} auf dem selben System gesetzt
1496 werden, während gleichzeitig in einem neuen System darunter
1497 @notation{refrainB} gesetzt wird. Damit die Oberstimme das
1498 gleiche System benutzt, muss alles direkt auf den Zeilenumbruchbefehl
1499 (@code{\break} folgen, innerhalb der @notation{verse}-Stimme.
1500 Ja, tatsächlich, @emph{innerhalb} der @notation{verse}-Stimme.
1501 Hier haben wir diese parallele Stelle isoliert. Weitere Systeme
1502 könnten auf die gleiche Weise hinzugefügt werden.
1507 \new Lyrics \lyricsto verse @{
1511 \new Voice = "refrainB" @{
1514 \new Lyrics \lyricsto "refrainB" @{
1521 Nun schließlich das Resultat mit zwei Systemen für den Refrain,
1522 man kann gut sehen, wie sich die parallele Stelle innherhalb
1523 der @notation{verse}-Stimme befindet.
1525 @lilypond[quote,verbatim, ragged-right]
1526 versenotes = \relative c'' {
1532 refrainnotesA = \relative c'' {
1536 refrainnotesB = \relative c {
1541 versewords = \lyricmode {
1542 One two three four five six
1544 refrainwordsA = \lyricmode {
1547 refrainwordsB = \lyricmode {
1553 \new Voice = "verse" {
1557 \new Lyrics \lyricsto "verse" {
1561 \new Voice = "refrainB" {
1564 \new Lyrics \lyricsto "refrainB" {
1570 \new Lyrics \lyricsto "verse" {
1578 @cindex book, Benutzung von
1582 Dies ist zwar eine interessante und nützliche Übung um zu
1583 verstehen, wie sequentielle und parallele Notationsumgebungen
1584 funktionieren, in der Praxis würde man diesen Code aber
1585 vielleicht eher in zwei @code{\score}-Umgebungen trennnen
1586 und diese dann innerhalb einer @code{\book}-Umgebung
1587 einsetzen, wie im folgenden Beispiel demonstriert:
1589 @lilypond[quote,verbatim,ragged-right]
1590 versenotes = \relative c'' {
1596 refrainnotesA = \relative c'' {
1600 refrainnotesB = \relative c {
1605 versewords = \lyricmode {
1606 One two three four five six
1608 refrainwordsA = \lyricmode {
1611 refrainwordsB = \lyricmode {
1616 \new Voice = "verse" {
1619 \new Lyrics \lyricsto "verse" {
1628 \new Voice = "refrainA" {
1631 \new Lyrics \lyricsto "refrainA" {
1636 \new Voice = "refrainB" {
1639 \new Lyrics \lyricsto "refrainB" {
1649 Notation Reference: @ruser{Notation von Gesang}.
1652 @node Kontexte und Engraver
1653 @section Kontexte und Engraver
1654 @translationof Contexts and engravers
1656 Kontexte und Engraver (@qq{Stempel}) sind in den vorherigen
1657 Abschnitten schon aufgetaucht; hier wollen wir uns ihnen
1658 nun etwas ausführlicher widmen, denn sie sind sehr
1659 wichtig, um Feineinstellungen in der LilyPond-Notenausgabe
1660 vornehmen zu können.
1663 * Was sind Kontexte?::
1664 * Kontexte erstellen::
1665 * Was sind Engraver?::
1666 * Kontexteigenschaften verändern::
1667 * Engraver hinzufügen und entfernen::
1670 @node Was sind Kontexte?
1671 @subsection Was sind Kontexte?
1672 @translationof Contexts explained
1674 @cindex Kontexte erklärt
1676 Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
1678 die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
1679 etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
1681 @lilypond[quote,verbatim,relative=2,fragment]
1685 Der Quellcode ist sehr kurz und knapp, während in der
1686 Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und
1687 eine Taktart hinzugefügt wurden. Während LilyPond
1688 den Eingabetext @emph{interpretiert}, wird die
1689 musikalische Information von rechts nach links gelesen,
1690 in etwa, wie man eine Partitur von links nach
1691 rechts liest. Während das Programm den Code liest,
1692 merkt es sich, wo sich Taktgrenzen befinden und
1693 für welche Tonhöhen Versetzungszeichen gesetzt werden
1694 müssen. Diese Information muss auf mehreren Ebenen
1695 gehandhabt werden, denn Versetzungszeichen etwa
1696 beziehen sich nur auf ein System, Taktlinien dagegen
1697 üblicherweise auf die gesamte Partitur.
1699 Innerhalb von LilyPond sind diese Regeln und
1700 Informationshappen in @emph{Kontexten} (engl.
1701 contexts) gruppiert. Der @code{Voice} (Stimmen)-Kontext
1702 wurde schon vorgestellt. Daneben
1703 gibt es noch die @code{Staff} (Notensystem-) und
1704 @code{Score} (Partitur)-Kontexte. Kontexte sind
1705 hierarchisch geschichtet um die hierarchische
1706 Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
1707 kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
1708 und ein @code{Score}-Kontext kann viele
1709 @code{Staff}-Kontexte beinhalten.
1712 @sourceimage{context-example,5cm,,}
1715 Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
1716 zu erzwingen, bestimmte Notationsobjekte zu erstellen und
1717 verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
1718 zum Beispiel kann eine Vorzeichenregel einführen und der
1719 @code{Staff}-Kontext hält diese Regel dann aufrecht, um
1720 einzuordenen, ob ein Versetzungszeichen gesetzt werden
1723 Ein anderes Beispiel: die Synchronisation der Taktlinien ist
1724 standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
1725 die Systeme einer Partitur aber unterschiedliche Taktarten
1726 enthalten, etwa in einer polymetrischen Partitur mit
1727 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
1728 der @code{Score}- und @code{Staff}-Kontexte verändert werden.
1730 In einfachen Partituren werden die Kontexte implizit erstellt,
1731 und es kann sein, dass Sie sich dessen gar nicht bewusst sind.
1732 Für etwas größere Projekte, etwa mit vielen Systemen, müssen
1733 die Kontexte aber explizit erstellt werden, um sicher zu gehen,
1734 dass man auch wirklich die erwünschte Zahl an Systemen in der
1735 richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
1736 Notation gesetzt werden sollen, ist es üblich, die existierenden
1737 Kontexte zu verändern oder gar gänzlich neue zu definieren.
1739 Zusätzlich zu den @code{Score,} @code{Staff} und
1740 @code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
1741 der Partitur- und Systemebene liegen und Gruppen von Systemen
1742 kontrollieren. Das sind beispielsweise der
1743 @code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
1744 alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
1745 für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
1747 Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren
1749 Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben
1750 begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich
1752 @code{GregorianTranscriptionStaff}.
1756 Notationreferenz: @ruser{Was sind Kontexte?}.
1759 @node Kontexte erstellen
1760 @subsection Kontexte erstellen
1761 @translationof Creating contexts
1765 @cindex Neue Kontexte
1766 @cindex Erstellen von Kontexten
1767 @cindex Kontexte, Erstellen
1769 In einer Eingabedatei enthält eine @code{Score}-Umgebung (einen
1771 dem Befehl @code{\score} eingeleitet wird, nur einen einzigen
1772 musikalischen Ausdruck und mit ihm verknüpft eine Ausgabedefinition
1773 (entweder eine @code{\layout}- oder eine @code{\midi}-Umgebung).
1774 Üblicherweise wird der @code{Score}-Kontext automatisch von
1775 LilyPond erstellt, wenn der musikalische Ausdruck interpretiert
1778 Wenn nur ein System vorhanden ist, kann man es ruhig
1779 LilyPond überlassen, auch die @code{Voice}- und @code{Staff}-Kontexte
1780 zu erstellen, aber für komplexere Partituren ist es notwendig,
1781 sie mit einem Befehl zu erstellen. Der einfachste Befehl
1782 hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck
1783 vorangestellt, etwa so:
1786 \new @var{Typ} @var{musikalischer Ausdruck}
1790 wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
1791 @code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
1792 beginnt, den @var{muskalischen Ausdruck} innherhalb dieses
1793 Kontexts auszuwerten.
1795 (Beachten Sie, dass man normalerweise keinen @code{\new Score}-Befehl
1796 braucht: der Partitur-(Score)-Kontext der obersten Ebene wird
1797 normalerweise automatisch erstellt, wenn der musikalische Ausdruck
1798 innerhalb der @code{\score}-Umgebung interpretiert wird. Der
1799 einzige Grund, einen @code{Score}-Kontext explizit mit
1800 @code{\new Score} zu erstellen ist es, wenn man eine @code{\with}-Umgebung
1801 beginnen will, in der man eine oder mehrere Partitur-weite
1802 Standardwerte definiert werden. Information über die Benutzung
1803 von @code{\with}-Umgebungen finden sich unter der Unterüberschrift
1804 @qq{Kontexteigenschaften mit @code{\\with} setzen} in
1805 @ref{Kontexteigenschaften verändern}.)
1807 Wir haben schon viele explizite Beispiel gesehen, in denen
1808 neue @code{Staff}- und @code{Voice}-Kontexte erstellt wurden, aber
1809 um noch einmal ins Gedächtnis zu rufen, wie diese Befehle benutzt
1810 werden, hier ein kommentiertes Beispiel aus dem richtigen Leben:
1812 @lilypond[quote,verbatim,ragged-right]
1813 \score { % start of single compound music expression
1814 << % start of simultaneous staves section
1816 \new Staff { % create RH staff
1819 \new Voice { % create voice for RH notes
1820 \relative c'' { % start of RH notes
1826 \new Staff << % create LH staff; needs two simultaneous voices
1829 \new Voice { % create LH voice one
1831 \relative g { % start of LH voice one notes
1832 g8 <bes d> ees, <g c>
1833 g8 <bes d> ees, <g c>
1834 } % end of LH voice one notes
1835 } % end of LH voice one
1836 \new Voice { % create LH voice two
1838 \relative g { % start of LH voice two notes
1841 } % end of LH voice two notes
1842 } % end of LH voice two
1843 >> % end of LH staff
1844 >> % end of simultaneous staves section
1845 } % end of single compound music expression
1848 (Beachten Sie, dass wir hier alle Zeilen, die eine neue
1849 Umgebung entweder mit einer geschweiften Klammer (@code{@{})
1850 oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
1851 jeweils zwei Leerzeichen, und die entsprechenden
1852 schließenden Klammern mit der gleichen Anzahl Leerzeichen
1853 eingerückt werden. Dies ist nicht erforderlich, es wird aber
1854 zu einem großen Teil die nicht passenden Klammerpaar-Fehler
1855 eliminieren und ist darum sehr empfohlen. Es macht es
1856 möglich, die Struktur einer Partitur auf einen Blick zu
1857 verstehen, und alle nicht passenden Klammern
1858 erschließen sich schnell. Beachten Sie auch, dass das
1859 untere Notensystem mit eckigen Klammern erstellt wird,
1860 denn innerhalb dieses Systems brauchen wir zwei Stimmen,
1861 um die Noten darzustellen. Das obere System braucht
1862 nur einen einzigen musikalischen Ausdruck und ist deshalb
1863 von geschweiften Klammern umschlossen.)
1865 @cindex Kontexte, Benennung
1866 @cindex Bennenung von Kontexten
1868 Der @code{\new}-Befehl kann einem Kontext auch einen
1869 Namen zur Identifikation geben, um ihn von anderen Kontexten des
1870 selben Typs zu unterscheiden:
1873 \new @var{Typ} = @var{Name} @var{musikalischer Ausdruck}
1876 Beachten Sie den Unterschied zwischen der Bezeichnung des
1877 Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
1878 Namen, der aus beliebigen Buchstaben bestehen kann
1879 und vom Benutzer frei erfunden werden kann. Zahlen und
1880 Leerzeichen können auch benutzt werden, in dem Fall
1881 muss der Name aber von doppelten Anführungszeichen
1882 umgeben werden, also etwa
1883 @code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
1885 benutzt, um später auf genau diesen spezifischen Kontext
1886 zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
1887 zu Gesangstexten angewandt, siehe @ref{Stimmen und Text}.
1891 Notationsreferenz: @ruser{Kontexte erstellen}.
1894 @node Was sind Engraver?
1895 @subsection Was sind Engraver?
1896 @translationof Engravers explained
1899 @cindex Stempel (Engraver)
1901 Jedes Zeichen des fertigen Notensatzes von LilyPond wird
1902 von einem @code{Engraver} (Stempel) produziert. Es gibt
1903 also einen Engraver, der die Systeme erstellt, einen, der die
1904 Notenköpfe ausgibt, einen für die Hälse, einen für die
1905 Balken usw. Insgesamt gibt es über 120 Engraver! Zum
1906 Glück braucht man für die meisten Partituren nur ein
1907 paar Engraver, und für einfache Partituren muss man eigentlich
1908 überhaupt nichts über sie wissen.
1910 Engraver leben und wirken aus den Kontexten heraus. Engraver
1911 wie der @code{Metronome_mark_engraver}, dessen Aktion
1912 und Ausgabe sich auf die gesamte Partitur bezieht, wirken
1913 in der obersten Kontextebene -- dem @code{Score}-Kontext.
1915 Der @code{Clef_engraver} (Schlüssel-Stempel) und der
1916 @code{Key_engraver} (Vorzeichen-Stempel) finden sich in
1917 jedem @code{Staff}-Kontext, denn unterschiedliche Systeme
1918 könnten unterschiedliche Tonarten und Notenschlüssel
1921 Der @code{Note_heads_engraver} (Notenkopf-Stempel) und der
1922 @code{Stem_engraver} (Hals-Stempel) befinden sich in jedem
1923 @code{Voice}-Kontext, der untersten Kontextebene.
1925 Jeder Engraver bearbeitet die bestimmten Objekte, die mit
1926 seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
1927 dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
1928 die mit Kontexten assoziiert sind, können verändert werden,
1929 um die Wirkungsweise des Engravers oder das Erscheinungsbild
1930 der von ihm produzierten Elemente in der Partitur zu ändern.
1932 Alle Engraver haben zusammengesetzte Bezeichnung, die aus
1933 den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
1934 das erste Wort hat einen Großbuchstaben, und die restlichen
1935 Wörter werden mit einem Unterstrich angefügt. Ein
1936 @code{Staff_symbol_engraver} verantwortet also die Erstellung
1937 der Notenlinien, ein @code{Clef_engraver} entscheidet über die
1938 Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
1939 wird gleichzeitig die Referenztonhöhe auf dem Notensystem festgelegt.
1941 Hier die meistgebräuchlichen Engraver mit ihrer Funktion.
1942 Sie werden sehen, dass es mit etwas Englischkenntnissen
1943 einfach ist, die Funktion eines Engravers von seiner Bezeichnung
1946 @multitable @columnfractions .3 .7
1949 @item Accidental_engraver
1950 @tab Erstellt Versetzungszeichen, vorgeschlagene und Warnversetzungszeichen.
1952 @tab Erstellt Balken.
1954 @tab Erstellt Notenschlüssel.
1955 @item Completion_heads_engraver
1956 @tab Teilt Noten in kleiner Werte, wenn sie über die Taktlinie reichen.
1957 @c The old Dynamic_engraver is deprecated. -jm
1958 @item New_dynamic_engraver
1959 @tab Erstellt Dynamik-Klammern und Dynamik-Texte.
1960 @item Forbid_line_break_engraver
1961 @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist.
1963 @tab Erstellt die Vorzeichen.
1964 @item Metronome_mark_engraver
1965 @tab Erstellt Metronom-Bezeichnungen.
1966 @item Note_heads_engraver
1967 @tab Erstellt Notenköpfe.
1969 @tab Erstellt Pausen.
1970 @item Staff_symbol_engraver
1971 @tab Ersetllt die (standardmäßig) fünf Notenlinien des Systems.
1973 @tab Erstellt die Notenhälse und Tremolos mit einem Hals.
1974 @item Time_signature_engraver
1975 @tab Erstellt die Taktartbezeichnung.
1980 Es soll später gezeigt werden, wie die LilyPond-Ausgabe
1981 verändert werden kann, indem die Wirkungsweise der
1982 Engraver beeinflusst wird.
1986 Referenz der Interna: @rinternals{Engravers and Performers}.
1989 @node Kontexteigenschaften verändern
1990 @subsection Kontexteigenschaften verändern
1991 @translationof Modifying context properties
1993 @cindex Kontext-Eigenschaften, Verändern
1994 @cindex Eigenschaften von Kontexten
1995 @cindex Verändern von Kontext-Eigenschaften
2001 Kontexte sind dafür verantwortlich, die Werte bestimmter
2002 Kontext-@emph{Eigenschaften} zu speichern. Viele davon
2003 können verändert werden, um die Interpretation der
2004 Eingabe zu beeinflussen und die Ausgabe zu verändern.
2005 Kontexte werden mit dem @code{\set}-Befehl geändert.
2009 \set @var{KontextBezeichnung}.@var{eigenschaftsBezeichnung} = #@var{Wert}
2013 verwendet, wobei @var{KontextBezeichnung} üblicherweise
2015 @code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
2016 ausgelassen werden; in diesem Fall wird der aktuelle
2017 Kontext (üblicherweise @code{Voice}) eingesetzt.
2019 Die Bezeichnung von Kontexten-Eigenschaften besteht
2020 aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
2021 verbunden sind. Alle außer dem ersten werden am Anfang
2022 groß geschrieben. Hier einige Beispiele der gebräuchlichsten
2023 Kontext-Eigenschaften. Es gibt sehr viel mehr.
2025 @c attempt to force this onto a new page
2027 @multitable @columnfractions .25 .15 .45 .15
2028 @headitem eigenschaftsBezeichnung
2033 @tab boolescher Wert
2034 @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt.
2035 @tab @code{#t}, @code{#f}
2036 @item currentBarNumber
2038 @tab Setzt die aktuelle Taktnummer.
2041 @tab boolescher Wert
2042 @tab Wenn wahr, werden Legatobögen über und unter die Noten gesetzt.
2043 @tab @code{#t}, @code{#f}
2044 @item instrumentName
2046 @tab Setzt die Instrumentenbezeichnung am Anfang eines Systems.
2047 @tab @code{"Cello I"}
2050 @tab Vergrößert oder verkleinert die Schriftgröße.
2054 @tab Setzt den Text zu Beginn einer Strophe.
2059 Ein boolischer Wert ist entweder wahr (@code{#t})
2060 oder falsch (@code{#f}),
2061 ein Integer eine positive ganze Zahl, eine reale Zahl eine positive
2062 oder negative Dezimalzahl, und Text wird in doppelte
2063 Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
2064 das Vorkommen des Rautenzeichens
2065 (@code{#}) an unterschiedlichen Stellen: als Teil eines
2066 booleschen Wertes vor dem @code{t} oder @code{f}, aber
2067 auch vor einem @emph{Wert} in der
2068 @code{\set}-Befehlskette. Wenn ein boolescher Wert
2069 eingegeben werden soll, braucht man also zwei
2070 Rautenzeichen, z. B. @code{##t}.
2072 @cindex Eigenschaften in Kontexten
2073 @cindex Veränderung von Eigenschaften in Kontexten
2075 Bevor eine Eigenschaft geändert werden kann, muss man wissen,
2076 in welchem Kontext sie sich befindet. Manchmal versteht das
2077 sich von selbst, aber in einigen Fällen kann es zunächst
2078 unverständlich erscheinen. Wenn der falsche Kontext angegeben
2079 wird, wird keine Fehlermeldung produziert, aber die
2080 Veränderung wird einfach nicht ausgeführt.
2081 @code{instrumentName} befindet sich offensichtlich innerhalb
2082 von einem @code{Staff}-Kontext, denn das Notensystem soll
2083 benannt werden. In dem folgenden Beispiel erhält das erste
2084 System korrekt die Instrumentenbezeichnung, das zweite aber
2085 nicht, weil der Kontext ausgelassen wurde.
2087 @lilypond[quote,verbatim,ragged-right]
2089 \new Staff \relative c'' {
2090 \set Staff.instrumentName = #"Soprano"
2093 \new Staff \relative c' {
2094 \set instrumentName = #"Alto" % Wrong!
2100 Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
2101 zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
2102 im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
2103 Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
2104 gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
2107 Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
2108 falsch geschrieben wird und die Änderung also nicht ausgeführt werden
2109 kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
2110 mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
2111 wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
2112 zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
2113 die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
2114 Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
2115 fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
2116 unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
2117 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
2118 Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
2119 @rinternals{Tunable context properties}, oder
2120 @rinternals{Contexts}.
2122 Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
2123 ineinem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
2124 können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
2125 @code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen
2126 setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
2127 Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch)
2128 gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
2129 sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
2130 auf alle darin enthaltenen Systeme aus.
2132 Das also bewirkt, dass die zusätzlichen Erniedrigungszeichen in einem System
2135 @lilypond[quote,verbatim,ragged-right]
2137 \new Staff \relative c'' {
2140 \new Staff \relative c'' {
2141 \set Staff.extraNatural = ##f
2148 während das dazu dient, sie in allen Systemen auszuschalten:
2150 @lilypond[quote,verbatim,ragged-right]
2152 \new Staff \relative c'' {
2155 \new Staff \relative c'' {
2156 \set Score.extraNatural = ##f
2162 Ein anderes Beispiel ist die Eigenschaft @code{clefOctavation}:
2163 wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort
2164 der Wert der Oktavierung in allen aktuellen Systemen und wird
2165 auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt.
2167 Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft
2168 effektiv wieder von dem Kontext: in den meisten Fällen wird der
2169 Kontext auf ihre Standardeinstellungen zurückgesetzt.
2170 Normalerweise wird aber @code{\unset} nicht benötigt,
2171 denn ein neues @code{\set} erledigt alles, was man braucht.
2173 Die @code{\set}- und @code{\unset}-Befehle könne überall im
2174 Eingabequelltext erscheinen und werden aktiv von dem Moment, an
2175 dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
2176 mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
2177 wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
2178 auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
2179 nicht vom letzten gesetzten Wert.
2181 @lilypond[quote,verbatim,ragged-right,relative=1,fragment]
2183 % make note heads smaller
2186 % make note heads larger
2187 \set fontSize = #2.5
2189 % return to default size
2194 Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
2195 Eigenschaften ändern lassen. Beachten Sie, dass Integre und
2196 Zahlen immer mit einem Rautenzeichen beginnen, während
2197 die Werte wahr und falsch (mit @code{##t} und @code{##f}
2198 notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
2199 aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
2200 auch wenn wir später sehen werden, dass Text auf eine sehr viel
2201 allgmeinere und mächtigere Art mit dem @code{\markup}-Befehl
2202 eingegeben werden kann.
2204 @subsubheading Kontexteigenschaften mit @code{\with} setzen
2208 @cindex Kontexteigenschaft, setzen mit \with
2210 Die Standardwerte von Kontexteigenschaften können zu dem Zeitpunkt
2211 definiert werden, an welchem der Kontext erstellt wird. Manchmal
2212 ist das eine saubere Weise, eine Eigenschaft zu bestimmen, die für
2213 die gesamte Partitur erhalten bleichen soll. Wenn ein Kontext mit
2214 einem @code{\new}-Befehl erstellt wird, können in einer
2215 direkt folgenden @code{\with @{ .. @}}-Umgebung die Eigenschaften
2216 bestimmt werden. Wenn also die zusätzlichen
2217 Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
2221 \new Staff \with @{ extraNatural = ##f @}
2227 @lilypond[quote,verbatim,ragged-right]
2233 \new Staff \with { extraNatural = ##f }
2240 Oder, wenn das @code{\override} für die Eigenschaft auf alle
2241 Notensysteme innerhalt der Partitur gelten soll, kann es auch
2242 direkt an ein @code{\new Score} gehängt werden, wie etwa hier:
2244 @lilypond[quote,verbatim,ragged-right]
2246 \new Score \with { extraNatural = ##f } <<
2261 Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
2262 dynamisch mit dem @code{\set}-Befehl geändert werden und mit
2263 @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden,
2264 wie sie vorher in der @code{\with}-Umgebung definiert wurden.
2266 @cindex Schriftgröße, Standardeinstellung
2267 @cindex fontSize (Schriftgröße), Standardeinstellung
2269 Wenn also die @code{fontSize}-Eigenschaft in einer @code{\with}-Umgebung
2270 definiert wird, wird der Standardwert für die Schriftgröße
2271 festgelegt. Wenn dieser Wert später mit @code{\set} verändert
2272 wird, kann dieser neue Standardwert mit dem Befehl
2273 @code{\unset fontSize} wieder erreicht werden.
2275 @subsubheading Kontexteigenschaften mit @code{\context} setzen
2277 @cindex Kontexteigenschaften, mit \context setzen
2278 @cindex Eigenschaften von Kontexten, mit \context setzen
2282 Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
2283 eines bestimmten Typs (etwa alle @code{Staff}-Kontexte)
2284 gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
2285 spezifieziert, indem seine Bezeichnung benutzt wird, also etwa
2286 @code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
2287 für die Eigenschaft ist der gleiche, wie er auch in der
2288 @code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
2289 eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
2290 von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
2291 wirkt sich auf alle Kontexte dieses Types aus, welche sich in der
2292 aktuellen Partitur befinden (d. h. innherhalb einer @code{\score}-
2293 oder @code{\book}-Umgebung. Hier ist ein Beispiel, wie man diese
2296 @lilypond[verbatim,quote]
2313 Kontext-Eigenschaften, die auf diese Weise gestzt werden, können für
2314 bestimmten Kontexte überschrieben werden, indem die
2315 @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
2316 innerhalb der aktuellen Noten.
2321 @ruser{Die Standardeinstellungen von Kontexten ändern},
2322 @ruser{Der set-Befehl}.
2324 Referenz der Interna:
2325 @rinternals{Contexts},
2326 @rinternals{Tunable context properties}.
2329 @node Engraver hinzufügen und entfernen
2330 @subsection Engraver hinzufügen und entfernen
2331 @translationof Adding and removing engravers
2333 @cindex Engraver, Hinzufügen von
2334 @cindex Engraver, Entfernen von
2335 @cindex Hinzufügen von Engravern
2336 @cindex Entfernen von Engravern
2343 Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
2344 (Stempeln) beinhaltet, von denen ein jeder einen bestimmten
2345 Teil des fertigen Notensatzes produziert, wie z. B. Taktlinien,
2346 Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
2347 einem Kontext entfernt wird, kann er seine Objekte nicht
2348 länger produzieren. Das ist eine eher grobe Methode, die
2349 Notenausgabe zu beeinflussen, aber es kann von großem
2353 @subsubheading Einen einzelnen Kontext verändern
2355 Um einen Engraver von einem einzelnen Kontext zu entfernen,
2356 wir der @code{\with}-Befehl eingesetzt, direkt hinter
2357 den Befehl zur Kontext-Erstellung geschrieben, wie
2358 in dem vorigen Abschnitt gezeigt.
2360 Als ein Beispiel wollen wir das Beispiel aus dem letzten
2361 Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
2362 Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
2365 @lilypond[quote,verbatim,ragged-right]
2367 \remove Staff_symbol_engraver
2371 \set fontSize = #-4 % make note heads smaller
2373 \set fontSize = #2.5 % make note heads larger
2375 \unset fontSize % return to default size
2380 @cindex Ambitus-Engraver
2382 Engraver können auch zu einem bestimmten
2383 Kontext hinzugefügt werden. Dies geschieht
2386 @code{\consists @var{Engraver_bezeichnung}}
2389 welcher auch wieder innerhalb der @code{\with}-Umgebung
2390 gesetzt wird. Einige Chorpartituren zeigen einen
2391 Ambitus direkt zu Beginn der ersten Notenzeile, um
2392 den Stimmumfang des Stückes anzuzeigen, siehe auch
2393 @rglos{ambitus}. Der Ambitus wird vom
2394 @code{Ambitus_engraver} erstellt, der normalerweise
2395 in keinem Kontext enthalten ist. Wenn wir
2396 ihn zum @code{Voice}-Kontext hinzufügen, errechnet
2397 er automatisch den Stimmumfang für diese einzelne Stimme
2400 @lilypond[quote,verbatim,ragged-right]
2403 \consists Ambitus_engraver
2418 wenn wir den Ambitus-Engraver allerdings zum
2419 @code{Staff}-Kontext hinzufügen, wird der Stimmumfang aller
2420 Stimmen in diesem Notensystem errechnet:
2422 @lilypond[quote,verbatim,ragged-right]
2424 \consists Ambitus_engraver
2441 @subsubheading Alle Kontexte des gleichen Typs verändern
2445 Die vorigen Beispiele zeigen, wie man Engraver in einem
2446 bestimmten Kontext hinzufügen oder entfernen kann. Es ist
2447 auch möglich, Engraver in jedem Kontext eines bestimmten
2448 Typs hinzuzufügen oder zu entfernen. Dazu werden die
2449 Befehle in dem entsprechenden Kontext in einer
2450 @code{\layout}-Umgebung gesetzt. Wenn wir also z. B.
2451 den Ambitus für jedes Notensystem in einer Partitur
2452 mit vier Systemen anzeigen wollen, könnte das so aussehen:
2454 @lilypond[quote,verbatim,ragged-right]
2483 \consists Ambitus_engraver
2490 Die Werte der Kontext-Eigenschaften können auch für
2491 alle Kontexte eines bestimmten Typs auf die gleiche
2492 Weise geändert werden, indem der @code{\set}-Befehl in
2493 einer @code{\context}-Umgebung angewendet wird.
2497 Notationsreferenz: @ruser{Umgebungs-Plugins verändern},
2498 @ruser{Die Standardeinstellungen von Kontexten ändern}.
2501 @node Erweiterung der Beispiele
2502 @section Erweiterung der Beispiele
2503 @translationof Extending the templates
2505 Sie haben sich durch die Übung gearbeitet, Sie
2506 wissen jetzt, wie Sie Notensatz produzieren, und Sie
2507 haben die grundlegenden Konzepte verstanden. Aber wie
2508 erhalten Sie genau die Systeme, die Sie brauchen? Es
2509 gibt eine ganze Anzahl an fertigen Vorlagen
2510 (siehe @ref{Vorlagen}), mit denen Sie beginnen
2511 können. Aber was, wenn Sie nicht genau das finden,
2512 was Sie brauchen? Lesen Sie weiter.
2515 * Sopran und Cello::
2516 * Vierstimmige SATB-Partitur::
2517 * Eine Partitur von Grund auf erstellen::
2518 * Tipparbeit durch Variablen und Funktionen ersparen::
2519 * Partitur und Stimmen::
2523 @node Sopran und Cello
2524 @subsection Sopran und Cello
2525 @translationof Soprano and cello
2527 @cindex Template, Verändern von
2528 @cindex Vorlage, Verändern von
2529 @cindex Veränderung von Vorlagen
2531 Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
2532 am nächsten kommt. Nehmen wir einmal an, Sie wollen
2533 ein Stück für Sopran und Cello schreiben. In diesem
2534 Fall könnten Sie mit der Vorlage @qq{Noten und Text}
2535 (für die Sopran-Stimme) beginnen.
2538 \version @w{"@version{}"}
2539 melody = \relative c' @{
2546 text = \lyricmode @{
2552 \new Voice = "one" @{
2556 \new Lyrics \lyricsto "one" \text
2563 Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
2564 Beispiel @qq{Nur Noten} an:
2567 \version @w{"@version{}"}
2568 melody = \relative c' @{
2582 Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
2583 brauchen aber den @code{melody}-Abschnitt. Wir wollen
2584 keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
2585 @code{\score}-Abschnitten würden wir zwei Stimmen
2586 getrennt voneinander erhalten. In diesem Fall wollen wir
2587 sie aber zusammen, als Duett. Schließlich brauchen wir
2588 innerhalb des @code{\score}-Abschnittes nur einmal die
2589 Befehle @code{\layout} und @code{\midi}.
2591 Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in
2592 unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
2593 Das würde zu keinem Fehler führen, aber die zweite von ihnen
2594 würde für beide Melodien eingesetzt werden. Wir müssen
2595 ihnen also andere Bezeichnungen zuweisen, um sie voneinander
2596 zu unterscheiden. Nennen wir die Abschnitte also @code{SopranNoten}
2597 für den Sopran und @code{CelloNoten} für die Cellostimme. Wenn
2598 wir schon dabei sind, können wir @code{text}auch nach
2599 @code{SoprText} umbenennen. Denken Sie daran, beide
2600 Vorkommen der Bezeichnung zu ändern: einmal die Definition
2601 gleich am Anfang (@code{melody = \relative c' @{ }) und
2602 dann auch noch die Benutzung der Variable innerhalb des
2603 @code{\score}-Abschnittes.
2605 Gleichzeitig können wir auch noch das Notensystem für das
2606 Cello ändern -- das Cello hat normalerweise einen Bassschlüssel.
2607 Wir ändern auch die Noten etwas ab.
2610 \version @w{"@version{}"}
2611 SopranNoten = \relative c' @{
2618 SoprText = \lyricmode @{
2622 CelloNoten = \relative c @{
2631 \new Voice = "eins" @{
2635 \new Lyrics \lyricsto "eins" \Soprantext
2642 Das sieht schon vielversprechend aus, aber die Cello-Stimme
2643 erscheint noch nicht im Notensatz -- wir haben vergessen,
2644 sie in den @code{\score}-Abschnitt einzufügen. Wenn die
2645 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
2649 \new Staff \CelloNoten
2653 unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
2654 die spitzen Klammern (@code{<<} und @code{>>}) um die
2655 Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
2656 ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
2657 zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
2660 @c Indentation in this example is deliberately poor
2665 \new Voice = "eins" @{
2669 \new Lyrics \lyricsto "eins" \SoprText
2671 \new Staff \CelloNoten
2679 Das sieht etwas unschön aus, vor allem die Einrückung stimmt
2680 nicht mehr. Das können wir aber schnell in Ordnung bringen.
2681 Hier also die gesamte Vorlage für Sopran und Cello:
2683 @lilypond[quote,verbatim,ragged-right,addversion]
2684 sopranoMusic = \relative c' {
2691 sopranoLyrics = \lyricmode {
2695 celloMusic = \relative c {
2705 \new Voice = "one" {
2709 \new Lyrics \lyricsto "one" \sopranoLyrics
2711 \new Staff \celloMusic
2720 Die Vorlagen, mit denen wir begonnen haben, können im
2721 Anhang @qq{Vorlagen} gefunden werden, siehe
2722 @ref{Ein einzelnes System}.
2725 @node Vierstimmige SATB-Partitur
2726 @subsection Vierstimmige SATB-Partitur
2727 @translationof Four-part SATB vocal score
2729 @cindex Vorlage, SATB
2730 @cindex Vorlage, Chorpartitur
2731 @cindex SATB-Vorlage
2732 @cindex Chorpartitur, Vorlage
2734 Die meisten Partituren für vierstimmigen gemischten Chor
2735 mit Orchesterbegleitung (wie etwa Mendelssohns @notation{Elias}
2736 oder Händels @notation{Messias}) sind so aufgebaut, dass
2737 für jede der vier Stimmen ein eigenes System besteht und
2738 die Orchesterbegleitung dann als Klavierauszug darunter
2739 notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
2741 @c The following should appear as music without code
2742 @lilypond[quote,ragged-right]
2743 global = { \key d \major \time 4/4 }
2744 sopranoMusic = \relative c'' {
2746 r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2748 sopranoWords = \lyricmode {
2749 Wor -- thy is the lamb that was slain
2751 altoMusic = \relative a' {
2753 r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
2755 altoWords = \sopranoWords
2756 tenorMusic = \relative c' {
2758 r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2760 tenorWords = \sopranoWords
2761 bassMusic = \relative c' {
2763 r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2765 bassWords = \sopranoWords
2766 upper = \relative a' {
2769 r4 <a d fis>2 <a e' a>4
2770 <d fis d'>4. <d fis d'>8 <a d a'>2
2771 <g cis g'>4 <a d fis> <a cis e>2
2773 lower = \relative c, {
2776 <d d'>4 <d d'>2 <cis cis'>4
2777 <b b'>4. <b' b'>8 <fis fis'>2
2778 <e e'>4 <d d'> <a' a'>2
2782 << % combine ChoirStaff and PianoStaff in parallel
2784 \new Staff = "sopranos" <<
2785 \set Staff.instrumentName = #"Soprano"
2786 \new Voice = "sopranos" {
2791 \new Lyrics \lyricsto "sopranos" {
2794 \new Staff = "altos" <<
2795 \set Staff.instrumentName = #"Alto"
2796 \new Voice = "altos" {
2801 \new Lyrics \lyricsto "altos" {
2804 \new Staff = "tenors" <<
2805 \set Staff.instrumentName = #"Tenor"
2806 \new Voice = "tenors" {
2811 \new Lyrics \lyricsto "tenors" {
2814 \new Staff = "basses" <<
2815 \set Staff.instrumentName = #"Bass"
2816 \new Voice = "basses" {
2821 \new Lyrics \lyricsto "basses" {
2827 \set PianoStaff.instrumentName = #"Piano"
2828 \new Staff = "upper" \upper
2829 \new Staff = "lower" \lower
2835 Keine der Vorlage bietet diesen Aufbau direkt an. Die Vorlage, die
2836 am nächsten daran liegt, ist @qq{SATB-Partitur und automatischer
2837 Klavierauszug}, siehe @ref{Vokalensemble}. Wir müssen diese
2838 Vorlage aber so anpassen, dass die Noten für das Klavier nicht
2839 automatisch aus dem Chorsatz generiert werden. Die Variablen
2840 für die Noten und den Text des Chores sind in Ordnung, wir
2841 müssen nun noch Variablen für die Klaviernoten hinzufügen.
2843 Die Reihenfolge, in welcher die Variablen in das Chorsystem
2844 (@code{ChoirStaff}) eingefügt werden, entspricht nicht der
2845 in dem Beispiel oben. Wir wollen sie so sortieren, dass die
2846 Texte jeder Stimme direkt unter den Noten notiert werden.
2847 Alle Stimmen sollten als @code{\voiceOne} notiert werden,
2848 welches die Standardeinstellung ist; wir können also die
2849 @code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
2850 den Schlüssel für den Tenor ändern. Die Methode, mit der
2851 der Text den Stimmen zugewiesen wird, ist uns noch nicht
2852 bekannt, darum wollen wir sie umändern auf die Weise, die
2853 wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
2854 zu den Systemen hinzu.
2856 Damit erhalten wir folgenden @code{ChoirStaff}:
2860 \new Staff = "sopranos" <<
2861 \set Staff.instrumentName = #"Sopran"
2862 \new Voice = "sopranos" @{
2867 \new Lyrics \lyricsto "sopranos" @{
2870 \new Staff = "altos" <<
2871 \set Staff.instrumentName = #"Alt"
2872 \new Voice = "altos" @{
2877 \new Lyrics \lyricsto "altos" @{
2880 \new Staff = "tenors" <<
2881 \set Staff.instrumentName = #"Tenor"
2882 \new Voice = "tenors" @{
2887 \new Lyrics \lyricsto "tenors" @{
2890 \new Staff = "basses" <<
2891 \set Staff.instrumentName = #"Bass"
2892 \new Voice = "basses" @{
2897 \new Lyrics \lyricsto "basses" @{
2900 >> % Ende ChoirStaff
2903 Als nächstes müssen wir das Klaviersystem bearbeiten.
2904 Das ist einfach: wir nehmen einfach den Klavierteil
2905 aus der @qq{Piano solo}-Vorlage:
2909 \set PianoStaff.instrumentName = #"Piano "
2910 \new Staff = "oben" \oben
2911 \new Staff = "unten" \unten
2916 und fügen die Variablen @code{oben}
2917 und @code{unten} hinzu.
2919 Das Chorsystem und das Pianosystem müssen mit
2920 spitzen Klammern kombiniert werden, damit beide
2921 übereinandern erscheinen:
2924 << % ChoirStaff und PianoStaff parallel kombinieren
2926 \new Staff = "sopranos" <<
2927 \new Voice = "sopranos" @{
2932 \new Lyrics \lyricsto "sopranos" @{
2935 \new Staff = "altos" <<
2936 \new Voice = "altos" @{
2941 \new Lyrics \lyricsto "altos" @{
2944 \new Staff = "tenors" <<
2945 \clef "G_8" % tenor clef
2946 \new Voice = "tenors" @{
2951 \new Lyrics \lyricsto "tenors" @{
2954 \new Staff = "basses" <<
2956 \new Voice = "basses" @{
2961 \new Lyrics \lyricsto "basses" @{
2967 \set PianoStaff.instrumentName = #"Piano"
2968 \new Staff = "upper" \upper
2969 \new Staff = "lower" \lower
2974 Alles miteinander kombiniert und mit den Noten für drei
2975 Takte sieht unser Beispiel nun so aus:
2977 @lilypond[quote,verbatim,ragged-right,addversion]
2982 sopranoMusic = \relative c'' {
2984 r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2986 sopranoWords = \lyricmode {
2987 Wor -- thy is the lamb that was slain
2989 altoMusic = \relative a' {
2991 r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2993 altoWords = \sopranoWords
2994 tenorMusic = \relative c' {
2996 r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2998 tenorWords = \sopranoWords
2999 bassMusic = \relative c' {
3001 r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
3003 bassWords = \sopranoWords
3004 upper = \relative a' {
3007 r4 <a d fis>2 <a e' a>4
3008 <d fis d'>4. <d fis d'>8 <a d a'>2
3009 <g cis g'>4 <a d fis> <a cis e>2
3011 lower = \relative c, {
3014 <d d'>4 <d d'>2 <cis cis'>4
3015 <b b'>4. <b' b'>8 <fis fis'>2
3016 <e e'>4 <d d'> <a' a'>2
3020 << % combine ChoirStaff and PianoStaff in parallel
3022 \new Staff = "sopranos" <<
3023 \set Staff.instrumentName = #"Soprano"
3024 \new Voice = "sopranos" {
3029 \new Lyrics \lyricsto "sopranos" {
3032 \new Staff = "altos" <<
3033 \set Staff.instrumentName = #"Alto"
3034 \new Voice = "altos" {
3039 \new Lyrics \lyricsto "altos" {
3042 \new Staff = "tenors" <<
3043 \set Staff.instrumentName = #"Tenor"
3044 \new Voice = "tenors" {
3049 \new Lyrics \lyricsto "tenors" {
3052 \new Staff = "basses" <<
3053 \set Staff.instrumentName = #"Bass"
3054 \new Voice = "basses" {
3059 \new Lyrics \lyricsto "basses" {
3065 \set PianoStaff.instrumentName = #"Piano "
3066 \new Staff = "upper" \upper
3067 \new Staff = "lower" \lower
3074 @node Eine Partitur von Grund auf erstellen
3075 @subsection Eine Partitur von Grund auf erstellen
3076 @translationof Building a score from scratch
3078 @cindex Template, eigene schreiben
3079 @cindex Vorlagen, eigene schreiben
3080 @cindex eigene Vorlagen erstellen
3081 @cindex Erstellen von eigenen Vorlagen
3082 @cindex Schreiben von eigenen Vorlagen
3084 Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
3085 gewonnen haben, werden Sie vielleicht feststellen, dass es
3086 manchmal einfacher ist, von Grund auf anzufangen, anstatt
3087 die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
3088 auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
3089 die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
3090 wie man die Partitur für ein Orgelpreludium von Grund auf
3093 Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt.
3094 Hier notieren wir den Titel, den Namen des Komponisten usw.
3095 Danach schreiben wir die einzelnen Variablen auf und
3096 schließlich am Ende die eigentliche Partitur, den
3097 @code{\score}-Abschnitt. Beginnen wir mit einer groben
3098 Struktur, in die wir dann die Einzelheiten nach und nach
3101 Als Beispiel benutzen wir zwei Takte aus dem Orgelpreludium
3102 @notation{Jesu, meine Freude} von J. S. Bach, notiert
3103 für zwei Manuale und Pedal. Sie können die Noten am Ende
3104 dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
3105 das untere und das Pedalsystem jeweils nur eine. Wir
3106 brauchen also vier Variablen für die Noten und eine, um
3107 Taktart und Tonart zu definieren.
3110 \version @w{"@version{}"}
3112 title = "Jesu, meine Freude"
3113 composer = "J. S. Bach"
3119 ManualOneVoiceOneMusic = @{ s1 @}
3120 ManualOneVoiceTwoMusic = @{ s1 @}
3121 ManualTwoMusic = @{ s1 @}
3122 PedalOrganMusic = @{ s1 @}
3128 Im Moment haben wir eine unsichtbare
3129 Note in jede Stimme eingesetzt (@code{s1}).
3130 Die Noten werden später hinzugefügt.
3132 Als nächstes schauen wir uns an, was in die
3133 Partitur (die @code{\score}-Umgebung)
3134 kommt. Dazu wird einfach die Notensystemstruktur
3135 konstruiert, die wir benötigen. Orgelmusik
3136 wird meistens auf drei Systemen notiert, eins
3137 für jedes Manual und ein drittes für die Pedalnoten.
3138 Die Systeme für die Manuale werden mit einer
3139 geschweiften Klammer verbunden, wir
3140 benutzen hier also ein @code{PianoStaff}.
3141 Das erste Manualsystem braucht zwei Stimmen,
3142 das zweite nur eine.
3146 \new Staff = "ManualOne" <<
3148 \ManualOneVoiceOneMusic
3151 \ManualOneVoiceTwoMusic
3153 >> % end ManualOne Staff context
3154 \new Staff = "ManualTwo" <<
3158 >> % end ManualTwo Staff context
3159 >> % end PianoStaff context
3162 Als nächstes soll das System für das Pedal hinzugefügt
3163 werden. Es soll unter das Klaviersystem gesetzt
3164 werden, aber muss gleichzeitig mit ihm erscheinen.
3165 Wir brauchen also spitze Klammern um beide
3166 Definitionen. Sie wegzulassen würde eine Fehlermeldung
3167 in der Log-Datei hervorrufen. Das ist ein sehr
3168 häufiger Fehler, der wohl auch Ihnen früher
3169 oder später unterläuft. Sie können das fertige
3170 Beispiel am Ende des Abschnittes kopieren und die
3171 Klammern entfernen, um zu sehen, wie die
3172 Fehlermeldung aussehen kann, die Sie in solch
3173 einem Fall erhalten würden.
3176 << % PianoStaff and Pedal Staff must be simultaneous
3178 \new Staff = "ManualOne" <<
3180 \ManualOneVoiceOneMusic
3183 \ManualOneVoiceTwoMusic
3185 >> % end ManualOne Staff context
3186 \new Staff = "ManualTwo" <<
3190 >> % end ManualTwo Staff context
3191 >> % end PianoStaff context
3192 \new Staff = "PedalOrgan" <<
3200 Es ist nicht notwendig, die simultane Konstruktion
3201 @code{<< .. >>} innerhalb des zweiten Manualsystems
3202 und des Pedalsystems zu benutzen, denn sie enthalten
3203 nur eine Stimme. Andererseits schadet es nichts, sie
3204 zu schreiben, und es ist eine gute Angewohnheit, immer
3205 die spitzen Klammern nach einem @code{\new Staff} zu
3206 schreiben, wenn mehr als eine Stimme vorkommen könnten.
3207 Für Stimmen (@code{Voice}) dagegengilt genau das
3208 Gegenteil: eine neue Stimme sollte immer von
3209 geschweiften Klammern (@code{@{ .. @}}) gefolgt
3210 werden, falls Sie ihre Noten in mehrere Variable aufteilen,
3211 die nacheinander gesetzt werden sollen.
3213 Fügen wir also diese Struktur zu der @code{\score}-Umgebung
3214 hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
3215 wollen wir die richtigen Schlüssel setzen und die Richtung der
3216 Hälse und Bögen in den Stimmen des oberen Systems
3217 kontrollieren, indem die obere Stimme ein
3218 @code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
3219 erhält. Die Taktart und Tonart werden mit unserer fertigen
3220 Variable @code{\TimeKey} eingefügt.
3224 << % PianoStaff and Pedal Staff must be simultaneous
3226 \new Staff = "ManualOne" <<
3227 \TimeKey % set time signature and key
3231 \ManualOneVoiceOneMusic
3235 \ManualOneVoiceTwoMusic
3237 >> % end ManualOne Staff context
3238 \new Staff = "ManualTwo" <<
3244 >> % end ManualTwo Staff context
3245 >> % end PianoStaff context
3246 \new Staff = "PedalOrgan" <<
3252 >> % end PedalOrgan Staff
3254 @} % end Score context
3257 Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
3258 Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
3259 in einem System sich ändern kann. Jetzt müssen wir nur noch
3260 die Noten einfügen und alle Teile zusammenfügen, indem wir
3261 die Variablen mit einem Backslash in die Partitur einbauen.
3263 @lilypond[quote,verbatim,ragged-right,addversion]
3265 title = "Jesu, meine Freude"
3266 composer = "J S Bach"
3272 ManualOneVoiceOneMusic = \relative g' {
3276 ManualOneVoiceTwoMusic = \relative c' {
3277 ees16 d ees8~ ees16 f ees d c8 d~ d c~
3278 c c4 b8 c8. g16 c b c d
3280 ManualTwoMusic = \relative c' {
3281 c16 b c8~ c16 b c g a8 g~ g16 g aes ees
3282 f ees f d g aes g f ees d e8~ ees16 f ees d
3284 PedalOrganMusic = \relative c {
3285 r8 c16 d ees d ees8~ ees16 a, b g c b c8
3286 r16 g ees f g f g8 c,2
3290 << % PianoStaff and Pedal Staff must be simultaneous
3292 \new Staff = "ManualOne" <<
3293 \TimeKey % set time signature and key
3297 \ManualOneVoiceOneMusic
3301 \ManualOneVoiceTwoMusic
3303 >> % end ManualOne Staff context
3304 \new Staff = "ManualTwo" <<
3310 >> % end ManualTwo Staff context
3311 >> % end PianoStaff context
3312 \new Staff = "PedalOrgan" <<
3318 >> % end PedalOrgan Staff context
3320 } % end Score context
3324 @node Tipparbeit durch Variablen und Funktionen ersparen
3325 @subsection Tipparbeit durch Variablen und Funktionen ersparen
3326 @translationof Saving typing with variables and functions
3330 Bis jetzt wurde immer derartige Notation vorgestellt:
3332 @lilypond[quote,verbatim,ragged-right]
3333 hornNotes = \relative c'' { c4 b dis c }
3341 Sie können sich vorstellen, dass das etwa für minimalistische
3342 Musik sehr nützlich sein könnte:
3344 @lilypond[quote,verbatim,ragged-right]
3345 fragmentA = \relative c'' { a4 a8. b16 }
3346 fragmentB = \relative c'' { a8. gis16 ees4 }
3347 violin = \new Staff {
3360 Diese Variablen (die man auch als Makros oder Benutzer-Befehl
3361 bezeichnet) können jedoch auch für eigene Anpassungen eingesetzt
3364 @c TODO Avoid padtext - not needed with skylining
3365 @lilypond[quote,verbatim,ragged-right]
3366 dolce = \markup { \italic \bold dolce }
3367 padText = { \once \override TextScript #'padding = #5.0 }
3368 fthenp=_\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p }
3369 violin = \relative c'' {
3371 c4._\dolce b8 a8 g a b
3373 c4.^"hi there!" d8 e' f g d
3374 c,4.\fthenp b8 c4 c-.
3381 \layout{ragged-right=##t}
3385 Derartige Variablen sind offensichtlich sehr nützlich, zu Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu
3386 benutzen, wenn man sie nur einmal benutzen will, denn sie
3387 vereinfachen die Struktur einer Datei sehr stark. Hier das
3388 vorige Beispiel ohne jede Benutzung von Variablen. Es ist
3389 sehr viel schwerer lesbar, besonders die letzte Zeile.
3392 violin = \relative c'' @{
3394 c4._\markup @{ \italic \bold dolce @} b8 a8 g a b
3395 \once \override TextScript #'padding = #5.0
3396 c4.^"hi there!" d8 e' f g d
3397 c,4.\markup @{ \dynamic f \italic \small @{ 2nd @}
3398 \hspace #0.1 \dynamic p @} b8 c4 c-.
3403 @c TODO Replace the following with a better example -td
3404 @c Skylining handles this correctly without padText
3406 Bisher haben wir vor allem statische Ersetzungen betrachtet:
3407 wenn LilyPond etwa @code{\padText} sieht, wird es ersetzt mit
3408 all dem Code, mit dem wir es definiert haben (also alles,
3409 was sich rechts von @code{padtext=} befindet).
3411 LilyPond kann auch nicht-statische Ersetzungen bewältigen. Man
3412 kann sie sich als Funktionen vorstellen.
3414 @lilypond[quote,verbatim,ragged-right]
3416 #(define-music-function (parser location padding) (number?)
3418 \once \override TextScript #'padding = #$padding
3422 c4^"piu mosso" b a b
3424 c4^"piu mosso" d e f
3426 c4^"piu mosso" fis a g
3430 Die Benutzung von Variablen ist auch eine gute Möglichkeit,
3431 Arbeit zu vermeiden, wenn sich einmal die Syntax von LilyPond
3432 ändern sollte (siehe auch @rprogram{Updating old input files
3434 Wenn man eine einzige Definition hat (wie etwa @code{\dolce}),
3435 die für alle Vorkommen in der Notation eingesetzt wird, muss
3436 man auch nur einmal diese Definition aktualisieren, anstatt
3437 dass man sie in jeder @code{.ly}-Datei einzeln ändern müsste.
3440 @node Partitur und Stimmen
3441 @subsection Partitur und Stimmen
3442 @translationof Scores and parts
3444 In Orchestermusik werden alle Noten zweimal gedruckt. Einmal
3445 in einer Stimme für die Spieler, und einmal ein der Partitur
3446 für den Dirigenten. Variablen können benutzen, um sich doppelte
3447 Arbeit zu ersparen. Die Noten werden nur einmal eingegeben und
3448 in einer Variable abgelegt. Der Inhalt der Variable wird dann
3449 benutzt um sowohl die Stimme als auch die Paritur zu erstellen.
3451 Es bietet sich an, die Noten in einer extra Datei abzulegen.
3452 Nehmen wir an, dass die Datei @file{horn-music.ly} folgende
3453 Noten eines Horn/@/Fagott-Duos enthält:
3456 hornNotes = \relative c @{
3463 Eine Stimme wird also erstellt, indem man folgendes in eine
3467 \include "horn-music.ly"
3469 instrument = "Horn in F"
3473 \transpose f c' \hornNotes
3480 \include "horn-music.ly"
3484 ersetzt den Inhalt von @file{horn-music.ly} an dieser Position
3485 in der Datei, sodass @code{hornNotes} im Folgenden definiert
3486 ist. Der Befehl @code{\transpose f@tie{}c'} zeigt an, dass
3487 das Argument (@code{\hornNotes}) eine Quinte nach oben transponiert
3488 werden soll. Klingendes @code{f} wird als @code{c'}, wie es
3489 die Stimmung eines normalen F-Hornes verlangt. Die Transposition
3490 kann in folgender Notenausgabe gesehen werden:
3492 @lilypond[quote,ragged-right]
3493 \transpose f c' \relative c {
3499 In Ensemblestücken sind manche Stimmen für viele Takte stumm.
3500 Das wird durch eine besondere Pause notiert, die Mehrtaktpause.
3501 Sie wird mit einem großen @code{R} notiert, gefolgt von der
3502 Dauer (@code{1}@tie{}für eine Ganze, @code{2}@tie{}für eine Halbe usw.). Indem man die Dauern multipliziert, kann man auch
3503 längere Dauern erzeugen. Diese Pause etwa dauert drei Takte
3510 Wenn die Stimme gesetzt wird, werden Mehrtaktpausen komprimiert. Das schieht, indem man folgendes in die Datei
3514 \set Score.skipBars = ##t
3518 Dieser Befehl setzt die Eigenschaft @code{skipBars} im
3519 @code{Score}-Kontext auf wahr (@code{##t}). Die Pause und diese Option zu der Musik von oben hinzugefügt, ergibt folgendes
3522 @lilypond[quote,ragged-right]
3523 \transpose f c' \relative c {
3525 \set Score.skipBars = ##t
3531 Die Partitur wird erstellt, indem man alle Noten kombiniert.
3532 Angenommen, die andere Stimme ist in @code{bassoonNotes}
3533 in der Datei @file{bassoon-music.ly} definiert, würde eine
3534 Paritur erstellt mit:
3537 \include "bassoon-music.ly"
3538 \include "horn-music.ly"
3541 \new Staff \hornNotes
3542 \new Staff \bassoonNotes
3549 @lilypond[quote,ragged-right]
3558 r4 d,8 f | gis4 c | b bes |
3559 a8 e f4 | g d | gis f |