X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fde%2Flearning%2Ffundamental.itely;h=13bcf2ccc8ef0e5a595267e789a731dbd3c57255;hb=4d405ef96a8a62771d7d9a283ff5369a772e89d8;hp=efa92248d1f3c7e0177774bdcafc2fc733de3e55;hpb=9158bc17904d4dd930a1f776cfe3226f1ad84092;p=lilypond.git diff --git a/Documentation/de/learning/fundamental.itely b/Documentation/de/learning/fundamental.itely index efa92248d1..13bcf2ccc8 100644 --- a/Documentation/de/learning/fundamental.itely +++ b/Documentation/de/learning/fundamental.itely @@ -1,79 +1,47 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @ignore - Translation of GIT committish: 4f7427e7a314a71bde16559247885544256b8213 + Translation of GIT committish: 8819d7cb0ba2ab359e4aa2276695afb9c1957c42 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes. @end ignore -@c \version "2.12.0" -@c Translators: Till Paala, Reinhold Kainhofer +@c \version "2.19.22" +@c Translators: Till Paala, Reinhold Kainhofer, Michael Gerdau @node Grundbegriffe @chapter Grundbegriffe @translationof Fundamental concepts -Nachdem im Tutorial gezeigt wurde, wie aus einfachen Text-Dateien +Nachdem im Tutorium gezeigt wurde, wie aus einfachen Text-Dateien wunderschön formatierte Musiknoten erzeugt werden können, stellt dieses Kapitel die Konzepte und Techniken vor, wie auch komplexere Partituren erstellt werden können. -@menu +@menu * Wie eine LilyPond-Eingabe-Datei funktioniert:: * Voice enthält Noten:: * Kontexte und Engraver:: -* Erweiterung der Beispiele:: +* Erweiterung der Vorlagen:: @end menu @node Wie eine LilyPond-Eingabe-Datei funktioniert @section Wie eine LilyPond-Eingabe-Datei funktioniert @translationof How LilyPond input files work -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 -dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung -auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats +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 +dieser Strukturen dargestellt werden, vieles aber zur Vereinfachung +auch weggelassen werden. Für eine komplette Beschreibung des Eingabeformats siehe @ruser{Die Dateistruktur}. -Die meisten Beispiele in diesem Handbuch sind kleine Schnipsel, wie -etwa dieser: - -@example -c4 a b c -@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 -geschweifte Klammern gesetzt werden. - -@example -@{ - c4 a b c -@} -@end example - -Die meisten Beispiele benutzen auch den @code{\relative c'}-Befehl. -Der ist nicht nötig, um die Dateien zu übersetzen, aber in den meisten -Fällen sieht der Notensatz seltsam aus, wenn man den Befehl -weglässt. - -@lilypond[quote,fragment,ragged-right,verbatim] -\relative c'' { - c4 a b c -} -@end lilypond - -Eine komplette Definition des Eingabeformats findet sich -im Kapitel @ruser{Die Dateistruktur}. - @menu * Einführung in die Dateistruktur von LilyPond:: -* Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck:: +* Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck:: * Musikalische Ausdrücke ineinander verschachteln:: * Über die Nicht-Schachtelung von Klammern und Bindebögen:: @end menu @@ -94,15 +62,15 @@ Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet: \header @{ @} \score @{ - @var{...zusammengesetzter Musik-Ausdruck...} % Die gesamten Noten kommen hier hin! + @var{ @dots{} zusammengesetzter Musik-Ausdruck @dots{} } % Die gesamten Noten kommen hier hin! \layout @{ @} \midi @{ @} @} @end example @noindent -Aufgrund der Flexibilität von LilyPond gibt es viele Variationen dieses -Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt. +Zu diesem Muster gibt es viele Variationen, aber obiges Beispiel stellt +eine hilfreiche Ausgangsbasis dar. @funindex \book @funindex \score @@ -111,32 +79,27 @@ Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt. @cindex book @cindex score -Bisher hat noch keines der Beispiele den @code{\score@{@}}-Befehl -benutzt, da Lilypond derartige zusätzliche Befehle automatisch -bei Bedarf einfügt, wenn die Eingabedatei eine einfache Struktur -hat. - -Sehen wir uns als ein solches einfaches Beispiel an: +Bis jetzt hat keines der verwendeten Beispiele den @code{\score@{@}} +Befehl gebraucht. Das liegt daran, dass LilyPond automatisch fehlende +Befehle hinzufügt, sollten sie fehlen. Konkret betrachtet LilyPond eine +Eingabe in der Form @example -\relative c'' @{ - c4 a d c +\relative @{ + c''4 a d c @} @end example @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 -Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt -der vollständige Code, der hier gemeint ist, eigentlich: +als eine abgekürzte Form von @example \book @{ \score @{ \new Staff @{ \new Voice @{ - \relative c'' @{ - c4 a b c + \relative @{ + c''4 a b c @} @} @} @@ -148,8 +111,8 @@ der vollständige Code, der hier gemeint ist, eigentlich: @noindent 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 -Struktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt, +Ausdruck in den oben gezeigten Befehlen eingegeben wurde. Diese nötige +Struktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt, ohne dass der Benutzer davon etwas bemerkt. @cindex Implizite Kontexte @@ -157,12 +120,12 @@ ohne dass der Benutzer davon etwas bemerkt. @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} -Befehle zur Erzeugung einer Notenzeile und einer Stimme (beides ist in -LilyPond ein sogenannter Kontext) bewusst aus, +Befehle zur Erzeugung einer Notenzeile und einer Stimme (beides ist in +LilyPond ein sogenannter Kontext) bewusst aus, 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 +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, siehe @ref{Kontexte und Engraver}. @@ -173,33 +136,32 @@ mit @code{\new Staff} und @code{\new Voice} zu erzeugen.} Im Moment wollen wir aber zu unserem ersten Beispiel zurückkehren und 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 -einzelnen -Note bis hin zu einer riesigen Partitur mit vielen Notensystemen -(bezeichnet durch @code{GrandStaff}): +Eine Partitur (@code{\score}) muss immer genau einen musikalischen Ausdruck +enthalten. Es sei daran erinnert, dass ein musikalischer alles mögliche sein +kann. Angefangen bei einer einzelnen Note bis hin zu riesigen zusammengesetzten +Ausdrücken wie @example @{ - \new GrandStaff << - @var{...hier die gesamte Partitur...} + \new StaffGroup << + @var{ @dots{} füge hier die gesamte Partitur einer Wagner Oper ein @dots{} } >> @} @end example @noindent -Da sich alles innerhalb der geschweiften Klammern @code{@{ ... @}} +Da sich alles innerhalb der geschweiften Klammern @code{@{ @dots{} @}} befindet, wird es wie ein einziger musikalischer Ausdruck behandelt. - -Ein @code{\score} auch andere Dinge enthalten, wie etwa +Wie wir oben schon gesehen haben kann der @code{\score} Block auch andere +Dinge enthalten, wie etwa @example \score @{ @{ c'4 a b c' @} + \header @{ @} \layout @{ @} \midi @{ @} - \header @{ @} @} @end example @@ -216,19 +178,19 @@ Ein @code{\score} auch andere Dinge enthalten, wie etwa @noindent Wie man sieht, sind die drei Befehle @code{\header}, @code{\layout} und -@code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen, +@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 -sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb plaziert -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 +sowohl innerhalb eines @code{\score}-Blocks als auch außerhalb platziert +werden. Tatsächlich werden einige dieser Befehle meist außerhalb des +@code{\score}-Blocks gesetzt, z.B. findet sich der @code{\header} +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 -Datei vorkommen, führt dies dazu, dass Lilypond eine druckfähige PDF-Datei -bzw. eine MIDI-Datei erzeugt. Genauer beschrieben werden sie im +Zwei bisher noch nicht aufgetauchte Befehle sind +@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-Ausgabe erzeugt. Genauer beschrieben werden sie im Benutzerhandbuch -- @ruser{Partiturlayout} und @ruser{MIDI-Dateien erstellen}. @@ -236,14 +198,13 @@ Benutzerhandbuch -- @ruser{Partiturlayout} und @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 werden. -Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird -implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer -einzigen @code{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll, +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 platziert werden. +Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird +implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer +einzigen @file{.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 eigene Ausgabedatei. @@ -252,21 +213,21 @@ Zusammenfassung: Jeder @code{\book}-Block erzeugt eine eigene Ausgabedatei (z.B. eine PDF-Datei). Wenn Sie keinen derartigen Block explizit angegeben haben, -setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen +setzt LilyPond den gesamten Dateiinhalt innerhalb eines einzigen impliziten @code{\book}-Blocks. -Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück +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{\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 -erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf +@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 +erzeugten oder explizit angegebenen @code{\book}-Blocks) jedoch auf alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks. Nähere Details finden sich im Abschnitt @ruser{Mehrere Partituren in einem Buch}. @@ -274,22 +235,23 @@ Nähere Details finden sich im Abschnitt @ruser{Mehrere Partituren in einem Buch @cindex Variablen @cindex Bezeichner -Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen, wie auch gezeigt in @ref{Stücke durch Bezeichner organisieren}. +Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen, wie +auch in @ref{Stücke durch Variablen organisieren} gezeigt. Alle Vorlagen verwenden diese Möglichkeit: @example -melodie = \relative c' @{ - c4 a b c +melodie = \relative @{ + c'4 a b c @} \score @{ - @{ \melodie @} + \melodie @} @end example 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} +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 gut @code{melodie}, @code{GLOBAL}, @code{rechteHandKlavier}, oder @code{foofoobarbaz} heißen. @@ -297,21 +259,20 @@ 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. Für mehr Information siehe -@ref{Tipparbeit durch Variablen und Funktionen ersparen}. Die genauen +@ref{Tipparbeit durch Variablen und Funktionen einsparen}. Die genauen Einschränkungen sind beschrieben in @ruser{Die Dateistruktur}. @seealso -Eine vollständige Definition des Eingabeformats findet sich in +Eine vollständige Definition des Eingabeformats findet sich in @ruser{Die Dateistruktur}. -@node Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck -@subsection Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck +@node Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck +@subsection Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck @translationof Score is a (single) compound musical expression @funindex \score -@funindex score @cindex score @cindex Partitur @cindex Musikstück @@ -319,63 +280,61 @@ Eine vollständige Definition des Eingabeformats findet sich in @cindex Musikausdruck, zusammengesetzter -Im vorigen Kapitel, @ref{Einführung in die Dateistruktur von LilyPond}, -wurde die allgemeine Struktur einer LilyPond-Quelldatei -beschrieben. Aber anscheinend haben wir die wichtigste -Frage ausgelassen, nämlich wie man herausfindet, was nach +Im vorigen Kapitel, @ref{Einführung in die Dateistruktur von LilyPond}, +wurde die allgemeine Struktur einer LilyPond-Quelldatei +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 -@emph{Eine Partitur fängt immer mit @code{\score} an, gefolgt -von einem einzelnen musikalischen Ausdruck.} +@emph{Ein @code{\score} Block enthält immer genau einen musikalischen Ausdruck.} @end quotation @noindent -Vielleicht wollen Sie noch einmal +Vielleicht wollen Sie noch einmal @ref{Musikalische Ausdrücke erklärt} überfliegen. In diesem -Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke -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 +Kapitel wurde gezeigt, wie sich große musikalische Ausdrücke +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. Zur Einfachheit soll nur ein Sänger und Klavier -in unserem Beispiel eingesetzt werden. Wir brauchen +in unserem Beispiel eingesetzt werden. Wir brauchen keine Systemgruppe (StaffGroup), die einfach nur bewirkt, dass die Systeme mit einer Klammer zusammengefasst werden; sie wird also entfernt. Wir @emph{brauchen} aber einen Sänger und ein Klavier. @example \score @{ - @{ - << - \new Staff = "Sänger" << - >> - \new PianoStaff = "Klavier" << - >> + << + \new Staff = "Sänger" << >> - @} + \new PianoStaff = "Klavier" << + >> + >> \layout @{ @} @} @end example Hier wurden die Systeme (Staff) benannt: @qq{Sänger} und -@qq{Klavier}. Das ist nicht direkt notwendig in diesem Fall, +@qq{Klavier}. Das ist zwar nicht direkt notwendig, aber es ist gut, sich diese Schreibweise anzugewöhnen, damit man immer sofort erkennt, um welches System es sich handelt. -Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig -gesetzt. Dadurch werden Vokalstimme und Klaviersysteme übereinander -ausgegeben. Die @code{<< ... >>}-Konstruktion ist für das +Zur Erinnerung: mit @code{<< @dots{} >>} (an Stelle von @code{@{ @dots{} @}}) +werden Noten gleichzeitig gesetzt. +Dadurch werden Vokalstimme und Klaviersystem übereinander +ausgegeben. Die @code{<< @dots{} >>}-Konstruktion ist für das Sänger-System nicht notwendig, wenn hier nur die Noten einer -einzigen Stimme eingefügt werden sollen, aber @code{<< ... >>} +einzigen Stimme eingefügt werden sollen, aber @code{<< @dots{} >>} anstelle von geschwungenen Klammern sind notwendig, sobald mehr als eine Stimme oder etwa eine Notenstimme und Gesangstext eingefügt werden sollen. In unserem Fall soll eine Stimme mit Gesangstext notiert werden, sodass die spitzen Klammern benötigt werden. Die Noten sollen erst später hinzugefügt werden, -hier also erstmal nur ein paar Platzhalternoten und Text. Wenn +hier also erst mal nur ein paar Platzhalternoten und Text. Wenn Sie sich nicht erinnern, wie man Gesangstext notiert, lesen Sie noch einmal @code{\addlyrics} in @ref{Setting simple songs}. @@ -388,44 +347,44 @@ Sie noch einmal @code{\addlyrics} in @ref{Setting simple songs}. \addlyrics { And } >> \new PianoStaff = "Klavier" << - \new Staff = "oben" { } - \new Staff = "unten" { } + \new Staff = "oben" { c'1 } + \new Staff = "unten" { c'1 } >> >> \layout { } } @end lilypond -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 -werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new -PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa -durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der -dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und -"unten" +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 +werden zwei Notensysteme für das Klavier mit dem Befehl @code{\new +PianoStaff} gesetzt. @code{PianoStaff} bezeichnet die Piano-Umgebung (etwa +durchgehende Taktstriche und die geschweifte Klammer am Anfang), in der +dann wiederum zwei eigene Systeme ("oben" für die rechte Hand und +"unten" für die linke) erstellt werden, auch wenn das untere System noch einen Bassschlüssel erhalten muss. -Jetzt könnte man in diese Umgebung Noten einfügen. Innerhalb der +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'' @{ - r4 d8\noBeam g, c4 r +\relative @{ + r4 d''8\noBeam g, c4 r @} @end example @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 +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 (oder Variablen) zu verwenden. Sie wurden zu Beginn des vorigen Abschnitts erklärt, erinnern Sie sich? Damit wir sicher gehen können, dass der Inhalt der @code{text}-Variable als Gesangstext -interpretiert wird, wird ihm @code{\lyricmode} vorangesetzt. Wie +interpretiert wird, wird ihm @code{\lyricmode} voran gesetzt. Wie @code{\addlyrics} wird hiermit in den Eingabemodus für Gesangstext gewechselt. Ohne diesen Befehl würde LilyPond versuchen, den Inhalt der Variable als Noten zu interpretieren und dabei eine Menge @@ -437,10 +396,10 @@ für die linke Hand hinzufügen, folgendes Beispiel: @c KEEP LY @lilypond[verbatim,quote,ragged-right] -melodie = \relative c'' { r4 d8\noBeam g, c4 r } +melodie = \relative { r4 d''8\noBeam g, c4 r } text = \lyricmode { And God said, } -oben = \relative c'' { 2~ } -unten = \relative c { b2 e } +oben = \relative { 2~ } +unten = \relative { b,2 e } \score { << @@ -460,12 +419,12 @@ unten = \relative c { b2 e } } @end lilypond -Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung -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 -genau mit den Einzügen zu sein, so dass jede Zeile, die -der gleichen Ebene angehört, wirklich horizontal an der +Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung +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 +genau mit den Einzügen zu sein, so dass jede Zeile, die +der gleichen Ebene angehört, wirklich horizontal an der gleichen Stelle beginnt. @@ -483,15 +442,15 @@ Benutzerhandbuch: @ruser{Struktur einer Partitur}. 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ützlich, um +Zeitpunkt eingeführt werden. Das ist vor allem nützlich, um @rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kurzes Beispiel, -wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt +wie eine zusätzliche temporäre Notenzeile für nur drei Noten erzeugt werden kann: @lilypond[verbatim,quote,ragged-right] \new Staff { - \relative g' { - r4 g8 g c4 c8 d | + \relative { + r4 g'8 g c4 c8 d | e4 r8 << { f8 c c } @@ -505,7 +464,7 @@ werden kann: @end lilypond @noindent -Wie man sieht, ist die Größe des Notenschlüssels dieselbe, wie sie +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 Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden. @@ -519,14 +478,14 @@ gesetzt werden: @c KEEP LY @lilypond[verbatim,quote,ragged-right] \new Staff = "Hauptzeile" { - \relative g' { - r4 g8 g c4 c8 d | + \relative { + r4 g'8 g c4 c8 d | e4 r8 << { f8 c c } \new Staff \with { alignAboveContext = #"Hauptzeile" - }{ f8 f c } + } { f8 f c } >> r4 | } @@ -537,14 +496,14 @@ Dieses Beispiel benutzt den @code{\with}-Befehl, der später noch 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 +mit Namen @qq{Hauptzeile} plaziert werden soll, anstatt standardmäßig unterhalb. @seealso -Ossia werden oft ohne Notenschlüssel und Taktangabe gedruckt, meist -auch etwas kleiner als die anderen Notenzeilen. Dies ist natürlich -auch in LilyPond möglich, benötigt aber Befehle, die bisher noch +Ossia werden oft ohne Notenschlüssel und Taktangabe gedruckt, meist +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{Größe von Objekten} und @ruser{Ossia-Systeme}. @@ -569,33 +528,33 @@ von Klammer-artigen Konstrukten kurz rekapitulieren: @multitable @columnfractions .3 .7 @headitem Klammerart @tab Funktion -@item @code{@{ .. @}} +@item @code{@{ @dots{} @}} @tab Umschließt ein sequenzielles Musiksegment -@item @code{< .. >} +@item @code{< @dots{} >} @tab Umschließt die Noten eines Akkords -@item @code{<< .. >>} +@item @code{<< @dots{} >>} @tab Umschließt parallele Musikausdrücke -@item @code{( .. )} +@item @code{( @dots{} )} @tab Markiert den Beginn und das Ende eines Haltebogens -@item @code{\( .. \)} +@item @code{\( @dots{} \)} @tab Markiert den Beginn und das Ende eines Phasierungsbogens -@item @code{[ .. ]} +@item @code{[ @dots{} ]} @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), -Triolen (als @code{\times x/y @{..@}} geschrieben) und -Vorschlagnoten (als @code{\grace@{..@}} notiert). +N-tolen (als @code{\tuplet x/y @{ @dots{} @}} geschrieben) und +Vorschlagnoten (als @code{\grace@{ @dots{} @}} notiert). -Außerhalb von LilyPond fordert die übliche Benutzung von +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{<< [ @{ ( @dots{} ) @} ] >>}. Die schließenden Klammern kommen dabei in der umgekehrten Reihenfolge -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 +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 Klammer-artigen Konstruktionen (durch @q{Markiert} in der Tabelle oben beschrieben), die Haltebögen und die Triolen @@ -606,30 +565,30 @@ keine Klammern in dem Sinn, dass sie etwas umschließen, sondern viel mehr Indikatoren, an welcher Stelle ein bestimmtes musikalisches Objekt beginnt oder endet. -So kann also z.B. einen Phrasierungsbogen vor einem manuellen +So kann also z.B. einen Phrasierungsbogen vor einem manuellen Balken beginn, jedoch schon vor dem Ende des Balkens enden. Dies mag zwar musikalisch wenig Sinn ergeben, ist aber in LilyPond auch möglich: -@lilypond[quote,verbatim,fragment,ragged-right,relative=2] - { g8\( a b[ c b\) a] g4 } +@lilypond[quote,verbatim,ragged-right] +\relative { g'8\( a b[ c b\) a] g4 } @end lilypond Im Allgemeinen können die verschiedenen Klammerarten, Klammer-artigen Konstruktionen, Haltebögen, Triolen und Vorschlagnoten beliebig kombiniert werden. -Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht -(Zeile 1), eine Bindebogen, der ebenfalls in eine Triole -reicht (Zeile 2), einen Balken und einen Bindeboden in eine Triole, -ein Haltebogen, der über zwei Triolen läuft, sowie einen +Das folgende Beispiel zeigt einen Balken, der in eine Triole reicht +(Zeile 1), eine Bindebogen, der ebenfalls in eine Triole +reicht (Zeile 2), einen Balken und einen Bindebogen in eine Triole, +ein Haltebogen, der über zwei Triolen läuft, sowie einen Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4). -@lilypond[quote,verbatim,fragment,ragged-right] -{ - r16[ g \times 2/3 { r16 e'8] } - g16( a \times 2/3 { b16 d) e' } - g8[( a \times 2/3 { b8 d') e'~] } | - \times 4/5 { e'32\( a b d' e' } a'4.\) +@lilypond[quote,verbatim,ragged-right] +\relative { + r16[ g' \tuplet 3/2 { r16 e'8] } + g,16( a \tuplet 3/2 { b16 d) e } + g,8[( a \tuplet 3/2 { b8 d) e~] } | + \tuplet 5/4 { e32\( a, b d e } a4.\) } @end lilypond @@ -640,14 +599,14 @@ Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4). 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 grundlegende Prinzip von LilyPond. -@menu +@menu * Ich höre Stimmen:: * Stimmen explizit beginnen:: * Stimmen und Text:: -@end menu +@end menu @node Ich höre Stimmen @subsection Ich höre Stimmen @@ -666,40 +625,42 @@ von LilyPond. @cindex Akkorde versus Stimmen @cindex Noten gleichzeitig -Die grundlegendsten und innersten Ebenen ein einer LilyPond-Partitur +Die grundlegenden und innersten Ebenen in einer LilyPond-Partitur werden @qq{Voice context} (Stimmenkontext) oder auch nur @qq{Voice} (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, +Tatsächlich ist die Voice-Ebene die einzige, die wirklich Noten +enthalten kann. Wenn kein Voice-Kontext 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 +Note gleichzeitig spielen. Noten für solche Instrumente brauchen nur +eine einzige Stimme. Instrumente, die mehrere Noten gleichzeitig spielen können, wie das Klavier, brauchen dagegen oft mehrere Stimmen, um die verschiedenen gleichzeitig -erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen +erklingenden Noten mit oft unterschiedlichen Rhythmen darstellen zu können. Eine einzelne Stimme kann natürlich auch vielen Noten in einem Akkord enthalten -- wann also braucht man dann mehrere Stimmen? Schauen wir uns zuerst dieses Beispiel mit vier Akkorden an: -@lilypond[quote,verbatim,fragment,ragged-right,relative=1] -\key g \major -4 +@lilypond[quote,verbatim,ragged-right] +\relative { + \key g \major + 4 +} @end lilypond Das kann ausgedrückt werden, indem man die einfachen spitzen Klammern -@code{< ... >} benützt, um Akkorde anzuzeigen. Hierfür braucht man +@code{< @dots{} >} 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 +müssen. Sie können auch nicht als aufeinander folgende Noten geschrieben werden, denn sie beginnen ja zur selben Zeit. In diesem Fall also brauchen wir zwei Stimmen. @@ -710,10 +671,10 @@ 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{@{ @dots{} @}}) zu schreiben und dann mit den spitzen Klammern +(@code{<< @dots{} >>}) 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 +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 den Noten um hauptsächlich homophone Musik handelt, in der hier und da @@ -722,22 +683,26 @@ polyphone Stellen vorkommen. So sieht es aus, wenn die Akkorde in zwei Stimmen aufgeteilt werden und zur Durchgangsnote noch ein Bogen hinzugefügt wird: -@lilypond[quote,verbatim,fragment,ragged-right,relative=2] -\key g \major -% Voice "1" Voice "2" -<< { g4 fis8( g) a4 g } \\ { d4 d d d } >> +@lilypond[quote,verbatim,ragged-right] +\relative { + \key g \major + % Voice = "1" Voice = "2" + << { g'4 fis8( g) a4 g } \\ { d4 d d d } >> +} @end lilypond -Beachte, dass die Hälse der zweiten Stimme nun nach unten zeigen. +Beachten Sie, dass die Hälse der zweiten Stimme nun nach unten zeigen. Hier ein anderes Beispiel: -@lilypond[quote,verbatim,fragment,ragged-right,relative=2] -\key d \minor -% Voice "1" Voice "2" -<< { r4 g g4. a8 } \\ { d,2 d4 g } >> -<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> -<< { a2. r4 } \\ { fis2. s4 } >> +@lilypond[quote,verbatim,ragged-right] +\relative { + \key d \minor + % Voice = "1" Voice = "2" + << { r4 g' g4. a8 } \\ { d,2 d4 g } >> | + << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> | + << { a2. r4 } \\ { fis2. s4 } >> | +} @end lilypond Es ist nicht notwendig, für jeden Takt eine eigene @@ -746,40 +711,50 @@ 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: -@lilypond[quote,verbatim,fragment,ragged-right,relative=2] -\key d \minor -<< { - % Voice "1" - r4 g g4. a8 | - bes4 bes c bes | - a2. r4 | -} \\ { - % Voice "2" - d,2 d4 g | - g4 g g8( a) g4 | - fis2. s4 | -} >> +@lilypond[quote,verbatim,ragged-right] +<< + \key d \minor + \relative { % Voice = "1" + r4 g' g4. a8 | + bes4 bes c bes | + a2. r4 | + } \\ + \relative { % Voice = "2" + d'2 d4 g | + g4 g g8( a) g4 | + fis2. s4 | + } +>> @end lilypond + +@cindex Voice, Benennung +@cindex Voices crossing brackets +@cindex Legatobögen crossing brackets +@cindex Bindebögen crossing brackets + Dieses Beispiel hat nur zwei Stimmen, aber die gleiche Konstruktion kann angewendet werden, wenn man drei oder mehr Stimmen hat, indem man weitere Backslash-Trenner hinzufügt. -Die Stimmenkontexte tragen die Namen @code{"1"}, @code{"2"} usw. In jedem -dieser Kontexte wird die vertikale Ausrichtung von Hälsen, Bögen, Dynamik-Zeichen -usw. entsprechend ausgerichtet. +Die Stimmenkontexte tragen die Namen @code{"1"}, @code{"2"} usw. Der erste +Kontext stellt die @qq{äußeren} Stimmen ein, die höchste Stimme im +Kontext @code{"1"} und die tiefste Stimme im Kontext @code{"2"}. Die +inneren Stimmen kommen in die Kontexte @code{"3"} und @code{"4"}. In +jedem dieser Kontexte wird die vertikale Ausrichtung von Bögen, Hälsen, +Dynamik usw. entsprechend eingestellt. -@lilypond[quote,verbatim,fragment] -\new Staff \relative c' { +@lilypond[quote,verbatim] +\new Staff \relative { % Main voice - c16 d e f - % Voice "1" Voice "2" Voice "3" + c'16 d e f + % Voice = "1" Voice = "2" Voice = "3" << { g4 f e } \\ { r8 e4 d c8~ } >> | - << { d2 e } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b c2 } >> | + << { d2 e } \\ { c8 b16 a b8 g~ 2 } \\ { s4 b c2 } >> | } @end lilypond -Diese Stimmen sind alle getrennt von der Hauptstimme, die die Noten +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 können nur Noten in der selben Stimmen miteinander verbinden und können @@ -795,10 +770,10 @@ auch noch später im Stück. Beachten Sie auch, dass übergebundene Noten hier an der blauen Dreieckstimme gezeigt. @lilypond[quote,verbatim] -\new Staff \relative c' { - % Main voice - c16 d e f - << % Bar 1 +\new Staff \relative { + % Hauptstimme + c'16 d e f + << % Takt 1 { \voiceOneStyle g4 f e @@ -809,12 +784,12 @@ hier an der blauen Dreieckstimme gezeigt. r8 e4 d c8~ } >> | - << % Bar 2 - % Voice 1 continues + << % Takt 2 + % Voice 1 wird fortgesetzt { d2 e } \\ - % Voice 2 continues - { c8 b16 a b8 g~ g2 } + % Voice 2 wird fortgesetzt + { c8 b16 a b8 g~ 2 } \\ { \voiceThreeStyle @@ -839,20 +814,20 @@ 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 -werden, wie Befehle wie diese vom Benutzer selber erstellt werden +werden, wie Befehle wie diese vom Benutzer selber erstellt werden können. Siehe auch @ref{Sichtbarkeit und Farbe von Objekten} und -@ref{Variablen für Optimierungen einsetzen}. +@ref{Variablen für Layout Anpassungen einsetzen}. @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 @example -\relative c' @{ NoteA << < NoteB NoteC > \\ NoteD >> NoteE @} +\relative @{ noteA << < noteB noteC > \\ noteD >> noteE @} @end example @noindent @@ -867,13 +842,13 @@ Stimme zu stellen. Das bietet sich an, wenn die Stimmen weit voneinander entfernt sind. @example -\relative c' @{ NoteA ... @} +\relative @{ NoteA @dots{} @} << - \relative c'' @{ < NoteB NoteC > ... @} + \relative @{ < NoteB NoteC > @dots{} @} \\ - \relative g' @{ NoteD ... @} + \relative @{ NoteD @dots{} @} >> -\relative c' @{ NoteE ... @} +\relative @{ NoteE @dots{} @} @end example Zum Schluss wollen wir die Stimmen in einem etwas komplizierteren Stück @@ -887,35 +862,38 @@ in späteren Abschnitten erklärt werden. @c The following should appear as music without code @lilypond[quote,ragged-right] -\new Staff \relative c'' { +\new Staff \relative { \key aes \major - << % Voice one - { c2 aes4. bes8 } - \\ % Voice two - { aes2 f4 fes } - \\ % No voice three - \\ % Voice four + << % Voice 1 + { c''2 aes4. bes8 } + \\ % Voice 2 { - % Ignore these for now - they are explained in Ch 4 - \once \override NoteColumn #'force-hshift = #0 - 2 - \once \override NoteColumn #'force-hshift = #0.5 + % Ignoriere diese Befehle vorerst - sie werden in Kap. 4 erklärt + \once \override NoteColumn.force-hshift = #0 + 2 + \once \override NoteColumn.force-hshift = #0.5 des2 } + \\ % Keine voice 3 + \\ % Voice 4 + { + \override NoteColumn.force-hshift = #0 + aes'2 f4 fes + } >> | 1 | } @end lilypond -Die Richtung der Hälse wird oft benutzt, um anzuzeigen, dass zwei +Die Richtung der Hälse wird oft benutzt, um anzuzeigen, dass zwei 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 +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 +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 @@ -924,48 +902,50 @@ 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. Noch einmal: der Quellcode für dieses Beispiel wird später -erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht +eingesetzt. Noch einmal: der Quellcode für dieses Beispiel wird später +erklärt werden, deshalb ignorieren Sie alles, was Sie hier nicht verstehen können. @c The following should appear as music without code @c The three voice styles should be defined in -init @lilypond[quote,ragged-right] -\new Staff \relative c'' { +\new Staff \relative { \key aes \major << - { % Voice one + { % Voice 1 \voiceOneStyle - c2 aes4. bes8 + c''2 aes4. bes8 } - \\ % Voice two + \\ % Voice 2 { \voiceTwoStyle - aes2 f4 fes + % Ignoriere diese Befehle vorerst - sie werden in Kap. 4 erklärt + \once \override NoteColumn.force-hshift = #0 + 2 + \once \override NoteColumn.force-hshift = #0.5 + des2 } - \\ % No Voice three (we want stems down) - \\ % Voice four + \\ % Keine Voice 3 (wir wollen Hälse nach unten) + \\ % Voice 4 { \voiceThreeStyle - % Ignore these for now - they are explained in Ch 4 - \once \override NoteColumn #'force-hshift = #0 - 2 - \once \override NoteColumn #'force-hshift = #0.5 - des2 + \override NoteColumn.force-hshift = #0 + aes'2 f4 fes } - >> - 1 + >> | + 1 | } @end lilypond -Versuchen wir also, diese Musik selber zu notieren. Wie wir sehen + +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: -@lilypond[quote,verbatim,fragment,ragged-right] -\new Staff \relative c'' { +@lilypond[quote,verbatim,ragged-right] +\new Staff \relative { \key aes \major << - { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { 2 des } + { c''2 aes4. bes8 } \\ { 2 des } \\ { aes'2 f4 fes } >> | 1 | } @@ -987,35 +967,36 @@ korrigieren, indem wir die dritte Stimme einfach auslassen und die Noten in die vierte Stimme verschieben. Das wird einfach vorgenommen, indem noch ein Paar @code{\\}-Stimmen hinzugefügt wird. -@c KEEP LY -@lilypond[quote,verbatim,fragment,ragged-right] -\new Staff \relative c'' { +@lilypond[quote,verbatim,ragged-right] +\new Staff \relative { \key aes \major - << % erste Stimme - { c2 aes4. bes8 } - \\ % zweite Stimme - { aes2 f4 fes } - \\ % Stimme drei auslassen - \\ % vierte Stimme - { 2 des } - >> - 1 + << % Voice 1 + { c''2 aes4. bes8 } + \\ % Voice 2 + { 2 des } + \\ % Auslassen von Voice 3 + \\ % Voice 4 + { aes'2 f4 fes } + >> | + 1 | } @end lilypond @noindent -Wie zu sehen ist, ändert das die Richtung der Hälse, aber zeigt ein -anderes Problem auf, auf das man manchmal bei mehreren Stimmen stößt: -Die Hälse einer Stimme können mit den Hälsen anderer Stimmen kollidieren. -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 -gewöhnlich recht gut, aber in diesem Beispiel sind die Noten der untersten -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{Überlappende Notation in Ordnung bringen}. +Wie zu sehen ist, ändert das die Richtung der Hälse, aber die horizontale +Ausrichtung der Noten ist nicht so, wie wir sie wollen. LilyPond +verschiebt die inneren Noten wenn sie oder ihre Hälse mit den äußeren +Stimmen zusammenstoßen würden, aber das ist nicht richtig für Klaviermusik. +In anderen Situationen können die Verschiebungen von LilyPond nicht +ausreichend sein, um Überlappungen aufzulösen. LilyPond stellt verschiedene +Möglichkeiten zur Verfügung, um die horizontale Ausrichtung von Noten +zu beeinflussen. 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{Überlappende Notation in Ordnung bringen}. + +@warning{Gesangstext und Strecker (wie etwa Bögen, Crescendo-Klammern usw.) können +nicht von einer Stimme zur anderen erstellt werden.} @seealso @@ -1027,25 +1008,20 @@ Notationsreferenz: @ruser{Mehrere Stimmen}. @translationof 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 -@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 -Partituren können die Stimmen damit besser auseinander gehalten +Voice-Kontexte können auch manuell innerhalb +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 +Partituren können die Stimmen damit besser auseinander gehalten werden. Die @code{<< \\ >>}-Konstruktion, die wir im vorigen Abschnitt @@ -1053,19 +1029,19 @@ verwendet haben: @example \new Staff @{ - \relative c' @{ - << @{ e4 f g a @} \\ @{ c,4 d e f @} >> + \relative @{ + << @{ e'4 f g a @} \\ @{ c,4 d e f @} >> @} @} @end example @noindent -ist identisch mit +ist identisch zu @example \new Staff << - \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @} - \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @} + \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @} + \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @} >> @end example @@ -1074,21 +1050,21 @@ Beide würden folgendes Notenbild erzeugen: @c The following example should not display the code @lilypond[ragged-right,quote] \new Staff << - \new Voice = "1" { \voiceOne \relative c' { e4 f g a } } - \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } } + \new Voice = "1" { \voiceOne \relative { e'4 f g a } } + \new Voice = "2" { \voiceTwo \relative { c'4 d e f } } >> @end lilypond @cindex Stimmen, mehrere zu einer zusammenführen @cindex eine Stimme wiederherstellen -Der @code{\voiceXXX}-Befehl setzt die Richtung von Hälsen, +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} 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 @@ -1096,48 +1072,48 @@ die Befehle @code{\oneVoice}, @code{\voiceOne} und @code{voiceTwo} mit Text, Bögen und Dynamikbezeichnung anstellen: @lilypond[quote,ragged-right,verbatim] -\relative c' { +\relative { % Default behavior or behavior after \oneVoice - c4 d8~ d e4( f | g4 a) b-> c | + c'4 d8~ 8 e4( f | g4 a) b-> c | } @end lilypond @lilypond[quote,ragged-right,verbatim] -\relative c' { +\relative { \voiceOne - c4 d8~ d e4( f | g4 a) b-> c | + c'4 d8~ 8 e4( f | g4 a) b-> c | \oneVoice - c,4 d8~ d e4( f | g4 a) b-> c | + c,4 d8~ 8 e4( f | g4 a) b-> c | } @end lilypond @lilypond[quote,ragged-right,verbatim] -\relative c' { +\relative { \voiceTwo - c4 d8~ d e4( f | g4 a) b-> c | + c'4 d8~ 8 e4( f | g4 a) b-> c | \oneVoice - c,4 d8~ d e4( f | g4 a) b-> c | + c,4 d8~ 8 e4( f | g4 a) b-> c | } @end lilypond Schauen wir und nun drei unterschiedliche Arten an, den gleichen -Abschnitt polyphoner Musik zu notieren, jede Art mit ihren +Abschnitt polyphoner Musik zu notieren, jede Art mit ihren 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 -farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in +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 +farbigen Kreuz-Notenköpfe zeigen, dass die Hauptstimme sich jetzt in einem einzigen Stimmen (@code{voice})-Kontext befindet. Somit kann ein Phrasierungsbogen ober sie gesetzt werden. @lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' { +\new Staff \relative { \voiceOneStyle - % The following notes are monophonic - c16^( d e f + % This section is homophonic + c'16^( d e f % Start simultaneous section of three voices << % Continue the main voice in parallel @@ -1146,13 +1122,13 @@ Phrasierungsbogen ober sie gesetzt werden. \new Voice { % Set stems, etc., down \voiceTwo - r8 e4 d c8~ | c8 b16 a b8 g~ g2 | + r8 e4 d c8~ | 8 b16 a b8 g~ 2 | } % Initiate third voice \new Voice { % Set stems, etc, up \voiceThree - s2. | s4 b4 c2 | + s2. | s4 b c2 | } >> } @@ -1171,18 +1147,18 @@ wenn eine Stimme nur kurz auftaucht, kann das der bessere Weg sein, Noten zu setzen: @lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' { - c16^( d e f +\new Staff \relative { + c'16^( d e f << - { g4 f e | d2 e2) | } + { g4 f e | d2 e) | } \new Voice { \voiceTwo - r8 e4 d c8~ + r8 e4 d c8~ | << - { c8 b16 a b8 g~ g2 | } + { c8 b16 a b8 g~ 2 | } \new Voice { \voiceThree - s4 b4 c2 | + s4 b c2 | } >> } @@ -1202,17 +1178,17 @@ Hierbei kann man mit unsichtbaren Noten dann die Stellen überspringen, an denen die Stimme nicht auftaucht, wie etwa hier: @lilypond[quote,ragged-right,verbatim] -\new Staff \relative c' << +\new Staff \relative << % Initiate first voice \new Voice { \voiceOne - c16^( d e f g4 f e | d2 e) | + c'16^( d e f g4 f e | d2 e) | } % Initiate second voice \new Voice { % Set stems, etc, down \voiceTwo - s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 | + s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 | } % Initiate third voice \new Voice { @@ -1243,13 +1219,13 @@ an denen die Stimme nicht auftaucht, wie etwa hier: Dicht notierte Noten in einem Akkord, oder Noten auf der gleichen Taktzeit aber in unterschiedlichen Stimmen, werden in zwei, manchmal -auch mehreren Kolumnen gesetzt, um die Noten am Überschneiden zu +auch mehreren Kolumnen gesetzt, um die Noten am Überschneiden zu 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. +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 +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 @@ -1265,7 +1241,7 @@ nach links verschoben. @code{\shiftOnn} und @code{\shiftOnnn} definieren weitere Verschiebungsebenen, die man kurzzeitig anwählen kann, um Zusammenstöße in komplexen Situationen aufzulösen, siehe auch -@ref{Beispiele aus dem Leben}. +@ref{Beispiel aus dem Leben}. Eine Notenkolumne kann nur eine Note (oder einen Akkord) von einer Stimme mit Hälsen nach oben und eine Note (oder einen @@ -1273,13 +1249,18 @@ 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 -definiert, wird die Fehlermeldung -@qq{zu viele kollidierende Notenspalten werden ignoriert} +definiert, wird die Fehlermeldung +@qq{diese Stimme benötigt einen @code{@bs{}voiceXx} oder +@code{@bs{}shiftXx} Befehl} ausgegeben. @seealso -Notationsreferenz: @ruser{Mehrere Stimmen}. +Handbuch zum Lernen: +@ref{Verschieben von Objekten}. + +Notationsreferenz: +@ruser{Mehrere Stimmen}. @node Stimmen und Text @@ -1293,13 +1274,12 @@ Achtung: Der Gesangstext wird auf Englisch @qq{lyrics} genannt. @funindex \new Lyrics @funindex \lyricsto -@funindex lyricsto @funindex Lyrics @cindex Lyrics context, erstellen -@cindex Gesangtext, Verbindung mit Noten +@cindex Gesangstext, Verbindung mit Noten Wir haben schon den @code{\addlyrics@{@}}-Befehl betrachtet, -mit dem einfache Partituren gut erstellt werden können. +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 @@ -1307,13 +1287,13 @@ komplexer wird, muss der Gesangstext mit einem neuen mit einer bestimmten Stimme verknüpft werden, indem die Bezeichnung der Stimme benutzt wird. -@lilypond[quote,verbatim,fragment] +@lilypond[quote,verbatim] << \new Voice = "one" { - \relative c'' { + \relative { \autoBeamOff \time 2/4 - c4 b8. a16 | g4. f8 | e4 d | c2 | + c''4 b8. a16 | g4. f8 | e4 d | c2 | } } \new Lyrics \lyricsto "one" { @@ -1324,19 +1304,18 @@ Bezeichnung der Stimme benutzt wird. Beachten Sie, dass der Notentext nur mit einem @code{Voice}-Kontext verknüpft werden kann, nicht mit einem @code{Staff}-Kontext. -In diesem Fall also müssen Sie ein System (@code{Staff}) und -eine Stimme (@code{Voice}) explizit erstellen, damit alles +In diesem Fall also müssen Sie ein System (@code{Staff}) und +eine Stimme (@code{Voice}) explizit erstellen, damit alles funktioniert. @cindex Gesangstext und Balken @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 -so gut für Musik mit Text, wo man entweder gar keine Balken +so gut für Musik mit Text, wo man entweder gar keine Balken benutzt oder sie einsetzt, um Melismen zu verdeutlichen. Im Beispiel oben wird deshalb der Befehl @code{\autoBeamOff} eingesetzt um die automatischen Balken (engl. beam) auszuschalten. @@ -1353,21 +1332,21 @@ benutzen, um diese flexiblere Technik für Gesangstexte 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 +eine Chorpartiturklammer hinzugefügt. Der Gesangstext muss mit @code{\lyricmode} eingegeben werden, damit er als Text und nicht als Noten interpretiert werden kann. @lilypond[quote,verbatim] global = { \key f \major \time 6/8 \partial 8 } -SopOneMusic = \relative c'' { - c8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 +SopOneMusic = \relative { + c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4 } SopOneLyrics = \lyricmode { Let | flee -- cy flocks the | hills a -- dorn, __ } -SopTwoMusic = \relative c' { - r8 | r4. r4 c8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes' +SopTwoMusic = \relative { + r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes' } SopTwoLyrics = \lyricmode { Let | flee -- cy flocks the | hills a -- dorn, @@ -1401,7 +1380,7 @@ 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 -können die Variablen schnell in eine eigene Datei verschoben +können die Variablen schnell in eine eigene Datei verschoben werden, wenn sie zu lang werden sollten. @cindex Choralnotation @@ -1417,16 +1396,16 @@ 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 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] keyTime = { \key c \major \time 4/4 \partial 4 } -SopMusic = \relative c' { c4 | e4. e8 g4 g | a4 a g } -AltoMusic = \relative c' { c4 | c4. c8 e4 e | f4 f e } -TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 } -BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 } +SopMusic = \relative { c'4 | e4. e8 g4 g | a4 a g } +AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e } +TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 } +BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 } VerseOne = \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, } @@ -1459,7 +1438,7 @@ VerseFour = @seealso -Notation Reference: @ruser{Notation von Gesang}. +Notationsreferenz: @ruser{Notation von Gesang}. @node Kontexte und Engraver @@ -1472,7 +1451,7 @@ nun etwas ausführlicher widmen, denn sie sind sehr wichtig, um Feineinstellungen in der LilyPond-Notenausgabe vornehmen zu können. -@menu +@menu * Was sind Kontexte?:: * Kontexte erstellen:: * Was sind Engraver?:: @@ -1491,12 +1470,12 @@ hinzugefügt werden, die im Quellcode gar nicht explizit vorkommen. Vergleichen Sie etwa den Quellcode und die Notenausgabe des folgenden Beispiels: -@lilypond[quote,verbatim,relative=2,fragment] -cis4 cis2. | a4 a2. | +@lilypond[quote,verbatim] +\relative { cis''4 cis2. | a4 a2. | } @end lilypond Der Quellcode ist sehr kurz und knapp, während in der -Notenausgabe Taktlinien, Vorzeichen, ein Schlüssel und +Notenausgabe Taktstriche, Vorzeichen, ein Schlüssel und eine Taktart hinzugefügt wurden. Während LilyPond den Eingabetext @emph{interpretiert}, wird die musikalische Information von rechts nach links gelesen, @@ -1506,10 +1485,10 @@ merkt es sich, wo sich Taktgrenzen befinden und für welche Tonhöhen Versetzungszeichen gesetzt werden müssen. Diese Information muss auf mehreren Ebenen gehandhabt werden, denn Versetzungszeichen etwa -beziehen sich nur auf ein System, Taktlinien dagegen +beziehen sich nur auf ein System, Taktstriche dagegen üblicherweise auf die gesamte Partitur. -Innerhalb von LilyPond sind diese Regeln und +Innerhalb von LilyPond sind diese Regeln und Informationshappen in @emph{Kontexten} (engl. contexts) gruppiert. Der @code{Voice} (Stimmen)-Kontext wurde schon vorgestellt. Daneben @@ -1533,10 +1512,10 @@ zum Beispiel kann eine Vorzeichenregel einführen und der einzuordnen, ob ein Versetzungszeichen gesetzt werden muss oder nicht. -Ein anderes Beispiel: die Synchronisation der Taktlinien ist +Ein anderes Beispiel: die Synchronisation der Taktstriche ist standardmäßig im @code{Score}-Kontext verankert. Manchmal sollen die Systeme einer Partitur aber unterschiedliche Taktarten -enthalten, etwa in einer polymetrischen Partitur mit +enthalten, etwa in einer polymetrischen Partitur mit 4/4- und 3/4-Takt. In diesem Fall müssen also die Standardeinstellungen der @code{Score}- und @code{Staff}-Kontexte verändert werden. @@ -1552,7 +1531,7 @@ 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 +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. @@ -1561,12 +1540,12 @@ Die Bezeichnungen all dieser Kontexte werden von einem oder mehreren englischen Wörtern gebildet, dabei wird jedes Wort mit einem Großbuchstaben begonnen und direkt an das folgende ohne Bindestrich oder Unterstrich -angeschlossen, etwa +angeschlossen, etwa @code{GregorianTranscriptionStaff}. @seealso -Notationreferenz: @ruser{Was sind Kontexte?}. +Notationsreferenz: @ruser{Was sind Kontexte?}. @node Kontexte erstellen @@ -1574,7 +1553,6 @@ Notationreferenz: @ruser{Was sind Kontexte?}. @translationof Creating contexts @funindex \new -@funindex new @cindex Neue Kontexte @cindex Erstellen von Kontexten @cindex Kontexte, Erstellen @@ -1590,9 +1568,9 @@ wird. Wenn nur ein System vorhanden ist, kann man es ruhig LilyPond überlassen, auch 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 +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 vorangestellt, etwa so: @example @@ -1605,17 +1583,13 @@ wobei @var{Typ} eine Kontextbezeichnung (wie etwa @code{Staff} oder beginnt, den @var{muskalischen Ausdruck} innerhalb dieses Kontexts auszuwerten. -(Beachten Sie, dass man normalerweise keinen @code{\new Score}-Befehl -braucht: der Partitur-(Score)-Kontext der obersten Ebene wird -normalerweise automatisch erstellt, wenn der musikalische Ausdruck -innerhalb der @code{\score}-Umgebung interpretiert wird. Der -einzige Grund, einen @code{Score}-Kontext explizit mit -@code{\new Score} zu erstellen ist es, wenn man eine @code{\with}-Umgebung -beginnen will, in der man eine oder mehrere Partitur-weite -Standardwerte definiert werden. Information über die Benutzung -von @code{\with}-Umgebungen finden sich unter der Unterüberschrift -@qq{Kontexteigenschaften mit @code{\\with} setzen} in -@ref{Kontexteigenschaften verändern}.) +@warning{Der @bs{}@code{new Score}-Befehl sollte nicht benutzt werden, +weil der Partitur-(Score)-Kontext der obersten Ebene +normalerweise automatisch erstellt wird, wenn der musikalische Ausdruck +innerhalb der @code{\score}-Umgebung interpretiert wird. Standard-Werte +von Kontexteigenschaften, die für einen bestimmten @code{Score} gelten +sollen, können innerhalb der @bs{}@code{layout}-Umgebung definiert werden. +Siehe @ref{Kontexteigenschaften verändern}.} Wir haben schon viele explizite Beispiel gesehen, in denen neue @code{Staff}- und @code{Voice}-Kontexte erstellt wurden, aber @@ -1630,9 +1604,9 @@ werden, hier ein kommentiertes Beispiel aus dem richtigen Leben: \clef "treble" \key g \minor \new Voice { % create voice for RH notes - \relative c'' { % start of RH notes - d4 ees16 c8. - d4 ees16 c8. + \relative { % start of RH notes + d''4 ees16 c8. | + d4 ees16 c8. | } % end of RH notes } % end of RH voice } % end of RH staff @@ -1641,16 +1615,16 @@ werden, hier ein kommentiertes Beispiel aus dem richtigen Leben: \key g \minor \new Voice { % create LH voice one \voiceOne - \relative g { % start of LH voice one notes - g8 ees, - g8 ees, + \relative { % start of LH voice one notes + g8 ees, | + g8 ees, | } % end of LH voice one notes } % end of LH voice one \new Voice { % create LH voice two \voiceTwo - \relative g { % start of LH voice two notes - g4 ees - g4 ees + \relative { % start of LH voice two notes + g4 ees | + g4 ees | } % end of LH voice two notes } % end of LH voice two >> % end of LH staff @@ -1661,13 +1635,13 @@ werden, hier ein kommentiertes Beispiel aus dem richtigen Leben: (Beachten Sie, dass wir hier alle Zeilen, die eine neue Umgebung entweder mit einer geschweiften Klammer (@code{@{}) oder doppelten spitzen Klammern (@code{<<}) öffnen, mit -jeweils zwei Leerzeichen, und die entsprechenden +jeweils zwei Leerzeichen, und die entsprechenden schließenden Klammern mit der gleichen Anzahl Leerzeichen 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 +verstehen, und alle nicht passenden Klammern erschließen sich schnell. Beachten Sie auch, dass das untere Notensystem mit eckigen Klammern erstellt wird, denn innerhalb dieses Systems brauchen wir zwei Stimmen, @@ -1689,19 +1663,19 @@ selben Typs zu unterscheiden: 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 +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 +benutzt, um später auf genau diesen spezifischen Kontext zu verweisen. Dieses Vorgehen wurde schon in dem Abschnitt zu Gesangstexten angewandt, siehe @ref{Stimmen und Text}. @seealso -Notationsreferenz: @ruser{Kontexte erstellen}. +Notationsreferenz: @ruser{Kontexte erstellen und referenzieren}. @node Was sind Engraver? @@ -1725,7 +1699,7 @@ 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. -Der @code{Clef_engraver} (Schlüssel-Stempel) und der +Der @code{Clef_engraver} (Schlüssel-Stempel) und der @code{Key_engraver} (Vorzeichen-Stempel) finden sich in jedem @code{Staff}-Kontext, denn unterschiedliche Systeme könnten unterschiedliche Tonarten und Notenschlüssel @@ -1746,7 +1720,7 @@ Alle Engraver haben zusammengesetzte Bezeichnung, die aus 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 -@code{Staff_symbol_engraver} verantwortet also die Erstellung +@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 wird gleichzeitig die Referenztonhöhe auf dem Notensystem festgelegt. @@ -1766,9 +1740,8 @@ abzuleiten. @item Clef_engraver @tab Erstellt Notenschlüssel. @item Completion_heads_engraver - @tab Teilt Noten in kleiner Werte, wenn sie über die Taktlinie reichen. -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver + @tab Teilt Noten in kleiner Werte, wenn sie über den Taktstrich reichen. +@item Dynamic_engraver @tab Erstellt Dynamik-Klammern und Dynamik-Texte. @item Forbid_line_break_engraver @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist. @@ -1781,7 +1754,7 @@ abzuleiten. @item Rest_engraver @tab Erstellt Pausen. @item Staff_symbol_engraver - @tab Ersetllt die (standardmäßig) fünf Notenlinien des Systems. + @tab Erstellt die (standardmäßig) fünf Notenlinien des Systems. @item Stem_engraver @tab Erstellt die Notenhälse und Tremolos mit einem Hals. @item Time_signature_engraver @@ -1819,15 +1792,15 @@ Kontexte werden mit dem @code{\set}-Befehl geändert. Er wird in Form @example -\set @var{KontextBezeichnung}.@var{eigenschaftsBezeichnung} = #@var{Wert} +\set @emph{KontextBezeichnung}.@emph{EigenschaftsBezeichnung} = #@emph{Wert} @end example @noindent -verwendet, wobei @var{KontextBezeichnung} üblicherweise +verwendet, wobei @emph{KontextBezeichnung} üblicherweise @code{Score}, @code{Staff} oder @code{Voice} ist. Der erste Teil kann auch ausgelassen werden; in diesem Fall wird der aktuelle -Kontext (üblicherweise @code{Voice}) eingesetzt. +Kontext (üblicherweise @code{Voice}) angenommen. Die Bezeichnung von Kontexten-Eigenschaften besteht aus zwei Wörtern, die ohne Unterstrich oder Bindestrich @@ -1838,13 +1811,13 @@ Kontext-Eigenschaften. Es gibt sehr viel mehr. @c attempt to force this onto a new page @need 50 @multitable @columnfractions .25 .15 .45 .15 -@headitem eigenschaftsBezeichnung +@headitem Eigenschaftsbezeichnung @tab Typ @tab Funktion @tab Beispiel-Wert @item extraNatural @tab boolescher Wert - @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt. + @tab Wenn wahr, werden zusätzliche Auflösungszeichen vor Versetzungszeichen gesetzt. @tab @code{#t}, @code{#f} @item currentBarNumber @tab Integer @@ -1869,7 +1842,7 @@ Kontext-Eigenschaften. Es gibt sehr viel mehr. @end multitable @noindent -Ein boolescher Wert ist entweder wahr (@code{#t}) +Ein boolescher Wert ist entweder wahr (@code{#t}) oder falsch (@code{#f}), ein Integer eine positive ganze Zahl, ein Real (reelle Zahl) eine positive oder negative Dezimalzahl, und Text wird in doppelte @@ -1890,7 +1863,7 @@ 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 wird, wird keine Fehlermeldung produziert, aber die -Veränderung wird einfach nicht ausgeführt. +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 @@ -1899,14 +1872,14 @@ nicht, weil der Kontext ausgelassen wurde. @lilypond[quote,verbatim,ragged-right] << - \new Staff \relative c'' { + \new Staff \relative { \set Staff.instrumentName = #"Soprano" - c2 c - } - \new Staff \relative c' { + c''2 c + } + \new Staff \relative { \set instrumentName = #"Alto" % Wrong! - d2 d - } + d'2 d + } >> @end lilypond @@ -1928,53 +1901,53 @@ 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 Editor mit LilyPond-Unterstützung einsetzen, wird empfohlen, die -Bezeichnungen in der Interna-Referenz zu überprüfen: siehe +Bezeichnungen in der Interna-Referenz zu überprüfen: siehe @rinternals{Tunable context properties}, oder @rinternals{Contexts}. Die Eigenschaft @code{instrumentName} wird erst aktiv, wenn sie in einem @code{Staff}-Kontext gesetzt wird, aber manche Eigenschaften können in mehr als einem Kontext benutzt werden. Als Beispiel mag die -@code{extraNatural}-Eigenschaft dienen, die zusätzliche Erniedrigungszeichen +@code{extraNatural}-Eigenschaft dienen, die zusätzliche Auflösungszeichen setzt. Die Standardeinstellung ist ##t (wahr) in allen Systemen. -Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch) +Wenn sie nur in einem @code{Staff} (Notensystem) auf ##f (falsch) 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. -Das also bewirkt, dass die zusätzlichen Erniedrigungszeichen in einem System +Das also bewirkt, dass die zusätzlichen Auflösungszeichen in einem System ausgeschaltet sind: @lilypond[quote,verbatim,ragged-right] << - \new Staff \relative c'' { - ais2 aes + \new Staff \relative { + aeses'2 aes } - \new Staff \relative c'' { + \new Staff \relative { \set Staff.extraNatural = ##f - ais2 aes + aeses'2 aes } >> @end lilypond @noindent -während das dazu dient, sie in allen Systemen auszuschalten: +während dies dazu dient, sie in allen Systemen auszuschalten: @lilypond[quote,verbatim,ragged-right] << - \new Staff \relative c'' { - ais2 aes + \new Staff \relative { + aeses'2 aes } - \new Staff \relative c'' { + \new Staff \relative { \set Score.extraNatural = ##f - ais2 aes + aeses'2 aes } >> @end lilypond -Ein anderes Beispiel ist die Eigenschaft @code{clefOctavation}: +Ein anderes Beispiel ist die Eigenschaft @code{clefTransposition}: wenn sie im @code{Score}-Kontext gesetzt wird, ändert sich sofort -der Wert der Oktavierung in allen aktuellen Systemen und wird +der Wert der Tranponierung in allen aktuellen Systemen und wird auf einen neuen Wert gesetzt, der sich auf alle Systeme auswirkt. Der gegenteilige Befehl, @code{\unset}, entfernt die Eigenschaft @@ -1991,17 +1964,19 @@ 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, nicht vom letzten gesetzten Wert. -@lilypond[quote,verbatim,ragged-right,relative=1,fragment] -c4 d -% make note heads smaller -\set fontSize = #-4 -e4 f | -% make note heads larger -\set fontSize = #2.5 -g4 a -% return to default size -\unset fontSize -b4 c | +@lilypond[quote,verbatim,ragged-right] +\relative { + c'4 d + % make note heads smaller + \set fontSize = #-4 + e4 f | + % make note heads larger + \set fontSize = #2.5 + g4 a + % return to default size + \unset fontSize + b4 c | +} @end lilypond Wir haben jetzt gesehen, wie sich die Werte von unterschiedlichen @@ -2017,15 +1992,14 @@ eingegeben werden kann. @subsubheading Kontexteigenschaften mit @code{\with} setzen @funindex \with -@funindex with @cindex Kontexteigenschaft, setzen mit \with Die Standardwerte von Kontexteigenschaften können zu dem Zeitpunkt -definiert werden, an welchem der Kontext erstellt wird. Manchmal +definiert werden, an welchem der Kontext erstellt wird. Manchmal ist das eine saubere Weise, eine Eigenschaft zu bestimmen, die für -die gesamte Partitur erhalten bleichen soll. Wenn ein Kontext mit +die gesamte Partitur erhalten bleiben soll. Wenn ein Kontext mit einem @code{\new}-Befehl erstellt wird, können in einer -direkt folgenden @code{\with @{ .. @}}-Umgebung die Eigenschaften +direkt folgenden @code{\with @{ @dots{} @}}-Umgebung die Eigenschaften bestimmt werden. Wenn also die zusätzlichen Auflösungszeichen für eine ganze Partitur gelten sollen, könnte man schreiben: @@ -2039,39 +2013,19 @@ etwa so: @lilypond[quote,verbatim,ragged-right] << - \new Staff - \relative c'' { - gis4 ges aes ais + \new Staff { + \relative { + gisis'4 gis aeses aes } + } \new Staff \with { extraNatural = ##f } { - \relative c'' { - gis ges aes ais + \relative { + gisis'4 gis aeses aes } } >> @end lilypond -Oder, wenn das @code{\override} für die Eigenschaft auf alle -Notensysteme innerhalb der Partitur gelten soll, kann es auch -direkt an ein @code{\new Score} gehängt werden, wie etwa hier: - -@lilypond[quote,verbatim,ragged-right] -\score { - \new Score \with { extraNatural = ##f } << - \new Staff { - \relative c'' { - gis4 ges aes ais - } - } - \new Staff { - \relative c'' { - gis4 ges aes ais - } - } - >> -} -@end lilypond - Eigenschaften, die auf diese Arte gesetzt werden, können immer noch dynamisch mit dem @code{\set}-Befehl geändert werden und mit @code{\unset} auf ihre Standardeinstellungen zurückgesetzt werden, @@ -2091,27 +2045,26 @@ wird, kann dieser neue Standardwert mit dem Befehl @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) +eines bestimmten Typs (etwa alle @code{Staff}-Kontexte) gleichzeitig mit einem Befehl gesetzt werden. Der Kontext wird -spezifiziert, indem seine Bezeichnung benutzt wird, also etwa +spezifiziert, indem seine Bezeichnung benutzt wird, also etwa @code{Staff}, mit einem Backslash davor: @code{\Staff}. Der Befehl -für die Eigenschaft ist der gleiche, wie er auch in der +für die Eigenschaft ist der gleiche, wie er auch in der @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 -wirkt sich auf alle Kontexte dieses Types aus, welche sich in der +wirkt sich auf alle Kontexte dieses Typs aus, welche sich in der aktuellen Partitur befinden (d. h. innerhalb 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] \score { \new Staff { - \relative c'' { - cis4 e d ces + \relative { + cisis''4 e d cis } } \layout { @@ -2123,9 +2076,34 @@ Funktion anwendet: } @end lilypond +Wenn die Veränderung der Eigenschaft sich auf alle Systeme einer +@code{score}-Umgebung beziehen soll: + +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \relative { + gisis'4 gis aeses aes + } + } + \new Staff { + \relative { + gisis'4 gis aeses aes + } + } + >> + \layout { + \context { + \Score extraNatural = ##f + } + } +} +@end lilypond + @noindent -Kontext-Eigenschaften, die auf diese Weise gesetzt werden, können für -bestimmten Kontexte überschrieben werden, indem die +Kontext-Eigenschaften, die auf diese Weise gesetzt werden, können für +bestimmten Kontexte überschrieben werden, indem die @code{\with}-Konstruktion eingesetzt wird, oder mit @code{\set}-Befehlen innerhalb der aktuellen Noten. @@ -2156,14 +2134,13 @@ Referenz der Interna: 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, +Teil des fertigen Notensatzes produziert, wie z. B. Taktstriche, 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 Notenausgabe zu beeinflussen, aber es kann von großem Nutzen sein. - @subsubheading Einen einzelnen Kontext verändern Um einen Engraver von einem einzelnen Kontext zu entfernen, @@ -2178,10 +2155,10 @@ erstellt werden. @lilypond[quote,verbatim,ragged-right] \new Staff \with { - \remove Staff_symbol_engraver + \remove "Staff_symbol_engraver" } -\relative c' { - c4 d +\relative { + c'4 d \set fontSize = #-4 % make note heads smaller e4 f | \set fontSize = #2.5 % make note heads larger @@ -2208,23 +2185,23 @@ den Stimmumfang des Stückes anzuzeigen, siehe auch @code{Ambitus_engraver} erstellt, der normalerweise in keinem Kontext enthalten ist. Wenn wir ihn zum @code{Voice}-Kontext hinzufügen, errechnet -er automatisch den Stimmumfang für diese einzelne Stimme +er automatisch den Stimmumfang für diese einzelne Stimme und zeigt ihn an: @lilypond[quote,verbatim,ragged-right] \new Staff << \new Voice \with { - \consists Ambitus_engraver + \consists "Ambitus_engraver" } { - \relative c'' { + \relative { \voiceOne - c4 a b g + c''4 a b g } } \new Voice { - \relative c' { + \relative { \voiceTwo - c4 e d f + c'4 e d f } } >> @@ -2237,25 +2214,24 @@ Stimmen in diesem Notensystem errechnet: @lilypond[quote,verbatim,ragged-right] \new Staff \with { - \consists Ambitus_engraver + \consists "Ambitus_engraver" } << \new Voice { - \relative c'' { + \relative { \voiceOne - c4 a b g + c''4 a b g } } \new Voice { - \relative c' { + \relative { \voiceTwo - c4 e d f + c'4 e d f } } >> @end lilypond - @subsubheading Alle Kontexte des gleichen Typs verändern @funindex \layout @@ -2265,32 +2241,32 @@ 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 Befehle in dem entsprechenden Kontext in einer -@code{\layout}-Umgebung gesetzt. Wenn wir also z. B. -den Ambitus für jedes Notensystem in einer Partitur +@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: @lilypond[quote,verbatim,ragged-right] \score { << \new Staff { - \relative c'' { - c4 a b g + \relative { + c''4 a b g } } \new Staff { - \relative c' { - c4 a b g + \relative { + c'4 a b g } } \new Staff { \clef "G_8" - \relative c' { - c4 a b g + \relative { + c'4 a b g } } \new Staff { \clef "bass" - \relative c { + \relative { c4 a b g } } @@ -2298,14 +2274,14 @@ mit vier Systemen anzeigen wollen, könnte das so aussehen: \layout { \context { \Staff - \consists Ambitus_engraver + \consists "Ambitus_engraver" } } } @end lilypond @noindent -Die Werte der Kontext-Eigenschaften können auch für +Die Werte der Kontext-Eigenschaften können auch für alle Kontexte eines bestimmten Typs auf die gleiche Weise geändert werden, indem der @code{\set}-Befehl in einer @code{\context}-Umgebung angewendet wird. @@ -2315,17 +2291,23 @@ einer @code{\context}-Umgebung angewendet wird. Notationsreferenz: @ruser{Umgebungs-Plugins verändern}, @ruser{Die Standardeinstellungen von Kontexten ändern}. +@knownissues +Die @code{Stem_engraver} und @code{Beam_engraver} fügen ihre +Objekte an Notenköpfe an. Wenn der @code{Note_heads_engraver} +entfernt wird, werden keine Notenköpfe erstellt und demzufolge auch keine +Hälse oder Bögen dargestellt. + -@node Erweiterung der Beispiele -@section Erweiterung der Beispiele +@node Erweiterung der Vorlagen +@section Erweiterung der Vorlagen @translationof Extending the templates -Sie haben sich durch die Übung gearbeitet, Sie +Sie haben sich durch das Tutorium gearbeitet, Sie wissen jetzt, wie Sie Notensatz produzieren, und Sie 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{Vorlagen}), mit denen Sie beginnen +(siehe @ref{Vorlagen}), mit denen Sie beginnen können. Aber was, wenn Sie nicht genau das finden, was Sie brauchen? Lesen Sie weiter. @@ -2333,8 +2315,8 @@ was Sie brauchen? Lesen Sie weiter. * Sopran und Cello:: * Vierstimmige SATB-Partitur:: * Eine Partitur von Grund auf erstellen:: -* Tipparbeit durch Variablen und Funktionen ersparen:: -* Partitur und Stimmen:: +* Tipparbeit durch Variablen und Funktionen einsparen:: +* Partituren und Stimmen:: @end menu @@ -2348,13 +2330,14 @@ was Sie brauchen? Lesen Sie weiter. 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 -Fall könnten Sie mit der Vorlage @qq{Noten und Text} +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. @example \version @w{"@version{}"} -melody = \relative c' @{ + +melody = \relative @{ \clef "treble" \key c \major \time 4/4 @@ -2384,7 +2367,7 @@ Beispiel @qq{Nur Noten} an: @example \version @w{"@version{}"} -melody = \relative c' @{ +melody = \relative @{ \clef "treble" \key c \major \time 4/4 @@ -2399,15 +2382,15 @@ melody = \relative c' @{ @end example Wir brauchen den @code{\version}-Befehl nicht zweimal. Wir -brauchen aber den @code{melody}-Abschnitt. Wir wollen +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 +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 +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 @@ -2417,7 +2400,7 @@ für den Sopran und @code{CelloNoten} für die Cellostimme. Wenn wir schon dabei sind, können wir @code{text}auch nach @code{SoprText} umbenennen. Denken Sie daran, beide Vorkommen der Bezeichnung zu ändern: einmal die Definition -gleich am Anfang (@code{melody = \relative c' @{ }) und +gleich am Anfang (@code{melody = \relative @{ }) und dann auch noch die Benutzung der Variable innerhalb des @code{\score}-Abschnittes. @@ -2428,7 +2411,7 @@ Wir ändern auch die Noten etwas ab. @example \version @w{"@version{}"} -SopranNoten = \relative c' @{ +SopranNoten = \relative @{ \clef "treble" \key c \major \time 4/4 @@ -2439,7 +2422,7 @@ SoprText = \lyricmode @{ Aaa Bee Cee Dee @} -CelloNoten = \relative c @{ +CelloNoten = \relative @{ \clef "bass" \key c \major \time 4/4 @@ -2459,7 +2442,7 @@ CelloNoten = \relative c @{ @} @end example -Das sieht schon vielversprechend aus, aber die Cello-Stimme +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 Cello-Stimme unterhalb des Soprans erscheinen soll, müssen @@ -2481,14 +2464,14 @@ sieht jetzt so aus: @example \score @{ << - << - \new Voice = "eins" @{ - \autoBeamOff - \SopranNoten - @} - \new Lyrics \lyricsto "eins" \SoprText - >> - \new Staff \CelloNoten + << + \new Voice = "eins" @{ + \autoBeamOff + \SopranNoten + @} + \new Lyrics \lyricsto "eins" \SoprText + >> + \new Staff \CelloNoten >> \layout @{ @} \midi @{ @} @@ -2501,7 +2484,7 @@ 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] -sopranoMusic = \relative c' { +sopranoMusic = \relative { \clef "treble" \key c \major \time 4/4 @@ -2512,7 +2495,7 @@ sopranoLyrics = \lyricmode { Aaa Bee Cee Dee } -celloMusic = \relative c { +celloMusic = \relative { \clef "bass" \key c \major \time 4/4 @@ -2539,7 +2522,7 @@ celloMusic = \relative c { @seealso Die Vorlagen, mit denen wir begonnen haben, können im Anhang @qq{Vorlagen} gefunden werden, siehe -@ref{Ein einzelnes System}. +@ref{Vorlagen für ein einzelnes System}. @node Vierstimmige SATB-Partitur @@ -2562,41 +2545,46 @@ notiert wird. Hier ein Beispiel aus Händels @notation{Messias}: @lilypond[quote,ragged-right] global = { \key d \major \time 4/4 } -sopranoMusic = \relative c'' { +sopranoMusic = \relative { \clef "treble" - r4 d2 a4 | d4. d8 a2 | cis4 d cis2 | + r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 | } sopranoWords = \lyricmode { Wor -- thy | is the lamb | that was slain | } -altoMusic = \relative a' { + +altoMusic = \relative { \clef "treble" - r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 | + r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 | } altoWords = \sopranoWords -tenorMusic = \relative c' { + +tenorMusic = \relative { \clef "G_8" - r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 | + r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 | } tenorWords = \sopranoWords -bassMusic = \relative c' { + +bassMusic = \relative { \clef "bass" - r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 | + r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 | } bassWords = \sopranoWords -upper = \relative a' { + +upper = \relative { \clef "treble" \global - r4 2 4 - 4. 8 2 - 4 2 + r4 2 4 | + 4. 8 2 | + 4 2 | } -lower = \relative c, { + +lower = \relative { \clef "bass" \global - 4 2 4 - 4. 8 2 - 4 2 + 4 2 4 | + 4. 8 2 | + 4 2 | } \score { @@ -2619,9 +2607,7 @@ lower = \relative c, { \altoMusic } >> - \new Lyrics \lyricsto "altos" { - \altoWords - } + \new Lyrics \lyricsto "altos" { \altoWords } \new Staff = "tenors" << \set Staff.instrumentName = #"Tenor" \new Voice = "tenors" { @@ -2629,9 +2615,7 @@ lower = \relative c, { \tenorMusic } >> - \new Lyrics \lyricsto "tenors" { - \tenorWords - } + \new Lyrics \lyricsto "tenors" { \tenorWords } \new Staff = "basses" << \set Staff.instrumentName = #"Bass" \new Voice = "basses" { @@ -2643,7 +2627,6 @@ lower = \relative c, { \bassWords } >> % end ChoirStaff - \new PianoStaff << \set PianoStaff.instrumentName = #"Piano" \new Staff = "upper" \upper @@ -2653,9 +2636,17 @@ lower = \relative c, { } @end lilypond -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{Vokalensemble}. Wir müssen diese +@warning{Das vorliegende Layout kann sehr einfach erzeugt werden. Am Besten +verwenden sie dafür das vordefinierte Beispiel @code{satb.ly}, siehe auch +@ref{Built-in templates}. Zum Zweck der einfachen Handhabung wird der +verwendete Kontextaufbau bewusst versteckt und sich darauf verlassen, dass LilyPond +alles automatisch bereit stellt. Lassen sie uns zu Lehrzwecken probieren, +das alles von Grund auf selbst zu entwickeln. Irgendwann werden sie das sowieso machen +müssen, nämlich genau dann, wenn ein vorgegebenes Beispiel ihre +Anforderungen nicht angemessen erfüllt.} + +Dem gewünschten Ergebnis am nächsten kommt sicher das +@ref{SATB-Partitur und automatischer Klavierauszug} -- wir müssen diese Vorlage aber so anpassen, dass die Noten für das Klavier nicht automatisch aus dem Chorsatz generiert werden. Die Variablen für die Noten und den Text des Chores sind in Ordnung, wir @@ -2666,10 +2657,10 @@ Die Reihenfolge, in welcher die Variablen in das Chorsystem 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 +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 -der Text den Stimmen zugewiesen wird, ist uns noch nicht +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 zu den Systemen hinzu. @@ -2679,7 +2670,7 @@ Damit erhalten wir folgenden @code{ChoirStaff}: @example \new ChoirStaff << \new Staff = "sopranos" << - \set Staff.instrumentName = #"Sopran" + \set Staff.instrumentName = #"Soprano" \new Voice = "sopranos" @{ \global \sopranoMusic @@ -2689,7 +2680,7 @@ Damit erhalten wir folgenden @code{ChoirStaff}: \sopranoWords @} \new Staff = "altos" << - \set Staff.instrumentName = #"Alt" + \set Staff.instrumentName = #"Alto" \new Voice = "altos" @{ \global \altoMusic @@ -2728,14 +2719,14 @@ aus der @qq{Piano solo}-Vorlage: @example \new PianoStaff << \set PianoStaff.instrumentName = #"Piano " - \new Staff = "oben" \oben - \new Staff = "unten" \unten + \new Staff = "upper" \upper + \new Staff = "lower" \lower >> @end example @noindent -und fügen die Variablen @code{oben} -und @code{unten} hinzu. +und fügen die Variablen @code{upper} +und @code{lower} hinzu. Das Chorsystem und das Pianosystem müssen mit spitzen Klammern kombiniert werden, damit beide @@ -2796,45 +2787,42 @@ Alles miteinander kombiniert und mit den Noten für drei Takte sieht unser Beispiel nun so aus: @lilypond[quote,verbatim,ragged-right,addversion] -global = { - \key d \major - \time 4/4 -} -sopranoMusic = \relative c'' { +global = { \key d \major \time 4/4 } +sopranoMusic = \relative { \clef "treble" - r4 d2 a4 | d4. d8 a2 | cis4 d cis2 | + r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 | } sopranoWords = \lyricmode { Wor -- thy | is the lamb | that was slain | } -altoMusic = \relative a' { +altoMusic = \relative { \clef "treble" - r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 | + r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 | } altoWords = \sopranoWords -tenorMusic = \relative c' { +tenorMusic = \relative { \clef "G_8" - r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 | + r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 | } tenorWords = \sopranoWords -bassMusic = \relative c' { +bassMusic = \relative { \clef "bass" - r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 | + r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 | } bassWords = \sopranoWords -upper = \relative a' { +upper = \relative { \clef "treble" \global - r4 2 4 - 4. 8 2 - 4 2 + r4 2 4 | + 4. 8 2 | + 4 2 | } -lower = \relative c, { +lower = \relative { \clef "bass" \global - 4 2 4 - 4. 8 2 - 4 2 + 4 2 4 | + 4. 8 2 | + 4 2 | } \score { @@ -2908,7 +2896,7 @@ manchmal einfacher ist, von Grund auf anzufangen, anstatt 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, -wie man die Partitur für ein Orgelpreludium von Grund auf +wie man die Partitur für ein Orgelpräludium von Grund auf konstruiert. Beginnen wir mit dem Kopf, dem @code{header}-Abschnitt. @@ -2919,11 +2907,11 @@ schließlich am Ende die eigentliche Partitur, den Struktur, in die wir dann die Einzelheiten nach und nach eintragen. -Als Beispiel benutzen wir zwei Takte aus dem Orgelpreludium +Als Beispiel benutzen wir zwei Takte aus dem Orgelpräludium @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 +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. @@ -2931,7 +2919,7 @@ Taktart und Tonart zu definieren. \version @w{"@version{}"} \header @{ title = "Jesu, meine Freude" - composer = "J. S. Bach" + composer = "J S Bach" @} keyTime = @{ \key c \minor \time 4/4 @} ManualOneVoiceOneMusic = @{ s1 @} @@ -2954,7 +2942,7 @@ 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 -geschweiften Klammer verbunden, wir +geschweiften Klammer verbunden, wir benutzen hier also ein @code{PianoStaff}. Das erste Manualsystem braucht zwei Stimmen, das zweite nur eine. @@ -2983,11 +2971,11 @@ 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 -häufiger Fehler, der wohl auch Ihnen früher +häufiger Fehler, der wohl auch Ihnen früher 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 +Fehlermeldungen aussehen könnten, die Sie in solch einem Fall erhalten würden. @example @@ -3016,15 +3004,15 @@ einem Fall erhalten würden. @end example Es ist nicht notwendig, die simultane Konstruktion -@code{<< .. >>} innerhalb des zweiten Manualsystems +@code{<< @dots{} >>} innerhalb des zweiten Manualsystems und des Pedalsystems zu benutzen, denn sie enthalten 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. Für Stimmen (@code{Voice}) dagegen gilt genau das -Gegenteil: eine neue Stimme sollte immer von -geschweiften Klammern (@code{@{ .. @}}) gefolgt +Gegenteil: eine neue Stimme sollte immer von +geschweiften Klammern (@code{@{ @dots{} @}}) gefolgt werden, falls Sie ihre Noten in mehrere Variable aufteilen, die nacheinander gesetzt werden sollen. @@ -3042,7 +3030,7 @@ Variable @code{\keyTime} eingefügt. << % PianoStaff and Pedal Staff must be simultaneous \new PianoStaff << \new Staff = "ManualOne" << - \keyTime % set time signature and key + \keyTime % set key and time signature \clef "treble" \new Voice @{ \voiceOne @@ -3091,19 +3079,19 @@ wird), und das Pedalsystem sollte sich genauso verhalten. @cindex Grobs @cindex Objekte, graphische -Die Spreizbarkeit von Systemen kann mit der @code{nex-staff-spacing}-Eigenschaft +Die Spreizbarkeit von Systemen kann mit der @code{staff-staff-spacing}-Eigenschaft des @code{VerticalAxisGroup}-@qq{graphischen Objekts} (üblicherweise als @qq{Grob} innerhalb der LilyPond-Dokumentation bezeichnet) kontrolliert werden. An dieser Stelle brauchen Sie sich um die Details nicht zu -sorgen, sie werden später erklärt. Sehr neugierigen können sich den -Abschnitt @ruser{Overview of modifying properties} anschauen. Im Moment -kann man nicht nur die @code{strechability}-Untereigenschaft verändern, +sorgen, sie werden später erklärt. Sehr Neugierige können sich den +Abschnitt @ruser{Grundlagen zum Verändern von Eigenschaften} anschauen. Im Moment +kann man nicht nur die @code{strechability} (Spreizbarkeit)-Untereigenschaft verändern, darum müssen hier auch die anderen Untereigenschaften kopiert werden. Die Standardeinstellungen dieser Untereigenschaften finden sich in der Datei -@file{scm/@/define-grobs@/.scm} in den Definitionen für den +@file{scm/define-grobs.scm} in den Definitionen für den @code{VerticalAxisGroup}-Grob. Der Wert für @code{strechability} wird aus der Definition für das Klaviersystem (@code{PianoStaff}) entnommen -(in der Datei @file{ly/@/engraver-init@/.ly}) sodass die Werte identisch +(in der Datei @file{ly/engraver-init.ly}), damit die Werte identisch sind. @example @@ -3123,11 +3111,7 @@ sind. @} >> % end ManualOne Staff context \new Staff = "ManualTwo" \with @{ - \override VerticalAxisGroup - #'next-staff-spacing = #'((space . 9) - (minimum-distance . 8) - (padding . 1) - (stretchability . 5)) + \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 @} << \keyTime \clef "bass" @@ -3146,7 +3130,6 @@ sind. >> @} % end Score context @end example - 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 @@ -3159,20 +3142,20 @@ die Variablen mit einem Backslash in die Partitur einbauen. composer = "J S Bach" } keyTime = { \key c \minor \time 4/4 } -ManualOneVoiceOneMusic = \relative g' { - g4 g f ees | - d2 c2 | +ManualOneVoiceOneMusic = \relative { + g'4 g f ees | + d2 c | } -ManualOneVoiceTwoMusic = \relative c' { - ees16 d ees8~ ees16 f ees d c8 d~ d c~ | - c8 c4 b8 c8. g16 c b c d | +ManualOneVoiceTwoMusic = \relative { + ees'16 d ees8~ 16 f ees d c8 d~ d c~ | + 8 c4 b8 c8. g16 c b c d | } -ManualTwoMusic = \relative c' { - c16 b c8~ c16 b c g a8 g~ g16 g aes ees | - f16 ees f d g aes g f ees d e8~ ees16 f ees d | +ManualTwoMusic = \relative { + c'16 b c8~ 16 b c g a8 g~ 16 g aes ees | + f16 ees f d g aes g f ees d ees8~ 16 f ees d | } -PedalOrganMusic = \relative c { - r8 c16 d ees d ees8~ ees16 a, b g c b c8 | +PedalOrganMusic = \relative { + r8 c16 d ees d ees8~ 16 a, b g c b c8 | r16 g ees f g f g8 c,2 | } @@ -3180,7 +3163,7 @@ PedalOrganMusic = \relative c { << % PianoStaff and Pedal Staff must be simultaneous \new PianoStaff << \new Staff = "ManualOne" << - \keyTime % set time signature and key + \keyTime % set key and time signature \clef "treble" \new Voice { \voiceOne @@ -3192,11 +3175,7 @@ PedalOrganMusic = \relative c { } >> % end ManualOne Staff context \new Staff = "ManualTwo" \with { - \override VerticalAxisGroup - #'next-staff-spacing = #'((space . 9) - (minimum-distance . 8) - (padding . 1) - (stretchability . 5)) + \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5 } << \keyTime \clef "bass" @@ -3216,9 +3195,13 @@ PedalOrganMusic = \relative c { } % end Score context @end lilypond +@seealso +Glossar: +@rglos{system}. + -@node Tipparbeit durch Variablen und Funktionen ersparen -@subsection Tipparbeit durch Variablen und Funktionen ersparen +@node Tipparbeit durch Variablen und Funktionen einsparen +@subsection Tipparbeit durch Variablen und Funktionen einsparen @translationof Saving typing with variables and functions @cindex Variablen @@ -3226,7 +3209,7 @@ PedalOrganMusic = \relative c { Bis jetzt wurde immer derartige Notation vorgestellt: @lilypond[quote,verbatim,ragged-right] -hornNotes = \relative c'' { c4 b dis c } +hornNotes = \relative { c''4 b dis c } \score { { @@ -3239,8 +3222,9 @@ Sie können sich vorstellen, dass das etwa für minimalistische Musik sehr nützlich sein könnte: @lilypond[quote,verbatim,ragged-right] -fragmentA = \relative c'' { a4 a8. b16 } -fragmentB = \relative c'' { a8. gis16 ees4 } +fragmentA = \relative { a'4 a8. b16 } +fragmentB = \relative { a'8. gis16 ees4 } + violin = \new Staff { \fragmentA \fragmentA | \fragmentB \fragmentA | @@ -3257,20 +3241,21 @@ Diese Variablen (die man auch als Makros oder Benutzer-Befehl bezeichnet) können jedoch auch für eigene Anpassungen eingesetzt werden: -@c TODO Avoid padtext - not needed with skylining @lilypond[quote,verbatim,ragged-right] dolce = \markup { \italic \bold dolce } -padText = { \once \override TextScript #'padding = #5.0 } -fthenp=_\markup { - \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p + +centreText = { \once \override TextScript.self-alignment-X = #CENTER } + +fthenp =_\markup { + \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p } -violin = \relative c'' { +violin = \relative { \repeat volta 2 { - c4._\dolce b8 a8 g a b - \padText - c4.^"hi there!" d8 e' f g d - c,4.\fthenp b8 c4 c-. + c''4._\dolce b8 a8 g a b | + \centreText + c4.^"hi there!" d8 e f g d | + c4.\fthenp b8 c4 c-. | } } @@ -3278,23 +3263,23 @@ violin = \relative c'' { { \violin } - \layout{ragged-right=##t} } @end lilypond -Derartige Variablen sind offensichtlich sehr nützlich, zu Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu +Derartige Variablen sind offensichtlich sehr nützlich, sich +Tipparbeit zu ersparen. Aber es lohnt sich schon, sie zu benutzen, wenn man sie nur einmal benutzen will, denn sie vereinfachen die Struktur einer Datei sehr stark. Hier das vorige Beispiel ohne jede Benutzung von Variablen. Es ist sehr viel schwerer lesbar, besonders die letzte Zeile. @example -violin = \relative c'' @{ +violin = \relative @{ \repeat volta 2 @{ - c4._\markup @{ \italic \bold dolce @} b8 a8 g a b - \once \override TextScript #'padding = #5.0 - c4.^"hi there!" d8 e' f g d - c,4.\markup @{ + c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b | + \once \override TextScript.self-alignment-X = #CENTER + c4.^"hi there!" d8 e f g d | + c4._\markup @{ \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @} b8 c4 c-. | @@ -3302,13 +3287,10 @@ violin = \relative c'' @{ @} @end example -@c TODO Replace the following with a better example -td -@c Skylining handles this correctly without padText - Bisher haben wir vor allem statische Ersetzungen betrachtet: -wenn LilyPond etwa @code{\padText} sieht, wird es ersetzt mit +wenn LilyPond etwa @code{\centreText} sieht, wird es ersetzt mit all dem Code, mit dem wir es definiert haben (also alles, -was sich rechts von @code{padtext=} befindet). +was sich rechts von @code{centreText=} befindet). LilyPond kann auch nicht-statische Ersetzungen bewältigen. Man kann sie sich als Funktionen vorstellen. @@ -3316,33 +3298,32 @@ kann sie sich als Funktionen vorstellen. @lilypond[quote,verbatim,ragged-right] padText = #(define-music-function - (parser location padding) + (padding) (number?) #{ - \once \override TextScript #'padding = $padding + \once \override TextScript.padding = #padding #}) -\relative c''' { - c4^"piu mosso" b a b | +\relative { + c''4^"piu mosso" b a b \padText #1.8 - c4^"piu mosso" d e f | + c4^"piu mosso" b a b \padText #2.6 - c4^"piu mosso" fis a g | + c4^"piu mosso" b a b } @end lilypond Die Benutzung von Variablen ist auch eine gute Möglichkeit, Arbeit zu vermeiden, wenn sich einmal die Syntax von LilyPond -ändern sollte (siehe auch @rprogram{Updating old input files -with convert-ly}). +ändern sollte (siehe auch @rprogram{Dateien mit convert-ly aktualisieren}). Wenn man eine einzige Definition hat (wie etwa @code{\dolce}), die für alle Vorkommen in der Notation eingesetzt wird, muss man auch nur einmal diese Definition aktualisieren, anstatt -dass man sie in jeder @code{.ly}-Datei einzeln ändern müsste. +dass man sie in jeder @file{.ly}-Datei einzeln ändern müsste. -@node Partitur und Stimmen -@subsection Partitur und Stimmen +@node Partituren und Stimmen +@subsection Partituren und Stimmen @translationof Scores and parts In Orchestermusik werden alle Noten zweimal gedruckt. Einmal @@ -3357,7 +3338,7 @@ Nehmen wir an, dass die Datei @file{horn-music.ly} folgende Noten eines Horn/@/Fagott-Duos enthält: @example -hornNotes = \relative c @{ +hornNotes = \relative @{ \time 2/4 r4 f8 a | cis4 f | e4 d | @} @@ -3395,7 +3376,7 @@ die Stimmung eines normalen F-Hornes verlangt. Die Transposition kann in folgender Notenausgabe gesehen werden: @lilypond[quote,ragged-right] -\transpose f c' \relative c { +\transpose f c' \relative { \time 2/4 r4 f8 a | cis4 f | e4 d | } @@ -3412,22 +3393,18 @@ in einem 2/4-Takt: R2*3 @end example -Wenn die Stimme gesetzt wird, werden Mehrtaktpausen komprimiert. Das geschieht, indem man folgendes in die Datei -schreibt: +Wenn die Stimme gesetzt wird, sollen Mehrtaktpausen zusammen gefasst werden. +Zu diesem Zweck gibt es eine Musik Funktion: @example -\set Score.skipBars = ##t +\compressMMRests @{ ... @} @end example -@noindent -Dieser Befehl setzt die Eigenschaft @code{skipBars} im -@code{Score}-Kontext auf wahr (@code{##t}). Die Pause und diese Option zu der Musik von oben hinzugefügt, ergibt folgendes -Beispiel: +Angewendet auf @code{hornNotes} erhält man: @lilypond[quote,ragged-right] -\transpose f c' \relative c { +\compressMMRests \transpose f c' \relative { \time 2/4 - \set Score.skipBars = ##t R2*3 | r4 f8 a | cis4 f | e4 d | } @@ -3452,7 +3429,7 @@ Partitur erstellt mit: woraus sich ergibt: @lilypond[quote,ragged-right] -\relative c << +\relative << \new Staff { \clef "treble" \time 2/4 @@ -3467,3 +3444,13 @@ woraus sich ergibt: } >> @end lilypond + +@seealso +Handbuch zum Lernen: +@ref{Stücke durch Variablen organisieren}. + +Notationsreferenz: +@ruser{Transponieren}, +@ruser{Orchesterstimmen erstellen}, +@ruser{Ganztaktpausen}, +@ruser{LilyPond-Dateien einfügen}.