@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@ignore
- Translation of GIT committish: d415427752fa5fd83b0da189d677481d1c7f3043
+ Translation of GIT committish: 5cf864d550e7148412d594cf336841791bff6f76
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@noindent
auszuführen.
-@c MacOS@tie{}X-Benutzer können diesen Befehl im Menu unter
-@c @code{Compile > Update syntax} finden.
-@c Does it work? TR
-Wenn keine Veränderungen in @code{meineDatei.ly} vorgenommen wurden
-und eine Datei @code{meineDatei.ly.NEW} erstellt wird, it
-@code{meineDatei.ly} schon aktuell.
+Damit wird @code{meineDatei.ly} direkt aktualisiert und die
+Originaldatei unter @code{meineDatei.ly~} gespeichert.
+
+Alternativ kann man der aktualisierten Datei auch einen anderen
+Namen geben, in welchem Fall die Originaldatei unverändert
+gelassen wird. Das geht mit dem Befehl
+
+@example
+convert-ly meineDatei.ly > meineneueDatei.ly
+@end example
+
+Das Programm zeigt die Versionsnummern an, für die Konvertierungen
+vorgenommen wurden. Wenn keine Versionsnummern angezeigt werden,
+ist die Datei schon aktuell.
+
+
+MacOS@tie{}X-Benutzer können diesen Befehl im Menu unter
+@code{Compile > Update syntax} finden.
+
+Benutzer unter Windows müssen diesen Befehl auf der Eingabeaufforderung
+schreiben, welche man üblicherweise unter dem Menüeintrag
+@code{Start > Alle Programme > Zubehör > Eingabeaufforderung} zu
+finden ist.
@menu
* Probleme mit convert-ly::
@end menu
+
@node Optionen von convert-ly auf der Kommandozeile
@subsection Optionen von @command{convert-ly} auf der Kommandozeile
@translationof Command line options for convert-ly
in der Datei überlicherweise etwas niedriger ist als die
Version von @command{convert-ly}.
-Um LilyPond-Fragmente in texinfo-Dateien zu aktualisieren, gilt
-der Befehl:
-
-@example
-convert-ly --from=... --to=... --no-version *.itely
-@end example
-
-Um die Änderungen der LilyPond-Syntax zwischen bestimmten Versionen
-zu sehen, kann der Befehl
-
-@example
-convert-ly --from=... --to=... -s
-@end example
-
-@noindent
-benutzt werden.
-
-Viele Dateien können auf einmal aktualisiert werden, indem
-@code{convert-ly} mit den üblichen UNIX-Befehlen kombiniert
-wird. Das folgende Beispiel aktualisiert alle @code{.ly}-Dateien
-im aktuellen Verzeichnis:
-
-@example
-for f in *.ly; do convert-ly -e $f; done;
-@end example
-
Die allgemeine Syntax des Programms lautet:
@example
-convert-ly [@var{option}]@dots{} @var{file}@dots{}
+convert-ly [@var{Option}]@dots{} @var{Dateiname}@dots{}
@end example
Folgende Optionen sind möglich:
@table @code
@item -e,--edit
-Verändere die entsprechende Zeile der Eingabedatei. Überschreibt
-@code{--output}.
+Führt die Aktualisierung direkt in der Datei durch, die Datei wird
+dabei verändert.
@item -f,--from=@var{von-Versionsnummer}
Setze die Version, ab welcher konvertiert werden soll. Wenn diese
Option nicht gesetzt ist, versucht @command{convert-ly}, die
Version auf Grundlage von @code{\version} zu raten.
+Beispiel: @code{--from=2.10.25}
@item -n,--no-version
Normalerweise fügt @command{convert-ly} eine @code{\version}-Zeile
@item --to=@var{bis-Versionsnummer}
Hiermit kann das Ziel der Konversion gesetzt werden. Standard ist
-die neueste mögliche Version.
+die neueste mögliche Version. Beispiel: @code{--to=2.12.2}
@item -h, --help
Benutzerhilfe ausgeben.
@end table
+Um LilyPond-Fragmente in texinfo-Dateien zu aktualisieren, gilt
+der Befehl:
+
+@example
+convert-ly --from=... --to=... --no-version *.itely
+@end example
+
+Um die Änderungen der LilyPond-Syntax zwischen bestimmten Versionen
+zu sehen, kann der Befehl
+
+@example
+convert-ly --from=... --to=... -s
+@end example
+
+@noindent
+benutzt werden.
+
+Viele Dateien können auf einmal aktualisiert werden, indem
+@code{convert-ly} mit den üblichen UNIX-Befehlen kombiniert
+wird. Das folgende Beispiel aktualisiert alle @code{.ly}-Dateien
+im aktuellen Verzeichnis:
+
+@example
+for f in *.ly; do convert-ly -e $f; done;
+@end example
+
+
@node Probleme mit convert-ly
@subsection Probleme mit @code{convert-ly}
@translationof Problems with convert-ly
+Wenn convert-ly unter Windows auf der Eingabeaufforderung mit einer
+Datei benutzt wird, deren Name oder Pfad Leerzeichen enthält, muss
+der gesamte Dateipfad mit drei (!) Anführungszeichen umgeben werden:
+
+@example
+convert-ly """D:/My Scores/Ode.ly""" > """D:/My Scores/new Ode.ly"""
+@end example
+
Nicht alle Änderungen der Syntax können konvertiert werden. Nur
eine Ausgabeoption kann angegeben werden. Scheme- und
LilyPond-Scheme-Code wird sehr unwahrscheinlich korrekt aktualisiert,
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@ignore
- Translation of GIT committish: 5131c3292d30cabdf08839daa02a006e4d3c96c5
+ Translation of GIT committish: 5cf864d550e7148412d594cf336841791bff6f76
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
die Dateneingabe mit Scheme. Wenn Sie mehr über Scheme wissen wollen,
gehen Sie zu @uref{http://@/www@/.schemers@/.org}.
+LilyPond benutzt die GNU Guile-Implementation von Scheme, die auf dem
+@qq{R5RS}-Standard von Scheme basiert. Wenn Sie Scheme lernen wollen,
+um es innerhalb von LilyPond zu benutzen, wird es nicht empfohlen,
+mit einer anderen Implementation (die sich auf einen anderen
+Standard bezieht) zu arbeiten. Information zu Guile findet sich
+unter @uref{http://www.gnu.org/software/guile/}. Der
+@qq{R5RS}-Standard von Scheme befindet sich unter der Adresse
+@uref{http://www.schemers.org/Documents/Standards/R5RS/}.
+
+Die LilyPond-Installation enthält gleichzeitig auch die
+Guile-Implemenation von Scheme. Auf den meisten Systemen kann
+man in einer Scheme-sandbox experimentieren, indem man ein
+Kommandozeilen-Fenster öffnet und @code{guile} auffruft. Unter
+einigen Systemen, insbesondere unter Windows, muss man evtl.
+die Umgebungsvariable @code{GUILE_LOAD_PATH} auf das Verzeichnis
+@code{../usr/shr/guile/1.8} innerhalb des LilyPond-Installationsverzeichnisses
+setzen (der vollständige Pfad ist erklärt in @ref{Other sources of information}).
+Alternativ können Windows-Benutzer auch einfach @qq{Ausführen} im
+Startmenü wählen und @code{guile} schreiben.
+
Das Grundlegendste an einer Sprache sind Daten: Zahlen, Zeichen,
-Zeichenketten, Listen usw. Hier ist eine Liste der Datentypen, die für
+Zeichenketten, Listen usw. Hier ist eine Liste der Datentypen, die für
LilyPond-Eingabedateien relevant sind.
@table @asis
eine Zeichenkette"
@end example
+LilyPond-Kommentare (@code{%} oder @code{%@{ %@}}) können innerhalb
+von Scheme-Code nicht benutzt werden. Kommentare in Guile Scheme
+werden wie folgt notiert:
+
+@example
+; Einzeiliges Kommentar
+
+#!
+ Guile-Stil Blockkommentar (nicht schachtelbar)
+ Diese Kommentare werden von Scheme-Programmierern
+ selten benutzt und nie im Quellcode
+ von LilyPond
+!#
++@end example
+
+Merere aufeinander folgende Scheme-Ausdrücke in einer Notationsdatei
+können kombiniert werden, wenn man @code{begin} einsetzt. Das
+erlaubt es, die Anzahl an Rauten auf eins zu begrenzen.
+
+@example
+#(begin
+ (define foo 0)
+ (define bar 1))
+@end example
+
+Wenn @code{#} von einer öffnenden Klammer, @code{(}, gefolgt wird, wie
+in dem Beispiel oben, bleibt der Parser im Scheme-Modus bis eine
+passende schließende Klammer, @code{)}, gefunden wird, sodass keine
+weiteren @code{#}-Zeichen benötigt werden, um einen Scheme-Abschnitt
+anzuzeigen.
+
Für den Rest dieses Abschnitts nehmen wir an, dass die Daten immer in
einer LilyPond-Datei stehen, darum wird immer die Raute verwendet.
Dauern, Bebalkung und Takten.
@menu
-* Rhythmen eingeben::
-* Pausen eingeben::
-* Rhythmen anzeigen lassen::
-* Balken::
-* Takte::
-* Besondere rhythmische Fragen::
+* Rhythmen eingeben::
+* Pausen eingeben::
+* Rhythmen anzeigen lassen::
+* Balken::
+* Takte::
+* Besondere rhythmische Fragen::
@end menu
@translationof Writing rhythms
@menu
-* Tondauern::
-* Andere rhythmische Aufteilungen::
-* Tondauern skalieren::
-* Bindebögen::
+* Tondauern::
+* Andere rhythmische Aufteilungen::
+* Tondauern skalieren::
+* Bindebögen::
@end menu
@node Tondauern
@menu
-* Pausen::
-* Unsichtbare Pausen::
-* Ganztaktige Pausen::
+* Pausen::
+* Unsichtbare Pausen::
+* Ganztaktpausen::
@end menu
@node Pausen
werden sollen, müssen als mehrtaktige Pausen eingegeben werden.
Sie können sowohl für einen einzigen Takt als auch für mehrere
Takte verwendet werden, Näheres im Abschnitt
-@ref{Ganztaktige Pausen}.
+@ref{Ganztaktpausen}.
Um die vertikale Position einer Pause explizit festzulegen,
kann eine Note eingegeben werden, gefolgt vom Befehl @code{\rest}.
@rglos{maxima}.
Notationsreferenz:
-@ref{Ganztaktige Pausen}.
+@ref{Ganztaktpausen}.
Schnipsel:
@rlsr{Rhythms}.
-@node Ganztaktige Pausen
-@unnumberedsubsubsec Ganztaktige Pausen
+@node Ganztaktpausen
+@unnumberedsubsubsec Ganztaktpausen
@translationof Full measure rests
@cindex Ganztaktpausen
@translationof Beams
@menu
-* Automatische Balken::
-* Einstellung von automatischen Balken::
-* Manuelle Balken::
-* Gespreizte Balken::
+* Automatische Balken::
+* Einstellung von automatischen Balken::
+* Manuelle Balken::
+* Gespreizte Balken::
@end menu
@funindex \set
@funindex set
-Die Platzierung der automatischen Bebalkung wird entschieden, indem
-die folgenden Regeln in der dargestellten Reihenfolge angewendet werden:
+Die Platzierung der automatischen Bebalkung wird entsprechend
+der Taktart entschieden. Drei Arten von Regeln werden eingesetzt,
+um die Endpunkte der automatischen Balken zu bestimmen:
+@emph{Standardregeln} für die Taktart, @emph{ausdrückliche}
+Regeln für einen Balken in einer Taktart und die
+Eigenschaft @emph{beatLenght} (Schlagdauer) der Taktart.
+
+Die folgenden Regeln, in der Reihenfolge ihrer Priorität, gelten, wenn das Aussehen der Balken bestimmt wird:
@itemize
@item wenn @code{\autoBeamOff} eingeschaltet ist, werden keine Balken gesetzt, andernfalls
+@item wenn eine ausdrückliche Balkenregel für diesen Balken in
+dieser Taktart definiert ist, wird sie genommen um die möglichen
+Stellen zu errechnen, an denen der Balken enden darf, andernfalls
+
+@item wenn eine Standardbalkenregel für die Taktart definiert ist,
+wird sie genommen, um Noten mit Balken zu gruppieren, andernfalls
+
@item benutze den Wert von @code{beatLength} um die Noten mit Balken zu gruppieren.
@end itemize
-@i{@strong{Die Gruppierung von Noten verändern}}
+@i{@strong{Die Gruppierung von Taktzeiten verändern}}
-Sowohl @code{measureLength} als auch @code{beatLength} sind
-@i{Momente}, Einheiten musikalischer Dauer. Eine Größe der
-Art @i{Moment} wird durch die Scheme-Funktion
+Standardmäßig wird @code{beatLength} (Schlagdauer) von der
+Taktart abgeleitet, die mit dem @code{\time}-Befehl gesetzt
+wurde. Die Schlagdauer wird definiert als eine Eins über dem
+Nenner der Taktart.
+
+@code{beatLength} ist ein @i{Moment}, eine Einheit musikalischer
+Dauer. Eine Größe der Art @i{Moment} wird durch die Scheme-Funktion
@code{ly:make-moment} erstellt. Für mehr Information zu dieser
Funktion siehe @ref{Verwaltung der Zeiteinheiten}.
-@code{beatGrouping} ist eine Liste an Integren, die die Anzahl
-von Zählzeiten für jede Gruppe darstellen.
-
-@snippets
-
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
-{grouping-beats.ly}
-
-@funindex subdivideBeams
+Automatische Bebalkung und Balkenunterteilungen werden gespeichert
+in den Einstellungen der @code{beamSettings}-Eigenschaft.
+Standardwerte von @code{beamSettings} werden in der Datei
+@file{scm/beam-settings.scm} definiert. Einträge in
+@code{beamSettings} werden nach Taktart und Regelart sortiert.
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
-{sub-dividing-beams.ly}
+Die Taktart sollte als Scheme-Paar dargestellt werden, also
+@code{#'(4 . 4)}.
-@cindex Taktgruppen
-@cindex Schlaggruppen
-@cindex Taktschläge gruppieren
-@cindex Takt unterteilen
-@cindex Unterteilen von Takten
+Die Regelart sollte sein @code{#'end} für Balkenenden und
+@code{#'subdivide} für Balkenunterteilungen.
-@funindex autoBeamSettings
-
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
-{conducting-signs,-measure-grouping-signs.ly}
-
-
-@strong{@i{Die Endpunkte von Balken bestimmen}}
-
-Balkenenden-Regeln werden benötigt, wenn Balken unterschiedlicher
-Dauer zur gleichen Taktzeit enden sollen. Es kann beispielsweise
-nötig sein, dass Achtelbalken in einem 4/4-Takt nur am Ende des
-Taktes oder in seiner Mitte enden, Sechszehntelbalken hingegen
-sollen nach jeder Viertel enden, damit lange überbalkte Strecken
-vermieden werden. Die Regeln funktionieren folgendermaßen:
-
-Automatische Balken beginnen an einer beliebigen Note, enden aber nur
-an den bestimmten Positionen, die durch die Eigenschaften von
-@code{autoBeamSettings} bestimmt werden. Diese Eigenschaften
-bestehen aus einer Liste an Regeln, die die erlaubten Endpunkte
-definieren. Die Standardregeln von @code{autoBeamSettings}
-sind in der Datei @file{scm/@/auto@/-beam@/.scm} definiert. Um
-diese Datei zu finden, siehe
-@rlearning{Mehr Information}.
-
-Um eine neue Regel zu der Liste hinzuzufügen, muss folgende
-Syntax verwendet werden:
+Die Endungs- und Unterteilungsregeln bestehen aus einer
+Scheme-Aliste (oder Liste von Paaren), die den Balkentyp und
+die Gruppierung, die auf diesen Balkentyp angewendet werden
+soll, anzeigt.
@example
-#(override-auto-beam-setting
- '(Balken-Limit
- Balken-Zähler Balken-Nenner
- Taktart-Zähler Taktart-Nenner)
- Moment-Zähler Moment-Nenner [Kontext])
+#'((beam-type1 . grouping-1)
+ (beam-type2 . grouping-2)
+ (beam-type3 . grouping-3))
@end example
-@noindent
-wobei
+Balkentyp ist entweder ein Scheme-Paar, das die Dauer des Balkens
+anzeigt, etwa @code{(1 . 16)}, oder @code{*}, um eine Standardregel
+anzuzeigen, die auf alle Balken angewendet werden soll, wenn
+keine spezifische Regel vorliegt.
+
+Die Balkengruppierung ist eine Scheme-Liste, die die Gruppierungsart
+für einen Balkentyp darstellt. Für Standardregeln (in denen
+der Balkentyp @code{*} ist) wird die Gruppierung in Einheiten
+von @code{beatLength} dargestellt. Für explizite Regeln wird
+die Gruppierung in Einheiten der Balkenart angezeigt.
+
+Balkenregeln werden verändert mit @code{\overrideBeamSettings}
+und @code{\revertBeamSettings}.
@lilypond[quote,relative=2,verbatim]
\time 5/16
c8^"(3+2)" c16 c8
@end lilypond
+Balkenregelveränderungen können auf bestimmte Kontexte beschränkt
+werden. Wenn keine Regeln in einen unteren Kontext definiert
+sind, gelten die Regeln des höheren Kontext, in dem sich der
+niedrigere befindet.
+
@lilypond[quote, verbatim,relative=1]
\new Staff <<
\time 7/8
>>
@end lilypond
-Wenn mehrfache Stimmen benutzt werden, muss der @code{Staff}-Kontext
-angegeben werden, wenn die Balkenregeln auf alle Stimmen im System
-angewendet werden sollen:
+Wenn mehrere Stimmen eingesetzt werden, muss der @code{Staff}-Kontext
+definiert werden, wenn die Balkenregeln auf alle Stimmen des
+Systems angewendet werden sollen:
@lilypond[quote,verbatim,relative=2]
\time 7/8
% rhythm 3-1-1-2
-% Context Voice specified - does not work correctly
+% Context Voice specified -- does not work correctly
% Because of autogenerated voices, all beating will
% be at beatLength (1 . 8)
\overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (3 1 1 2)))
<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
@end lilypond
-@funindex revert-beam-setting
+@funindex revertBeamSettings
-Beam settings can be reverted to get back to default behavior. This
-is accomplished by using @code{\revertBeamSettings}. The arguments
-are the same as for @code{\overrideBeamSettings}, except no value
-for @var{grouping} is given:
+Balkenregeln können rückgängig gemacht und das Standardverhalten
+wieder hergestellt werden. Das erreicht man durch den Einsatz
+von @code{\revertBeamSettings}. Die Argumente sind die gleichen
+wie für @code{overrideBeamSettings}, außer das kein Wert für
+@var{Gruppierung} gegeben wird:
@example
-\revertBeamSettings context time-signature rule-type
+\revertBeamSettings Kontext Taktart Regelart
@end example
+
@lilypond[quote,verbatim,relative=2]
\time 4/4
\repeat unfold 16 {a16}
\repeat unfold 16 {a16}
@end lilypond
+
@snippets
-@cindex beams, subdividing
+@cindex Balken, Unterteilung
+@funindex subdivideBeams
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{sub-dividing-beams.ly}
-@cindex measure groupings
-@cindex beats, grouping
-@cindex grouping beats
-@cindex measure sub-grouping
+@cindex Taktgruppen
+@cindex Schlaggruppen
+@cindex Taktschläge gruppieren
+@cindex Takt unterteilen
+@cindex Unterteilen von Takten
@funindex autoBeamSettings
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{beam-endings-in-score-context.ly}
-@cindex Balken, letzter in einer Partitur
-@cindex letzter Balken einer Partitur
-@cindex Balken, letzter in einer polyphonen Stimme
+@cindex Balken, letzter in Partitur
+@cindex Balken, letzter in polyphoner Stimme
@knownissues
-Wenn eine Partitur aufhört, während ein automatischer Balken noch
-nicht geschlossen ist und noch Noten erwartet, wird dieser letzte
-Balken überhaupt nicht ausgegeben. Das gilt auch für polyphone
-Stimmen, die mit @code{<< @dots{} \\ @dots{} >>} gesetzt wurden.
-Wenn eine polyphone Stimme endet, während ein Balken noch Noten
-erwartet, wird dieser Balken nicht gesetzt.
+Wenn eine Partitur endet, während ein automatischer Balken noch
+nicht beendet wurde und weiterhin Notenerwartet, wird dieser
+letzte Balken nicht ausgegeben. Das Gleiche gilt auch für
+polyphone Stimmen, die mit der @code{<<
+@dots{} \\ @dots{} >>}-Konstruktion notiert wurden. Wenn eine
+polyphone Stimme endet, während ein Balken noch weitere Noten
+erwartet, wird der Balken nicht gesetzt.
@seealso
Schnipsel:
@rlsr{Rhythms}.
-
@node Manuelle Balken
@unnumberedsubsubsec Manuelle Balken
@translationof Manual beams