1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: e18531db1f79fb685fbd16d6a2a67bf4b6c09915
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 (siehe auch @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
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' {
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'' {
1472 \time 3/4 g g g b b b
1474 versewords = \lyricmode {
1475 One two three four five six
1480 \new Voice = "verse" {
1483 \new Lyrics \lyricsto verse {
1492 Damit erhalten wir die Strophe.
1494 Jetzt soll @notation{refrainA} auf dem selben System gesetzt
1495 werden, während gleichzeitig in einem neuen System darunter
1496 @notation{refrainB} gesetzt wird. Damit die Oberstimme das
1497 gleiche System benutzt, muss alles direkt auf den Zeilenumbruchbefehl
1498 (@code{\break} folgen, innerhalb der @notation{verse}-Stimme.
1499 Ja, tatsächlich, @emph{innerhalb} der @notation{verse}-Stimme.
1500 Hier haben wir diese parallele Stelle isoliert. Weitere Systeme
1501 könnten auf die gleiche Weise hinzugefügt werden.
1506 \new Lyrics \lyricsto verse @{
1510 \new Voice = "refrainB" @{
1513 \new Lyrics \lyricsto "refrainB" @{
1520 Nun schließlich das Resultat mit zwei Systemen für den Refrain,
1521 man kann gut sehen, wie sich die parallele Stelle innherhalb
1522 der @notation{verse}-Stimme befindet.
1524 @lilypond[quote,verbatim, ragged-right]
1525 versenotes = \relative c'' {
1528 \time 3/4 g g g b b b
1530 refrainnotesA = \relative c'' {
1534 refrainnotesB = \relative c {
1539 versewords = \lyricmode {
1540 One two three four five six
1542 refrainwordsA = \lyricmode {
1545 refrainwordsB = \lyricmode {
1551 \new Voice = "verse" {
1555 \new Lyrics \lyricsto "verse" {
1559 \new Voice = "refrainB" {
1562 \new Lyrics \lyricsto "refrainB" {
1568 \new Lyrics \lyricsto "verse" {
1576 @cindex book, Benutzung von
1580 Dies ist zwar eine interessante und nützliche Übung um zu
1581 verstehen, wie sequentielle und parallele Notationsumgebungen
1582 funktionieren, in der Praxis würde man diesen Code aber
1583 vielleicht eher in zwei @code{\score}-Umgebungen trennnen
1584 und diese dann innerhalb einer @code{\book}-Umgebung
1585 einsetzen, wie im folgenden Beispiel demonstriert:
1587 @lilypond[quote,verbatim,ragged-right]
1588 versenotes = \relative c'' {
1591 \time 3/4 g g g b b b
1593 refrainnotesA = \relative c'' {
1597 refrainnotesB = \relative c {
1602 versewords = \lyricmode {
1603 One two three four five six
1605 refrainwordsA = \lyricmode {
1608 refrainwordsB = \lyricmode {
1613 \new Voice = "verse" {
1616 \new Lyrics \lyricsto "verse" {
1625 \new Voice = "refrainA" {
1628 \new Lyrics \lyricsto "refrainA" {
1633 \new Voice = "refrainB" {
1636 \new Lyrics \lyricsto "refrainB" {
1646 Notation Reference: @ruser{Notation von Gesang}.
1649 @node Kontexte und Engraver
1650 @section Kontexte und Engraver
1651 @translationof Contexts and engravers
1653 Kontexte und Engraver (@qq{Stempel}) sind in den vorherigen
1654 Abschnitten schon aufgetaucht; hier wollen wir uns ihnen
1655 nun etwas ausführlicher widmen, denn sie sind sehr
1656 wichtig, um Feineinstellungen in der LilyPond-Notenausgabe
1657 vornehmen zu können.
1660 * Was sind Kontexte?::
1661 * Kontexte erstellen::
1662 * Was sind Engraver?::
1663 * Kontexteigenschaften verändern::
1664 * Engraver hinzufügen und entfernen::
1667 @node Was sind Kontexte?
1668 @subsection Was sind Kontexte?
1669 @translationof Contexts explained
1671 @cindex Kontexte erklärt
1673 Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
1675 die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
1676 etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
1678 @lilypond[quote,verbatim,relative=2,fragment]
1682 Der Quellcode ist sehr kurz und knapp, während in der
1683 Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und
1684 eine Taktart hinzugefügt wurden. Während LilyPond
1685 den Eingabetext @emph{interpretiert}, wird die
1686 musikalische Information von rechts nach links gelesen,
1687 in etwa, wie man eine Partitur von links nach
1688 rechts liest. Während das Programm den Code liest,
1689 merkt es sich, wo sich Taktgrenzen befinden und
1690 für welche Tonhöhen Versetzungszeichen gesetzt werden
1691 müssen. Diese Information muss auf mehreren Ebenen
1692 gehandhabt werden, denn Versetzungszeichen etwa
1693 beziehen sich nur auf ein System, Taktlinien dagegen
1694 üblicherweise auf die gesamte Partitur.
1696 Innerhalb von LilyPond sind diese Regeln und
1697 Informationshappen in @emph{Kontexten} (engl.
1698 contexts) gruppiert. Der @code{Voice} (Stimmen)-Kontext
1699 wurde schon vorgestellt. Daneben
1700 gibt es noch die @code{Staff} (Notensystem-) und
1701 @code{Score} (Partitur)-Kontexte. Kontexte sind
1702 hierarchisch geschichtet um die hierarchische
1703 Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
1704 kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
1705 und ein @code{Score}-Kontext kann viele
1706 @code{Staff}-Kontexte beinhalten.
1709 @sourceimage{context-example,5cm,,}
1712 Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
1713 zu erzwingen, bestimmte Notationsobjekte zu erstellen und
1714 verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
1715 zum Beispiel kann eine Vorzeichenregel einführen und der
1716 @code{Staff}-Kontext hält diese Regel dann aufrecht, um
1717 einzuordenen, ob ein Versetzungszeichen gesetzt werden
1720 Ein anderes Beispiel: die Synchronisation der Taktlinien ist
1721 standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
1722 die Systeme einer Partitur aber unterschiedliche Taktarten
1723 enthalten, etwa in einer polymetrischen Partitur mit
1724 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
1725 der @code{Score}- und @code{Staff}-Kontexte verändert werden.
1727 In einfachen Partituren werden die Kontexte implizit erstellt,
1728 und es kann sein, dass Sie sich dessen gar nicht bewusst sind.
1729 Für etwas größere Projekte, etwa mit vielen Systemen, müssen
1730 die Kontexte aber explizit erstellt werden, um sicher zu gehen,
1731 dass man auch wirklich die erwünschte Zahl an Systemen in der
1732 richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
1733 Notation gesetzt werden sollen, ist es üblich, die existierenden
1734 Kontexte zu verändern oder gar gänzlich neue zu definieren.
1736 Zusätzlich zu den @code{Score,} @code{Staff} und
1737 @code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
1738 der Partitur- und Systemebene liegen und Gruppen von Systemen
1739 kontrollieren. Das sind beispielsweise der
1740 @code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
1741 alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
1742 für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
1744 Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren
1746 Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben
1747 begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich
1749 @code{GregorianTranscriptionStaff}.
1753 Notationreferenz: @ruser{Was sind Kontexte?}.
1756 @node Kontexte erstellen
1757 @subsection Kontexte erstellen
1758 @translationof Creating contexts
1762 @cindex Neue Kontexte
1763 @cindex Erstellen von Kontexten
1764 @cindex Kontexte, Erstellen
1766 In einer Eingabedatei enthält eine @code{Score}-Umgebung (einen
1768 dem Befehl @code{\score} eingeleitet wird, nur einen einzigen
1769 musikalischen Ausdruck und mit ihm verknüpft eine Ausgabedefinition
1770 (entweder eine @code{\layout}- oder eine @code{\midi}-Umgebung).
1771 Üblicherweise wird der @code{Score}-Kontext automatisch von
1772 LilyPond erstellt, wenn der musikalische Ausdruck interpretiert
1775 Wenn nur ein System vorhanden ist, kann man es ruhig
1776 LilyPond überlassen, auch die @code{Voice}- und @code{Staff}-Kontexte
1777 zu erstellen, aber für komplexere Partituren ist es notwendig,
1778 sie mit einem Befehl zu erstellen. Der einfachste Befehl
1779 hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck
1780 vorangestellt, etwa so:
1783 \new @var{Typ} @var{musikalischer Ausdruck}
1787 wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
1788 @code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
1789 beginnt, den @var{muskalischen Ausdruck} innherhalb dieses
1790 Kontexts auszuwerten.
1792 (Beachten Sie, dass man normalerweise keinen @code{\new Score}-Befehl
1793 braucht: der Partitur-(Score)-Kontext der obersten Ebene wird
1794 normalerweise automatisch erstellt, wenn der musikalische Ausdruck
1795 innerhalb der @code{\score}-Umgebung interpretiert wird. Der
1796 einzige Grund, einen @code{Score}-Kontext explizit mit
1797 @code{\new Score} zu erstellen ist es, wenn man eine @code{\with}-Umgebung
1798 beginnen will, in der man eine oder mehrere Partitur-weite
1799 Standardwerte definiert werden. Information über die Benutzung
1800 von @code{\with}-Umgebungen finden sich unter der Unterüberschrift
1801 @qq{Kontexteigenschaften mit @code{\\with} setzen} in
1802 @ref{Kontexteigenschaften verändern}.)
1804 Wir haben schon viele explizite Beispiel gesehen, in denen
1805 neue @code{Staff}- und @code{Voice}-Kontexte erstellt wurden, aber
1806 um noch einmal ins Gedächtnis zu rufen, wie diese Befehle benutzt
1807 werden, hier ein kommentiertes Beispiel aus dem richtigen Leben:
1809 @lilypond[quote,verbatim,ragged-right]
1810 \score { % start of single compound music expression
1811 << % start of simultaneous staves section
1813 \new Staff { % create RH staff
1816 \new Voice { % create voice for RH notes
1817 \relative c'' { % start of RH notes
1823 \new Staff << % create LH staff; needs two simultaneous voices
1826 \new Voice { % create LH voice one
1828 \relative g { % start of LH voice one notes
1829 g8 <bes d> ees, <g c> |
1830 g8 <bes d> ees, <g c> |
1831 } % end of LH voice one notes
1832 } % end of LH voice one
1833 \new Voice { % create LH voice two
1835 \relative g { % start of LH voice two notes
1838 } % end of LH voice two notes
1839 } % end of LH voice two
1840 >> % end of LH staff
1841 >> % end of simultaneous staves section
1842 } % end of single compound music expression
1845 (Beachten Sie, dass wir hier alle Zeilen, die eine neue
1846 Umgebung entweder mit einer geschweiften Klammer (@code{@{})
1847 oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
1848 jeweils zwei Leerzeichen, und die entsprechenden
1849 schließenden Klammern mit der gleichen Anzahl Leerzeichen
1850 eingerückt werden. Dies ist nicht erforderlich, es wird aber
1851 zu einem großen Teil die nicht passenden Klammerpaar-Fehler
1852 eliminieren und ist darum sehr empfohlen. Es macht es
1853 möglich, die Struktur einer Partitur auf einen Blick zu
1854 verstehen, und alle nicht passenden Klammern
1855 erschließen sich schnell. Beachten Sie auch, dass das
1856 untere Notensystem mit eckigen Klammern erstellt wird,
1857 denn innerhalb dieses Systems brauchen wir zwei Stimmen,
1858 um die Noten darzustellen. Das obere System braucht
1859 nur einen einzigen musikalischen Ausdruck und ist deshalb
1860 von geschweiften Klammern umschlossen.)
1862 @cindex Kontexte, Benennung
1863 @cindex Bennenung von Kontexten
1865 Der @code{\new}-Befehl kann einem Kontext auch einen
1866 Namen zur Identifikation geben, um ihn von anderen Kontexten des
1867 selben Typs zu unterscheiden:
1870 \new @var{Typ} = @var{Name} @var{musikalischer Ausdruck}
1873 Beachten Sie den Unterschied zwischen der Bezeichnung des
1874 Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
1875 Namen, der aus beliebigen Buchstaben bestehen kann
1876 und vom Benutzer frei erfunden werden kann. Zahlen und
1877 Leerzeichen können auch benutzt werden, in dem Fall
1878 muss der Name aber von doppelten Anführungszeichen
1879 umgeben werden, also etwa
1880 @code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
1882 benutzt, um später auf genau diesen spezifischen Kontext
1883 zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
1884 zu Gesangstexten angewandt, siehe @ref{Stimmen und Text}.
1888 Notationsreferenz: @ruser{Kontexte erstellen}.
1891 @node Was sind Engraver?
1892 @subsection Was sind Engraver?
1893 @translationof Engravers explained
1896 @cindex Stempel (Engraver)
1898 Jedes Zeichen des fertigen Notensatzes von LilyPond wird
1899 von einem @code{Engraver} (Stempel) produziert. Es gibt
1900 also einen Engraver, der die Systeme erstellt, einen, der die
1901 Notenköpfe ausgibt, einen für die Hälse, einen für die
1902 Balken usw. Insgesamt gibt es über 120 Engraver! Zum
1903 Glück braucht man für die meisten Partituren nur ein
1904 paar Engraver, und für einfache Partituren muss man eigentlich
1905 überhaupt nichts über sie wissen.
1907 Engraver leben und wirken aus den Kontexten heraus. Engraver
1908 wie der @code{Metronome_mark_engraver}, dessen Aktion
1909 und Ausgabe sich auf die gesamte Partitur bezieht, wirken
1910 in der obersten Kontextebene -- dem @code{Score}-Kontext.
1912 Der @code{Clef_engraver} (Schlüssel-Stempel) und der
1913 @code{Key_engraver} (Vorzeichen-Stempel) finden sich in
1914 jedem @code{Staff}-Kontext, denn unterschiedliche Systeme
1915 könnten unterschiedliche Tonarten und Notenschlüssel
1918 Der @code{Note_heads_engraver} (Notenkopf-Stempel) und der
1919 @code{Stem_engraver} (Hals-Stempel) befinden sich in jedem
1920 @code{Voice}-Kontext, der untersten Kontextebene.
1922 Jeder Engraver bearbeitet die bestimmten Objekte, die mit
1923 seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
1924 dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
1925 die mit Kontexten assoziiert sind, können verändert werden,
1926 um die Wirkungsweise des Engravers oder das Erscheinungsbild
1927 der von ihm produzierten Elemente in der Partitur zu ändern.
1929 Alle Engraver haben zusammengesetzte Bezeichnung, die aus
1930 den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
1931 das erste Wort hat einen Großbuchstaben, und die restlichen
1932 Wörter werden mit einem Unterstrich angefügt. Ein
1933 @code{Staff_symbol_engraver} verantwortet also die Erstellung
1934 der Notenlinien, ein @code{Clef_engraver} entscheidet über die
1935 Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
1936 wird gleichzeitig die Referenztonhöhe auf dem Notensystem festgelegt.
1938 Hier die meistgebräuchlichen Engraver mit ihrer Funktion.
1939 Sie werden sehen, dass es mit etwas Englischkenntnissen
1940 einfach ist, die Funktion eines Engravers von seiner Bezeichnung
1943 @multitable @columnfractions .3 .7
1946 @item Accidental_engraver
1947 @tab Erstellt Versetzungszeichen, vorgeschlagene und Warnversetzungszeichen.
1949 @tab Erstellt Balken.
1951 @tab Erstellt Notenschlüssel.
1952 @item Completion_heads_engraver
1953 @tab Teilt Noten in kleiner Werte, wenn sie über die Taktlinie reichen.
1954 @c The old Dynamic_engraver is deprecated. -jm
1955 @item New_dynamic_engraver
1956 @tab Erstellt Dynamik-Klammern und Dynamik-Texte.
1957 @item Forbid_line_break_engraver
1958 @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist.
1960 @tab Erstellt die Vorzeichen.
1961 @item Metronome_mark_engraver
1962 @tab Erstellt Metronom-Bezeichnungen.
1963 @item Note_heads_engraver
1964 @tab Erstellt Notenköpfe.
1966 @tab Erstellt Pausen.
1967 @item Staff_symbol_engraver
1968 @tab Ersetllt die (standardmäßig) fünf Notenlinien des Systems.
1970 @tab Erstellt die Notenhälse und Tremolos mit einem Hals.
1971 @item Time_signature_engraver
1972 @tab Erstellt die Taktartbezeichnung.
1977 Es soll später gezeigt werden, wie die LilyPond-Ausgabe
1978 verändert werden kann, indem die Wirkungsweise der
1979 Engraver beeinflusst wird.
1983 Referenz der Interna: @rinternals{Engravers and Performers}.
1986 @node Kontexteigenschaften verändern
1987 @subsection Kontexteigenschaften verändern
1988 @translationof Modifying context properties
1990 @cindex Kontext-Eigenschaften, Verändern
1991 @cindex Eigenschaften von Kontexten
1992 @cindex Verändern von Kontext-Eigenschaften
1998 Kontexte sind dafür verantwortlich, die Werte bestimmter
1999 Kontext-@emph{Eigenschaften} zu speichern. Viele davon
2000 können verändert werden, um die Interpretation der
2001 Eingabe zu beeinflussen und die Ausgabe zu verändern.
2002 Kontexte werden mit dem @code{\set}-Befehl geändert.
2006 \set @var{KontextBezeichnung}.@var{eigenschaftsBezeichnung} = #@var{Wert}
2010 verwendet, wobei @var{KontextBezeichnung} üblicherweise
2012 @code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
2013 ausgelassen werden; in diesem Fall wird der aktuelle
2014 Kontext (üblicherweise @code{Voice}) eingesetzt.
2016 Die Bezeichnung von Kontexten-Eigenschaften besteht
2017 aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
2018 verbunden sind. Alle außer dem ersten werden am Anfang
2019 groß geschrieben. Hier einige Beispiele der gebräuchlichsten
2020 Kontext-Eigenschaften. Es gibt sehr viel mehr.
2022 @c attempt to force this onto a new page
2024 @multitable @columnfractions .25 .15 .45 .15
2025 @headitem eigenschaftsBezeichnung
2030 @tab boolescher Wert
2031 @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt.
2032 @tab @code{#t}, @code{#f}
2033 @item currentBarNumber
2035 @tab Setzt die aktuelle Taktnummer.
2038 @tab boolescher Wert
2039 @tab Wenn wahr, werden Legatobögen über und unter die Noten gesetzt.
2040 @tab @code{#t}, @code{#f}
2041 @item instrumentName
2043 @tab Setzt die Instrumentenbezeichnung am Anfang eines Systems.
2044 @tab @code{"Cello I"}
2047 @tab Vergrößert oder verkleinert die Schriftgröße.
2051 @tab Setzt den Text zu Beginn einer Strophe.
2056 Ein boolischer Wert ist entweder wahr (@code{#t})
2057 oder falsch (@code{#f}),
2058 ein Integer eine positive ganze Zahl, eine reale Zahl eine positive
2059 oder negative Dezimalzahl, und Text wird in doppelte
2060 Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
2061 das Vorkommen des Rautenzeichens
2062 (@code{#}) an unterschiedlichen Stellen: als Teil eines
2063 booleschen Wertes vor dem @code{t} oder @code{f}, aber
2064 auch vor einem @emph{Wert} in der
2065 @code{\set}-Befehlskette. Wenn ein boolescher Wert
2066 eingegeben werden soll, braucht man also zwei
2067 Rautenzeichen, z. B. @code{##t}.
2069 @cindex Eigenschaften in Kontexten
2070 @cindex Veränderung von Eigenschaften in Kontexten
2072 Bevor eine Eigenschaft geändert werden kann, muss man wissen,
2073 in welchem Kontext sie sich befindet. Manchmal versteht das
2074 sich von selbst, aber in einigen Fällen kann es zunächst
2075 unverständlich erscheinen. Wenn der falsche Kontext angegeben
2076 wird, wird keine Fehlermeldung produziert, aber die
2077 Veränderung wird einfach nicht ausgeführt.
2078 @code{instrumentName} befindet sich offensichtlich innerhalb
2079 von einem @code{Staff}-Kontext, denn das Notensystem soll
2080 benannt werden. In dem folgenden Beispiel erhält das erste
2081 System korrekt die Instrumentenbezeichnung, das zweite aber
2082 nicht, weil der Kontext ausgelassen wurde.
2084 @lilypond[quote,verbatim,ragged-right]
2086 \new Staff \relative c'' {
2087 \set Staff.instrumentName = #"Soprano"
2090 \new Staff \relative c' {
2091 \set instrumentName = #"Alto" % Wrong!
2097 Denken Sie daran, dass der Standardkontext @code{Voice} ist; in dem
2098 zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
2099 im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
2100 Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
2101 gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
2104 Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
2105 falsch geschrieben wird und die Änderung also nicht ausgeführt werden
2106 kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
2107 mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
2108 wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
2109 zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
2110 die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
2111 Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
2112 fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
2113 unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
2114 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
2115 Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
2116 @rinternals{Tunable context properties}, oder
2117 @rinternals{Contexts}.
2119 Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
2120 ineinem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
2121 können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
2122 @code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen
2123 setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
2124 Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch)
2125 gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
2126 sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
2127 auf alle darin enthaltenen Systeme aus.
2129 Das also bewirkt, dass die zusätzlichen Erniedrigungszeichen in einem System
2132 @lilypond[quote,verbatim,ragged-right]
2134 \new Staff \relative c'' {
2137 \new Staff \relative c'' {
2138 \set Staff.extraNatural = ##f
2145 während das dazu dient, sie in allen Systemen auszuschalten:
2147 @lilypond[quote,verbatim,ragged-right]
2149 \new Staff \relative c'' {
2152 \new Staff \relative c'' {
2153 \set Score.extraNatural = ##f
2159 Ein anderes Beispiel ist die Eigenschaft @code{clefOctavation}:
2160 wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort
2161 der Wert der Oktavierung in allen aktuellen Systemen und wird
2162 auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt.
2164 Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft
2165 effektiv wieder von dem Kontext: in den meisten Fällen wird der
2166 Kontext auf ihre Standardeinstellungen zurückgesetzt.
2167 Normalerweise wird aber @code{\unset} nicht benötigt,
2168 denn ein neues @code{\set} erledigt alles, was man braucht.
2170 Die @code{\set}- und @code{\unset}-Befehle könne überall im
2171 Eingabequelltext erscheinen und werden aktiv von dem Moment, an
2172 dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
2173 mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
2174 wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
2175 auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
2176 nicht vom letzten gesetzten Wert.
2178 @lilypond[quote,verbatim,ragged-right,relative=1,fragment]
2180 % make note heads smaller
2183 % make note heads larger
2184 \set fontSize = #2.5
2186 % return to default size
2191 Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
2192 Eigenschaften ändern lassen. Beachten Sie, dass Integre und
2193 Zahlen immer mit einem Rautenzeichen beginnen, während
2194 die Werte wahr und falsch (mit @code{##t} und @code{##f}
2195 notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
2196 aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
2197 auch wenn wir später sehen werden, dass Text auf eine sehr viel
2198 allgmeinere und mächtigere Art mit dem @code{\markup}-Befehl
2199 eingegeben werden kann.
2201 @subsubheading Kontexteigenschaften mit @code{\with} setzen
2205 @cindex Kontexteigenschaft, setzen mit \with
2207 Die Standardwerte von Kontexteigenschaften können zu dem Zeitpunkt
2208 definiert werden, an welchem der Kontext erstellt wird. Manchmal
2209 ist das eine saubere Weise, eine Eigenschaft zu bestimmen, die für
2210 die gesamte Partitur erhalten bleichen soll. Wenn ein Kontext mit
2211 einem @code{\new}-Befehl erstellt wird, können in einer
2212 direkt folgenden @code{\with @{ .. @}}-Umgebung die Eigenschaften
2213 bestimmt werden. Wenn also die zusätzlichen
2214 Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
2218 \new Staff \with @{ extraNatural = ##f @}
2224 @lilypond[quote,verbatim,ragged-right]
2230 \new Staff \with { extraNatural = ##f }
2237 Oder, wenn das @code{\override} für die Eigenschaft auf alle
2238 Notensysteme innerhalt der Partitur gelten soll, kann es auch
2239 direkt an ein @code{\new Score} gehängt werden, wie etwa hier:
2241 @lilypond[quote,verbatim,ragged-right]
2243 \new Score \with { extraNatural = ##f } <<
2258 Eigenschaften, die auf diese Arte gesetzt werden, können immer noch
2259 dynamisch mit dem @code{\set}-Befehl geändert werden und mit
2260 @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden,
2261 wie sie vorher in der @code{\with}-Umgebung definiert wurden.
2263 @cindex Schriftgröße, Standardeinstellung
2264 @cindex fontSize (Schriftgröße), Standardeinstellung
2266 Wenn also die @code{fontSize}-Eigenschaft in einer @code{\with}-Umgebung
2267 definiert wird, wird der Standardwert für die Schriftgröße
2268 festgelegt. Wenn dieser Wert später mit @code{\set} verändert
2269 wird, kann dieser neue Standardwert mit dem Befehl
2270 @code{\unset fontSize} wieder erreicht werden.
2272 @subsubheading Kontexteigenschaften mit @code{\context} setzen
2274 @cindex Kontexteigenschaften, mit \context setzen
2275 @cindex Eigenschaften von Kontexten, mit \context setzen
2279 Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
2280 eines bestimmten Typs (etwa alle @code{Staff}-Kontexte)
2281 gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
2282 spezifieziert, indem seine Bezeichnung benutzt wird, also etwa
2283 @code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
2284 für die Eigenschaft ist der gleiche, wie er auch in der
2285 @code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
2286 eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
2287 von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
2288 wirkt sich auf alle Kontexte dieses Types aus, welche sich in der
2289 aktuellen Partitur befinden (d. h. innherhalb einer @code{\score}-
2290 oder @code{\book}-Umgebung. Hier ist ein Beispiel, wie man diese
2293 @lilypond[verbatim,quote]
2310 Kontext-Eigenschaften, die auf diese Weise gestzt werden, können für
2311 bestimmten Kontexte überschrieben werden, indem die
2312 @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen
2313 innerhalb der aktuellen Noten.
2318 @ruser{Die Standardeinstellungen von Kontexten ändern}.
2320 @c uncomment when backslash-node-name issue is resolved -pm
2321 @c @ruser{Der set-Befehl}.
2323 Referenz der Interna:
2324 @rinternals{Contexts},
2325 @rinternals{Tunable context properties}.
2328 @node Engraver hinzufügen und entfernen
2329 @subsection Engraver hinzufügen und entfernen
2330 @translationof Adding and removing engravers
2332 @cindex Engraver, Hinzufügen von
2333 @cindex Engraver, Entfernen von
2334 @cindex Hinzufügen von Engravern
2335 @cindex Entfernen von Engravern
2342 Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
2343 (Stempeln) beinhaltet, von denen ein jeder einen bestimmten
2344 Teil des fertigen Notensatzes produziert, wie z. B. Taktlinien,
2345 Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
2346 einem Kontext entfernt wird, kann er seine Objekte nicht
2347 länger produzieren. Das ist eine eher grobe Methode, die
2348 Notenausgabe zu beeinflussen, aber es kann von großem
2352 @subsubheading Einen einzelnen Kontext verändern
2354 Um einen Engraver von einem einzelnen Kontext zu entfernen,
2355 wir der @code{\with}-Befehl eingesetzt, direkt hinter
2356 den Befehl zur Kontext-Erstellung geschrieben, wie
2357 in dem vorigen Abschnitt gezeigt.
2359 Als ein Beispiel wollen wir das Beispiel aus dem letzten
2360 Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
2361 Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
2364 @lilypond[quote,verbatim,ragged-right]
2366 \remove Staff_symbol_engraver
2370 \set fontSize = #-4 % make note heads smaller
2372 \set fontSize = #2.5 % make note heads larger
2374 \unset fontSize % return to default size
2379 @cindex Ambitus-Engraver
2381 Engraver können auch zu einem bestimmten
2382 Kontext hinzugefügt werden. Dies geschieht
2385 @code{\consists @var{Engraver_bezeichnung}}
2388 welcher auch wieder innerhalb der @code{\with}-Umgebung
2389 gesetzt wird. Einige Chorpartituren zeigen einen
2390 Ambitus direkt zu Beginn der ersten Notenzeile, um
2391 den Stimmumfang des Stückes anzuzeigen, siehe auch
2392 @rglos{ambitus}. Der Ambitus wird vom
2393 @code{Ambitus_engraver} erstellt, der normalerweise
2394 in keinem Kontext enthalten ist. Wenn wir
2395 ihn zum @code{Voice}-Kontext hinzufügen, errechnet
2396 er automatisch den Stimmumfang für diese einzelne Stimme
2399 @lilypond[quote,verbatim,ragged-right]
2402 \consists Ambitus_engraver
2417 wenn wir den Ambitus-Engraver allerdings zum
2418 @code{Staff}-Kontext hinzufügen, wird der Stimmumfang aller
2419 Stimmen in diesem Notensystem errechnet:
2421 @lilypond[quote,verbatim,ragged-right]
2423 \consists Ambitus_engraver
2440 @subsubheading Alle Kontexte des gleichen Typs verändern
2444 Die vorigen Beispiele zeigen, wie man Engraver in einem
2445 bestimmten Kontext hinzufügen oder entfernen kann. Es ist
2446 auch möglich, Engraver in jedem Kontext eines bestimmten
2447 Typs hinzuzufügen oder zu entfernen. Dazu werden die
2448 Befehle in dem entsprechenden Kontext in einer
2449 @code{\layout}-Umgebung gesetzt. Wenn wir also z. B.
2450 den Ambitus für jedes Notensystem in einer Partitur
2451 mit vier Systemen anzeigen wollen, könnte das so aussehen:
2453 @lilypond[quote,verbatim,ragged-right]
2457 \relative c'' { c a b g }
2460 \relative c' { c a b g }
2464 \relative c' { c a b g }
2468 \relative c { c a b g }
2474 \consists Ambitus_engraver
2481 Die Werte der Kontext-Eigenschaften können auch für
2482 alle Kontexte eines bestimmten Typs auf die gleiche
2483 Weise geändert werden, indem der @code{\set}-Befehl in
2484 einer @code{\context}-Umgebung angewendet wird.
2488 Notationsreferenz: @ruser{Umgebungs-Plugins verändern},
2489 @ruser{Die Standardeinstellungen von Kontexten ändern}.
2492 @node Erweiterung der Beispiele
2493 @section Erweiterung der Beispiele
2494 @translationof Extending the templates
2496 Sie haben sich durch die Übung gearbeitet, Sie
2497 wissen jetzt, wie Sie Notensatz produzieren, und Sie
2498 haben die grundlegenden Konzepte verstanden. Aber wie
2499 erhalten Sie genau die Systeme, die Sie brauchen? Es
2500 gibt eine ganze Anzahl an fertigen Vorlagen
2501 (siehe @ref{Vorlagen}), mit denen Sie beginnen
2502 können. Aber was, wenn Sie nicht genau das finden,
2503 was Sie brauchen? Lesen Sie weiter.
2506 * Sopran und Cello::
2507 * Vierstimmige SATB-Partitur::
2508 * Eine Partitur von Grund auf erstellen::
2509 * Tipparbeit durch Variablen und Funktionen ersparen::
2510 * Partitur und Stimmen::
2514 @node Sopran und Cello
2515 @subsection Sopran und Cello
2516 @translationof Soprano and cello
2518 @cindex Template, Verändern von
2519 @cindex Vorlage, Verändern von
2520 @cindex Veränderung von Vorlagen
2522 Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
2523 am nächsten kommt. Nehmen wir einmal an, Sie wollen
2524 ein Stück für Sopran und Cello schreiben. In diesem
2525 Fall könnten Sie mit der Vorlage @qq{Noten und Text}
2526 (für die Sopran-Stimme) beginnen.
2529 \version @w{"@version{}"}
2530 melody = \relative c' @{
2537 text = \lyricmode @{
2543 \new Voice = "one" @{
2547 \new Lyrics \lyricsto "one" \text
2554 Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
2555 Beispiel @qq{Nur Noten} an:
2558 \version @w{"@version{}"}
2559 melody = \relative c' @{
2573 Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
2574 brauchen aber den @code{melody}-Abschnitt. Wir wollen
2575 keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
2576 @code{\score}-Abschnitten würden wir zwei Stimmen
2577 getrennt voneinander erhalten. In diesem Fall wollen wir
2578 sie aber zusammen, als Duett. Schließlich brauchen wir
2579 innerhalb des @code{\score}-Abschnittes nur einmal die
2580 Befehle @code{\layout} und @code{\midi}.
2582 Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in
2583 unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
2584 Das würde zu keinem Fehler führen, aber die zweite von ihnen
2585 würde für beide Melodien eingesetzt werden. Wir müssen
2586 ihnen also andere Bezeichnungen zuweisen, um sie voneinander
2587 zu unterscheiden. Nennen wir die Abschnitte also @code{SopranNoten}
2588 für den Sopran und @code{CelloNoten} für die Cellostimme. Wenn
2589 wir schon dabei sind, können wir @code{text}auch nach
2590 @code{SoprText} umbenennen. Denken Sie daran, beide
2591 Vorkommen der Bezeichnung zu ändern: einmal die Definition
2592 gleich am Anfang (@code{melody = \relative c' @{ }) und
2593 dann auch noch die Benutzung der Variable innerhalb des
2594 @code{\score}-Abschnittes.
2596 Gleichzeitig können wir auch noch das Notensystem für das
2597 Cello ändern -- das Cello hat normalerweise einen Bassschlüssel.
2598 Wir ändern auch die Noten etwas ab.
2601 \version @w{"@version{}"}
2602 SopranNoten = \relative c' @{
2609 SoprText = \lyricmode @{
2613 CelloNoten = \relative c @{
2622 \new Voice = "eins" @{
2626 \new Lyrics \lyricsto "eins" \Soprantext
2633 Das sieht schon vielversprechend aus, aber die Cello-Stimme
2634 erscheint noch nicht im Notensatz -- wir haben vergessen,
2635 sie in den @code{\score}-Abschnitt einzufügen. Wenn die
2636 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
2640 \new Staff \CelloNoten
2644 unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
2645 die spitzen Klammern (@code{<<} und @code{>>}) um die
2646 Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
2647 ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
2648 zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
2651 @c Indentation in this example is deliberately poor
2656 \new Voice = "eins" @{
2660 \new Lyrics \lyricsto "eins" \SoprText
2662 \new Staff \CelloNoten
2670 Das sieht etwas unschön aus, vor allem die Einrückung stimmt
2671 nicht mehr. Das können wir aber schnell in Ordnung bringen.
2672 Hier also die gesamte Vorlage für Sopran und Cello:
2674 @lilypond[quote,verbatim,ragged-right,addversion]
2675 sopranoMusic = \relative c' {
2682 sopranoLyrics = \lyricmode {
2686 celloMusic = \relative c {
2696 \new Voice = "one" {
2700 \new Lyrics \lyricsto "one" \sopranoLyrics
2702 \new Staff \celloMusic
2711 Die Vorlagen, mit denen wir begonnen haben, können im
2712 Anhang @qq{Vorlagen} gefunden werden, siehe
2713 @ref{Ein einzelnes System}.
2716 @node Vierstimmige SATB-Partitur
2717 @subsection Vierstimmige SATB-Partitur
2718 @translationof Four-part SATB vocal score
2720 @cindex Vorlage, SATB
2721 @cindex Vorlage, Chorpartitur
2722 @cindex SATB-Vorlage
2723 @cindex Chorpartitur, Vorlage
2725 Die meisten Partituren für vierstimmigen gemischten Chor
2726 mit Orchesterbegleitung (wie etwa Mendelssohns @notation{Elias}
2727 oder Händels @notation{Messias}) sind so aufgebaut, dass
2728 für jede der vier Stimmen ein eigenes System besteht und
2729 die Orchesterbegleitung dann als Klavierauszug darunter
2730 notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
2732 @c The following should appear as music without code
2733 @lilypond[quote,ragged-right]
2734 global = { \key d \major \time 4/4 }
2735 sopranoMusic = \relative c'' {
2737 r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2739 sopranoWords = \lyricmode {
2740 Wor -- thy is the lamb that was slain
2742 altoMusic = \relative a' {
2744 r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
2746 altoWords = \sopranoWords
2747 tenorMusic = \relative c' {
2749 r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2751 tenorWords = \sopranoWords
2752 bassMusic = \relative c' {
2754 r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2756 bassWords = \sopranoWords
2757 upper = \relative a' {
2760 r4 <a d fis>2 <a e' a>4 |
2761 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2762 <g cis g'>4 <a d fis> <a cis e>2 |
2764 lower = \relative c, {
2767 <d d'>4 <d d'>2 <cis cis'>4 |
2768 <b b'>4. <b' b'>8 <fis fis'>2 |
2769 <e e'>4 <d d'> <a' a'>2 |
2773 << % combine ChoirStaff and PianoStaff in parallel
2775 \new Staff = "sopranos" <<
2776 \set Staff.instrumentName = #"Soprano"
2777 \new Voice = "sopranos" { \global \sopranoMusic }
2779 \new Lyrics \lyricsto "sopranos" { \sopranoWords }
2780 \new Staff = "altos" <<
2781 \set Staff.instrumentName = #"Alto"
2782 \new Voice = "altos" { \global \altoMusic }
2784 \new Lyrics \lyricsto "altos" { \altoWords }
2785 \new Staff = "tenors" <<
2786 \set Staff.instrumentName = #"Tenor"
2787 \new Voice = "tenors" { \global \tenorMusic }
2789 \new Lyrics \lyricsto "tenors" { \tenorWords }
2790 \new Staff = "basses" <<
2791 \set Staff.instrumentName = #"Bass"
2792 \new Voice = "basses" { \global \bassMusic }
2794 \new Lyrics \lyricsto "basses" { \bassWords }
2798 \set PianoStaff.instrumentName = #"Piano"
2799 \new Staff = "upper" \upper
2800 \new Staff = "lower" \lower
2806 Keine der Vorlage bietet diesen Aufbau direkt an. Die Vorlage, die
2807 am nächsten daran liegt, ist @qq{SATB-Partitur und automatischer
2808 Klavierauszug}, siehe @ref{Vokalensemble}. Wir müssen diese
2809 Vorlage aber so anpassen, dass die Noten für das Klavier nicht
2810 automatisch aus dem Chorsatz generiert werden. Die Variablen
2811 für die Noten und den Text des Chores sind in Ordnung, wir
2812 müssen nun noch Variablen für die Klaviernoten hinzufügen.
2814 Die Reihenfolge, in welcher die Variablen in das Chorsystem
2815 (@code{ChoirStaff}) eingefügt werden, entspricht nicht der
2816 in dem Beispiel oben. Wir wollen sie so sortieren, dass die
2817 Texte jeder Stimme direkt unter den Noten notiert werden.
2818 Alle Stimmen sollten als @code{\voiceOne} notiert werden,
2819 welches die Standardeinstellung ist; wir können also die
2820 @code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
2821 den Schlüssel für den Tenor ändern. Die Methode, mit der
2822 der Text den Stimmen zugewiesen wird, ist uns noch nicht
2823 bekannt, darum wollen wir sie umändern auf die Weise, die
2824 wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
2825 zu den Systemen hinzu.
2827 Damit erhalten wir folgenden @code{ChoirStaff}:
2831 \new Staff = "sopranos" <<
2832 \set Staff.instrumentName = #"Soprano"
2833 \new Voice = "sopranos" @{ \global \SopranNoten @}
2835 \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
2836 \new Staff = "altos" <<
2837 \set Staff.instrumentName = #"Alto"
2838 \new Voice = "altos" @{ \global \AltNoten @}
2840 \new Lyrics \lyricsto "altos" @{ \AltText @}
2841 \new Staff = "tenors" <<
2842 \set Staff.instrumentName = #"Tenor"
2843 \new Voice = "tenors" @{ \global \TenorNoten @}
2845 \new Lyrics \lyricsto "tenors" @{ \TenorText @}
2846 \new Staff = "basses" <<
2847 \set Staff.instrumentName = #"Bass"
2848 \new Voice = "basses" @{ \global \BassNoten @}
2850 \new Lyrics \lyricsto "basses" @{ \BassText @}
2851 >> % Ende ChoirStaff
2854 Als nächstes müssen wir das Klaviersystem bearbeiten.
2855 Das ist einfach: wir nehmen einfach den Klavierteil
2856 aus der @qq{Piano solo}-Vorlage:
2860 \set PianoStaff.instrumentName = #"Piano "
2861 \new Staff = "oben" \oben
2862 \new Staff = "unten" \unten
2867 und fügen die Variablen @code{oben}
2868 und @code{unten} hinzu.
2870 Das Chorsystem und das Pianosystem müssen mit
2871 spitzen Klammern kombiniert werden, damit beide
2872 übereinandern erscheinen:
2875 << % ChoirStaff und PianoStaff parallel kombinieren
2877 \new Staff = "sopranos" <<
2878 \new Voice = "sopranos" @{ \global \SopranNoten @}
2880 \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
2881 \new Staff = "altos" <<
2882 \new Voice = "altos" @{ \global \AltNoten @}
2884 \new Lyrics \lyricsto "altos" @{ \AltText @}
2885 \new Staff = "tenors" <<
2886 \clef "G_8" % Tenorschlüssel
2887 \new Voice = "tenors" @{ \global \TenorNoten @}
2889 \new Lyrics \lyricsto "tenors" @{ \TenorText @}
2890 \new Staff = "basses" <<
2892 \new Voice = "basses" @{ \global \BassNoten @}
2894 \new Lyrics \lyricsto "basses" @{ \BassText @}
2895 >> % Ende ChoirStaff
2898 \set PianoStaff.instrumentName = #"Piano"
2899 \new Staff = "oben" \oben
2900 \new Staff = "unten" \unten
2905 Alles miteinander kombiniert und mit den Noten für drei
2906 Takte sieht unser Beispiel nun so aus:
2908 @lilypond[quote,verbatim,ragged-right,addversion]
2909 global = { \key d \major \time 4/4 }
2910 sopranoMusic = \relative c'' {
2912 r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
2914 sopranoWords = \lyricmode {
2915 Wor -- thy is the lamb that was slain
2917 altoMusic = \relative a' {
2919 r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
2921 altoWords = \sopranoWords
2922 tenorMusic = \relative c' {
2924 r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
2926 tenorWords = \sopranoWords
2927 bassMusic = \relative c' {
2929 r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
2931 bassWords = \sopranoWords
2932 upper = \relative a' {
2935 r4 <a d fis>2 <a e' a>4 |
2936 <d fis d'>4. <d fis d'>8 <a d a'>2 |
2937 <g cis g'>4 <a d fis> <a cis e>2 |
2939 lower = \relative c, {
2942 <d d'>4 <d d'>2 <cis cis'>4 |
2943 <b b'>4. <b' b'>8 <fis fis'>2 |
2944 <e e'>4 <d d'> <a' a'>2 |
2948 << % combine ChoirStaff and PianoStaff in parallel
2950 \new Staff = "sopranos" <<
2951 \set Staff.instrumentName = #"Soprano"
2952 \new Voice = "sopranos" { \global \sopranoMusic }
2954 \new Lyrics \lyricsto "sopranos" { \sopranoWords }
2955 \new Staff = "altos" <<
2956 \set Staff.instrumentName = #"Alto"
2957 \new Voice = "altos" { \global \altoMusic }
2959 \new Lyrics \lyricsto "altos" { \altoWords }
2960 \new Staff = "tenors" <<
2961 \set Staff.instrumentName = #"Tenor"
2962 \new Voice = "tenors" { \global \tenorMusic }
2964 \new Lyrics \lyricsto "tenors" { \tenorWords }
2965 \new Staff = "basses" <<
2966 \set Staff.instrumentName = #"Bass"
2967 \new Voice = "basses" { \global \bassMusic }
2969 \new Lyrics \lyricsto "basses" { \bassWords }
2973 \set PianoStaff.instrumentName = #"Piano "
2974 \new Staff = "upper" \upper
2975 \new Staff = "lower" \lower
2982 @node Eine Partitur von Grund auf erstellen
2983 @subsection Eine Partitur von Grund auf erstellen
2984 @translationof Building a score from scratch
2986 @cindex Template, eigene schreiben
2987 @cindex Vorlagen, eigene schreiben
2988 @cindex eigene Vorlagen erstellen
2989 @cindex Erstellen von eigenen Vorlagen
2990 @cindex Schreiben von eigenen Vorlagen
2992 Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
2993 gewonnen haben, werden Sie vielleicht feststellen, dass es
2994 manchmal einfacher ist, von Grund auf anzufangen, anstatt
2995 die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
2996 auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
2997 die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
2998 wie man die Partitur für ein Orgelpreludium von Grund auf
3001 Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt.
3002 Hier notieren wir den Titel, den Namen des Komponisten usw.
3003 Danach schreiben wir die einzelnen Variablen auf und
3004 schließlich am Ende die eigentliche Partitur, den
3005 @code{\score}-Abschnitt. Beginnen wir mit einer groben
3006 Struktur, in die wir dann die Einzelheiten nach und nach
3009 Als Beispiel benutzen wir zwei Takte aus dem Orgelpreludium
3010 @notation{Jesu, meine Freude} von J. S. Bach, notiert
3011 für zwei Manuale und Pedal. Sie können die Noten am Ende
3012 dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
3013 das untere und das Pedalsystem jeweils nur eine. Wir
3014 brauchen also vier Variablen für die Noten und eine, um
3015 Taktart und Tonart zu definieren.
3018 \version @w{"@version{}"}
3020 title = "Jesu, meine Freude"
3021 composer = "J. S. Bach"
3023 TimeKey = @{ \time 4/4 \key c \minor @}
3024 ManualOneVoiceOneMusic = @{s1@}
3025 ManualOneVoiceTwoMusic = @{s1@}
3026 ManualTwoMusic = @{s1@}
3027 PedalOrganMusic = @{s1@}
3033 Im Moment haben wir eine unsichtbare
3034 Note in jede Stimme eingesetzt (@code{s1}).
3035 Die Noten werden später hinzugefügt.
3037 Als nächstes schauen wir uns an, was in die
3038 Partitur (die @code{\score}-Umgebung)
3039 kommt. Dazu wird einfach die Notensystemstruktur
3040 konstruiert, die wir benötigen. Orgelmusik
3041 wird meistens auf drei Systemen notiert, eins
3042 für jedes Manual und ein drittes für die Pedalnoten.
3043 Die Systeme für die Manuale werden mit einer
3044 geschweiften Klammer verbunden, wir
3045 benutzen hier also ein @code{PianoStaff}.
3046 Das erste Manualsystem braucht zwei Stimmen,
3047 das zweite nur eine.
3051 \new Staff = "ManualOne" <<
3052 \new Voice @{ \ManualOneVoiceOneMusic @}
3053 \new Voice @{ \ManualOneVoiceTwoMusic @}
3054 >> % end ManualOne Staff context
3055 \new Staff = "ManualTwo" <<
3056 \new Voice @{ \ManualTwoMusic @}
3057 >> % end ManualTwo Staff context
3058 >> % end PianoStaff context
3061 Als nächstes soll das System für das Pedal hinzugefügt
3062 werden. Es soll unter das Klaviersystem gesetzt
3063 werden, aber muss gleichzeitig mit ihm erscheinen.
3064 Wir brauchen also spitze Klammern um beide
3065 Definitionen. Sie wegzulassen würde eine Fehlermeldung
3066 in der Log-Datei hervorrufen. Das ist ein sehr
3067 häufiger Fehler, der wohl auch Ihnen früher
3068 oder später unterläuft. Sie können das fertige
3069 Beispiel am Ende des Abschnittes kopieren und die
3070 Klammern entfernen, um zu sehen, wie die
3071 Fehlermeldung aussehen kann, die Sie in solch
3072 einem Fall erhalten würden.
3075 << % PianoStaff and Pedal Staff must be simultaneous
3077 \new Staff = "ManualOne" <<
3078 \new Voice @{ \ManualOneVoiceOneMusic @}
3079 \new Voice @{ \ManualOneVoiceTwoMusic @}
3080 >> % end ManualOne Staff context
3081 \new Staff = "ManualTwo" <<
3082 \new Voice @{ \ManualTwoMusic @}
3083 >> % end ManualTwo Staff context
3084 >> % end PianoStaff context
3085 \new Staff = "PedalOrgan" <<
3086 \new Voice @{ \PedalOrganMusic @}
3091 Es ist nicht notwendig, die simultane Konstruktion
3092 @code{<< .. >>} innerhalb des zweiten Manualsystems
3093 und des Pedalsystems zu benutzen, denn sie enthalten
3094 nur eine Stimme. Andererseits schadet es nichts, sie
3095 zu schreiben, und es ist eine gute Angewohnheit, immer
3096 die spitzen Klammern nach einem @code{\new Staff} zu
3097 schreiben, wenn mehr als eine Stimme vorkommen könnten.
3098 Für Stimmen (@code{Voice}) dagegengilt genau das
3099 Gegenteil: eine neue Stimme sollte immer von
3100 geschweiften Klammern (@code{@{ .. @}}) gefolgt
3101 werden, falls Sie ihre Noten in mehrere Variable aufteilen,
3102 die nacheinander gesetzt werden sollen.
3104 Fügen wir also diese Struktur zu der @code{\score}-Umgebung
3105 hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
3106 wollen wir die richtigen Schlüssel setzen und die Richtung der
3107 Hälse und Bögen in den Stimmen des oberen Systems
3108 kontrollieren, indem die obere Stimme ein
3109 @code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
3110 erhält. Die Taktart und Tonart werden mit unserer fertigen
3111 Variable @code{\TimeKey} eingefügt.
3115 << % PianoStaff and Pedal Staff must be simultaneous
3117 \new Staff = "ManualOne" <<
3118 \TimeKey % set time signature and key
3120 \new Voice @{ \voiceOne \ManualOneVoiceOneMusic @}
3121 \new Voice @{ \voiceTwo \ManualOneVoiceTwoMusic @}
3122 >> % end ManualOne Staff context
3123 \new Staff = "ManualTwo" <<
3126 \new Voice @{ \ManualTwoMusic @}
3127 >> % end ManualTwo Staff context
3128 >> % end PianoStaff context
3129 \new Staff = "PedalOrgan" <<
3132 \new Voice @{ \PedalOrganMusic @}
3133 >> % end PedalOrgan Staff
3135 @} % end Score context
3138 Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
3139 Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
3140 in einem System sich ändern kann. Jetzt müssen wir nur noch
3141 die Noten einfügen und alle Teile zusammenfügen, indem wir
3142 die Variablen mit einem Backslash in die Partitur einbauen.
3144 @lilypond[quote,verbatim,ragged-right,addversion]
3146 title = "Jesu, meine Freude"
3147 composer = "J S Bach"
3149 TimeKey = { \time 4/4 \key c \minor }
3150 ManualOneVoiceOneMusic = \relative g' {
3151 g4 g f ees | d2 c2 |
3153 ManualOneVoiceTwoMusic = \relative c' {
3154 ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
3155 c c4 b8 c8. g16 c b c d |
3157 ManualTwoMusic = \relative c' {
3158 c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
3159 f ees f d g aes g f ees d e8~ ees16 f ees d |
3161 PedalOrganMusic = \relative c {
3162 r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
3163 r16 g ees f g f g8 c,2 |
3167 << % PianoStaff and Pedal Staff must be simultaneous
3169 \new Staff = "ManualOne" <<
3170 \TimeKey % set time signature and key
3172 \new Voice { \voiceOne \ManualOneVoiceOneMusic }
3173 \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
3174 >> % end ManualOne Staff context
3175 \new Staff = "ManualTwo" <<
3178 \new Voice { \ManualTwoMusic }
3179 >> % end ManualTwo Staff context
3180 >> % end PianoStaff context
3181 \new Staff = "PedalOrgan" <<
3184 \new Voice { \PedalOrganMusic }
3185 >> % end PedalOrgan Staff context
3187 } % end Score context
3191 @node Tipparbeit durch Variablen und Funktionen ersparen
3192 @subsection Tipparbeit durch Variablen und Funktionen ersparen
3193 @translationof Saving typing with variables and functions
3197 Bis jetzt wurde immer derartige Notation vorgestellt:
3199 @lilypond[quote,verbatim,ragged-right]
3200 hornNotes = \relative c'' { c4 b dis c }
3208 Sie können sich vorstellen, dass das etwa für minimalistische
3209 Musik sehr nützlich sein könnte:
3211 @lilypond[quote,verbatim,ragged-right]
3212 fragmentA = \relative c'' { a4 a8. b16 }
3213 fragmentB = \relative c'' { a8. gis16 ees4 }
3214 violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
3222 Diese Variablen (die man auch als Makros oder Benutzer-Befehl
3223 bezeichnet) können jedoch auch für eigene Anpassungen eingesetzt
3226 @c TODO Avoid padtext - not needed with skylining
3227 @lilypond[quote,verbatim,ragged-right]
3228 dolce = \markup{ \italic \bold dolce }
3229 padText = { \once \override TextScript #'padding = #5.0 }
3230 fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p }
3231 violin = \relative c'' {
3233 c4._\dolce b8 a8 g a b |
3235 c4.^"hi there!" d8 e' f g d |
3236 c,4.\fthenp b8 c4 c-. |
3243 \layout{ragged-right=##t}
3247 Derartige Variablen sind offensichtlich sehr nützlich, zu Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu
3248 benutzen, wenn man sie nur einmal benutzen will, denn sie
3249 vereinfachen die Struktur einer Datei sehr stark. Hier das
3250 vorige Beispiel ohne jede Benutzung von Variablen. Es ist
3251 sehr viel schwerer lesbar, besonders die letzte Zeile.
3254 violin = \relative c'' @{
3256 c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
3257 \once \override TextScript #'padding = #5.0
3258 c4.^"hi there!" d8 e' f g d |
3259 c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
3260 \hspace #0.1 \dynamic p @} b8 c4 c-. |
3265 @c TODO Replace the following with a better example -td
3266 @c Skylining handles this correctly without padText
3268 Bisher haben wir vor allem statische Ersetzungen betrachtet:
3269 wenn LilyPond etwa @code{\padText} sieht, wird es ersetzt mit
3270 all dem Code, mit dem wir es definiert haben (also alles,
3271 was sich rechts von @code{padtext=} befindet).
3273 LilyPond kann auch nicht-statische Ersetzungen bewältigen. Man
3274 kann sie sich als Funktionen vorstellen.
3276 @lilypond[quote,verbatim,ragged-right]
3278 #(define-music-function (parser location padding) (number?)
3280 \once \override TextScript #'padding = #$padding
3284 c4^"piu mosso" b a b
3286 c4^"piu mosso" d e f
3288 c4^"piu mosso" fis a g
3292 Die Benutzung von Variablen ist auch eine gute Möglichkeit,
3293 Arbeit zu vermeiden, wenn sich einmal die Syntax von LilyPond
3294 ändern sollte (siehe auch @rprogram{Updating old input files
3296 Wenn man eine einzige Definition hat (wie etwa @code{\dolce}),
3297 die für alle Vorkommen in der Notation eingesetzt wird, muss
3298 man auch nur einmal diese Definition aktualisieren, anstatt
3299 dass man sie in jeder @code{.ly}-Datei einzeln ändern müsste.
3302 @node Partitur und Stimmen
3303 @subsection Partitur und Stimmen
3304 @translationof Scores and parts
3306 In Orchestermusik werden alle Noten zweimal gedruckt. Einmal
3307 in einer Stimme für die Spieler, und einmal ein der Partitur
3308 für den Dirigenten. Variablen können benutzen, um sich doppelte
3309 Arbeit zu ersparen. Die Noten werden nur einmal eingegeben und
3310 in einer Variable abgelegt. Der Inhalt der Variable wird dann
3311 benutzt um sowohl die Stimme als auch die Paritur zu erstellen.
3313 Es bietet sich an, die Noten in einer extra Datei abzulegen.
3314 Nehmen wir an, dass die Datei @file{horn-music.ly} folgende
3315 Noten eines Horn/@/Fagott-Duos enthält:
3318 hornNotes = \relative c @{
3325 Eine Stimme wird also erstellt, indem man folgendes in eine
3329 \include "horn-music.ly"
3331 instrument = "Horn in F"
3335 \transpose f c' \hornNotes
3342 \include "horn-music.ly"
3346 ersetzt den Inhalt von @file{horn-music.ly} an dieser Position
3347 in der Datei, sodass @code{hornNotes} im Folgenden definiert
3348 ist. Der Befehl @code{\transpose f@tie{}c'} zeigt an, dass
3349 das Argument (@code{\hornNotes}) eine Quinte nach oben transponiert
3350 werden soll. Klingendes @code{f} wird als @code{c'}, wie es
3351 die Stimmung eines normalen F-Hornes verlangt. Die Transposition
3352 kann in folgender Notenausgabe gesehen werden:
3354 @lilypond[quote,ragged-right]
3355 \transpose f c' \relative c {
3361 In Ensemblestücken sind manche Stimmen für viele Takte stumm.
3362 Das wird durch eine besondere Pause notiert, die Mehrtaktpause.
3363 Sie wird mit einem großen @code{R} notiert, gefolgt von der
3364 Dauer (@code{1}@tie{}für eine Ganze, @code{2}@tie{}für eine Halbe usw.). Indem man die Dauern multipliziert, kann man auch
3365 längere Dauern erzeugen. Diese Pause etwa dauert drei Takte
3372 Wenn die Stimme gesetzt wird, werden Mehrtaktpausen komprimiert. Das schieht, indem man folgendes in die Datei
3376 \set Score.skipBars = ##t
3380 Dieser Befehl setzt die Eigenschaft @code{skipBars} im
3381 @code{Score}-Kontext auf wahr (@code{##t}). Die Pause und diese Option zu der Musik von oben hinzugefügt, ergibt folgendes
3384 @lilypond[quote,ragged-right]
3385 \transpose f c' \relative c {
3387 \set Score.skipBars = ##t
3393 Die Partitur wird erstellt, indem man alle Noten kombiniert.
3394 Angenommen, die andere Stimme ist in @code{bassoonNotes}
3395 in der Datei @file{bassoon-music.ly} definiert, würde eine
3396 Paritur erstellt mit:
3399 \include "bassoon-music.ly"
3400 \include "horn-music.ly"
3403 \new Staff \hornNotes
3404 \new Staff \bassoonNotes
3411 @lilypond[quote,ragged-right]
3419 r4 d,8 f | gis4 c | b bes |
3420 a8 e f4 | g d | gis f