1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2 @c This file is part of lilypond-learning.tely
4 Translation of GIT committish: a8c28adaf60e575fa101c93b4fda7557741bfb86
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
11 @c Translators: Till Rettig, Reinhold Kainhofer
13 @node Fundamental concepts
14 @chapter Fundamental concepts
16 Nachdem im Tutorial gezeigt wurde, wie aus einfachen Text-Dateien
17 wunderschön formatierte Musiknoten erzeugt werden können, stellt
18 dieses Kapitel die Konzepte und Techniken vor, wie auch komplexere
19 Partituren erstellt werden können.
22 * How LilyPond files work::
23 * Voices contain music::
24 * Contexts and engravers::
25 * Extending the templates::
28 @node How LilyPond files work
29 @section How LilyPond files work
31 Das LilyPond Eingabeformat hat eine ziemlich freie Form, so dass
32 für erfahrene Benutzer viel Freiheit besteht, die Struktur ihrer
33 Quelldateien anzulegen. Für Neulinge kann diese Flexibilität aber
34 erst einmal verwirrend sein. In diesem Kapitel soll darum ein Teil
35 dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung
36 auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats
37 siehe @ruser{File structure}.
39 Die meisten Beispiele in diesem Handbuch sind kleine Schnipsel, wie
46 Wie hoffentlich bekannt ist, lässt sich solch ein Schnipsel nicht
47 in dieser Form übersetzen. Diese Beispiele sind also nur Kurzformen
48 von wirklichen Beispielen. Sie müssen wenigstens zusätzlich in
49 geschweifte Klammern gesetzt werden.
57 Die meisten Beispiele benutzen auch den @code{\relative c'}-Befehl.
58 Der ist nicht nötig, um die Dateien zu übersetzen, aber in den meisten
59 Fällen sieht der Notensatz seltsam aus, wenn man den Befehl
62 @lilypond[quote,fragment,ragged-right,verbatim]
68 Eine komplette Definition des Eingabeformats findet sich
69 im Kapitel @ruser{File structure}.
72 * Introduction to the LilyPond file structure::
73 * Score is a (single) compound musical expression::
74 * Nesting music expressions::
75 * On the un-nestedness of brackets and ties::
78 @node Introduction to the LilyPond file structure
79 @subsection Introduction to the LilyPond file structure
84 Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet:
87 \version @w{"@version{}"}
90 @var{...zusammengesetzter Musik-Austruck...} % Die gesamte Musik kommt hier!
97 Aufgrund der Flexibilität von LilyPond gibt es viele Variationen dieses
98 Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt.
105 Bisher hat noch keines der Beispiele den @code{\score@{@}}-Befehl
106 benutzt, da Lilypond derartige zusätzliche Befehle automatisch
107 bei Bedarf einfügt, wenn die Eingabedatei eine einfache Struktur
110 Sehen wir uns als ein solches einfaches Beispiel an:
119 Im Hintergrund kommen hier noch einige Ebenen dazu: LilyPond-Code
120 in der obigen Form ist in Wirklichkeit eine Abkürzung. Auch wenn man so
121 Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt
122 der vollständige Code, der hier gemeint ist, eigentlich:
140 Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
141 enthält, wird LilyPond die Datei so interpretieren, als ob dieser
142 Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige
143 Stuktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt,
144 ohne dass der Benutzer davon etwas bemerkt.
146 @cindex implicit contexts
148 @strong{Ein Wort der Warnung ist jedoch angebracht!} Viele der Beispiele
149 in der Dokumentation von LilyPond lassen die @code{\new Staff} und @code{\new Voice}
150 Befehle zur Erzeugung einer Notenzeile und einer Stimme (beides ist in
151 LilyPond ein sogenannter Kontext) bewusst aus,
152 damit sie implizit von LilyPond im Speicher erzeugt werden.
153 Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für
154 komplexere Partituren können dadurch aber unerwartete Ergebnisse
155 entstehen, teilweise sogar unerwartete leere Notenzeilen. Um
156 die entsprechenden Kontexte in diesem Fall explizit zu erzeugen,
157 siehe @ref{Contexts and engravers}.
159 @warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden,
160 empfielt es sich, die Notenzeilen und die Stimmen immer explizit
161 mit @code{\new Staff} und @code{\new Voice} zu erzeugen.}
163 Im Moment wollen wir aber zu unserem ersten Beispiel zurückkehren und
164 nur den @code{\score}-Befehl näher betrachten.
166 Eine Partitur (@code{\score}) muss immer mit einem musikalischen Ausdruck
167 beginnen. Das ist letztendlich alle Musik, angefangen bei einer
169 Note bis hin zu einer riesigen Partitur mit vielen Notensystemen
170 (bezeichnet durch @code{GrandStaff}):
175 @var{...hier die gesamte Partitur...}
181 Da sich alles innerhalb der geschweiften Klammern @code{@{ ... @}}
182 befindet, wird es wie ein einziger musikalischer Ausdruck behandelt.
185 Ein @code{\score} auch andere Dinge enthalten, wie etwa
206 Wie man sieht sind die drei Befehle @code{\header}, @code{\layout} und
207 @code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen,
208 die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck
209 und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
210 sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb plaziert
211 werden. Tatsächlich werden einige dieser Befehle meist außerhalb des
212 @code{\score}-Blocksgesetzt, zum Beispiel findet sich der @code{\header}
213 sehr oft oberhalb der @code{\score}-Umgebung. Das
214 funktioniert genauso gut.
217 Zwei bisher noch nicht aufgetauchte Befehle sind
218 @code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer
219 Datei vorkommen, führt dies dazu, dass Lilypond eine druckfähige PDF-Datei
220 bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im
221 Benutzerhandbuch -- @ruser{Score layout}, and
222 @ruser{Creating MIDI files}.
224 @cindex Partituren, mehrfache
226 Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten.
227 Jeder davon wird als eigenständige Partitur interpretiert, die
228 allerdings alle in dieselbe Ausgabedatei plaziert weden.
229 Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird
230 implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer
231 einzigen @code{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
232 dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
233 gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
238 Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
239 PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
240 setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen
241 impliziten @code{\book}-Blocks.
243 Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück
244 innerhalb des @code{\book}-Blocks.
246 Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
247 @code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein
248 @code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf
249 diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block
250 außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit
251 erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf
252 alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks.
254 Nähere Details finden sich im Abschnitt @ruser{Multiple scores in a book}.
260 Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen.
261 Alle Vorlagen verwenden diese Möglichkeit.
264 melodie = \relative c' @{
273 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
274 von @code{melodie} (alles nach dem Gleichheitszeichen) und
275 fügt ihn immer dann ein, wenn ein @code{\melodie}
276 vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
277 gut @code{melodie}, @code{GLOBAL},
278 @code{rechteHandklavier}, oder @code{foofoobarbaz} heißen. Für mehr
280 @ref{Saving typing with variables and functions}.
281 Als Variablenname kann fast jeder beliebige Name benutzt werden,
282 allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche,
283 Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl
284 lauten. Die genauen Einschränkungen sind beschrieben in
285 @ruser{File structure}.
289 Eine vollständige Definition des Eingabeformats findet sich in
290 @ruser{File structure}.
294 @node Score is a (single) compound musical expression
295 @subsection Score is a (single) compound musical expression
301 @cindex zusammengesetzter Musikausdruck
302 @cindex Musikausdruck, zusammengesetzter
305 Im vorigen Kapitel, @ref{Introduction to the LilyPond file structure},
306 wurde die allgemeine Struktur einer LilyPond-Quelldatei
307 beschrieben. Aber anscheinend haben wir die wichtigste
308 Frage ausgelassen, nämlich wie man herausfindet, was nach
309 dem @code{\score} geschrieben werden soll.
311 In Wirklichkeit ist das aber gar kein Geheimnis. Diese
312 Zeile ist die Antwort:
316 @emph{Eine Partitur fängt immer mit @code{\score} an, gefolgt
317 von einem einzelnen musikalischen Ausdruck.}
321 Vielleicht wollen Sie noch einmal
322 @ref{Music expressions explained} überfliegen. In diesem
323 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke
324 aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
325 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung
326 und betrachten, wie sich ein großer musikalischer Ausdruck
331 @{ % diese Klammer startet den großen mus. Ausdruck
333 @var{...hier eine ganze Wagner-Oper einfügen...}
335 @} % diese Klammer beendet den Ausdruck
340 Eine Wagner-Oper ist mindestens doppelt so lang wie dieses Handbuch,
341 beschränken wir uns also auf einen Sänger und Klavier. Wir brauchen
342 keine Orchesterpartitur (@code{GrandStaff}) dafür, darum lassen wir
343 den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier.
349 \new Staff = "Sänger" <<
351 \new PianoStaff = Klavier <<
359 Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig
360 gesetzt; wir wollen ja auch Klavier- und Sängerstimme gleichzeitig
361 und nicht hintereinander haben. Bei genauerem Hinsehen fällt auf, dass
362 die @code{<< ... >>}-Konstruktion für die Notenzeile des Sängers eigentlich
363 nicht unbedingt nötig wäre, da sie ja nur einen (sequenzielle) musikalischen
364 Ausdruck enthält, nämlich alle Noten des Sängers hintereinander. Daher
365 könnte an sich auch einfach ein @code{@{...@}} benutzt werden. Die
366 Spitzklammern sind allerdings notwendig, sobald die Notenzeile mehrere
367 parallelle Ausdrücke -- wie etwa zwei parallele Stimmen oder eine Stimme
368 mit zugehörigem Text -- enthält.
369 Wir werden die Musik später in das Beispiel einfügen, im Moment begnügen
370 wir uns mit einigen Platzhalter-Noten und -Texten.
372 @lilypond[verbatim,quote,ragged-right]
375 \new Staff = "Sänger" <<
376 \new Voice = "Singstimme" { c'1 }
379 \new PianoStaff = "Klavier" <<
380 \new Staff = "oben" { }
381 \new Staff = "unten" { }
388 Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
389 für einen Sänger, in dem sich wieder eine Stimme (engl. voice)
390 befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
391 gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
392 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new
393 PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
394 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der
395 dann wiederum zwei eigene Systeme ("upper" für die rechte Hand und
397 für die linke) erstellt werden.
399 Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
401 Klammern neben @code{\new Voice = vocal} könnte man
410 @noindent schreiben. Aber wenn man seine Datei so direkt schreibt, wird
411 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu
412 verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
413 (oder Variablen) zu verwenden.
416 @lilypond[verbatim,quote,ragged-right]
417 melodie = \relative c'' { r4 d8\noBeam g, c4 r }
418 text = \lyricmode { And God said, }
419 oben = \relative c'' { <g d g,>2~ <g d g,> }
420 unten = \relative c { b2 e2 }
424 \new Staff = "Sänger" <<
425 \new Voice = "Singstimme" { \melodie }
428 \new PianoStaff = "Klavier" <<
429 \new Staff = "oben" { \oben }
430 \new Staff = "unten" {
440 Achten Sie auf den Unterschied zwischen Noten, die mit @code{\relative}
441 oder direkt in einem musikalischen Ausruck eingegeben werden, und
442 dem Text des Lieds, der innerhalb @code{\lyricmode} angegeben
443 werden muss. Diese Unterscheidung ist für LilyPond essentiell,
444 um zu entscheiden, ob der folgende Inhalt als Musik oder Text
445 interpretiert werden soll. Wie könnte LilyPond sonst entscheiden,
446 ob @code{@{a b c@}} die drei Noten a, b und c darstellen soll oder
447 den Text eines Lieds über das Alphabet!
449 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung
450 sollte man langsam und sorgfältig vorgehen. Am besten fängt
451 man mit dem größten Gebilde an und definiert dann die darin
452 enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
453 genau mit den Einzügen zu sein, so dass jede Zeile, die
454 der gleichen Ebene angehört, wirklich horizontal an der
455 gleichen Stelle beginnt.
459 Benutzerhandbuch: @ruser{Structure of a score}.
462 @node Nesting music expressions
463 @subsection Nesting music expressions
465 @cindex Notenzeilen, temporäre
468 Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleib
469 zu Beginn erzeugt werden -- sie können auch zu einem späteren
470 Zeitpunkt eingeführt weden. Das ist vor allem nützlichm um
471 @rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kures Beispiel,
472 wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt
475 @lilypond[verbatim,quote,ragged-right]
492 Wie man sieht ist die Größe des Notenschlüssels dieselbe wie sie
493 auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
494 der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
495 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
497 @cindex Notenzeile, Positionierung
499 Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
502 @lilypond[verbatim,quote,ragged-right]
503 \new Staff = "Hauptzeile" {
510 alignAboveContext = "Hauptzeile" }
518 Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
519 genauer erklärt wird. Damit kann das Standardverhalten einer
520 einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
521 dass die neue Notenzeile oberhalb der bereits existierenden Zeile
522 mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt
523 standardmäßig unterhalb.
527 Ossia werden oft ohne Notenschlüssel und Taktangabe gedruck, meist
528 auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich
529 auch in LilyPond möglich, benötigt aber Befehle, die bisher noch
530 nicht vorgestellt wurden. Siehe @ref{Size of objects}
531 und @ruser{Ossia staves}.
534 @node On the un-nestedness of brackets and ties
535 @subsection On the un-nestedness of brackets and ties
537 @cindex Klammern, geschachtelt
538 @cindex Schachtelung von Klammern
540 Sie haben bisher zahlreiche verschiedene Arten von Klammern
541 beim Schreiben von Musik mit LilyPond kennengelernt. Diese
542 folgen verschiedenen Regeln, die zu Beginn vielleicht
543 verwirrend wirken. Bevor die genauen Regeln vorgestellt werden,
544 wollen wir die diversen Klammerarten kurz rekapitulieren:
546 @c attempt to force this onto a new page
548 @multitable @columnfractions .3 .7
551 @item @code{@{ .. @}}
552 @tab Umschließt ein sequenzielles Musiksegment
554 @tab Umschließt die Noten eines Akkords
555 @item @code{<< .. >>}
556 @tab Umschließt parallele Musikausdrücke
558 @tab Markiert den Beginn und das Ende eines Haltebogens
559 @item @code{\( .. \)}
560 @tab Markiert den Beginn und das Ende eines Phasierungsbogens
562 @tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
566 Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
567 erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
568 Haltebögen (durch eine Tilde @code{~} markiert),
569 Triolen (als @code{\times x/y @{..@}} geschrieben) und
570 Vorschlagnoten (als @code{\grace@{..@}} notiert).
572 Außerhalb von LilyPond fordert die übliche Benutzung von
573 Klammern, dass die entsprechenden Arten korrekt verschachtelt
574 werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die
575 schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
576 wie die öffnenden Klammern vor. Dies ist auch in LilyPond
577 ein @strong{Muss} für die drei Klammerarten, die in obiger
578 Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie
579 müssen korrekt geschachtelt werden.
580 Die restlichen Klammerarten (durch @q{Markiert} beschrieben),
581 die Haltebögen und die Triolen brauchen jedoch mit den
582 anderen Klammerarten @strong{nicht} unbedingt korrekt
583 geschachtelt werden. Tatsächlich sind sie auch keine Klammern
584 in dem Sinn, dass sie etwas umschließen, sondern viel mehr
585 Indikatoren, an welcher Stelle ein bestimmtes musikalisches
586 Objekt beginnt oder endet.
588 So kann also z.B. einen Phrasierungsbogen vor einem manuellen
589 Balken beginn, jedoch schon vor dem Ende des Balkens enden.
590 Dies mag zwar musikalisch wenig Sinn ergeben, ist aber in LilyPond
593 @lilypond[quote,verbatim,fragment,ragged-right,relative=2]
594 { g8\( a b[ c b\) a] }
597 Im Allgemeinen können die verschiedenen Klammerarten, Haltebögen,
598 Triolen und Vorschlagnoten beliebig kombiniert werden.
599 Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht
600 (Zeile 1), eine Bindebogen, der ebenfalls in eine Triole
601 reicht (Zeile 2), einen Balken und einen Bindeboden in eine Triole,
602 ein Haltebogen, der über zwei Triolen läuft, sowie einen
603 Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4).
605 @lilypond[quote,verbatim,fragment,ragged-right]
607 r16[ g16 \times 2/3 {r16 e'8] }
608 g16( a \times 2/3 {b d) e' }
609 g8[( a \times 2/3 {b d') e'~]}
610 \times 4/5 {e'32\( a b d' e'} a'4.\)
615 @node Voices contain music
616 @section Voices contain music
621 * I'm hearing Voices::
622 * Explicitly instantiating voices::
623 * Voices and vocals::
625 @node I'm hearing Voices
626 @subsection I'm hearing Voices
630 @node Explicitly instantiating voices
631 @subsection Explicitly instantiating voices
633 @c TODO: Move from simultaneous.itely
636 @node Voices and vocals
637 @subsection Voices and vocals
641 @node Contexts and engravers
642 @section Contexts and engravers
647 * Contexts explained::
648 * Creating contexts::
649 * Engravers explained::
650 * Modifying context properties::
651 * Adding and removing engravers::
654 @node Contexts explained
655 @subsection Contexts explained
659 @node Creating contexts
660 @subsection Creating contexts
664 @node Engravers explained
665 @subsection Engravers explained
669 @node Modifying context properties
670 @subsection Modifying context properties
674 @node Adding and removing engravers
675 @subsection Adding and removing engravers
679 @node Extending the templates
680 @section Extending the templates
685 * Soprano and cello::
686 * Four-part SATB vocal score::
687 * Building a score from scratch::
690 @node Soprano and cello
691 @subsection Soprano and cello
695 @node Four-part SATB vocal score
696 @subsection Four-part SATB vocal score
700 @node Building a score from scratch
701 @subsection Building a score from scratch