1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
4 Translation of GIT committish: 3db3697bb5109201192c9cecdd2e4b7a5520421a
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
10 @node Putting it all together
11 @chapter Putting it all together
13 Dieses Kapitel behandelt das allgemeine Konzept von LilyPond
14 und wie man @code{\score}-Blöcke erstellt.
18 * Extending the templates::
19 * How LilyPond files work::
20 * Score is a single musical expression::
21 * An orchestral part::
25 @node Extending the templates
26 @section Extending the templates
28 Wenn Sie das Übungskapitel gelesen haben, wissen Sie, wie man Noten
29 schreibt. Aber wie erhalten Sie genau die Notensysteme, die Sie sich
30 vorstellen? Die Vorlagen sind gut, aber was, wenn Sie etwas anderen
33 Beginnen Sie mit der Vorlage, die am ehesten dem nahe kommt, was Sie als
34 Ergebnis haben wollen. Sagen wir, Sie wollen ein Stück für Sopran und
35 Cello notieren. In diesem Fall beginnen Sie mit
36 @qq{Noten und Text} (für die Sopranstimme).
40 melodie = \relative c' @{
58 \new Lyrics \lyricsto "one" \text
65 Jetzt wollen wir die Cellostimme hinzufügen. Schauen wir uns das
66 @qq{Nur Noten}-Beispiel an:
70 melodie = \relative c' @{
85 Wir brauchen nicht zwei @code{\version}-Befehle. Wir brauchen den
86 @code{melodie}-Abschnitt. Wir brauchen keine zwei
87 @code{\score}-Abschnitte,
88 denn damit würden wir ja zwei voneinander getrennte Notensysteme
89 erhalten. Wir wollen sie aber zusammen, als Duo. Innerhalb eines
90 @code{\score}-Abschnittes brauchen wir auch nicht zweimal
91 @code{\layout} und @code{\midi}.
93 Kopieren wir aber nur den @code{melodie}-Abschnitt, hätte wir zwei
94 @code{melodie}-Abschnitte. Also nennen wir diesen Bezeichner anders.
95 Die Noten für den Sopran nennen wir @code{sopranNoten}, die Noten
96 für das Cello @code{celloNoten}. Gleichzeitig können wir auch noch
97 den Abschnitt @code{text} in @code{sopranText} umbenennen. Es ist
98 wichtig, beide Befehle umzubenennen, einmal die Definition (also den
99 @code{melodie = \relative c' @{ }-Teil), zweitens die Anwendung des
100 Namens in der Partitur (also in dem @code{\score}-Abschnitt).
102 Während wir hier diese Änderungen vornehmen, können wir auch gleich
103 das Cello-System anpassen -- Celli brauchen im Normalfall den
105 Wir setzen hier auch ein paar andere Noten für das Cello.
110 sopranNoten = \relative c' @{
118 sopranText = \lyricmode @{
122 celloNoten = \relative c @{
132 \new Voice = "one" @{
136 \new Lyrics \lyricsto "one" \sopranText
143 Das sieht schon ganz gut aus, aber das Cello-System erscheint noch
144 nicht in der Partitur. Wir haben den Bezeichner ja auch nicht im
145 @code{\score}-Abschnitt benutzt. Wenn wir wollen, dass die Noten
146 auch gedruckt werden, müssen wir noch
149 \new Staff \celloNoten
153 unter dem Sopran-System einfügen. Wir müssen auch die Zeichen
154 @code{<<} und unter der Musik dann die Zeichen @code{>>} einfügen,
155 denn dadurch wird LilyPond
156 mitgeteilt, dass mehrere Ausdrücke (hier unsere zwei Systeme
158 gleichzeitig gesetzt werden sollen. Der @code{\score}-Abschnitt
165 \new Voice = "one" @{
169 \new Lyrics \lyricsto "one" \sopranText
171 \new Staff \celloNoten
179 Das sieht noch etwas durcheinander aus, die Einzüge sind in
180 Unordnung geraden. Aber das ist einfach wieder hergestellt. Hier die
181 vollständige Vorlage für Sopran und Cello:
183 @lilypond[quote,verbatim,ragged-right]
185 sopranoMusic = \relative c' {
193 sopranoLyrics = \lyricmode {
197 celloMusic = \relative c {
212 \new Lyrics \lyricsto "one" \sopranoLyrics
214 \new Staff \celloMusic
223 @node How LilyPond files work
224 @section How LilyPond files work
226 Das LilyPond Eingabeformat hat eine ziemlich freie Form, so dass
227 für erfahrene Benutzer viel Freiheit besteht, die Struktur ihrer
228 Quelldateien anzulegen. Für Neulinge kann diese Flexibilität aber
229 erst einmal verwirrend sein. In diesem Kapitel soll darum ein Teil
230 dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung
231 auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats
232 siehe @ref{File structure}.
234 Die meisten Beispiele in diesem Handbuch sind kleine Schnipsel, wie
241 Wie hoffentlich bekannt ist, lässt sich solch ein Schnipsel nicht
242 in dieser Form übersetzen. Diese Beispiele sind also nur Kurzformen
243 von wirklichen Beispielen. Sie müssen wenigstens zusätzlich in
244 geschweifte Klammern gesetzt werden.
252 Die meisten Beispiele benutzen auch den @code{\relative c'}-Befehl.
253 Der ist nicht nötig, um die Dateien zu übersetzen, aber in den meisten
254 Fällen sieht der Notensatz seltsam aus, wenn man den Befehl
257 @lilypond[quote,fragment,ragged-right,verbatim]
263 Jetzt kommt noch eine Ebene dazu: LilyPond-Code in der obigen Form
264 ist in Wirklichkeit auch wieder eine Abkürzung. Auch wenn man so
265 Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt
266 der wirkliche Code, der hier gemeint ist, eigentlich:
276 Eine Partitur (@code{\score}) muss immer mit einem musikalischen Ausdruck
277 beginnen. Das ist letztendlich alle Musik, angefangen bei einer
279 Note bis hin zu einer riesigen Partitur mit vielen Notensystemen
280 (bezeichnet durch @code{GrandStaff}):
285 hier die gesamte Partitur
291 Da sich alles innerhalb der geschweiften Klammern @code{@{ ... @}}
292 befindet, wird es wie ein einziger musikalischer Ausdruck behandelt.
295 Ein @code{\score} auch andere Dinge enthalten, wie etwa
307 Viele setzen einige dieser Befehle außerhalb des
308 @code{\score}-Blocks, zum Beispiel wird der @code{\header}
309 sehr oft oberhalb der @code{\score}-Umgebung gesetzt. Das
310 funktioniert genauso gut.
315 Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen.
316 Alle Vorlagen verwenden diese Möglichkeit.
319 melodie = \relative c' @{
328 Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
329 von @code{melodie} (alles, was nach dem Gleichheitszeichen
330 kommt) und fügt ihn immer dann ein, wenn ein @code{\melodie}
331 vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
332 gut @code{melodie}, @code{GLOBAL},
333 @code{rechteHandklavier}, oder @code{foofoobarbaz} heißen. Für mehr
335 @ref{Saving typing with identifiers and functions}.
337 Eine komplette Definition des Eingabeformats findet sich
338 im Kapitel @ref{File structure}.
341 @node Score is a single musical expression
342 @section Score is a single musical expression
344 Im vorigen Kapitel, @ref{How LilyPond files work},
345 wurde die allgemeine Struktur einer LilyPond-Quelldatei
346 beschrieben. Aber anscheinend haben wir die wichtigste
347 Frage ausgelassen, nämlich wie man herausfindet, was nach
348 dem @code{\score} geschrieben werden soll.
350 In Wirklichkeit ist das aber gar kein Geheimnis. Diese
351 Zeile ist die Antwort:
355 @emph{Eine Partitur fängt immer mit @code{\score} an, gefolgt
356 von einem einzelnen musikalischen Ausdruck.}
360 Vielleicht wollen Sie noch einmal
361 @ref{Music expressions explained} überfliegen. In diesem
362 Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke
363 aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
364 verbunden werden usw. Jetzt gehen wir aber in die andere Richtung
365 und betrachten, wie sich ein großer musikalischer Ausdruck
370 @{ % diese Klammer startet den großen mus. Ausdruck
372 hier eine ganze Wagner-Oper einfügen
374 @} % diese Klammer beendet den Ausdruck
379 Eine Wagner-Oper ist mindestens doppelt so lang wie dieses Handbuch,
380 beschränken wir uns also auf einen Sänger und Klavier. Wir brauchen
381 keine Orchesterpartitur (@code{GrandStaff}) dafür, darum lassen wir
382 den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier.
388 \new Staff = "Sänger" <<
390 \new PianoStaff = Klavier <<
398 Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig
399 gesetzt; wir wollen ja auch Klavier- und Sängerstimme gleichzeitig
406 \new Staff = "Sänger" <<
407 \new Voice = "vocal" @{ @}
409 \new Lyrics \lyricsto vocal \new Lyrics @{ @}
410 \new PianoStaff = "piano" <<
411 \new Staff = "upper" @{ @}
412 \new Staff = "lower" @{ @}
420 Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
421 für einen Sänger, in dem sich wieder eine Stimme (engl. voice)
422 befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
423 gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
424 werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new
425 PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
426 durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der
427 dann wiederum zwei eigene Systeme ("upper" für die rechte Hand und
429 für die linke) erstellt werden.
431 Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
433 Klammern neben @code{\new Voice = vocal} könnte man
442 @noindent schreiben. Aber wenn man seine Datei so direkt schreibt, wird
443 der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu
444 verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
445 (oder Variablen) zu verwenden.
456 \new Staff = "Sänger" <<
457 \new Voice = "vocal" @{ \melodie @}
459 \new Lyrics \lyricsto vocal \new Lyrics @{ \text @}
460 \new PianoStaff = "piano" <<
461 \new Staff = "upper" @{ \upper @}
462 \new Staff = "lower" @{ \lower @}
471 Nochmal: der Bezeichner kann aller möglicher Text sein. Die
472 Einschränkungen sind in
473 @ref{File structure} genau aufgelistet.
475 Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung
476 sollte man langsam und sorgfältig vorgehen. Am besten fängt
477 man mit dem größten Gebilde an und definiert dann die darin
478 enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
479 genau mit den Einzügen zu sein, so dass jede Zeile, die
480 der gleichen Ebene angehört, wirklich horizontal an der
481 gleichen Stelle beginnt.
489 @node An orchestral part
490 @section An orchestral part
492 Orchesternoten werden alle zweimal gesetzt. Erstens als Stimmen für
493 die Musiker, und dann als große Partitur für den Dirigenten. Mit
495 kann hier doppelte Arbeit erspart werden. Die Musik muss nur einmal
496 eingegeben werden und wird in einer Variable abgelegt. Der Inhalt
498 Variable wird dann benutzt, um sowohl die Stimme als auch die Partitur
501 Es bietet sich an, die Noten in eigenen Dateien zu speichern. Sagen wir
502 beispielsweise, dass in der Datei @file{Horn-Noten.ly} die folgenden
503 Noten eines Duetts für Horn und Fagott gespeichert sind:
506 HornNoten = \relative c @{
513 Daraus wird dann eine eigene Stimme gemacht, indem folgende Datei
518 \include "Horn-Noten.ly"
520 instrument = "Horn in F"
524 \transpose f c' \HornNoten
531 \include "Horn-Noten.ly"
535 setzt den Inhalt der Datei @file{Horn-Noten.ly} an die Stelle des
536 Befehls in die aktuelle Datei. Damit besteht also eine Definition
537 für @code{HornNoten}, so dass die Variable verwendet werden kann.
538 Der Befehl @code{\transpose f@tie{}c'} zeigt an, dass das Argument,
539 also @code{\HornNoten}, um eine Quinte nach oben transponiert wird.
540 Klingendes @q{f} wird also als @code{c'} notiert. Das entspricht
541 der Notation eines Waldhorn in F. Die Transposition zeigt die folgende
544 @lilypond[quote,ragged-right]
545 \transpose f c' \relative c {
551 In Musik für mehrere Instrumente kommt es oft vor, dass eine Stimme
552 für mehrere Takte nicht spielt. Das wird mit einer besonderen Pause
553 angezeigt, dem Pausenzeichen für mehrere Takte (engl. multi-measure
554 rest). Sie wird mit dem @emph{großen} Buchstaben @samp{R} eingegeben,
555 gefolgt von einer Dauer (@code{1}@tie{}für eine Ganze, @code{2}@tie{}
556 für eine Halbe usw.). Indem man die Dauer multipliziert, können längere
557 Pausen erstellt werden. Z. B. dauert diese Pause drei Takte eines
564 Wenn die Stimme gedruckt wird, müssen diese Pausen zusammengezogen
566 Das wird durch eine Variable erreicht:
569 \set Score.skipBars = ##t
573 Dieser Befehl setzt die Eigenschaft des @code{skipBars} (@qq{überspringe
574 Takte}) auf wahr (@code{##t}). Wenn diese Option und die Pause
575 zu der Musik des Beispiels gesetzt wird, erhält man folgendes Ergebnis:
577 @lilypond[quote,ragged-right]
578 \transpose f c' \relative c {
580 \set Score.skipBars = ##t
586 Die Partitur wird erstellt, indem alle Noten zusammengesetzt werden.
587 Angenommen, die andere Stimme trägt den Namen @code{FagottNoten}
588 und ist in der Datei @file{Fagott-Noten.ly} gespeichert. Die
589 Partitur sieht dann folgendermaßen aus:
592 \include "Fagott-Noten.ly"
593 \include "Horn-Noten.ly"
596 \new Staff \HornNoten
597 \new Staff \FagottNoten
602 Und mit LilyPond übersetzt:
604 @lilypond[quote,ragged-right]
612 r4 d,8 f | gis4 c | b bes |
613 a8 e f4 | g d | gis f
618 Tiefer gehende Information darüber, wie Stimmauszüge und Partituren
619 erstellt werden, finden sich im Notationshandbuch, siehe
620 @ref{Orchestral music}.
622 Das Setzen der Variablen, die das Verhalten von LilyPond beeinflussen
623 (@q{properties}), wird im Kapitel
624 @ref{Changing context properties on the fly} besprochen.