From: Reinhold Kainhofer Date: Mon, 25 Aug 2008 22:24:30 +0000 (+0200) Subject: Doc: German translation of LM "3.1 How LilyPond input files work" X-Git-Tag: release/2.11.57-1~4 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0cd653ae42caed9a694cb9232fec08e96f89f657;p=lilypond.git Doc: German translation of LM "3.1 How LilyPond input files work" --- diff --git a/Documentation/de/user/fundamental.itely b/Documentation/de/user/fundamental.itely index ff65642a03..8c8b1ab99b 100644 --- a/Documentation/de/user/fundamental.itely +++ b/Documentation/de/user/fundamental.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @c This file is part of lilypond-learning.tely @ignore - Translation of GIT committish: c60d0f3c72164f384ec8f7af90fdd8a66ab32b91 + Translation of GIT committish: a8c28adaf60e575fa101c93b4fda7557741bfb86 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -13,8 +13,10 @@ @node Fundamental concepts @chapter Fundamental concepts -Dieses Kapitel behandelt das allgemeine Konzept von LilyPond -und wie man @code{\score}-Blöcke erstellt. +Nachdem im Tutorial 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 * How LilyPond files work:: @@ -63,19 +65,104 @@ weglässt. } @end lilypond -Jetzt kommt noch eine Ebene dazu: LilyPond-Code in der obigen Form -ist in Wirklichkeit auch wieder eine Abkürzung. Auch wenn man so -Dateien schreiben kann und sie auch korrekt gesetzt werden, heißt -der wirkliche Code, der hier gemeint ist, eigentlich: +Eine komplette Definition des Eingabeformats findet sich +im Kapitel @ruser{File structure}. + +@menu +* Introduction to the LilyPond file structure:: +* Score is a (single) compound musical expression:: +* Nesting music expressions:: +* On the un-nestedness of brackets and ties:: +@end menu + +@node Introduction to the LilyPond file structure +@subsection Introduction to the LilyPond file structure + +@cindex Eingabeformat +@cindex Dateistruktur + +Ein grundlegendes Beispiel einer Eingabedatei für LilyPond lautet: @example +\version @w{"@version{}"} +\header @{ @} \score @{ - \relative c'' @{ - c4 a b c + @var{...zusammengesetzter Musik-Austruck...} % Die gesamte Musik kommt hier! + \layout @{ @} + \midi @{ @} +@} +@end example + +@noindent +Aufgrund der Flexibilität von LilyPond gibt es viele Variationen dieses +Schemas, aber dieses Beispiel dient als einfacher Ausgangspunkt. + +@funindex \book +@funindex \score +@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: + +@example +\relative c'' @{ + c4 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: + +@example +\book @{ + \score @{ + \new Staff @{ + \new Voice @{ + \relative c'' @{ + c4 a b c + @} + @} + @} + \layout @{ @} @} @} @end example +@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 +Stuktur wird automatisch im Speicher beim Aufruf von LilyPond erzeugt, +ohne dass der Benutzer davon etwas bemerkt. + +@cindex implicit contexts + +@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, +damit sie implizit von LilyPond im Speicher erzeugt werden. +Für einfache Dokumente funktioniert das im Allgemeinen sehr gut, für +komplexere Partituren können dadurch aber unerwartete Ergebnisse +entstehen, teilweise sogar unerwartete leere Notenzeilen. Um +die entsprechenden Kontexte in diesem Fall explizit zu erzeugen, +siehe @ref{Contexts and engravers}. + +@warning{Wenn mehr als ein paar Zeilen an Musik eingegeben werden, +empfielt es sich, die Notenzeilen und die Stimmen immer explizit +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 @@ -85,7 +172,7 @@ Note bis hin zu einer riesigen Partitur mit vielen Notensystemen @example @{ \new GrandStaff << - hier die gesamte Partitur + @var{...hier die gesamte Partitur...} >> @} @end example @@ -106,12 +193,67 @@ Ein @code{\score} auch andere Dinge enthalten, wie etwa @} @end example +@funindex \header +@funindex \layout +@funindex \midi +@cindex header +@cindex layout +@cindex midi + +@noindent + @noindent -Viele setzen einige dieser Befehle außerhalb des -@code{\score}-Blocks, zum Beispiel wird der @code{\header} -sehr oft oberhalb der @code{\score}-Umgebung gesetzt. Das +Wie man sieht sind die drei Befehle @code{\header}, @code{\layout} und +@code{\midi} von spezieller Natur: Im Gegensatz zu vielen Anderen Befehlen, +die auch mit einem @code{\} beginnen, liefern sie @emph{keinen} Musikausdruck +und sind auch nicht Teil eines musikalischen Ausdrucks. Daher können sie +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 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 +Benutzerhandbuch -- @ruser{Score layout}, and +@ruser{Creating MIDI files}. + +@cindex Partituren, mehrfache + +Ihr LilyPond Code kann auch mehrere @code{\score}-Blöcke enthalten. +Jeder davon wird als eigenständige Partitur interpretiert, die +allerdings alle in dieselbe Ausgabedatei plaziert weden. +Ein @code{\book}-Befehl ist nicht explizit notwendig -- er wird +implizit erzeugt. Wenn jedoch für jeden @code{\score}-Block in einer +einzigen @code{.ly}-Datei eine eigene Ausgabe-Datei erzeugt werden soll, +dann muss jeder dieser Blöcke in einen eigenen @code{\book}-Block +gesetzt werden: Jeder @code{\book}-Block erzeugt dann eine +eigene Ausgabedatei. + +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 +impliziten @code{\book}-Blocks. + +Jeder @code{\score}-Block beschreibt ein eigenständiges Musikstück +innerhalb des @code{\book}-Blocks. + +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 +alle @code{\score}-Blocks innerhalb dieses @code{\book}-Blocks. + +Nähere Details finden sich im Abschnitt @ruser{Multiple scores in a book}. + + @cindex Variablen @cindex Bezeichner @@ -129,33 +271,38 @@ melodie = \relative c' @{ @end example Wenn LilyPond diese Datei analysiert, nimmt es den Inhalt -von @code{melodie} (alles, was nach dem Gleichheitszeichen -kommt) 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. Für mehr Information siehe @ref{Saving typing with variables and functions}. +Als Variablenname kann fast jeder beliebige Name benutzt werden, +allerdings dürfen nur Buchstaben vorkommen (also keine Zahlen, Unterstriche, +Sonderzeichen, etc.) und er darf nicht wie ein LilyPond-Befehl +lauten. Die genauen Einschränkungen sind beschrieben in +@ruser{File structure}. -Eine komplette Definition des Eingabeformats findet sich -im Kapitel @ruser{File structure}. +@seealso -@menu -* Introduction to the LilyPond file structure:: -* Score is a (single) compound musical expression:: -* Nesting music expressions:: -* On the un-nestedness of brackets and ties:: -@end menu +Eine vollständige Definition des Eingabeformats findet sich in +@ruser{File structure}. -@node Introduction to the LilyPond file structure -@subsection Introduction to the LilyPond file structure -@untranslated @node Score is a (single) compound musical expression @subsection Score is a (single) compound musical expression -Im vorigen Kapitel, @ref{How LilyPond files work}, +@funindex \score +@cindex score +@cindex Partitur +@cindex Musikstück +@cindex zusammengesetzter Musikausdruck +@cindex Musikausdruck, zusammengesetzter + + +Im vorigen Kapitel, @ref{Introduction to the LilyPond file structure}, wurde die allgemeine Struktur einer LilyPond-Quelldatei beschrieben. Aber anscheinend haben wir die wichtigste Frage ausgelassen, nämlich wie man herausfindet, was nach @@ -183,7 +330,7 @@ zerlegen lässt. \score @{ @{ % diese Klammer startet den großen mus. Ausdruck \new GrandStaff << - hier eine ganze Wagner-Oper einfügen + @var{...hier eine ganze Wagner-Oper einfügen...} >> @} % diese Klammer beendet den Ausdruck \layout @{ @} @@ -211,25 +358,32 @@ den Befehl weg. Wir brauchen aber einen Sänger und ein Klavier. Zur Erinnerung: mit @code{<<} und @code{>>} werden Noten gleichzeitig gesetzt; wir wollen ja auch Klavier- und Sängerstimme gleichzeitig -haben. - -@example -\score @{ - @{ - << - \new Staff = "Sänger" << - \new Voice = "vocal" @{ @} - >> - \new Lyrics \lyricsto vocal \new Lyrics @{ @} - \new PianoStaff = "piano" << - \new Staff = "upper" @{ @} - \new Staff = "lower" @{ @} - >> +und nicht hintereinander haben. Bei genauerem Hinsehen fällt auf, dass +die @code{<< ... >>}-Konstruktion für die Notenzeile des Sängers eigentlich +nicht unbedingt nötig wäre, da sie ja nur einen (sequenzielle) musikalischen +Ausdruck enthält, nämlich alle Noten des Sängers hintereinander. Daher +könnte an sich auch einfach ein @code{@{...@}} benutzt werden. Die +Spitzklammern sind allerdings notwendig, sobald die Notenzeile mehrere +parallelle Ausdrücke -- wie etwa zwei parallele Stimmen oder eine Stimme +mit zugehörigem Text -- enthält. +Wir werden die Musik später in das Beispiel einfügen, im Moment begnügen +wir uns mit einigen Platzhalter-Noten und -Texten. + +@lilypond[verbatim,quote,ragged-right] +\score { + << + \new Staff = "Sänger" << + \new Voice = "Singstimme" { c'1 } + \addlyrics { And } >> - @} - \layout @{ @} -@} -@end example + \new PianoStaff = "Klavier" << + \new Staff = "oben" { } + \new Staff = "unten" { } + >> + >> + \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) @@ -249,7 +403,7 @@ Klammern neben @code{\new Voice = vocal} könnte man @example \relative c'' @{ - a4 b c d + r4 d8\noBeam g, c4 r @} @end example @@ -259,32 +413,38 @@ verstehen, wie alles zusammenhängt. Darum bietet es sich an, Bezeichner (oder Variablen) zu verwenden. -@example -melodie = @{ @} -text = @{ @} -upper = @{ @} -lower = @{ @} -\score @{ - @{ - << - \new Staff = "Sänger" << - \new Voice = "vocal" @{ \melodie @} - >> - \new Lyrics \lyricsto vocal \new Lyrics @{ \text @} - \new PianoStaff = "piano" << - \new Staff = "upper" @{ \upper @} - \new Staff = "lower" @{ \lower @} - >> +@lilypond[verbatim,quote,ragged-right] +melodie = \relative c'' { r4 d8\noBeam g, c4 r } +text = \lyricmode { And God said, } +oben = \relative c'' { 2~ } +unten = \relative c { b2 e2 } + +\score { + << + \new Staff = "Sänger" << + \new Voice = "Singstimme" { \melodie } + \addlyrics { \text } >> - @} - \layout @{ @} -@} -@end example + \new PianoStaff = "Klavier" << + \new Staff = "oben" { \oben } + \new Staff = "unten" { + \clef "bass" + \unten + } + >> + >> + \layout { } +} +@end lilypond -@noindent -Nochmal: der Bezeichner kann aller möglicher Text sein. Die -Einschränkungen sind in -@ruser{File structure} genau aufgelistet. +Achten Sie auf den Unterschied zwischen Noten, die mit @code{\relative} +oder direkt in einem musikalischen Ausruck eingegeben werden, und +dem Text des Lieds, der innerhalb @code{\lyricmode} angegeben +werden muss. Diese Unterscheidung ist für LilyPond essentiell, +um zu entscheiden, ob der folgende Inhalt als Musik oder Text +interpretiert werden soll. Wie könnte LilyPond sonst entscheiden, +ob @code{@{a b c@}} die drei Noten a, b und c darstellen soll oder +den Text eines Lieds über das Alphabet! Beim Schreiben (oder Lesen) einer @code{\score}-Umgebung sollte man langsam und sorgfältig vorgehen. Am besten fängt @@ -294,17 +454,163 @@ genau mit den Einzügen zu sein, so dass jede Zeile, die der gleichen Ebene angehört, wirklich horizontal an der gleichen Stelle beginnt. +@seealso + +Benutzerhandbuch: @ruser{Structure of a score}. + @node Nesting music expressions @subsection Nesting music expressions -@untranslated +@cindex Notenzeilen, temporäre +@cindex Ossia + +Notenzeilen (die @q{Staff}-Kontexte) müssen nicht unbedingt gleib +zu Beginn erzeugt werden -- sie können auch zu einem späteren +Zeitpunkt eingeführt weden. Das ist vor allem nützlichm um +@rglosnamed{ossia,Ossias} zu erzeugen. Hier folgt ein kures Beispiel, +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 | + e4 r8 + << + { f c c } + \new Staff { + f8 f c + } + >> + r4 | + } +} +@end lilypond + +@noindent +Wie man sieht ist die Größe des Notenschlüssels dieselbe wie sie +auch bei einer Schlüsseländerung auftritt -- etwas kleiner als +der Schlüssel am Beginn einer Notenzeile. Dies ist normal für +Notenschlüssel, die innerhalb einer Notenzeile gesetzt werden. + +@cindex Notenzeile, Positionierung + +Der Ossia-Abschnitt kann auch oberhalb der Hauptnotenzeile +gesetzt werden: + +@lilypond[verbatim,quote,ragged-right] +\new Staff = "Hauptzeile" { + \relative g' { + r4 g8 g c4 c8 d | + e4 r8 + << + { f c c } + \new Staff \with { + alignAboveContext = "Hauptzeile" } + { f8 f c } + >> + r4 | + } +} +@end lilypond + +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 +standardmäßig unterhalb. + +@seealso + +Ossia werden oft ohne Notenschlüssel und Taktangabe gedruck, 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{Size of objects} +und @ruser{Ossia staves}. + -@ @node On the un-nestedness of brackets and ties @subsection On the un-nestedness of brackets and ties -@untranslated +@cindex Klammern, geschachtelt +@cindex Schachtelung von Klammern + +Sie haben bisher zahlreiche verschiedene Arten von Klammern +beim Schreiben von Musik mit LilyPond kennengelernt. Diese +folgen verschiedenen Regeln, die zu Beginn vielleicht +verwirrend wirken. Bevor die genauen Regeln vorgestellt werden, +wollen wir die diversen Klammerarten kurz rekapitulieren: + +@c attempt to force this onto a new page +@need 50 +@multitable @columnfractions .3 .7 +@headitem Klammerart + @tab Funktion +@item @code{@{ .. @}} + @tab Umschließt ein sequenzielles Musiksegment +@item @code{< .. >} + @tab Umschließt die Noten eines Akkords +@item @code{<< .. >>} + @tab Umschließt parallele Musikausdrücke +@item @code{( .. )} + @tab Markiert den Beginn und das Ende eines Haltebogens +@item @code{\( .. \)} + @tab Markiert den Beginn und das Ende eines Phasierungsbogens +@item @code{[ .. ]} + @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). + +Außerhalb von LilyPond fordert die übliche Benutzung von +Klammern, dass die entsprechenden Arten korrekt verschachtelt +werden, wie z.B. in @code{<< [ @{ ( .. ) @} ] >>}. Die +schließenden Klammern kommen dabei in der umgekehrten Reihenfolge +wie die öffnenden Klammern vor. Dies ist auch in LilyPond +ein @strong{Muss} für die drei Klammerarten, die in obiger +Tabelle mit dem Wort @q{Umschließt} beschrieben werden -- sie +müssen korrekt geschachtelt werden. +Die restlichen Klammerarten (durch @q{Markiert} beschrieben), +die Haltebögen und die Triolen brauchen jedoch mit den +anderen Klammerarten @strong{nicht} unbedingt korrekt +geschachtelt werden. Tatsächlich sind sie auch keine Klammern +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 +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] } +@end lilypond + +Im Allgemeinen können die verschiedenen Klammerarten, 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 +Phrasierungsbogen, der in einer Triole beginnt (Zeilen 3 und 4). + +@lilypond[quote,verbatim,fragment,ragged-right] +{ + r16[ g16 \times 2/3 {r16 e'8] } + g16( a \times 2/3 {b d) e' } + g8[( a \times 2/3 {b d') e'~]} + \times 4/5 {e'32\( a b d' e'} a'4.\) +} +@end lilypond + @node Voices contain music @section Voices contain music