@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: 598a7ff07bb4752ea9169e592e3369016f014b57
+ Translation of GIT committish: 3a8542af9f54c99b53374328af0d5d87005ca49e
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
Das LilyPond Eingabeformat hat eine ziemlich freie Form, so dass
für erfahrene Benutzer viel Freiheit besteht, die Struktur ihrer
-Quelldateien anzulegen. Für Neulinge kann diese Flexibilität aber
-erst einmal verwirrend sein. In diesem Kapitel soll darum ein Teil
+Quelldateien anzulegen. Für Neulinge kann diese Flexibilität aber
+erst einmal verwirrend sein. In diesem Kapitel soll darum ein Teil
dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung
-auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats
+auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats
siehe @ruser{File structure}.
Die meisten Beispiele in diesem Handbuch sind kleine Schnipsel, wie
@end example
Wie hoffentlich bekannt ist, lässt sich solch ein Schnipsel nicht
-in dieser Form übersetzen. Diese Beispiele sind also nur Kurzformen
-von wirklichen Beispielen. Sie müssen wenigstens zusätzlich in
+in dieser Form übersetzen. Diese Beispiele sind also nur Kurzformen
+von wirklichen Beispielen. Sie müssen wenigstens zusätzlich in
geschweifte Klammern gesetzt werden.
@example
@cindex Eingabeformat
@cindex Dateistruktur
+@cindex Struktur, Datei
Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet:
\version @w{"@version{}"}
\header @{ @}
\score @{
- @var{...zusammengesetzter Musik-Ausdruck...} % Die gesamte Musik kommt hier!
+ @var{...zusammengesetzter Musik-Ausdruck...} % Die gesamten Noten kommen hier hin!
\layout @{ @}
\midi @{ @}
@}
@funindex \book
@funindex \score
+@funindex book
+@funindex score
@cindex book
@cindex score
@noindent
Im Hintergrund kommen hier noch einige Ebenen dazu: LilyPond-Code
-in der obigen Form ist in Wirklichkeit eine Abkürzung. Auch wenn man so
+in der obigen Form ist in Wirklichkeit eine Abkürzung. Auch wenn man so
Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt
der vollständige Code, der hier gemeint ist, eigentlich:
@end example
@noindent
-Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
+Mit anderen Worten: Wenn die Eingabedatei einen einfachen Musik-Ausdruck
enthält, wird LilyPond die Datei so interpretieren, als ob dieser
-Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige
+Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige
Stuktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt,
ohne dass der Benutzer davon etwas bemerkt.
@cindex Implizite Kontexte
+@cindex Kontexte, implizit
@strong{Ein Wort der Warnung ist jedoch angebracht!} Viele der Beispiele
in der Dokumentation von LilyPond lassen die @code{\new Staff} und @code{\new Voice}
damit sie implizit von LilyPond im Speicher erzeugt werden.
Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für
komplexere Partituren können dadurch aber unerwartete Ergebnisse
-entstehen, teilweise sogar unerwartete leere Notenzeilen. Um
-die entsprechenden Kontexte in diesem Fall explizit zu erzeugen,
+entstehen, teilweise sogar unerwartete leere Notenzeilen. Um
+die entsprechenden Kontexte in diesem Fall explizit zu erzeugen,
siehe @ref{Contexts and engravers}.
@warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden,
nur den @code{\score}-Befehl näher betrachten.
Eine Partitur (@code{\score}) muss immer mit einem musikalischen Ausdruck
-beginnen. Das ist letztendlich alle Musik, angefangen bei einer
+beginnen. Das ist letztendlich alle Musik, angefangen bei einer
einzelnen
Note bis hin zu einer riesigen Partitur mit vielen Notensystemen
(bezeichnet durch @code{GrandStaff}):
@funindex \header
@funindex \layout
@funindex \midi
+@funindex header
+@funindex layout
+@funindex midi
@cindex header
@cindex midi
@cindex Layout
@cindex Kopfzeile
@noindent
-
-@noindent
-Wie man sieht sind die drei Befehle @code{\header}, @code{\layout} und
+Wie man sieht, sind die drei Befehle @code{\header}, @code{\layout} und
@code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen,
die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck
-und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
+und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie
sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb plaziert
-werden. Tatsächlich werden einige dieser Befehle meist außerhalb des
+werden. Tatsächlich werden einige dieser Befehle meist außerhalb des
@code{\score}-Blocksgesetzt, zum Beispiel findet sich der @code{\header}
-sehr oft oberhalb der @code{\score}-Umgebung. Das
+sehr oft oberhalb der @code{\score}-Umgebung. Das
funktioniert genauso gut.
-
Zwei bisher noch nicht aufgetauchte Befehle sind
-@code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer
+@code{\layout @{ @}} und @code{\midi @{@}}. Wenn sie in einer
Datei vorkommen, führt dies dazu, dass Lilypond eine druckfähige PDF-Datei
-bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im
+bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im
Benutzerhandbuch -- @ruser{Score layout} und
@ruser{Creating MIDI files}.
@cindex Partituren, mehrfache
+@cindex book-Abschnitte, implizit
+@cindex implizite book-Umgebung
+@funindex \book
+@funindex book
Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten.
Jeder davon wird als eigenständige Partitur interpretiert, die
allerdings alle in dieselbe Ausgabedatei plaziert weden.
Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird
-implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer
+implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer
einzigen @code{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll,
dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block
gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine
Zusammenfassung:
Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine
-PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
+PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben,
setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen
impliziten @code{\book}-Blocks.
Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück
innerhalb des @code{\book}-Blocks.
+@cindex Layout-Umgebung, Platzierung
+@cindex Platzierung von layout-Umgebung
+
Jeder @code{\layout}-Block wirkt sich auf den @code{\score}- oder
-@code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein
+@code{\book}-Block aus, in dem er auftritt. So wirkt z.B. ein
@code{\layout}-Block innerhalb eines @code{\score}-Blocks nur auf
diesen einen Block und seinen gesamten Inhalt, ein @code{\layout}-Block
außerhalb eines @code{\score}-Blocks (und daher innerhalb des implizit
Nähere Details finden sich im Abschnitt @ruser{Multiple scores in a book}.
-
@cindex Variablen
@cindex Bezeichner
Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt
von @code{melodie} (alles nach dem Gleichheitszeichen) und
fügt ihn immer dann ein, wenn ein @code{\melodie}
-vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
+vorkommt. Die Namen sind frei wählbar, die Variable kann genauso
gut @code{melodie}, @code{GLOBAL},
-@code{rechteHandklavier}, oder @code{foofoobarbaz} heißen. Für mehr
+@code{rechteHandklavier}, oder @code{foofoobarbaz} heißen. Für mehr
Information siehe
@ref{Saving typing with variables and functions}.
Als Variablenname kann fast jeder beliebige Name benutzt werden,
allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche,
Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl
-lauten. Die genauen Einschränkungen sind beschrieben in
+lauten. Die genauen Einschränkungen sind beschrieben in
@ruser{File structure}.
@seealso
@subsection Score is a (single) compound musical expression
@funindex \score
+@funindex score
@cindex score
@cindex Partitur
@cindex Musikstück
Im vorigen Kapitel, @ref{Introduction to the LilyPond file structure},
wurde die allgemeine Struktur einer LilyPond-Quelldatei
-beschrieben. Aber anscheinend haben wir die wichtigste
+beschrieben. Aber anscheinend haben wir die wichtigste
Frage ausgelassen, nämlich wie man herausfindet, was nach
dem @code{\score} geschrieben werden soll.
-In Wirklichkeit ist das aber gar kein Geheimnis. Diese
+In Wirklichkeit ist das aber gar kein Geheimnis. Diese
Zeile ist die Antwort:
@quotation
@noindent
Vielleicht wollen Sie noch einmal
-@ref{Music expressions explained} überfliegen. In diesem
+@ref{Music expressions explained} überfliegen. In diesem
Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke
-aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
+aus kleinen Teilen zusammensetzen. Noten können zu Akkorden
verbunden werden usw. Jetzt gehen wir aber in die andere Richtung
und betrachten, wie sich ein großer musikalischer Ausdruck
zerlegen lässt.
@example
\score @{
@{ % diese Klammer startet den großen mus. Ausdruck
- \new GrandStaff <<
+ <<
@var{...hier eine ganze Wagner-Oper einfügen...}
>>
@} % diese Klammer beendet den Ausdruck
@end example
Eine Wagner-Oper ist mindestens doppelt so lang wie dieses Handbuch,
-beschränken wir uns also auf einen Sänger und Klavier. Wir brauchen
-keine Orchesterpartitur (@code{GrandStaff}) dafür, darum lassen wir
-den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier.
+beschränken wir uns also auf einen Sänger und Klavier. Wir brauchen
+keine ganze Orchesterpartitur, aber wir brauchen einen Sänger und ein Klavier.
@example
\score @{
<<
\new Staff = "Sänger" <<
>>
- \new PianoStaff = Klavier <<
+ \new PianoStaff = "Klavier" <<
>>
>>
@}
Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig
gesetzt; wir wollen ja auch Klavier- und Sängerstimme gleichzeitig
-und nicht hintereinander haben. Bei genauerem Hinsehen fällt auf, dass
+und nicht hintereinander haben. Bei genauerem Hinsehen fällt auf, dass
die @code{<< ... >>}-Konstruktion für die Notenzeile des Sängers eigentlich
nicht unbedingt nötig wäre, da sie ja nur einen (sequenzielle) musikalischen
-Ausdruck enthält, nämlich alle Noten des Sängers hintereinander. Daher
-könnte an sich auch einfach ein @code{@{...@}} benutzt werden. Die
+Ausdruck enthält, nämlich alle Noten des Sängers hintereinander. Daher
+könnte an sich auch einfach ein @code{@{...@}} benutzt werden. Die
Spitzklammern sind allerdings notwendig, sobald die Notenzeile mehrere
parallelle Ausdrücke -- wie etwa zwei parallele Stimmen oder eine Stimme
mit zugehörigem Text -- enthält.
}
@end lilypond
-Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
+Jetzt haben wir viel mehr Details. Wir haben ein System (engl. staff)
für einen Sänger, in dem sich wieder eine Stimme (engl. voice)
-befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
-gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
+befindet. @code{Voice} bedeutet für LilyPond eine Stimme (sowohl
+gesungen als auch gespielt) und evtl. zusätzlich einen Text. Zusätzlich
werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new
-PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
+PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa
durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der
-dann wiederum zwei eigene Systeme ("upper" für die rechte Hand und
-"lower"
+dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und
+"unten"
für die linke) erstellt werden.
-Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
-geschweiften Klammern neben @code{\new Voice = vocal} könnte man
+Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der
+geschweiften Klammern neben @code{\new Voice = "Singstimme"}
+könnte man
@example
\relative c'' @{
@}
@end example
-@noindent schreiben. Aber wenn man seine Datei so direkt schreibt, wird
+@noindent
+schreiben. Aber wenn man seine Datei so direkt schreibt, wird
der @code{\score}-Abschnitt sehr lang und es wird ziemlich schwer zu
-verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
+verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner
(oder Variablen) zu verwenden.
@lilypond[verbatim,quote,ragged-right]
Achten Sie auf den Unterschied zwischen Noten, die mit @code{\relative}
oder direkt in einem musikalischen Ausruck eingegeben werden, und
dem Text des Lieds, der innerhalb @code{\lyricmode} angegeben
-werden muss. Diese Unterscheidung ist für LilyPond essentiell,
+werden muss. Diese Unterscheidung ist für LilyPond essentiell,
um zu entscheiden, ob der folgende Inhalt als Musik oder Text
-interpretiert werden soll. Wie könnte LilyPond sonst entscheiden,
+interpretiert werden soll. Wie könnte LilyPond sonst entscheiden,
ob @code{@{a b c@}} die drei Noten a, b und c darstellen soll oder
den Text eines Lieds über das Alphabet!
Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung
-sollte man langsam und sorgfältig vorgehen. Am besten fängt
+sollte man langsam und sorgfältig vorgehen. Am besten fängt
man mit dem größten Gebilde an und definiert dann die darin
-enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
+enthaltenen kleineren der Reihe nach. Es hilft auch, sehr
genau mit den Einzügen zu sein, so dass jede Zeile, die
der gleichen Ebene angehört, wirklich horizontal an der
gleichen Stelle beginnt.
@cindex Notenzeilen, temporäre
@cindex Ossia
+@cindex temporäre Notenzeilen
-Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleib
+Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleich
zu Beginn erzeugt werden -- sie können auch zu einem späteren
-Zeitpunkt eingeführt weden. Das ist vor allem nützlichm um
-@rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kures Beispiel,
+Zeitpunkt eingeführt weden. Das ist vor allem nützlichm um
+@rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kures Beispiel,
wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt
werden kann:
@noindent
Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie
auch bei einer Schlüsseländerung auftritt -- etwas kleiner als
-der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
+der Schlüssel am Beginn einer Notenzeile. Dies ist normal für
Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden.
@cindex Notenzeile, Positionierung
+@cindex Positionierung einer Notenzeile
Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile
gesetzt werden:
@end lilypond
Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch
-genauer erklärt wird. Damit kann das Standardverhalten einer
+genauer erklärt wird. Damit kann das Standardverhalten einer
einzelnen Notenzeile geändert werden: Hier wird einfach angegeben,
dass die neue Notenzeile oberhalb der bereits existierenden Zeile
mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt
@seealso
Ossia werden oft ohne Notenschlüssel und Taktangabe gedruck, meist
-auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich
+auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich
auch in LilyPond möglich, benötigt aber Befehle, die bisher noch
-nicht vorgestellt wurden. Siehe @ref{Size of objects}
+nicht vorgestellt wurden. Siehe @ref{Size of objects}
und @ruser{Ossia staves}.
@cindex Klammern, geschachtelt
@cindex Schachtelung von Klammern
+@cindex Klammer-Typen
Sie haben bisher zahlreiche verschiedene Arten von Klammern
-beim Schreiben von Musik mit LilyPond kennengelernt. Diese
+beim Schreiben von Musik mit LilyPond kennengelernt. Diese
folgen verschiedenen Regeln, die zu Beginn vielleicht
-verwirrend wirken. Bevor die genauen Regeln vorgestellt werden,
+verwirrend wirken. Bevor die genauen Regeln vorgestellt werden,
wollen wir die diversen Klammerarten kurz rekapitulieren:
@c attempt to force this onto a new page
@tab Markiert den Beginn und das Ende eines manuell erzeugten Balkens
@end multitable
-
Zusätzlich sollten vielleicht noch einige weiter Konstruktionen
erwähnt werden, die Noten auf irgendeine Art und Weise verbinden:
Haltebögen (durch eine Tilde @code{~} markiert),
Außerhalb von LilyPond fordert die übliche Benutzung von
Klammern, dass die entsprechenden Arten korrekt verschachtelt
-werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die
+werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die
schließenden Klammern kommen dabei in der umgekehrten Reihenfolge
-wie die öffnenden Klammern vor. Dies ist auch in LilyPond
+wie die öffnenden Klammern vor. Dies ist auch in LilyPond
ein @strong{Muss} für die drei Klammerarten, die in obiger
Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie
müssen korrekt geschachtelt werden.
Die restlichen Klammerarten (durch @q{Markiert} beschrieben),
die Haltebögen und die Triolen brauchen jedoch mit den
anderen Klammerarten @strong{nicht} unbedingt korrekt
-geschachtelt werden. Tatsächlich sind sie auch keine Klammern
+geschachtelt werden. Tatsächlich sind sie auch keine Klammern
in dem Sinn, dass sie etwas umschließen, sondern viel mehr
Indikatoren, an welcher Stelle ein bestimmtes musikalisches
Objekt beginnt oder endet.
Sänger brauchen Stimmen zum Singen, und LilyPond braucht sie auch:
in der Tat sind alle Noten für alle Instrumente in einer Partitur
-innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegendste Prinzip
+innerhalb von Stimmen gesetzt. Die Stimme ist das grundlegendste Prinzip
von LilyPond.
@menu
@cindex Polyphonie
@cindex Ebenen
@cindex mehrere Stimmen
+@cindex Stimmen, mehrere
@cindex Voice context
@cindex context, Voice
@cindex Kontext, Stimme
@cindex Stimmenkontext
@cindex gleichzeitige Noten
+@cindex Stimmen versus Akkorde
+@cindex Akkorde versus Stimmen
@cindex Noten gleichzeitig
Die grundegendsten und innersten Ebenen ein einer LilyPond-Partitur
werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice}
-(Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
+(Stimme) genannt. Stimmen werden in anderen Notationsprogrammen
manchmal auch als @qq{layer} (Ebene) bezeichnet.
Tatsächlich ist die Stimmenebene die einzige, die wirklich Noten
-enthalten kann. Wenn kein Stimmenkontext explizit erstellt wird,
+enthalten kann. Wenn kein Stimmenkontext explizit erstellt wird,
wird er automatisch erstellt, wie am Anfang dieses Kapitels
-gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
-Note gleichzeitig spielen. Noten für solche Instrumente sind
-monophon und brauchen nur eine einzige Stimme. Instrumente, die
+gezeigt. Manche Instrumente wie etwa die Oboe können nur eine
+Note gleichzeitig spielen. Noten für solche Instrumente sind
+monophon und brauchen nur eine einzige Stimme. Instrumente, die
mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen
dagegeben oft mehrere Stimmen, um die verschiedenen gleichzeitig
erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen
@end lilypond
Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern
-@code{< ... >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
-nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
+@code{< ... >} benützt, um Akkorde anzuzeigen. Hierfür braucht man
+nur eine Stimme. Aber gesetzt der Fall das Fis sollte eigentlich
eine Achtelnote sein, gefolgt von einer Achtelnote G (als Durchgangsnote
hin zum A)? Hier haben wir also zwei Noten, die zur gleichen Zeit
beginnen, aber unterschiedliche Dauern haben: die Viertelnote D und die
-Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie
+Achtelnote Fis. Wie können sie notiert werden? Als Akkord kann man sie
nicht schreiben, weil alle Noten in einem Akkord die gleiche Länge besitzen
-müssen. Sie können auch nicht als aufeinanderfolgende Noten geschrieben
-werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
+müssen. Sie können auch nicht als aufeinanderfolgende Noten geschrieben
+werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen
wir zwei Stimmen.
Wie aber wird das in der LilyPond-Syntax ausgedrückt?
Die einfachste Art, Fragmente mit mehr als einer Stimme auf einem System
zu notieren, ist, die Stimmen nacheinander (jeweils mit den Klammern
@code{@{ ... @}}) zu schreiben und dann mit den spitzen Klammern
-(@code{<<...>>}) simultan zu kombinieren. Die beiden Fragmente müssen
+(@code{<<...>>}) simultan zu kombinieren. Die beiden Fragmente müssen
zusätzlich noch mit zwei Backslash-Zeichen (@code{\\}) voneinander
getrennt werden, damit sie als zwei unterschiedliche Stimmen erkannt
-werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
-werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
+werden. Ohne diese Trenner würden sie als eine einzige Stimme notiert
+werden. Diese Technik ist besonders dann angebracht, wenn es sich bei
den Noten um hauptsächlich homophone Musik handelt, in der hier und da
polyphone Stellen vorkommen.
@end lilypond
Es ist nicht notwendig, für jeden Takt eine eigene
-@code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
+@code{<< \\ >>}-Konstruktion zu benutzen. Bei Musik mit nur wenigen
Noten pro Takt kann es die Quelldatei besser lesbar machen, aber
wenn in einem Takt viele Noten vorkommen, kann man die gesamten Stimmen
separat schreiben, wie hier:
@end lilypond
Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten
-außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
-uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
+außerhalb der @code{<< .. >>}-Konstruktion beinhaltet. Lassen wir es
+uns die @emph{simultane Konstruktion} nennen. Bindebögen und Legatobögen
können nur Noten in der selben Stimmen miteinander verbinden und können
-also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
+also somit nicht aus der simultanen Konstruktion hinausreichen. Umgekehrt
gilt, dass parallele Stimmen aus eigenen simultanen Konstruktionen auf
-dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
+dem gleichen Notensystem die gleiche Stimme sind. Auch andere, mit dem
Stimmenkontext verknüpfte Eigenschaften erstrecken sich auf alle
-simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
+simultanen Konstrukte. Hier das gleiche Beispiel, aber mit unterschiedlichen Farben für die Notenköpfe der unterschiedlichen Stimmen.
Beachten Sie, dass Änderungen in einer Stimme sich nicht auf die anderen
Stimmen erstrecken, aber sie sind weiterhin in der selben Stimme vorhanden,
-auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
+auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten
über die gleiche Stimme in zwei Konstrukten verteilt werden können, wie
hier an der blauen Dreieckstimme gezeigt.
pädagogischen Dokumenten wie diesem hier angewandt zu werden.
Sie verändern die Farbe des Notenkopfes, des Halses und des Balkens, und
zusätzlich die Form des Notenkopfes, damit die einzelnen Stimmen
-einfach auseinander gehalten werden können. Die erste Stimme ist als
+einfach auseinander gehalten werden können. Die erste Stimme ist als
rote Raute definiert, die zweite Stimme als blaue Dreiecke, die dritte
Stimme als grüne Kreise mit Kreuz und die vierte Stimme (die hier nicht
-benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
-nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
+benutzt wird) hat dunkelrote Kreuze. @code{\voiceNeutralStyle} (hier auch
+nicht benutzt) macht diese Änderungen rückgängig. Später soll gezeigt
werden, wie Befehle wie diese vom Benutzer selber erstellt werden
-können. Siehe auch @ref{Visibility and color of objects} und
+können. Siehe auch @ref{Visibility and color of objects} und
@ref{Using variables for tweaks}.
+@cindex Polyphonie und relativer Notationsmodus
+@cindex relativer Notationsmodus und Polyphonie
+
Polyphonie ändert nicht die Verhältnisse der Noten innerhalb eines
-@code{\relative @{ @}}-Blocks. Jede Note wird weiterhin relativ zu
+@code{\relative @{ @}}-Blocks. Jede Note wird weiterhin relativ zu
der vorherigen Note errechnet, oder relativ zur ersten Note des vorigen
-Akkords. So ist etwa hier
+Akkords. So ist etwa hier
@example
\relative c' @{ NoteA << < NoteB NoteC > \\ NoteD >> NoteE @}
@code{NoteE} bezüglich @code{NoteD}, nicht @code{NoteA} errechnet.
Eine andere Möglichkeit ist, den @code{\relative}-Befehl vor jede
-Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
+Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander
entfernt sind.
@example
@end example
Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück
-analysieren. Hier die Noten der ersten zwei Takte von Chopins
-@notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
+analysieren. Hier die Noten der ersten zwei Takte von Chopins
+@notation{Deux Nocturnes}, Op. 32. Dieses Beispiel soll später in diesem
und dem nächsten Kapitel benutzt werden, um verschiedene Techniken,
-Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
+Notation zu erstellen, zu demonstrieren. Ignorieren Sie deshalb an diesem
Punkt alles in folgendem Code, das Ihnen seltsam vorkommt, und konzentrieren
-Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
+Sie sich auf die Noten und die Stimmen. Die komplizierten Dinge werden
in späteren Abschnitten erklärt werden.
@c The following should appear as music without code
@end lilypond
Die Richtung der Hälse wird oft benutzt, um anzuzeigen, dass zwei
-gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
+gleichzeitige Melodien sich fortsetzen. Hier zeigen die Hälse aller
oberen Noten nach oben und die Hälse aller unteren Noten nach unten.
Das ist der erste Anhaltspunkt, dass mehr als eine Stimme benötigt
wird.
Aber die wirkliche Notwendigkeit für mehrere Stimmen tritt erst
dann auf, wenn unterschiedliche Noten gleichzeitig erklingen, aber
-unterschiedliche Dauern besitzen. Schauen Sie sich die Noten
-auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
-Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
+unterschiedliche Dauern besitzen. Schauen Sie sich die Noten
+auf dem dritten Schlag im ersten Takt an. Das As ist eine punktierte
+Viertel, das F ist eine Viertel und das Des eine Halbe. Sie können
nicht als Akkord geschrieben werden, denn alle Noten in einem Akkord
-besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
-geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
+besitzen die gleiche Dauer. Sie können aber auch nicht nacheinander
+geschrieben werden, denn sie beginnen auf der gleichen Taktzeit. Dieser
Taktabschnitt benötigt drei Stimmen, und normalerweise schreibt man
drei Stimmen für den ganzen Takt, wie im Beispiel unten zu sehen ist;
hier sind unterschiedliche Köpfe und Farben für die verschiedenen Stimmen
-eingesetzt. Nocheinmal: der Quellcode für dieses Beispiel wird später
+eingesetzt. Nocheinmal: der Quellcode für dieses Beispiel wird später
erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht
verstehen können.
}
@end lilypond
-Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen
-werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
+Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen
+werden, beinhaltet das einige Schwierigkeiten. Fangen wir an, wie
wir es gelernt haben, indem wir mit der @code{<< \\ >>}-Konstruktion
die drei Stimmen des ersten Taktes notieren:
@cindex Hals nach oben
@cindex Notenhals, Richtung
@cindex Richtung des Notenhalses
+@cindex Notenhalsrichtung
+@cindex Stimmen und Notenhalsrichtung
+@cindex Notenhalsrichtung in Stimmen
Die Richtung des Notenhalses wird automatisch zugewiesen; die ungeraden
-Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
+Stimmen tragen Hälse nach oben, die gerade Hälse nach unten. Die Hälse
für die Stimmen 1 und 2 stimmen, aber die Hälse in der dritten Stimme
-sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
+sollen in diesem Beispiel eigentlich nach unten zeigen. Wir können das
korrigieren, indem wir die dritte Stimme einfach auslassen und die
Noten in die vierte Stimme verschieben:
LilyPond erlaubt Noten in verschiedenen Stimmen sich auf der gleichen
vertikalen Position zu befinden, wenn die Hälse in entgegengesetzte
Richtungen zeigen, und positioniert die dritte und vierte Stimme dann
-so, dass Zusammenstöße möglichst vermieden werden. Das funktioniert
+so, dass Zusammenstöße möglichst vermieden werden. Das funktioniert
gewöhnlich recht gut, aber in diesem Beispiel sind die Noten der untersten
-Stimme eindeutig standardmäßig schlecht positioniert. LilyPond bietet
+Stimme eindeutig standardmäßig schlecht positioniert. LilyPond bietet
verschiedene Möglichkeiten, die horizontale Position von Noten
-anzupassen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
-anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt auf; siehe @code{force-hshift}-Eigenschaft in @ref{Fixing
+anzupassen. Wir sind aber noch nicht so weit, dass wir diese Funktionen
+anwenden könnten. Darum heben wir uns das Problem für einen späteren Abschnitt auf; siehe @code{force-hshift}-Eigenschaft in @ref{Fixing
overlapping notation}.
@seealso
@subsection Explicitly instantiating voices
@funindex \voiceOne
+@funindex voiceOne
@funindex \voiceTwo
+@funindex voiceTwo
@funindex \voiceThree
+@funindex voiceThree
@funindex \voiceFour
+@funindex voiceFour
@funindex \oneVoice
+@funindex oneVoice
@funindex \new Voice
@cindex Voice context, erstellen von
@cindex Stimmenkontexte, erstellen von
Voice-Kontexte können auch manuell innerhalb
-eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen
+eines @code{<< >>}-Abschnittes initiiert werden. Mit den Befehlen
@code{\voiceOne} bis hin zu @code{\voiceFour} kann jeder Stimme
entsprechendes Verhalten von vertikaler Verschiebung und Richtung
-von Hälsen und anderen Objekten hinzugefügt werden. In längeren
+von Hälsen und anderen Objekten hinzugefügt werden. In längeren
Partituren können die Stimmen damit besser auseinander gehalten
werden.
>>
@end lilypond
+@cindex Stimmen, mehrere zu einer zusammenführen
+@cindex eine Stimme wiederherstellen
+
Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen,
-Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen.
- @code{\voiceOne} und @code{\voiceThree} lassen diese Objekte
- nach oben zeigen,
- @code{\voiceTwo} und @code{\voiceFour}
+Bögen, Artikulationszeichen, Text, Punktierungen und Fingersätzen.
+@code{\voiceOne} und @code{\voiceThree} lassen diese Objekte
+nach oben zeigen, @code{\voiceTwo} und @code{\voiceFour}
dagegen lassen sie abwärts zeigen. Diese Befehle erzeugen eine
horizontale Verschiebung, wenn es erforderlich ist, um Zusammenstöße
-zu vermeiden. Der Befehl
+zu vermeiden. Der Befehl
@code{\oneVoice} stellt wieder auf das normale Verhalten um.
Schauen wir uns in einigen einfachen Beispielen an, was genau
Schauen wir und nun drei unterschiedliche Arten an, den gleichen
Abschnitt polyphoner Musik zu notieren, jede Art mit ihren
-Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
+Vorteilen in unterschiedlichen Situationen. Wir benutzen dabei
das Beispiel vom vorherigen Abschnitt.
Ein Ausdruck, der direkt innerhalb einer @code{<< >>}-Umgebung
-auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche
-Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also
-eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die
+auftritt, gehört der Hauptstimme an. Das ist nützlich, wenn zusätzliche
+Stimme auftreten, während die Hauptstimme sich fortsetzt. Hier also
+eine bessere Version des Beispiels aus dem vorigen Abschnitt. Die
farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in
-einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
+einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein
Phrasierungsbogen ober sie gesetzt werden.
@lilypond[quote,ragged-right,verbatim]
@cindex Verschachteln von musikalischen Ausdrücken
@cindex Verschachteln von gleichzeitigen Ausdrücken
@cindex Ausdrücke, Verschachteln von
-
@cindex Stimmen, temporär
@cindex Stimmen, Verschachteln von
+@cindex Verschachteln von Stimmen
+@cindex temporäre Stimmen
Tiefer verschachtelte polyphone Konstrukte sind möglich, und
wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg
@cindex Noten verstecken
Diese Methode, neue Stimmen kurzzeitig zu verschachteln, bietet sich
-an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
+an, wenn nur sehr kleine Abschnitte polyphonisch gesetzt sind. Wenn
aber die ganze Partitur polyphon ist, ist es meistens klarer, direkt
unterschiedliche Stimmen über die gesamte Partitur hinweg einzusetzen.
Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen,
@subsubheading Note columns
@cindex Notenkolumne
+@cindex Notenkollision
+@cindex Zusammenstöße von Noten
+@cindex Kollisionen von Noten
@cindex Vertikale Position
@cindex shift-Befehle
@cindex Verschieben von Noten
@funindex \shiftOn
@funindex \shiftOnn
@funindex \shiftOnnn
+@funindex shiftOff
+@funindex shiftOn
+@funindex shiftOnn
+@funindex shiftOnnn
Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen
Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal
auch mehreren Kolumnen getzt, um die Noten am Überschneiden zu
-hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
+hindern. Wir bezeichnen sie als Notenkolumnen. Jede Stimme hat
eine eigene Kolumne, und ein stimmenabhängiger Verschiebunsbefehl (engl.
-shift) wird eingesetzt, wenn eine Kollision auftreten könnte.
-Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
+shift) wird eingesetzt, wenn eine Kollision auftreten könnte.
+Das zeigt das Beispiel oben. Im zweiten Takt wird das C der zweiten
Stimme nach rechts verschoben, relativ gesehen zum D der ersten Stimme,
und im letzten Akkord wird das C der dritten Stimme auch nach
rechts verschoben im Verhältnis zu den anderen Stimmen.
Die Befehle @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} und
@code{\shiftOff} bestimmen den Grad, zu dem Noten und Akkorde
verschoben werden sollen, wenn sich sonst eine Kollision nicht
-vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
+vermeiden ließe. Die Standardeinstellung ist, dass die äußeren
Stimmen (also normalerweise Stimme 1 und 2) @code{\shiftOff}
eingestellt haben, während für die inneren Stimmen (3 und 4)
-@code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
+@code{\shiftOn} eingeschaltet ist. Wenn eine Verschiebung
auftritt, werden Stimmen 1 und 3 nach rechts und Stimmen 2 und 4
nach links verschoben.
Eine Notenkolumne kann nur eine Note (oder einen Akkord) von
einer Stimme mit Hälsen nach oben und eine Note (oder einen
-Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
+Akkord) von einer Stimme mit Hälsen nach unten tragen. Wenn
Noten von zwei Stimmen mit den Hälsen in die gleiche Richtung
an der selben Stelle auftreten und in beiden Stimmen ist
keine Verschiebung oder die gleiche Verschiebungsebene
@funindex \new Lyrics
@funindex \lyricsto
+@funindex lyricsto
+@funindex Lyrics
@cindex Lyrics context, erstellen
@cindex Gesangtext, Verbindung mit Noten
Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet,
-mit dem einfache Partituren gut erstellt werden können.
-Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
+mit dem einfache Partituren gut erstellt werden können.
+Diese Methode ist jedoch recht eingeschränkt. Wenn der Notensatz
komplexer wird, muss der Gesangstext mit einem neuen
@code{Lyrics}-Kontext begonnen werden (mit dem Befehl
@code{\new Lyrics}) und durch den Befehl @code{\lyricsto@{@}}
@cindex Text und Balken
@cindex Balken und Text
@funindex \autoBeamOff
+@funindex autoBeamOff
Die automatischen Balken, die LilyPond in der Standardeinstellung
setzt, eignen sich sehr gut für instrumentale Musik, aber nicht
@funindex \new ChoirStaff
@funindex \lyricmode
+@funindex ChoirStaff
+@funindex lyricmode
@cindex Vokalpartitur, Aufbau
@cindex Chorpartitur, Aufbau
Wir wollen das frühere Beispiel von @notation{Judas Maccabæus}
benutzen, um diese flexiblere Technik für Gesangstexte
-zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
+zu illustrieren. Das Beispiel wurde so umgeformt, dass jetzt
Variablen eingesetzt werden, um den Text und die Noten
-von der Partiturstruktur zu trennen. Es wurde zusätzlich
-eine Chorpartiturklammer hinzugefügt. Der Gesangtext muss mit
+von der Partiturstruktur zu trennen. Es wurde zusätzlich
+eine Chorpartiturklammer hinzugefügt. Der Gesangtext muss mit
@code{\lyricmode} eingegeben werden, damit er als Text und
nicht als Noten interpretiert werden kann.
}
@end lilypond
-Dies ist die Grundstruktur für alle Chorpartituren. Mehr
+Dies ist die Grundstruktur für alle Chorpartituren. Mehr
Systeme können hinzugefügt werden, wenn sie gebraucht werden, mehr
Stimmen können zu jedem System hinzugefügt werden, mehr
Strophen können zum Text hinzugefügt werden, und schließlich
@cindex Choralnotation
@cindex Hymnus-Notation
+@cindex SATB-Partitur
+@cindex mehrere Strophen
+@cindex Strophen, mehrere
+@cindex Choral mit mehreren Strophen
Hier ein Beispiel der ersten Zeile eines Chorals mit vier
-Strophen für gemischten Chor. In diesem Fall ist der Text
-für alle vier Stimmen identisch. Beachten Sie, wie die
+Strophen für gemischten Chor. In diesem Fall ist der Text
+für alle vier Stimmen identisch. Beachten Sie, wie die
Variablen eingesetzt werden, um Inhalt (Noten und Text) und Form
-(die Partitur) voneinander zu trennen. Eine Variable wurde
+(die Partitur) voneinander zu trennen. Eine Variable wurde
eingesetzt, um die Elemente, die auf beiden Systemen auftauchen,
-aufzunehmen, nämlich Taktart und Tonart. Solch eine
+aufzunehmen, nämlich Taktart und Tonart. Solch eine
Variable wird oft auch mit @qq{global} bezeichnet.
@lilypond[quote,verbatim]
um der Erklärung folgen zu können.
Beginnen wir mit einer @code{score}-Umgebung, in der eine
-Chorpartitur (@code{ChoirStaff}) gesetzt wird. Die Partitur soll
+Chorpartitur (@code{ChoirStaff}) gesetzt wird. Die Partitur soll
schließlich mit der eckigen Klammer beginnen.
Normalerweise bräuchten wir spitze Klammern im Quelltext
nach dem @code{\new ChoirStaff}, damit die Systeme paralell
gesetzt werden, aber hier wollen wir diese Parallelsierung
-ja erst nach dem Solo. Also benutzen wir geschweifte Klammern.
+ja erst nach dem Solo. Also benutzen wir geschweifte Klammern.
Innerhalb der Chorpartitur erstellen wir zuerst das System,
-das die Strophe enthält. Es braucht Noten und Text parallel,
+das die Strophe enthält. Es braucht Noten und Text parallel,
also setzen wir hier die spitzen Klammern um @code{\new Voice}
und @code{\new Lyrics}.
Jetzt soll @notation{refrainA} auf dem selben System gesetzt
werden, während gleichzeitig in einem neuen System darunter
-@notation{refrainB} gesetzt wird. Damit die Oberstimme das
+@notation{refrainB} gesetzt wird. Damit die Oberstimme das
gleiche System benutzt, muss alles direkt auf den Zeilenumbruchbefehl
(@code{\break} folgen, innerhalb der @notation{verse}-Stimme.
Ja, tatsächlich, @emph{innerhalb} der @notation{verse}-Stimme.
-Hier haben wir diese parallele Stelle isoliert. Weitere Systeme
+Hier haben wir diese parallele Stelle isoliert. Weitere Systeme
könnten auf die gleiche Weise hinzugefügt werden.
@example
@cindex book, Benutzung von
@funindex \book
+@funindex book
Dies ist zwar eine interessante und nützliche Übung um zu
verstehen, wie sequentielle und parallele Notationsumgebungen
Wenn Noten gesetzt werden, müssen viele Elemente zu der Notenausgabe
hinzugefügt werden,
-die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
+die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie
etwa den Quellcode und die Notenausgabe des folgenden Beispiels:
@lilypond[quote,verbatim,relative=2,fragment]
Der Quellcode ist sehr kurz und knapp, während in der
Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und
-eine Taktart hinzugefügt wurden. Während LilyPond
+eine Taktart hinzugefügt wurden. Während LilyPond
den Eingabetext @emph{interpretiert}, wird die
musikalische Information in zeitlicher Reihenfolge
inspiziert, etwa wie man eine Partitur von links nach
-rechts liest. Während das Programm den Code liest,
+rechts liest. Während das Programm den Code liest,
merkt es sich, wo sich Taktgrenzen befinden und
für welche Tonhöhen Versetzungszeichen gesetzt werden
-müssen. Diese Information muss auf mehreren Ebenen
+müssen. Diese Information muss auf mehreren Ebenen
gehandhabt werden, denn Versetzungszeichen etwa
beziehen sich nur auf ein System, Taktlinien dagegen
üblicherweise auf die gesamte Partitur.
Innerhalb von LilyPond sind diese Regeln und
Informationshappen in @emph{Kontexten} (engl.
-contexts) gruppiert. Wir sind schon auf den
-@code{Voice} (Stimmen)-Kontext gestoßen. Daneben
+contexts) gruppiert. Wir sind schon auf den
+@code{Voice} (Stimmen)-Kontext gestoßen. Daneben
gibt es noch die @code{Staff} (Notensystem-) und
-@code{Score} (Partitur-) Kontexte. Kontexte sind
+@code{Score} (Partitur)-Kontexte. Kontexte sind
hierarchisch geschichtet um die hierarchische
-Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
+Struktur einer Partitur zu spiegeln. Ein @code{Staff}-Kontext
kann zum Beispiel viele @code{Voice}-Kontexte beinhalten,
und ein @code{Score}-Kontext kann viele
@code{Staff}-Kontexte beinhalten.
Jeder Kontext hat die Aufgabe, bestimmte Notationsregeln
zu erzwingen, bestimmte Notationsobjekte zu erstellen und
-verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
+verbundene Elemente zu ordnen. Der @code{Voice}-Kontext
zum Beispiel kann eine Vorzeichenregel einführen und der
@code{Staff}-Kontext hält diese Regel dann aufrecht, um
einzuordenen, ob ein Versetzungszeichen gesetzt werden
muss oder nicht.
Ein anderes Beispiel: die Synchronisation der Taktlinien ist
-standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
+standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen
die Systeme einer Partitur aber unterschiedliche Taktarten
enthalten, etwa in einer polymetrischen Partitur mit
-4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
+4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen
der @code{Score}- und @code{Staff}-Kontexte verändert werden.
In einfachen Partituren werden die Kontexte implizit erstellt,
Für etwas größere Projekte, etwa mit vielen Systemen, müssen
die Kontexte aber explizit erstellt werden, um sicher zu gehen,
dass man auch wirklich die erwünschte Zahl an Systemen in der
-richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
+richtigen Reihenfolge erhält. Wenn Stücke mit spezialisierter
Notation gesetzt werden sollen, ist es üblich, die existierenden
Kontexte zu verändern oder gar gänzlich neue zu definieren.
Zusätzlich zu den @code{Score,} @code{Staff} und
@code{Voice}-Kontexten gibt es noch Kontexte, die zwischen
der Partitur- und Systemebene liegen und Gruppen von Systemen
-kontrollieren. Das sind beispielsweise der
-@code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
+kontrollieren. Das sind beispielsweise der
+@code{PianoStaff} und @code{ChoirStaff}-Kontext. Es gibt zusätzlich
alternative Kontexte für Systeme und Stimmen sowie eigene Kontexte
für Gesangstexte, Perkussion, Griffsymbole, Generalbass usw.
@subsection Creating contexts
@funindex \new
+@funindex new
@cindex Neue Kontexte
@cindex Erstellen von Kontexten
@cindex Kontexte, Erstellen
Es gibt nur einen Kontext der obersten Ebene: der
-@code{Score}-Kontext. Er wird mit dem @code{\score}-Befehl,
+@code{Score}-Kontext. Er wird mit dem @code{\score}-Befehl,
oder -- in einfacheren Partituren -- automatisch
erstellt.
Wenn nur ein System vorhanden ist, kann man es ruhig
LilyPond überlassen, die @code{Voice}- und @code{Staff}-Kontexte
zu erstellen, aber für komplexere Partituren ist es notwendig,
-sie mit einem Befehl zu erstellen. Der einfachste Befehl
-hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck
+sie mit einem Befehl zu erstellen. Der einfachste Befehl
+hierzu ist @code{\new}. Er wird dem musikalischen Ausdruck
vorangestellt, etwa so:
@example
@noindent
wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder
-@code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
+@code{Voice}) ist. Dieser Befehl erstellt einen neuen Kontext und
beginnt, den @var{muskalischen Ausdruck} innherhalb dieses
Kontexts auszuwerten.
oder doppelten spitzen Klammern (@code{<<}) öffnen, mit
jeweils zwei Leerzeichen, und die entsprechenden
schließenden Klammern mit der gleichen Anzahl Leerzeichen
-eingerückt werden. Dies ist nicht erforderlich, es wird aber
+eingerückt werden. Dies ist nicht erforderlich, es wird aber
zu einem großen Teil die nicht passenden Klammerpaar-Fehler
-eliminieren und ist darum sehr empfohlen. Es macht es
+eliminieren und ist darum sehr empfohlen. Es macht es
möglich, die Struktur einer Partitur auf einen Blick zu
verstehen, und alle nicht passenden Klammern
-erschließen sich schnell. Beachten Sie auch, dass das
+erschließen sich schnell. Beachten Sie auch, dass das
untere Notensystem mit eckigen Klammern erstellt wird,
denn innerhalb dieses Systems brauchen wir zwei Stimmen,
-um die Noten darzustellen. Das obere System braucht
+um die Noten darzustellen. Das obere System braucht
nur einen einzigen musikalischen Ausdruck und ist deshalb
von geschweiften Klammern umschlossen.)
Beachten Sie den Unterschied zwischen der Bezeichnung des
Kontexttyps (@code{Staff}, @code{Voice}, usw.) und dem
Namen, der aus beliebigen Buchstaben bestehen kann
-und vom Benutzer frei erfunden werden kann. Zahlen und
+und vom Benutzer frei erfunden werden kann. Zahlen und
Leerzeichen können auch benutzt werden, in dem Fall
muss der Name aber von doppelten Anführungszeichen
umgeben werden, also etwa
@code{\new Staff = "Mein System 1" @var{musikalischer Ausdruck}}.
Der Name wird
benutzt, um später auf genau diesen spezifischen Kontext
-zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
+zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt
zu Gesangstexten angewandt, siehe @ref{Voices and vocals}.
@seealso
@cindex Stempel (Engraver)
Jedes Zeichen des fertigen Notensatzes von LilyPond wird
-von einem @code{Engraver} (Stempel) produziert. Es gibt
+von einem @code{Engraver} (Stempel) produziert. Es gibt
also einen Engraver, der die Systeme erstellt, einen, der die
Notenköpfe ausgibt, einen für die Hälse, einen für die
Balken usw. Insgesamt gibt es über 120 Engraver! Zum
paar Engraver, und für einfache Partituren muss man eigentlich
überhaupt nichts über sie wissen.
-Engraver leben und wirken aus den Kontexten heraus. Engraver
+Engraver leben und wirken aus den Kontexten heraus. Engraver
wie der @code{Metronome_mark_engraver}, dessen Aktion
und Ausgabe sich auf die gesamte Partitur bezieht, wirken
in der obersten Kontextebene -- dem @code{Score}-Kontext.
Jeder Engraver bearbeitet die bestimmten Objekte, die mit
seiner Funktion assoziiert sind, und verwaltet die Eigenschaften
-dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
+dieser Funktion. Diese Eigenschaften, wie etwa die Eigenschaften,
die mit Kontexten assoziiert sind, können verändert werden,
um die Wirkungsweise des Engravers oder das Erscheinungsbild
der von ihm produzierten Elemente in der Partitur zu ändern.
Alle Engraver haben zusammengesetzte Bezeichnung, die aus
-den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
+den (englischen) Wörtern ihrer Funktionsweise bestehen. Nur
das erste Wort hat einen Großbuchstaben, und die restlichen
-Wörter werden mit einem Unterstrich angefügt. Ein
+Wörter werden mit einem Unterstrich angefügt. Ein
@code{Staff_symbol_engraver} verantwortet also die Erstellung
der Notenlinien, ein @code{Clef_engraver} entscheidet über die
Art der Notenschlüssel und setzt die entsprechenden Symbole; damit
@node Modifying context properties
@subsection Modifying context properties
-@cindex Kontext-Eigenschaften
+@cindex Kontext-Eigenschaften, Verändern
@cindex Eigenschaften von Kontexten
@cindex Verändern von Kontext-Eigenschaften
@funindex \set
@funindex \unset
+@funindex set
+@funindex unset
Kontexte sind dafür verantwortlich, die Werte bestimmter
-Kontext-@emph{Eigenschaften} zu speichern. Viele davon
+Kontext-@emph{Eigenschaften} zu speichern. Viele davon
können verändert werden, um die Interpretation der
Eingabe zu beeinflussen und die Ausgabe zu verändern.
Kontexte werden mit dem @code{\set}-Befehl geändert.
@noindent
verwendet, wobei @var{KontextBezeichnung} üblicherweise
@code{Score},
-@code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
+@code{Staff} oder @code{Voice} ist. Der erste Teil kann auch
ausgelassen werden; in diesem Fall wird @code{Voice} eingesetzt.
Die Bezeichnung von Kontexten-Eigenschaften besteht
aus zwei Wörtern, die ohne Unterstrich oder Bindestrich
-verbunden sind. Alle außer dem ersten werden am Anfang
-groß geschrieben. Hier einige Beispiele der gebräuchlichsten
-Kontext-Eigenschaften. Es gibt sehr viel mehr.
+verbunden sind. Alle außer dem ersten werden am Anfang
+groß geschrieben. Hier einige Beispiele der gebräuchlichsten
+Kontext-Eigenschaften. Es gibt sehr viel mehr.
@c attempt to force this onto a new page
@need 50
oder falsch (@code{#f}),
ein Integer eine positive ganze Zahl, eine reale Zahl eine positive
oder negative Dezimalzahl, und Text wird in doppelte
-Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
+Anführungszeichen (Shift+2) eingeschlossen. Beachten Sie
das Vorkommen des Rautenzeichens
(@code{#}) an unterschiedlichen Stellen: als Teil eines
booleschen Wertes vor dem @code{t} oder @code{f}, aber
auch vor einem @emph{Wert} in der
-@code{\set}-Befehlskette. Wenn ein boolescher Wert
+@code{\set}-Befehlskette. Wenn ein boolescher Wert
eingegeben werden soll, braucht man also zwei
Rautenzeichen, z. B. @code{##t}.
+@cindex Eigenschaften in Kontexten
+@cindex Veränderung von Eigenschaften in Kontexten
+
Bevor eine Eigenschaft geändert werden kann, muss man wissen,
-in welchem Kontext sie sich befindet. Manchmal versteht das
+in welchem Kontext sie sich befindet. Manchmal versteht das
sich von selbst, aber in einigen Fällen kann es zunächst
-unverständlich erscheinen. Wenn der falsche Kontext angegeben
+unverständlich erscheinen. Wenn der falsche Kontext angegeben
wird, wird keine Fehlermeldung produziert, aber die
Veränderung wird einfach nicht ausgeführt.
@code{instrumentName} befindet sich offensichtlich innerhalb
von einem @code{Staff}-Kontext, denn das Notensystem soll
-benannt werden. In dem folgenden Beispiel erhält das erste
+benannt werden. In dem folgenden Beispiel erhält das erste
System korrekt die Instrumentenbezeichnung, das zweite aber
nicht, weil der Kontext ausgelassen wurde.
zweiten @code{\set}-Befehl wird also die Eigenschaft @code{instrumentName}
im @code{Voice}-Kontext auf @qq{Alto}, gesetzt, aber weil LilyPond diese
Eigenschaft nicht im @code{Voice}-Kontext vermutet, passiert einfach
-gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
+gar nichts. Das ist kein Fehler, und darum wird auch keine Fehlermeldung
prodziert.
Ebenso gibt es keine Fehlermeldung, wenn die Kontext-Bezeichnung
falsch geschrieben wird und die Änderung also nicht ausgeführt werden
-kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
+kann. Tatsächlich kann eine beliebige (ausgedachte) Kontextbezeichnung
mit dem @code{\set}-Befehl eingesetzt werden, genauso wie die, die
-wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
-zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
+wirklich existieren. Aber wenn LilyPond diese Bezeichnung nicht
+zuordnen kann, bewirkt der Befehl einfach gar nichts. Manche Editoren,
die Unterstützung für LilyPond-Befehle mitbringen, markieren existierende
Kontextbezeichnungen mit einem Punkt, wenn man mit der Maus darüber
fährt (wie etwa JEdit mit dem LilyPondTool), oder markieren
-unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
+unbekannte Bezeichnungen anders (wie ConTEXT). Wenn Sie keinen
Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die
Bezeichnungen in der Interna-Referenz zu überprüfen: siehe
@rinternals{Tunable context properties}, oder
Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie
ineinem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften
-können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
+können in mehr als einem Kontext benutzt werden. Als Beispiel mag die
@code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen
-setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
+setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen.
Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch)
-gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
+gesetzt wird, wirkt sie sich auf alle Noten in diesem System aus. Wird
sie dagegen in der @code{Score}-Umgebung gesetzt, wirkt sich das
auf alle darin enthaltenen Systeme aus.
Die @code{\set}- und @code{\unset}-Befehle könne überall im
Eingabequelltext erscheinen und werden aktiv von dem Moment, an
dem sie auftreten bis zum Ende der Partitur oder bis die Eigenschaft
-mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
+mit @code{\set} oder @code{\unset} neu gesetzt wird. Versuchen
wir als Beispiel, die Schriftgröße mehrmals zu ändern, was sich unter anderem
-auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
+auf die Notenköpfe auswirkt. Die Änderung bezieht sich immer auf den Standard,
nicht vom letzten gesetzten Wert.
@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
@end lilypond
Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen
-Eigenschaften ändern lassen. Beachten Sie, dass Integre und
+Eigenschaften ändern lassen. Beachten Sie, dass Integre und
Zahlen immer mit einem Rautenzeichen beginnen, während
die Werte wahr und falsch (mit @code{##t} und @code{##f}
-notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
+notiert) immer mit zwei Rauten beginnen. Eine Eigenschaft, die
aus Text besteht, muss in doppelte Anführungsstriche gesetzt werden,
auch wenn wir später sehen werden, dass Text auf eine sehr viel
allgmeinere und mächtigere Art mit dem @code{markup}-Befehl
@unnumberedsubsubsec Setting context properties with @code{\with}
@funindex \with
+@funindex with
@cindex Kontexteigenschaft, setzen mit \with
Kontexteigenschaften können auch gesetzt werden, wenn der Kontext
-erstellt wird. Das ist in manchen Fällen eine deutlichere Art,
+erstellt wird. Das ist in manchen Fällen eine deutlichere Art,
eine Eigenschaft zu bestimmen, die für die gesamte Partitur
-erhalten bleichen soll. Wenn ein Kontext mit einem
+erhalten bleichen soll. Wenn ein Kontext mit einem
@code{\new}-Befehl erstellt wird, dem direkt eine
@code{\with @{ .. @}}-Umgebung folgt, können hier die
-Eigenschaften bestimmt werden. Wenn also die zusätzlichen
+Eigenschaften bestimmt werden. Wenn also die zusätzlichen
Auflösungszeichen für eine ganze Partitur gelten sollen, könnte
man schreiben:
dynamisch mit dem @code{\set}-Befehl geändert werden und mit
@code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden.
-Die @code{fontSize}-Eigenschaft wird anders behandelt. Wenn sie mit
+@cindex Schriftgröße, Standardeinstellung
+@cindex fontSize (Schriftgröße), Standardeinstellung
+
+Die @code{fontSize}-Eigenschaft wird anders behandelt. Wenn sie mit
einer @code{\with}-Umgebung gesetzt wird, wird die Standardschriftgröße
-neu gesetzt. Wenn die Schriftgröße später mit @code{\set} verändert
+neu gesetzt. Wenn die Schriftgröße später mit @code{\set} verändert
wird, kann dieser neue Standardwert mit dem Befehl
@code{\unset fontSize} erreicht werden.
@unnumberedsubsubsec Setting context properties with @code{\context}
+@cindex Kontexteigenschaften, mit \context setzen
+@cindex Eigenschaften von Kontexten, mit \context setzen
+@funindex \context
+@funindex context
+
Die Werte von Kontext-Eigenschaften können in @emph{allen} Kontexten
eines bestimmten Typs (etwa alle @code{Staff}-Kontexte)
-gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
+gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird
spezifieziert, indem seine Bezeichnung benutzt wird, also etwa
-@code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
+@code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl
für die Eigenschaft ist der gleiche, wie er auch in der
-@code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
+@code{\with}-Konstruktion benutzt wird, wie oben gezeigt. Er wird in
eine @code{\context}-Umgebung eingebettet, welche wiederum innerhalb
-von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
+von einer @code{\layout}-Umgebung steht. Jede @code{\context}-Umgebung
wirkt sich auf alle Kontexte dieses Types aus, welche sich in der
aktuellen Partitur befinden (d. h. innherhalb einer @code{\score}-
-oder @code{\book}-Umgebung. Hier ist ein Beispiel, wie man diese
+oder @code{\book}-Umgebung. Hier ist ein Beispiel, wie man diese
Funktion anwendet:
@lilypond[verbatim,quote]
@funindex \consists
@funindex \remove
+@funindex consists
+@funindex remove
Wir haben gesehen, dass jeder Kontext eine Anzahl an Engravern
(Stempeln) beinhaltet, von denen ein jeder einen bestimmten
Teil des fertigen Notensatzes produziert, wie z. B. Taktlinien,
Notenlinien, Notenköpfe, Hälse usw. Wenn ein Engraver aus
einem Kontext entfernt wird, kann er seine Objekte nicht
-länger produzieren. Das ist eine eher grobe Methode, die
+länger produzieren. Das ist eine eher grobe Methode, die
Notenausgabe zu beeinflussen, aber es kann von großem
Nutzen sein.
+
@subsubheading Changing a single context
Um einen Engraver von einem einzelnen Kontext zu entfernen,
in dem vorigen Abschnitt gezeigt.
Als ein Beispiel wollen wir das Beispiel aus dem letzten
-Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
+Abschnitt produzieren, aber die Notenlinien entfernen. Erinnern
Sie sich, dass die Notenlinien vom @code{Staff_symbol_engraver}
erstellt werden.
@cindex Ambitus-Engraver
Engraver können auch zu einem bestimmten
-Kontext hinzugefügt werden. Dies geschieht
+Kontext hinzugefügt werden. Dies geschieht
mit dem Befehl
@code{\consists @var{Engraver_bezeichnung}}
@noindent
welcher auch wieder innerhalb der @code{\with}-Umgebung
-gesetzt wird. Einige Chorpartituren zeigen einen
+gesetzt wird. Einige Chorpartituren zeigen einen
Ambitus direkt zu Beginn der ersten Notenzeile, um
den Stimmumfang des Stückes anzuzeigen, siehe auch
-@rglos{ambitus}. Der Ambitus wird vom
+@rglos{ambitus}. Der Ambitus wird vom
@code{Ambitus_engraver} erstellt, der normalerweise
-in keinem Kontext enthalten ist. Wenn wir
+in keinem Kontext enthalten ist. Wenn wir
ihn zum @code{Voice}-Kontext hinzufügen, errechnet
er automatisch den Stimmumfang für diese einzelne Stimme
und zeigt ihn an:
>>
@end lilypond
+
@subsubheading Changing all contexts of the same type
@funindex \layout
Die vorigen Beispiele zeigen, wie man Engraver in einem
-bestimmten Kontext hinzufügen oder entfernen kann. Es ist
+bestimmten Kontext hinzufügen oder entfernen kann. Es ist
auch möglich, Engraver in jedem Kontext eines bestimmten
-Typs hinzuzufügen oder zu entfernen. Dazu werden die
+Typs hinzuzufügen oder zu entfernen. Dazu werden die
Befehle in dem entsprechenden Kontext in einer
-@code{\layout}-Umgebung gesetzt. Wenn wir also z. B.
+@code{\layout}-Umgebung gesetzt. Wenn wir also z. B.
den Ambitus für jedes Notensystem in einer Partitur
mit vier Systemen anzeigen wollen, könnte das so aussehen:
Sie haben sich durch die Übung gearbeitet, Sie
wissen jetzt, wie Sie Notensatz produzieren, und Sie
-haben die grundlegenden Konzepte verstanden. Aber wie
+haben die grundlegenden Konzepte verstanden. Aber wie
erhalten Sie genau die Systeme, die Sie brauchen? Es
gibt eine ganze Anzahl an fertigen Vorlagen
(siehe @ref{Templates}), mit denen Sie beginnen
-können. Aber was, wenn Sie nicht genau das finden,
+können. Aber was, wenn Sie nicht genau das finden,
was Sie brauchen? Lesen Sie weiter.
@menu
* Building a score from scratch::
@end menu
+
@node Soprano and cello
@subsection Soprano and cello
@cindex Template, Verändern von
@cindex Vorlage, Verändern von
+@cindex Veränderung von Vorlagen
Beginnen Sie mit der Vorlage, die Ihren Vorstellungen
-am nächsten kommt. Nehmen wir einmal an, Sie wollen
-ein Stück für Sopran und Cello schreiben. In diesem
+am nächsten kommt. Nehmen wir einmal an, Sie wollen
+ein Stück für Sopran und Cello schreiben. In diesem
Fall könnten Sie mit der Vorlage @qq{Noten und Text}
(für die Sopran-Stimme) beginnen.
@}
@end example
-Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
+Jetzt wollen wir die Cello-Stimme hinzufügen. Schauen wir uns das
Beispiel @qq{Nur Noten} an:
@example
@}
@end example
-Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
-brauchen aber den @code{melody}-Abschnitt. Wir wollen
+Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir
+brauchen aber den @code{melody}-Abschnitt. Wir wollen
keine zwei @code{\score} (Partitur)-Abschnitte -- mit zwei
@code{\score}-Abschnitten würden wir zwei Stimmen
-getrennt voneinander erhalten. In diesem Fall wollen wir
-sie aber zusammen, als Duett. Schließlich brauchen wir
+getrennt voneinander erhalten. In diesem Fall wollen wir
+sie aber zusammen, als Duett. Schließlich brauchen wir
innerhalb des @code{\score}-Abschnittes nur einmal die
Befehle @code{\layout} und @code{\midi}.
Wenn wir jetzt einfach zwei @code{melody}-Abschnitte in
unsere Datei kopieren würden, hätten wir zwei @code{melody}-Variable.
Das würde zu keinem Fehler führen, aber die zweite von ihnen
-würde für beide Melodien eingesetzt werden. Wir müssen
+würde für beide Melodien eingesetzt werden. Wir müssen
ihnen also andere Bezeichnungen zuweisen, um sie voneinander
-zu unterscheiden. Nennen wir die Abschnitte also @code{sopranoMusic}
-für den Sopran und @code{celloMusic} für die Cellostimme. Wenn
+zu unterscheiden. Nennen wir die Abschnitte also @code{SopranNoten}
+für den Sopran und @code{CelloNoten} für die Cellostimme. Wenn
wir schon dabei sind, können wir @code{text}auch nach
-@code{sopranoLyrics} umbenennen. Denken Sie daran, beide
+@code{SoprText} umbenennen. Denken Sie daran, beide
Vorkommen der Bezeichnung zu ändern: einmal die Definition
gleich am Anfang (@code{melody = \relative c' @{ }) und
dann auch noch die Benutzung der Variable innerhalb des
@example
\version @w{"@version{}"}
-sopranoMusic = \relative c' @{
+SopranNoten = \relative c' @{
\clef treble
\key c \major
\time 4/4
a4 b c d
@}
-sopranoLyrics = \lyricmode @{
+SoprText = \lyricmode @{
Aaa Bee Cee Dee
@}
-celloMusic = \relative c @{
+CelloNoten = \relative c @{
\clef bass
\key c \major
\time 4/4
\score @{
<<
- \new Voice = "one" @{
+ \new Voice = "eins" @{
\autoBeamOff
- \sopranoMusic
+ \SopranNoten
@}
- \new Lyrics \lyricsto "one" \sopranoLyrics
+ \new Lyrics \lyricsto "eins" \Soprantext
>>
\layout @{ @}
\midi @{ @}
Das sieht schon vielversprechend aus, aber die Cello-Stimme
erscheint noch nicht im Notensatz -- wir haben vergessen,
-sie in den @code{\score}-Abschnitt einzufügen. Wenn die
+sie in den @code{\score}-Abschnitt einzufügen. Wenn die
Cello-Stimme unterhalb des Soprans erscheinen soll, müssen
wir
@example
-\new Staff \celloMusic
+\new Staff \CelloNoten
@end example
@noindent
-unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
+unter dem Befehl für den Sopran hinzufügen. Wir brauchen auch
die spitzen Klammern (@code{<<} und @code{>>}) um die
Noten, denn damit wird LilyPond mitgeteilt, dass mehr als
ein Ereignis gleichzeitig stattfindet (in diesem Fall sind es
-zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
+zwei @code{Staff}-Instanzen). Der @code{\score}-Abschnitt
sieht jetzt so aus:
@c Indentation in this example is deliberately poor
\score @{
<<
<<
- \new Voice = "one" @{
+ \new Voice = "eins" @{
\autoBeamOff
- \sopranoMusic
+ \SopranNoten
@}
- \new Lyrics \lyricsto "one" \sopranoLyrics
+ \new Lyrics \lyricsto "eins" \SoprText
>>
- \new Staff \celloMusic
+ \new Staff \CelloNoten
>>
\layout @{ @}
\midi @{ @}
@noindent
Das sieht etwas unschön aus, vor allem die Einrückung stimmt
-nicht mehr. Das können wir aber schnell in Ordnung bringen.
+nicht mehr. Das können wir aber schnell in Ordnung bringen.
Hier also die gesamte Vorlage für Sopran und Cello:
@lilypond[quote,verbatim,ragged-right,addversion]
oder Händels @notation{Messias}) sind so aufgebaut, dass
für jede der vier Stimmen ein eigenes System besteht und
die Orchesterbegleitung dann als Klavierauszug darunter
-notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
+notiert wird. Hier ein Beispiel aus Händels @notation{Messias}:
@c The following should appear as music without code
@lilypond[quote,ragged-right]
}
@end lilypond
-Keine der Vorlage bietet diesen Aufbau direkt an. Die Vorlage, die
+Keine der Vorlage bietet diesen Aufbau direkt an. Die Vorlage, die
am nächsten daran liegt, ist @qq{SATB-Partitur und automatischer
-Klavierauszug}, siehe @ref{Vocal ensembles}. Wir müssen diese
+Klavierauszug}, siehe @ref{Vocal ensembles}. Wir müssen diese
Vorlage aber so anpassen, dass die Noten für das Klavier nicht
-automatisch aus dem Chorsatz generiert werden. Die Variablen
+automatisch aus dem Chorsatz generiert werden. Die Variablen
für die Noten und den Text des Chores sind in Ordnung, wir
müssen nun noch Variablen für die Klaviernoten hinzufügen.
Die Reihenfolge, in welcher die Variablen in das Chorsystem
(@code{ChoirStaff}) eingefügt werden, entspricht nicht der
-in dem Beispiel oben. Wir wollen sie so sortieren, dass die
+in dem Beispiel oben. Wir wollen sie so sortieren, dass die
Texte jeder Stimme direkt unter den Noten notiert werden.
Alle Stimmen sollten als @code{\voiceOne} notiert werden,
welches die Standardeinstellung ist; wir können also die
-@code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
-den Schlüssel für den Tenor ändern. Die Methode, mit der
+@code{\voiceXXX}-Befehle entfernen. Wir müssen auch noch
+den Schlüssel für den Tenor ändern. Die Methode, mit der
der Text den Stimmen zugewiesen wird, ist uns noch nicht
bekannt, darum wollen wir sie umändern auf die Weise, die
-wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
+wir schon kennen. Wir fügen auch noch Instrumentbezeichnungen
zu den Systemen hinzu.
Damit erhalten wir folgenden @code{ChoirStaff}:
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = "Soprano"
- \new Voice = "sopranos" @{ \global \sopranoMusic @}
+ \new Voice = "sopranos" @{ \global \SopranNoten @}
>>
- \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+ \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
\new Staff = "altos" <<
\set Staff.instrumentName = "Alto"
- \new Voice = "altos" @{ \global \altoMusic @}
+ \new Voice = "altos" @{ \global \AltNoten @}
>>
- \new Lyrics \lyricsto "altos" @{ \altoWords @}
+ \new Lyrics \lyricsto "altos" @{ \AltText @}
\new Staff = "tenors" <<
\set Staff.instrumentName = "Tenor"
- \new Voice = "tenors" @{ \global \tenorMusic @}
+ \new Voice = "tenors" @{ \global \TenorNoten @}
>>
- \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+ \new Lyrics \lyricsto "tenors" @{ \TenorText @}
\new Staff = "basses" <<
\set Staff.instrumentName = "Bass"
- \new Voice = "basses" @{ \global \bassMusic @}
+ \new Voice = "basses" @{ \global \BassNoten @}
>>
- \new Lyrics \lyricsto "basses" @{ \bassWords @}
- >> % end ChoirStaff
+ \new Lyrics \lyricsto "basses" @{ \BassText @}
+ >> % Ende ChoirStaff
@end example
Als nächstes müssen wir das Klaviersystem bearbeiten.
@example
\new PianoStaff <<
\set PianoStaff.instrumentName = "Piano "
- \new Staff = "upper" \upper
- \new Staff = "lower" \lower
+ \new Staff = "oben" \oben
+ \new Staff = "unten" \unten
>>
@end example
@noindent
-und fügen die Variablen @code{upper}
-und @code{lower} hinzu.
+und fügen die Variablen @code{oben}
+und @code{unten} hinzu.
Das Chorsystem und das Pianosystem müssen mit
spitzen Klammern kombiniert werden, damit beide
übereinandern erscheinen:
@example
-<< % combine ChoirStaff and PianoStaff one above the other
+<< % ChoirStaff und PianoStaff parallel kombinieren
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \new Voice = "sopranos" @{ \global \sopranoMusic @}
+ \new Voice = "sopranos" @{ \global \SopranNoten @}
>>
- \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+ \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
\new Staff = "altos" <<
- \new Voice = "altos" @{ \global \altoMusic @}
+ \new Voice = "altos" @{ \global \AltNoten @}
>>
- \new Lyrics \lyricsto "altos" @{ \altoWords @}
+ \new Lyrics \lyricsto "altos" @{ \AltText @}
\new Staff = "tenors" <<
- \clef "G_8" % tenor clef
- \new Voice = "tenors" @{ \global \tenorMusic @}
+ \clef "G_8" % Tenorschlüssel
+ \new Voice = "tenors" @{ \global \TenorNoten @}
>>
- \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+ \new Lyrics \lyricsto "tenors" @{ \TenorText @}
\new Staff = "basses" <<
\clef "bass"
- \new Voice = "basses" @{ \global \bassMusic @}
+ \new Voice = "basses" @{ \global \BassNoten @}
>>
- \new Lyrics \lyricsto "basses" @{ \bassWords @}
- >> % end ChoirStaff
+ \new Lyrics \lyricsto "basses" @{ \BassText @}
+ >> % Ende ChoirStaff
\new PianoStaff <<
\set PianoStaff.instrumentName = "Piano"
- \new Staff = "upper" \upper
- \new Staff = "lower" \lower
+ \new Staff = "oben" \oben
+ \new Staff = "unten" \unten
>>
>>
@end example
@cindex Template, eigene schreiben
@cindex Vorlagen, eigene schreiben
+@cindex eigene Vorlagen erstellen
+@cindex Erstellen von eigenen Vorlagen
+@cindex Schreiben von eigenen Vorlagen
Wenn Sie einige Fertigkeit im Schreiben von LilyPond-Code
gewonnen haben, werden Sie vielleicht feststellen, dass es
manchmal einfacher ist, von Grund auf anzufangen, anstatt
-die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
+die fertigen Vorlagen zu verändern. Auf diese Art könne Sie
auch Ihren eigenen Stil entwickeln, und ihn der Musik anpassen,
-die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
+die Sie notieren wollen. Als Beispiel wollen wir demonstrieren,
wie man die Partitur für ein Orgelpreludium von Grund auf
konstruiert.
Hier notieren wir den Titel, den Namen des Komponisten usw.
Danach schreiben wir die einzelnen Variablen auf und
schließlich am Ende die eigentliche Partitur, den
-@code{\score}-Abschnitt. Beginnen wir mit einer groben
+@code{\score}-Abschnitt. Beginnen wir mit einer groben
Struktur, in die wir dann die Einzelheiten nach und nach
eintragen.
Als Beispiel benutzen wir zwei Takte aus dem Orgelpreludium
@notation{Jesu, meine Freude} von J. S. Bach, notiert
-für zwei Manuale und Pedal. Sie können die Noten am Ende
-dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
-das untere und das Pedalsystem jeweils nur eine. Wir
+für zwei Manuale und Pedal. Sie können die Noten am Ende
+dieses Abschnittes sehen. Das obere Manual trägt zwei Stimmen,
+das untere und das Pedalsystem jeweils nur eine. Wir
brauchen also vier Variablen für die Noten und eine, um
Taktart und Tonart zu definieren.
Als nächstes schauen wir uns an, was in die
Partitur (die @code{\score}-Umgebung)
-kommt. Dazu wird einfach die Notensystemstruktur
-konstruiert, die wir benötigen. Orgelmusik
+kommt. Dazu wird einfach die Notensystemstruktur
+konstruiert, die wir benötigen. Orgelmusik
wird meistens auf drei Systemen notiert, eins
für jedes Manual und ein drittes für die Pedalnoten.
Die Systeme für die Manuale werden mit einer
@end example
Als nächstes soll das System für das Pedal hinzugefügt
-werden. Es soll unter das Klaviersystem gesetzt
+werden. Es soll unter das Klaviersystem gesetzt
werden, aber muss gleichzeitig mit ihm erscheinen.
Wir brauchen also spitze Klammern um beide
-Definitionen. Sie wegzulassen würde eine Fehlermeldung
-in der Log-Datei hervorrufen. Das ist ein sehr
+Definitionen. Sie wegzulassen würde eine Fehlermeldung
+in der Log-Datei hervorrufen. Das ist ein sehr
häufiger Fehler, der wohl auch Ihnen früher
-oder später unterläuft. Sie können das fertige
+oder später unterläuft. Sie können das fertige
Beispiel am Ende des Abschnittes kopieren und die
Klammern entfernen, um zu sehen, wie die
Fehlermeldung aussehen kann, die Sie in solch
Es ist nicht notwendig, die simultane Konstruktion
@code{<< .. >>} innerhalb des zweiten Manualsystems
und des Pedalsystems zu benutzen, denn sie enthalten
-nur eine Stimme. Andererseits schadet es nichts, sie
+nur eine Stimme. Andererseits schadet es nichts, sie
zu schreiben, und es ist eine gute Angewohnheit, immer
die spitzen Klammern nach einem @code{\new Staff} zu
schreiben, wenn mehr als eine Stimme vorkommen könnten.
die nacheinander gesetzt werden sollen.
Fügen wir also diese Struktur zu der @code{\score}-Umgebung
-hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
+hinzu und bringen wir die Einzüge in Ordnung. Gleichzeitig
wollen wir die richtigen Schlüssel setzen und die Richtung der
Hälse und Bögen in den Stimmen des oberen Systems
kontrollieren, indem die obere Stimme ein
@code{\voiceOne}, die untere dagegen ein @code{\voiceTwo}
-erhält. Die Taktart und Tonart werden mit unserer fertigen
+erhält. Die Taktart und Tonart werden mit unserer fertigen
Variable @code{\TimeKey} eingefügt.
@example
@} % end Score context
@end example
-Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
+Damit ist das Grundgerüst fertig. Jede Orgelmusik mit drei
Systemen hat die gleiche Struktur, auch wenn die Anzahl der Stimmen
-in einem System sich ändern kann. Jetzt müssen wir nur noch
+in einem System sich ändern kann. Jetzt müssen wir nur noch
die Noten einfügen und alle Teile zusammenfügen, indem wir
die Variablen mit einem Backslash in die Partitur einbauen.
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: 550152ed5d5015d13abf2af83b2e040f996a66a4
+ Translation of GIT committish: 3a8542af9f54c99b53374328af0d5d87005ca49e
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@menu
-* Tweaking basics::
-* The Internals Reference manual::
-* Appearance of objects::
-* Placement of objects::
-* Collisions of objects::
-* Further tweaking::
+* Tweaking basics::
+* The Internals Reference manual::
+* Appearance of objects::
+* Placement of objects::
+* Collisions of objects::
+* Further tweaking::
@end menu
@section Tweaking basics
@menu
-* Introduction to tweaks::
-* Objects and interfaces::
-* Naming conventions of objects and properties::
-* Tweaking methods::
+* Introduction to tweaks::
+* Objects and interfaces::
+* Naming conventions of objects and properties::
+* Tweaking methods::
@end menu
@node Introduction to tweaks
@cindex Interfaces
@cindex Strecker
@cindex Schnittstellen
+@cindex graphische Objekte (Grob)
+@cindex Objekteigenschaften
+@cindex Layout-Objekt
+@cindex Objekt, Layout-
+@cindex Eigenschaften von Objekten
Optimierung bedeutet, die internen Operationen und Strukturen
des LilyPond-Programmes zu verändern, darum sollen hier
Grobs sind nicht an einer Stelle plaziert -- sie haben vielmehr
einen Anfangspunkt, einen Endpunkt und eventuell noch andere
Eigenschaften, die ihre Form bestimmen. Objekte mit solch
-einer erweiterten Gestalt werden als
-@qq{Strecker} (engl. Spanners)
+einer erweiterten Gestalt werden als @qq{Strecker} (engl. Spanners)
bezeichnet.
Es bleibt uns noch übrig zu erklären, was @qq{Schnittstellen}
@node Naming conventions of objects and properties
@subsection Naming conventions of objects and properties
+@cindex Benennungskonventionen für Objekte
+@cindex Benennungskonventionen für Eigenschaften
+@cindex Objekte, Benennungskonventionen
+@cindex Eigenschaften, Benennungskonventionen
+@cindex Regeln zur Benennung von Objekten/Eigenschaften
+
Es wurden schon früher einige Regeln zur Benennung von
Objekten vorgestellt, siehe
@ref{Contexts and engravers}. Hier eine Referenzliste der
Zeichen werden explizit angegeben.
@multitable @columnfractions .33 .33 .33
-@headitem Objekt-/Eigenschaftstyp
+@headitem Objekt-/Eigenschaftstyp
@tab Naming convention
@tab Beispiele
@item Kontexte
@tab Clef_engraver, Note_heads_engraver
@item Schnittstellen
@tab aaa-aaa-interface
- @tab grob-interface, break-aligned-interface
+ @tab grob-interface, break-aligned-interface
@item Kontext-Eigenschaften
@tab aaa oder aaaAaaaAaaa
@tab alignAboveContext, skipBars
@tab direction, beam-thickness
@end multitable
-Es wird bald ersichtlich werden, dass die Eigenschaften von
+Es wird bald ersichtlich werden, dass die Eigenschaften von
unterschiedlichen Objekttypen mit unterschiedlichen Befehlen
geändert werden. Deshalb ist es nützlich, aus der
Schreibweise zu erkennen, um was
@node Tweaking methods
@subsection Tweaking methods
-@strong{Der \override-Befehl}
-
@cindex override-Befehl
@funindex \override
+@funindex override
+
+@strong{Der \override-Befehl}
Wir haben uns schon mit den Befehlen @code{\set}
und @code{\with} bekannt gemacht, mit welchen
Die allgemeine Syntax dieses Befehles ist:
@example
-\override @var{Kontext}.@var{LayoutObjekt} #'@var{layout-eigenschaft} = #@var{Wert}
+\override @var{Kontext}.@var{LayoutObjekt} #'@var{layout-eigenschaft} =
+#@var{Wert}
@end example
@noindent
zu erläutern. Hier ein einfaches Beispiel, um die Farbe des Notenkopfes
zu ändern:
+@cindex color-Eigenschaft, Beispiel
+@cindex Farb-Eigenschaft, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
c d
\override NoteHead #'color = #red
a b c
@end lilypond
+
@strong{Der \revert-Befehl}
@cindex revert-Befehl
@funindex \revert
+@funindex revert
Wenn eine Eigenschaft einmal überschrieben wurde, wird ihr
neuer Wert so lange bewahrt, bis er noch einmal überschrieben
Beispiele ausgelassen. Im nächsten Beispiel wird die Farbe des Notenkopfes
wieder auf den Standardwert für die letzten zwei Noten gesetzt.
+@cindex color-Eigenschaft, Beispiel
+@cindex Farb-Eigenschaft, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
c d
\override NoteHead #'color = #red
@strong{\once-Präfix}
+@funindex \once
+@funindex once
+
Sowohl der @code{\override}-Befehl als auch der @code{\set}-Befehl können mit
dem Präfix @code{\once} (@emph{einmal}) versehen werden. Dadurch wird
der folgende @code{\override}- oder @code{\set}-Befehl nur für den aktuellen
Beispiel demonstriert, kann damit die Farbe eines einzelnen Notenkopfes
geändert werden:
+@cindex color-Eigenschaft, Beispiel
+@cindex Farb-Eigenschaft, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
c d
\once \override NoteHead #'color = #red
a b c
@end lilypond
+
@strong{Der \overrideProperty-Befehl}
@cindex overrideProperty-Befehl
+
@funindex \overrideProperty
+@funindex overrideProperty
Es gibt eine andere Form des @code{override}-Befehls,
@code{\overrideProperty} (überschreibe Eigenschaft),
in @ruser{Difficult tweaks}.
@c Maybe explain in a later iteration -td
+
@strong{Der \tweak-Befehl}
@cindex tweak-Befehl
@funindex \tweak
+@funindex tweak
Der letzte Optimierungsbefehl in LilyPond ist @code{\tweak}
(engl. optimieren). Er wird eingesetzt um Eigenschaften
werden. Schauen wir zuerst, was wir mit
@code{\once \override} erhalten:
+@cindex Schriftgröße, Beispiel
+@cindex NoteHead, Beispiel für override
+@cindex Notenkopf, Beispiel für Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
<c e g>4
\once \override NoteHead #'font-size = #-3
Um also zu unserem Beispiel zurückzukommen, könnte man die
mittlere Note eines Akkordes auf diese Weise ändern:
+@cindex font-size-Eigenschaft, Beispiel
+@cindex Schriftgröße, Beispiel
+@cindex @code{\tweak}-Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
<c e g>4
<c \tweak #'font-size #-3 e g>4
eine von mehreren Artikulationen zu ändern, wie im nächsten
Beispiel zu sehen ist.
+@cindex Farb-Eigenschaft, Beispiel
+@cindex @code{\tweak}-Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
a ^Black
-\tweak #'color #red ^Red
Aufteilung für die erste der kurzen Klammern in rot
gesetzt wird.
+@cindex Farb-Eigenschaft, Beispiel
+@cindex @code{\tweak}-Beispiel
+@cindex Richtungs-Eigenschaft, Beispiel
+@cindex color-Eigenschaft, Beispiel
+@cindex direction-Eigenschaft, Beispiel
+
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
\tweak #'direction #up
\times 4/3 {
beginnen, kann ihr Aussehen auf die übliche Art mit dem
@code{\override}-Befehl geändert werden:
+@cindex text-Eigenschaft, Beispiel
+@cindex tuplet-number-Funktion, Beispiel
+@cindex transparent-Eigenschaft, Beispiel
+@cindex TupletNumber, Beispiel zur Veränderung
+@cindex Triolennummer, Beispiel zur Veränderung
+@cindex Triolen-Nummer-Funktion, Beispiel
+
@c NOTE Tuplet brackets collide if notes are high on staff
@c See issue 509
@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
@ruser{The tweak command}.
-
-
-
@node The Internals Reference manual
@section The Internals Reference manual
@menu
-* Properties of layout objects::
-* Properties found in interfaces::
-* Types of properties::
+* Properties of layout objects::
+* Properties found in interfaces::
+* Types of properties::
@end menu
@node Properties of layout objects
@cindex Grobs, Eigenschaften von
@cindex Layout-Objekte, Eigenschaften von
@cindex Property (Layout-Objekte, Grobs)
+@cindex Regerenz der Interna
Angenommen, in Ihrer Partitur tritt ein Legatobogen
auf, der Ihrer Meinung nach zu dünn ausgefallen ist.
@cindex Override-Beispiel
@cindex Referenz der Interna, Benutzung
@cindex IR (Referenz der Interna), Benutzung
+@cindex @code{\addlyrics}-Beispiel
Das Vorgehen soll an einem konkreten Beispiel einer echten
Komposition demonstriert werden. Hier das Beispiel:
The man who feels love's sweet e -- mo -- tion
}
}
-@end lilypond
+@end lilypond
Angenommen also, wir wollen die Legatobögen etwas
dicker setzten. Ist das möglich? Die Legatobögen sind mit
Bezeichnung @code{line-thickness} ist.
Wie schon früher gesagt, gibt es wenig bis gar keine Erklärungen
-in der IR, aber wir haben schon genug Informationen, um
+in der IR, aber wir haben schon genug Informationen, um
zu versuchen, die Dicke eines Legatobogens zu ändern. Die
Bezeichnung des Layout-Objekts ist offensichtlich
@code{Slur} und die Bezeichnung der Eigenschaft, die geändert
@example
\override Slur #'thickness = #5.0
-@end example
+@end example
Vergessen Sie nicht das Rautenzeichen und Apostroph
(@code{#'}) vor der Eigenschaftsbezeichnung und das
die beste Antwort: @qq{Innerhalb der Noten, vor den ersten
Legatobogen und nahe bei ihm.} Also etwa so:
+@cindex Legatobogen, Beispiel für Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+@cindex Dicke-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,relative=2]
{
\time 6/8
The man who feels love's sweet e -- mo -- tion
}
}
-@end lilypond
+@end lilypond
@noindent
und wirklich wird der Legatobogen dicker.
Übung benötigen. Die sollen Sie durch die folgenden Übungen
erhalten.
+
@subheading Finding the context
-@cindex Kontext, Finden
+
+@cindex Kontext, Finden und identifizieren
Manchmal muss dennoch der Kontext spezifiziert werden.
Welcher aber ist der richtige Kontext? Wir könnten raten,
definiert ist, dass wir Noten eingeben, kann er an dieser Stelle
auch weggelassen werden.
+
@subheading Overriding once only
@cindex Override nur einmal
@cindex once override
@funindex \once
+@funindex once
Im Beispiel oben wurden @emph{alle} Legatobögen dicker
gesetzt. Vielleicht wollen Sie aber nur den ersten Bogen
vergessen. Der Befehl, mit @code{\once} zusammen benutzt,
muss also wie folgt positioniert werden:
+@cindex Legatobogen, Beispiel zur Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,relative=2]
{
\time 6/8
The man who feels love's sweet e -- mo -- tion
}
}
-@end lilypond
+@end lilypond
@noindent
Jetzt bezieht er sich nur noch auf den ersten Legatobogen.
Der @code{\once}-Befehl kann übrigens auch vor einem @code{\set}-Befehl
eingesetzt werden.
+
@subheading Reverting
@cindex Revert
@cindex Wiederherstellen von Standardeinstellungen
@cindex Standardeinstellungen, Wiederherstellen
@funindex \revert
+@funindex revert
Eine weitere Möglichkeit: nur die beiden ersten Legatobögen sollen
dicker gesetzt werden. Gut, wir könnten jetzt zwei Befehle benutzen,
jeden mit dem @code{\once}-Präfix und direkt vor die entsprechende
Note gestellt, an welcher der Bogen beginnt:
+@cindex Legatobogen, Beispiel zur Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,relative=2]
{
\time 6/8
The man who feels love's sweet e -- mo -- tion
}
}
-@end lilypond
+@end lilypond
@noindent
Wir könnten aber auch den @code{\once}-Befehl weglassen und anstelle
dessen später den @code{\revert}-Befehl einsetzen, um die
@code{thickness}-Eigenschaft wieder auf ihren Standardwert zurückzusetzen:
+@cindex Legatobogen, Beispiel zur Veränderung
+@cindex thickness-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,relative=2]
{
\time 6/8
und er muss direkt vor den Text gesetzt werden, auf den er sich
bezieht, etwa so:
+@cindex font-shape-Eigenschaft, Beispiel
+@cindex LyricText, Beispiel zur Veränderung
+@cindex kursiv, Beispiel
+@cindex @code{\addlyrics}, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 6/8
@noindent
Jetzt wird der Text kursiv gesetzt.
+
@subheading Specifying the context in lyric mode
-@cindex context, specifying in lyric mode
+
+
+@cindex Kontext im Gesangstextmodus angeben
+@cindex Gesangstextmodus, Kontext angeben
Bei Gesangstexten funktioniert der @code{\override}-Befehl
nicht mehr, wenn Sie den Kontext im oben dargestellten
wenn sie in einem @code{\override}-Befehl benutzt werden.
@multitable @columnfractions .2 .45 .35
-@headitem Eigenschaftstyp
+@headitem Eigenschaftstyp
@tab Regeln
@tab Beispiele
@item Boolesch
um das Aussehen des Musiksatzes zu beeinflussen.
@menu
-* Visibility and color of objects::
-* Size of objects::
-* Length and thickness of objects::
+* Visibility and color of objects::
+* Size of objects::
+* Length and thickness of objects::
@end menu
nach der anderen an.
@subheading stencil
+
@cindex Stencil-Eigenschaft
@cindex Matrizen-Eigenschaft
wie vorher, indem wir den impliziten Kontext (@code{Voice})
auslassen:
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex stencil-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
nichts in die Log-Datei geschrieben. Versuchen wir also,
den richtigen Kontext mitanzugeben:
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex stencil-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
@noindent
Jetzt sind die Taktlinien wirklich verschwunden.
+
@subheading break-visibility
@cindex break-visibility-Eigenschaft
signalisieren, und das erste @code{#} wird benötigt, um
den Wert in einem @code{\override}-Befehl anzuführen.
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex break-visibility-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
@noindent
Auch auf diesem Weg gelingt es, die Taktlinien unsichtbar zu machen.
+
@subheading transparent
+
@cindex transparent-Eigenschaft
@cindex Durchsichtig machen (transparent)
überzeugen können. Der Befehl, um die Taktangabe unsichtbar zu
machen, ist also:
+@cindex Taktart, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
muss die Matrize (stencil) der Taktangabe auf @code{#f} (falsch)
gesetzt werden:
+@cindex Taktart, Beispiel zur Veränderung
+@cindex stencil-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
entfernt, während man mit @code{transparent} ein Objekt
unsichtbar machen kann, es aber an seinem Platz gelassen wird.
+
@subheading color
-@cindex color property
+
+@cindex color-Eigenschaft
+@cindex Farb-Eigenschaft
Abschließend wollen wir die Taktlinien unsichtbar machen, indem
wir sie weiß einfärben. (Es gibt hier eine Schwierigkeit: die weiße
dass die Bezeichnungen auf English sind. Um die Taktlinien auf
weiß zu setzen, können Sie schreiben:
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex color-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
@cindex Farben, X11
@cindex X11-Farben
+@funindex x11-color
Die zweite Art die Farbe zu ändern geschieht, indem die Liste
der X11-Farbbezeichnungen einzusetzen, siehe die zweite Liste
in interne Werte konvertiert:
@code{x11-color}. Das geschieht wie folgt:
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex color-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
@cindex RGB-Farben
@cindex Farben, RGB
+@funindex rgb-color
Es gibt noch eine dritte Funktion, die RGB-Werte in die
internen Werte übersetzt -- die @code{rgb-color}-Funktion. Sie
Wert der Funktion lauten: @code{(rgb-color 1 0 0)}, weiß
würde sein: @code{(rgb-color 1 1 1)}.
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex color-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
illustrieren, indem alle Layout-Objekte im Beispiel
verschiede Grauschattierungen erhalten:
+@cindex StaffSymbol, Beispiel zur Veränderung
+@cindex TimeSignature, Beispiel zur Veränderung
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex Taktlinie, Beispiel zur Veränderung
+@cindex Farbeigenschaft, Beispiel
+@cindex x11-Farben, Beispiel
+@cindex Taktlinien, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+@cindex Clef, Beispiel zur Veränderung
+@cindex Stem, Beispiel zur Veränderung
+@cindex NoteHead, Beispiel zur Veränderung
+@cindex Notenkopf, Beispiel zur Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
{
\time 12/16
@node Size of objects
@subsection Size of objects
+@cindex Veränderung von Objektgrößen
+@cindex Objektgrößen, verändern
+@cindex Größen von Objekten verändern
+
Als Startpunkt wollen wir wieder ein früheres Beispiel
wählen, siehe @ref{Nesting music expressions}. Hier wurde
ein neues Notensystem erstellt, wie man es für ein @rglos{ossia}
braucht.
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
Wie man Schlüssel und Taktangabe entfernt, wissen wir schon:
wir setzen den Stencil von beiden auf @code{#f}:
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
Das obige Beispiel könnte also auch so aussehen:
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
Setzen wir das also in unserem Ossia-Beispiel ein:
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Staff ="main" {
\relative g' {
Sie müssen auch proportional zur Schriftart verkleinert
werden. Der nächste Abschnitt behandelt diese Anpassung.
+
@node Length and thickness of objects
@subsection Length and thickness of objects
@cindex Entfernungen
@cindex Dicke
@cindex Länge
-@cindex magstep
+@funindex magstep
@cindex Größe, verändern
@cindex Notenhalslänge, verändern
@cindex Hälse, Länge verändern
Objekte proportionell zueinander zu verändern. So wird
sie benutzt:
+@cindex alignAboveContext-Eigenschaft, Beispiel
+@cindex über dem System anordnen, Beispiel
+@cindex @code{\with}-Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex Schlüssel, Beispiel zur Veränderung
+@cindex Taktart, Beispiel zur Veränderung
+@cindex Notenlinienabstände verändern
+@cindex staff-space-Eigenschaft verändern
+@cindex magstep-Funktion, Beispiel
+@cindex Schriftart-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Staff ="main" {
\relative g' {
@section Placement of objects
@menu
-* Automatic behavior::
-* Within-staff objects::
-* Outside staff objects::
+* Automatic behavior::
+* Within-staff objects::
+* Outside-staff objects::
@end menu
+
@node Automatic behavior
@subsection Automatic behavior
+@cindex within-staff-Objekte
+@cindex outside-staff-Objekte
+@cindex Objekte innerhalb des Notensystems
+@cindex Objekte außerhalb des Notensystems
+
Es gibt Objekte der Notation, die zum Notensystem gehören, und
andere, die außerhalb des Systems gesetzt werden müssen. Sie
werden @code{within-staff}-Objekte bzw.
dass @qq{Text3} wieder dicht am System gesetzt wurde, weil
er unter @qq{Text2} passt.
+@cindex Textbeschriftungsbeispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c2^"Text1"
c^"Text2"
\relative c'''' { c a, }
}
>>
-@end lilypond
+@end lilypond
@node Within-staff objects
berücksichtigt, wenn die @code{direction}-Eigenschaft verändert
wird.
+@funindex down
+@funindex up
+@funindex center
+@funindex neutral
+@cindex hoch-Eigenschaft
+@cindex runter-Eigenschaft
+@cindex zentriert-Eigenschaft
+@cindex neutral-Eigenschaft
+
Das folgende Beispiel zeigt im ersten Takt die Standardeinstellung
für Hälse, die bei hohen Noten nach unten zeigen und bei tiefen
noten nach oben. Im nächsten Takt werden alle Hälse nach unten
gezwungen, im dritten Takt nach oben, und im vierten wird wieder
der Standard eingestellt.
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex Richtungseigenschaft, Beispiel
+
@lilypond[quote,verbatim,relative=2]
a4 g c a
\override Stem #'direction = #DOWN
@code{CENTER}, die den Wert @code{0} hat.
Es gibt aber einfachere Befehle, die normalerweise benutzt werden.
-Hier eine Tabelle der häufigsten.
+Hier eine Tabelle der häufigsten. Die Bedeutung des Befehls wird
+erklärt, wenn sie nicht selbsverständlich ist.
@multitable @columnfractions .2 .2 .25 .35
@headitem Runter/Links
Befehl, gefolgt von dem entsprechenden neutralisierenden
@code{xxxNeutral}-Befehl nach der Note.
+
@subheading Fingering
+
@cindex Fingersatz, Positionierung
+@cindex Fingersatz, Akkorde
-Die Positionierung von Fingersatz wird beeinflusst vom Wert
-seiner @code{direction}-Eigenschaft, aber es gibt auch hier
+Die Positionierung von Fingersatz kann auch durch den Wert
+seiner @code{direction}-Eigenschaft beeinflusst werden, aber
+eine Veränderung von @code{direction} hat keinen Einfluss auf
+Akkorde. es gibt auch hier
besondere Befehle, mit denen der Fingersatz von einzelnen
Noten in Akkorden kontrolliert werden kann, wobei mögliche
Positionen über, unter der Note und rechts bzw. links von
die Wirkung von @code{DOWN} (runter) und @code{UP}
(hinauf).
+@cindex Fingersatz, Beispiel zur Veränderung
+@cindex direction-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,relative=2]
c-5 a-3 f-1 c'-5
\override Fingering #'direction = #DOWN
c-5 a-3 f-1 c'-5
@end lilypond
-So kann die Fingersatzposition für einzelne Noten
-kontrolliert werden, aber das funktioniert nicht für Akkorde.
-Anstelle dessen wird der Fingersatz automatisch entweder
+Eine Beeinflussung der @code{direction}-Eigenschaft ist jedoch
+nicht die einfachste Art, Fingersatzbezeichnungen manuell über oder
+unter das System zu setzen. Normalerweise bietet es sich an,
+@code{_} oder @code{^} anstelle von @code{-} vor der Fingersatz-Zahl
+zu benutzen. Hier das vorherigen Beispiel mit dieser Methode:
+
+@cindex Fingersatz-Beispiel
+
+@lilypond[quote,verbatim,relative=2]
+c-5 a-3 f-1 c'-5
+c_5 a_3 f_1 c'_5
+c^5 a^3 f^1 c'^5
+@end lilypond
+
+Die @code{direction}-Eigenschaft wirkt sich nicht auf
+Akkorde aus, während die Präfixe @code{_} und @code{^} funktionieren.
+Standardmäßig wird der Fingersatz automatisch entweder
über oder unter dem Akkord gesetzt:
+@cindex Fingersatz-Beispiel
+
@lilypond[quote,verbatim,relative=2]
<c-5 g-3>
<c-5 g-3 e-2>
<c-5 g-3 e-2 c-1>
@end lilypond
-Bessere Kontrolle über die Positionierung von Fingersatz für
+@noindent
+aber das kann manuell geändert werden, um einzelne Fingersatzanweisungen
+nach oben oder unten zu zwingen:
+
+@cindex Fingersatz-Beispiel
+
+@lilypond[quote,verbatim,relative=2]
+<c-5 g-3 e-2 c-1>
+<c^5 g_3 e_2 c_1>
+<c^5 g^3 e^2 c_1>
+@end lilypond
+
+Noch bessere Kontrolle über die Positionierung von Fingersatz für
einzelne Noten in einem Akkord ist mit dem
@code{\set fingeringOrientations}-Befehl möglich. Die Syntax
lautet:
Eigenschaft des @code{Voice}-Kontextes ist, erstellt und eingesetzt
vom @code{New_fingering_engraver}.
-Die Eigenschaft kann als Wert eine Liste mit einem bis drei Eintragen
+Die Eigenschaft kann als Wert eine Liste mit einem bis drei Einträgen
haben. Damit wird bestimmt, ob Fingersatz oberhalb gesetzt
werden kann (wenn @code{up} in der Liste auftaucht), darunter
(wenn@code{down} auftaucht), links (wenn @code{left} auftaucht)
geschehen, nicht auf beiden gleichzeitig, es kann also nur entweder
@code{left} oder @code{right} auftreten, nicth beide gleichzeitig.
-Damit eine einzelne Note mit diesem Befehl beeinflusst werden
+@warning{Damit eine einzelne Note mit diesem Befehl beeinflusst werden
kann, muss sie als ein @qq{Ein-Noten-Akkord} geschrieben
werden, indem einfache spitze Klammern um die Note positioniert
-werden.
+werden.}
Hier ein paar Beispiele:
+@cindex Fingersatz-Beispiel
+@cindex @code{\set}, Benutzungsbeispiel
+@cindex fingerOrientations-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,relative=1]
\set fingeringOrientations = #'(left)
<f-2>
\set fingeringOrientations = #'(right)
<f-2>
< c-1 e-2 g-3 b-5 > 4
-@end lilypond
+@end lilypond
@noindent
Wenn die Fingersatzbezeichnung zu gedrungen aussieht,
-
-@node Outside staff objects
-@subsection Outside staff objects
+@node Outside-staff objects
+@subsection Outside-staff objects
Objekte außerhalb des Notensystems werden automatisch gesetzt,
um Kollisionen zu vermeiden. Objekten mit einem geringeren
@code{Staff}- oder @code{Voice}-Kontext gesetzt werden.
@multitable @columnfractions .3 .3 .3
-@headitem Layout-Objekt
- @tab Priorität
+@headitem Layout-Objekt
+ @tab Priorität
@tab Kontrolliert Position von:
@item @code{MultiMeasureRestText}
@tab @code{450}
@cindex Text-Spanner
@funindex \startTextSpan
@funindex \stopTextSpan
+@funindex startTextSpan
+@funindex stopTextSpan
@cindex Ottava-Klammer
@cindex Oktavierungsklammer
+@cindex TextSpanner, Beispiel zur Veränderung
+@cindex bound-details-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
% Set details for later Text Spanner
\override TextSpanner #'(bound-details left text)
Im Beispiel wird auch gezeigt, wie Oktavierungsklammern
(Ottava) erstellt werden.
+@cindex Taktzahlposition verändern
+@cindex Verändern der Taktzahlposition
+@cindex Position der Taktzahl, verändern
+@cindex Metronom-Bezeichnungsposition verändern
+@cindex Verändern der Metronom-Bezeichnungsposition
+@cindex Übungszeichenposition verändern
+@cindex Verändern der Übungszeichenposition
+
Beachten Sie, dass Taktnummern, Metronombezeichnungen
und Übungszeichen nicht gezeigt werden. Sie werden
standardmäßig im @code{Score}-(Partitur)-Kontext
zu denken ist, dass @code{OttavaBracket} im @code{Staff}-Kontext
erstellt wird:
+@cindex TextSpanner, Beispiel zur Veränderung
+@cindex bound-details-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
% Set details for later Text Spanner
\override TextSpanner #'(bound-details left text)
Tabelle oben festgestellt werden und dann die Priorität für
@qq{Text3} höher eingestellt werden:
+@cindex TextScript, Beispiel zur Veränderung
+@cindex outside-staff-priority-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c2^"Text1"
c^"Text2"
@subheading \textLengthOn
-@funindex \textLengthOn
@cindex Noten, durch Text gespreizt
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLengthOff
Standardmäßig wird Text, der mit dem Beschriftungsbefehl
@code{\markup} bzw. Äquivalenten erstellt wird, kein
c^"Text2"
c^"Text3"
c^"Text4"
-@end lilypond
+@end lilypond
-Dieses Verhalten wird mit dem
-@code{\textLengthOff}-Befehl rückgängig gemacht. Erinnern Sie
-sich, dass @code{\once} nur mit
+Dieses Verhalten wird mit dem @code{\textLengthOff}-Befehl
+rückgängig gemacht. Erinnern Sie sich, dass @code{\once} nur mit
@code{\override}, @code{\set}, @code{\revert} oder @code{unset}
funktioniert, der Befehl kann also nicht zusammen mit
@code{\textLengthOn} benutzt werden.
+@cindex Textbeschriftung, Vermeidung von Zusammenstößen
+@cindex Zusammenstöße vermeiden mit Textbeschriftung
+
Textbeschriftung vermeidet auch Noten, die über das System hinausstehen.
Wenn das nicht gewünscht ist, kann die automatische Verschiebung
nach oben hin auch vollständig ausgeschaltet werden, indem die
Priorität auf @code{#f} gesetzt wird. Hier ein Beispiel, wie
eine Textbeschriftung mit diesen Noten reagiert:
+@cindex Textbeschriftung, Beispiel zur Veränderung
+@cindex outside-staff-priority-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
% This markup is short enough to fit without collision
c2^"Tex"
@subheading Dynamics
+@cindex Verändern der Positionierung von Dynamikzeichen
+@cindex Dynamikzeichen: Positionierung verändern
+
Dynamikbezeichnung wird üblicherweise unter dem System
gesetzt, kann aber auch nach oben mit dem Befehl
@code{dynamicUp} gezwungen werden. Die Bezeichnung
müssen also unsere eigenen Befehle mit @code{\override}
konstruieren.
+
@subheading Grob sizing
@cindex Grob, Größenveränderung
@cindex Größenveränderung von grobs
-@cindex @code{X-offset}
-@cindex @code{Y-offset}
-@cindex @code{X-extent}
-@cindex @code{Y-extent}
Zuallererst müssen wir lernen, wie die Größe von Grobs verändert
wird. Alle Grobs besitzen einen Referenzpunkt, der
@noindent
Schauen wir uns an, wie es mit dem vorigen Beispiel funktioniert:
+@cindex DynamicText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
\override DynamicText #'extra-spacing-width = #'(0 . 0)
Notenlinien, es scheint also gut, den rechten und linken
Rand eine halbe Einheit zu vergrößern:
+@cindex DynamicText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
% Extend width by 1 staff space
@section Collisions of objects
@menu
-* Moving objects::
-* Fixing overlapping notation::
-* Real music example::
+* Moving objects::
+* Fixing overlapping notation::
+* Real music example::
@end menu
@node Moving objects
@subsection Moving objects
+@cindex Verschieben von überschneidenden Objekten
+@cindex Verschieben von Zusammenstößen
+@cindex Zusammenstöße vermeiden
+@cindex Objekte, verschieben von Zusammestößen
+@cindex Vermeiden von Zusammenstößen
+
Es wird vielleicht eine Überraschung sein, aber LilyPond ist nicht
perfekt. Einige Notationselemente können sich überschneiden. Das
ist nicht schön, aber zum Glück sehr selten. Normalerweise müssen
@cindex staff-padding-Eigenschaft
@cindex Verschieben (padding)
@cindex Füllung (padding)
+@cindex padding (Füllung)
+
Wenn ein Objekt platziert wird, bestimmt der Wert seiner
@code{padding}-(Füllungs)-Eigenschaft die Größe des
Abstandes, der zwischen dem Objekt selber und dem
allen Objekten hinzugefügt werden, die das
@code{side-position-interface} unterstützen.
-
Anstelle von @code{padding} wird die Position von
Versetzungszeichengruppen durch die Eigenschaften
@code{left-padding} und @code{right-padding} bestimmt.
@cindex self-alignment-X-Eigenschaft
@cindex Selbstpositionierung von Objekten
@cindex Ausrichtung von Objekten
+
Diese Eigenschaft kann benutzt werden, um ein Objekt
nach links, rechts oder zentriert an dem Referenzpunkt des Objekts
auszurichten, an das es verknüpft ist. Es kann bei allen
@code{extra-spacing-width} (zusätzliche Breite)
@cindex extra-spacing-width-Eigenschaft
+
Diese Eigenschaft steht für alle Objekte zur Verfügung, die
das @code{item-interface} unterstützen. Es braucht zwei
Zahlen als Argument, die erste wird zur rechten Ausdehnung,
@code{staff-position} (Notensystempositionierung)
@cindex staff-position-Eigenschaft
+
@code{staff-position} ist eine Eigenschaft des
@code{staff-symbol-referencer-interface}, die von Objekten unterstützt
wird, die relativ zum Notensystem (engl. staff) positioniert werden.
@code{force-hshift} (vertikale Verschiebung erzwingen)
@cindex force-hshift-Eigenschaft
+
Eng beeinander stehende Noten in einem Akkord oder Noten, die zum
gleichen Zeitpunkt in unterschiedlichen Stimmen stehen, werden
in zwei oder manchmal auch mehr Kolumnen gesetzt, um Kollisionen
@table @code
@item extra-offset (zusätzlicher Abstand)
+
@cindex extra-offset-Eigenschaft
+
Diese Eigenschaft gehört zu jedem Layout-Objekt, das das
@code{grob-interface} unterstützt. Sie braucht ein Zahlenpaar,
das die exakte Verschiebung in horizontaler und vertikaler Richtung
kann, ohne den restlichen Satz zu beeinflussen.
@item positions (Position)
+
@cindex positions-Eigenschaft
+
Diese Eigenschaft ist am sinnvollsten, um die Steigung und die
Höhe von Balken, Bögen und Triolenklammern anzupassen.
Sie braucht ein Zahlenpaar, das die Position des rechten und linken
werden können.
@subheading padding property
-@cindex padding (Verschiegungs-Eigenschaft)
+
+@cindex padding (Verschiebungs-Eigenschaft)
+@cindex Überschneidende Notation korrigieren
+@cindex Korrigieren von überschneidender Notation
Die @code{padding}-(Verschiebungs-)Eigenschaft kann benutzt
werden, um den Abstand zwischen Symbolen zu vergößern (oder
zu verkleinern), die über oder unter den Noten gesetzt werden.
+@cindex Script, Beispiel zur Veränderung
+@cindex Verschiebungs-Eigenschaft, Beispiel
+@cindex padding (Verschiebuns-Eigenschaft), Beispiel
+
@lilypond[quote,fragment,relative=1,verbatim]
c2\fermata
\override Script #'padding = #3
b2\fermata
@end lilypond
+@cindex MetronomMark, Beispiel zur Veränderung
+@cindex Verschiebungs-Eigenschaft, Beispiel
+@cindex padding (Verschiebuns-Eigenschaft), Beispiel
+
@lilypond[quote,fragment,relative=1,verbatim]
% This will not work, see below:
\override MetronomeMark #'padding = #3
entsprechend verschoben.
@subheading left-padding and right-padding
+
@cindex left-padding-Eigenschaft (Verschiebung nach links)
@cindex Verschiebung nach rechts oder links
@cindex right-padding-Eigenschaft (Verschiebung nach rechts)
Textbeschriftung (Markup), die sowohl das B als auch das
Aulösungszeichen enthält:
+@cindex Versetzungszeichen, Beispiel zur Veränderung
+@cindex Accidental, Beispiel zur Veränderung
+@cindex Text-Eigenschaft, Beispiel
+@cindex stencil-Eigenschaft, Beispiel
+@cindex AccidentalPlacement, Beispiel zur Veränderung
+@cindex right-padding-Eigenschaft, Beispiel
+@cindex Verschiebung nach rechts (rigth-padding), Beispiel
+
@lilypond[quote,ragged-right,verbatim]
naturalplusflat = \markup { \natural \flat }
\relative c'' {
@subheading staff-padding property
+
@cindex staff-padding-Eigenschaft
+@cindex Objekte an der Grundlinie ausrichten
+@cindex Ausrichten von Objekten an der Grundlinie
@code{staff-padding} (Verschiebung zum Notensystem) kann
verwendet werden um Objekte wie Dynamikzeichen an einer
die als Strecker erstellt wurden. Hier also die Lösung, die Dynamikzeichen
aus dem Beispiel des vorigen Abschnitts auszurichten:
+@cindex DynamikText, Beispiel zur Veränderung
+@cindex extra-spacing-width-Eigenschaft, Beispiel
+@cindex DynamicLineSpanner, Beispiel zur Veränderung
+@cindex staff-padding-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
% Extend width by 1 unit
@subheading self-alignment-X property
+
@cindex self-alignment-X-Eigenschaft
Das nächste Beispiel zeigt, wie man den Zusammenstoß
verhindern kann, indem die rechte Ecke an dem
Referenzpunkt der abhängigen Note angeordnet wird:
+@cindex StringNumber, Beispiel zur Veränderung
+
@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
\voiceOne
< a \2 >
@subheading staff-position property
+
@cindex staff-position-Eigenschaft
@cindex Notensystem-Position-Eigenschaft
+@cindex Kollision von Objekten im System
+@cindex Zusammenstöße von Objekten im System
Vieltaktpausen in einer Stimmen können mit Noten in anderen
Stimmen kollidieren. Da diese Pausen zentriert zwischen den
es also bspw. auf die Position @code{-8} gesetzt werden,
d.h. vier halbe Notenlinienabstände weiter nach unten:
+@cindex MultiMeasureRest, Beispiel zur Veränderung
+@cindex Ganztaktpausen, Beispiel zur Veränderung
+@cindex staff-position-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
<<
{c c c c}
Das ist besser, als etwa @code{extra-offset} zu benutzen, denn
in unserem Fall wird die Hilfslinie der Pause automatisch gesetzt.
+
@subheading extra-offset property
+
@cindex extra-offset-Eigenschaft
@cindex Zusätzlicher Abstand, Positionierung
+@cindex Positionierung von Objekten
+@cindex Objekte, Positionierung
Die @code{extra-offset}-Eigenschaft bietet vollständige Kontrolle
über die Positionierung von Objekten in horizontaler und vertikaler
Im Beispiel unten ist das zweite Fingersatzzeichen (@code{Fingering}) etwas nach
links und 1,8 Notenlinienabstände nach unten verschoben:
+@cindex Fingersatz, Beispiel zur Veränderung
+@cindex extra-offset-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,relative=1,verbatim]
\stemUp
f-5
@subheading positions property
+
@cindex positions-Eigenschaft
+@cindex Kontrolle über Triolen, Bögen und Balken manuell
+@cindex manuelle Kontrolle über Triolen, Bögen, Balken
+@cindex Balken, manuelle Kontrolle
+@cindex Bögen, manuelle Kontrolle
+@cindex Legatobögen, manuelle Kontrolle
+@cindex Phrasierungsbögen, manuelle Kontrolle
+@cindex Triollen-Klammer, manuelle Kontrolle
Die @code{positions}-Eigenschaft erlaubt die Kontrolle von Position und
Steigung von Balken, Legato- und Phrasierungsbögen sowie Triolenklammern.
Man könnte einfach den Phrasierungsbogen oberhalb der Noten setzen, und
das wäre auch die beste Lösung:
+@cindex Phrasierungsbogen, Beispiel zur Veränderung
+@cindex positions-Eigenschaft, Beispiel
+@cindex Positionierung, Beispiel
+
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
r4
\phrasingSlurUp
von ihrer Position 2 Notenlinienabstände über der Mittellinie
hochgeschoben werden, etwa auf 3:
+@cindex Balken, Beispiel zur Veränderung
+@cindex positions-Eigenschaft, Beispiel
+@cindex Positionierung, Beispiel
+
@lilypond[quote,verbatim,fragment,ragged-right]
{
\clef "bass"
Auswirkung auf die Balken der zweiten Stimme hat.
@subheading force-hshift property
+
@cindex force-hshift-Eigenschaft
@cindex Vertikale Verschiebung erzwingen
+
@c FIXME: formatting stuff (ie not important right now IMO)
@c @a nchor Chopin finally corrected TODOgp
Hier das Endergebnis:
+@cindex Notenkolumne, Beispiel zur Veränderung
+@cindex force-hshift-Eigenschaft, Beispiel
+@cindex vertikale Verschiebung, Beispiel
+
@lilypond[quote,verbatim,fragment,ragged-right]
\new Staff \relative c'' {
\key aes \major
Dynamik, Fingersatz und Pedalbezeichnung, um das Beispiel nicht
zu kompliziert zu machen.
-@c The following should appear as music without code
+@c This example should not be indexed
@lilypond[quote,ragged-right]
rhMusic = \relative c'' {
r2
@noindent
um das Verhalten wieder auszuschalten. Das sieht so aus:
+@cindex Bindebogen, Beispiel zur Veränderung
+@cindex staff-position-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,ragged-right]
rhMusic = \relative c'' {
r2 c4.\( g8 |
wir durchsichtig und das C verschieben wir mit der
@code{force-hshift}-Eigenschaft. Hier ist das Endergebnis:
+@cindex Notenkolumne, Beispiel zur Veränderung
+@cindex force-hshift-Eigenschaft, Beispiel
+@cindex Hals, Beispiel zur Veränderung
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,ragged-right]
rhMusic = \relative c'' {
r2
@section Further tweaking
@menu
-* Other uses for tweaks::
-* Using variables for tweaks::
-* Other sources of information::
-* Avoiding tweaks with slower processing::
-* Advanced tweaks with Scheme::
+* Other uses for tweaks::
+* Using variables for tweaks::
+* Other sources of information::
+* Avoiding tweaks with slower processing::
+* Advanced tweaks with Scheme::
@end menu
@node Other uses for tweaks
@cindex Verstecken von Objekten
@cindex Unsichtbare Objekte
@cindex transparent-Eigenschaft, Benutzung
-@cindex Objekte, unsichtbar machen
-@cindex Objekte, entfernen
+@cindex Objekte unsichtbar machen
+@cindex Objekte entfernen
+@cindex Objekte verstecken
@cindex Noten zwischen Stimmen überbinden
@cindex Überbinden von Noten zwischen Stimmen
@noindent
und dann den ersten Hals nach oben unsichtbar macht,
-sieht es so aus, als ober die Überbindung zwischen
+sieht es so aus, als ob die Überbindung zwischen
den Stimmen stattfindet:
+@cindex Hals, Beispiel zur Veränderung
+@cindex Notenhals, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
@lilypond[quote,fragment,relative=2,verbatim]
<<
{
>>
@end lilypond
+
@subheading Simulating a fermata in MIDI
@cindex stencil-Eigenschaft, Benutzung
der Unterschied zwischen einem unsichtbaren Objekt und
einem entfernten Objekt gezeigt:
+@cindex Metronom-Bezeichnung, Beispiel zur Veränderung
+@cindex transparent-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim,ragged-right]
\score {
\relative c'' {
das im zweiten Beispiel, in dem der @code{stencil} entfernt
wurde, nicht passiert.
+
@node Using variables for tweaks
@subsection Using variables for tweaks
um noch weniger schreiben zu müssen. Die Benutzung der Befehle
ist im Notenbeispiel gezeigt.
+@cindex LyricText, Beispiel zur Veränderung
+@cindex Gesangstext, Beispiel zur Veränderung
+@cindex font-shape-Eigenschaft, Beispiel
+@cindex font-series-Eigenschaft, Beispiel
+
@lilypond[quote,verbatim]
emphasize = {
\override Lyrics . LyricText #'font-shape = #'italic
@tab Inhalt
@item @file{ly/engraver-init.ly}
@tab Definitionen von Engraver-Kontexten
-@item @file{ly/paper-defaults.ly}
- @tab Specifikationen von Voreinstellungen für Papiermaße
+@item @file{ly/paper-defaults-init.ly}
+ @tab Spezifikationen von Voreinstellungen für Papiermaße
@item @file{ly/performer-init.ly}
@tab Definitionen von Performer-Kontexten
@item @file{ly/property-init.ly}
@tab Definitionen aller vordefinierten Befehle
+@item @file{ly/spanner-init.ly}
+ @tab Definitionen aller vordefinierten Strecker-Befehle
@end multitable
Andere Einstellungen (wie die Definitionen von Beschriftungsbefehlen)
wird. In diesem Beispiel wird die Farbe der Notenköpfe entsprechend
zu ihrer Position innerhalb der Tonleiter gesetzt.
+@cindex x11-Farben, Beispiel zur Benutzung
+@cindex Notenkopf, Beispiel zur Veränderung
+@cindex Farb-Eigenschaft, in Scheme-Prozedur gesetzt
+
@lilypond[quote,verbatim,ragged-right]
#(define (color-notehead grob)
"Color the notehead according to its position on the staff."
\relative c' {
% Arrange to obtain color from color-notehead procedure
\override NoteHead #'color = #color-notehead
- c2 c' |
- b4 g8 a b4 c |
- c,2 a' |
+ c2 c' |
+ b4 g8 a b4 c |
+ c,2 a' |
g1 |
}
\addlyrics {