@contents
+@allowcodebreaks false
+
@include essay/engraving.itely
@include essay/literature.itely
@chapter Notensatz
@translationof Music engraving
-Dieser Abschnitt erklärt die Ziele und die Architektur von LilyPond.
+Dieser Aufsatz beschreibt, wie LilyPond entstand und wie es
+benutzt werden kann, um schönen Notensatz zu erstellen.
@menu
* Die Geschichte von LilyPond::
* Details des Notensetzens::
* Automatisierter Notensatz::
-* Welche Symbole?::
-* Die Darstellung der Musik::
-* Beispielanwendung::
-* Anhang::
+* Ein Programm bauen::
+* LilyPond die Arbeit überlassen::
+* Notensatzbeispiele (BWV 861)::
@end menu
@node Die Geschichte von LilyPond
-@unnumberedsec Die Geschichte von LilyPond
+@section Die Geschichte von LilyPond
@translationof The LilyPond story
-Bevor LilyPond eine Gemeinschaft von Benutzern rund um die Welt
-besaß, bevor es benutzt worden war um Noten für Kurse in der Uni
-zu erstellen oder die Partituren von Opern, die ihre erste Premiere
-erleben, bevor es einen Aufsatz über den Notensatz, Computercode
-oder wenigstens ein organisiertes Entwicklerteam gab, begann LilyPond
+Lange bevor LilyPond benutzt werden konnte, um wunderschöne
+Aufführungspartituren zu setzen, bevor es in der Lage war, Noten
+für einen Unversitätskurs oder wenigstens eine einfache Melodie zu
+setzen, bevor es eine Gemeinschaft von Benutzern rund um die Welt oder
+wenigstens einen Aufsatz über den Notensatz gab, begann LilyPond
mit einer Frage:
@quotation
Beispiel eine moderne, computergesetzte Edition.
@ifnottex
+@quotation
@noindent
Bärenreiter BA 320, @copyright{}1950:
@sourceimage{baer-suite1-fullpage,,,png}
+@end quotation
+@quotation
@noindent
Henle Nr. 666, @copyright{}2000:
@sourceimage{henle-suite1-fullpage,,,png}
+@end quotation
@end ifnottex
Die Noten sind identisch und stammen aus der ersten Solosuite für
LilyPond wurde geschaffen, um die Probleme zu lösen, die wir in
existierenden Programmen gefunden haben und um schöne Noten zu
schaffen, die die besten handgestochenen Partituren imitieren.
-Während unserer Arbeit an dem Programm haben wir sehr viel gelernt
-über die Art und Weise wie ein gut gestochener Notensatz erstellt
-wird. In diesem Aufsatz beschreiben wir einige der Aspekte, die
-wir versucht haben, mit LilyPond nachzuahmen.
@iftex
@page
@noindent
Bärenreiter BA 320, @copyright{}1950:
-@sourceimage{baer-suite1-fullpage,16cm,,}
+@sourceimage{baer-suite1-fullpage-hires,16cm,,}
@page
@noindent
Henle no. 666, @copyright{}2000:
@sp 3
-@sourceimage{henle-suite1-fullpage,16cm,,}
+@sourceimage{henle-suite1-fullpage-hires,16cm,,}
@page
@end iftex
@node Details des Notensetzens
-@unnumberedsec Details des Notensetzens
+@section Details des Notensetzens
@translationof Engraving details
@cindex Notensatz
europäischen Notenverlagen herausgegeben wurden (insbesondere
Bärenreiter, Duhem, Durand, Hofmeister, Peters und Scott). Sie
werden teilweise als der Höhepunkt des traditionellen Notenstichs
-angesehen.
+angesehen. Beim Studium dieser Editionen haben wir eine Menge
+darüber gelernt, was einen gut gesetzten Musikdruck ausmacht und
+welche Aspekte des handgestochenen Notensatzes wir in LilyPond
+imitieren wollten.
@c Heutzutage wird fast alle gedruckte Musik von Computern erstellt. Das
@c hat einige deutliche Vorteile: Drucke sind billiger als die gravierten
für das Auge bei unten/oben-Folgen Notenklumpen. Ein Notenstechermeister
hätte die Notenaufteilung angepasst, sodass die angenehm zu lesen ist.
-Ein weiteres Beispiel optischen Ausgleichs ist das visualle Zusammenspiel
-von Hälsen und Taktstrichen. Wenn eine Noten mit Hals nach oben
-vor einem Taktstrich kommt, braucht man etwas mehr Platz, damit
-sich die Aufteilung nicht zu dicht anfühlt:
-
-@lilypond
-\paper {
- ragged-right = ##t
-}
+Die Algorithmen zur Platzaufteilung von LilyPond berechnen sogar die
+Taktstriche mit ein, weshalb die letzte Noten mit Hals nach oben im
+richtig platzierten Beispiel etwas mehr Platz vor dem Taktstrich
+erhält, damit sie nicht gedrängt wirkt. Ein Hals nach unten würde diesen Ausgleich nicht benötigen.
-\score {
- {
- c''8 c'' c'' c'' c'' c'' c'' c'' \break
- a' a' a' a' a' a' a' a'
- }
- \layout {
- \context {
- \Staff
- \remove "Time_signature_engraver"
- \override NoteSpacing #'stem-spacing-correction = #0.7
- }
- \context {
- \Score
- \remove "Bar_number_engraver"
- }
- }
-}
-@end lilypond
@node Hilfslinien
@unnumberedsubsec Hilfslinien
@node Automatisierter Notensatz
-@unnumberedsubsec Automatisierter Notensatz
+@section Automatisierter Notensatz
@translationof Automated engraving
@cindex Notensatz, automatisch
Dieser Abschnitt beschreibt, was benötigt wird um ein Programm zu
schreiben, welches das Layout von gestochenen Noten nachahmen kann:
-eine Methode, dem Computer gute Layouts zu erklären, detailliertes
-Vergleichen mit echten Notendrucken und genug Flexibilität, um mit
-den vielen Herausforderungen fertig zu werden, die der Notensatz
-mit sich bringt.
+eine Methode, dem Computer gute Layouts zu erklären und detailliertes
+Vergleichen mit echten Notendrucken.
@menu
-* Schönheitswettbewerb::
-* Verbessern durch Benchmarking::
-* Alles richtig machen::
-* Flexible Architektur::
+* Schönheitswettbewerb::
+* Verbessern durch Benchmarking::
+* Alles richtig machen::
@end menu
@node Schönheitswettbewerb
Zum Beispiel hier drei mögliche Konfiguration eines Legatobogens,
und LilyPond hat jeder Konfiguration @qq{Hässlichkeitspunkte}
-verliehen. Das erste Beispiel erhält 15.39 Punkte, weil eine der
-Noten angeschnitten wird:
+verliehen. Das erste Beispiel erhält 15.39 Punkte, weil einer der
+Notenköpfe angeschnitten wird:
@lilypond
\relative c {
Finales hauptsächlicher Gegenspieler, offensichtlich vor allem in
Europa verbreitet.
-In unserem Vergleich haben wir uns für die Fuge in G-Moll aus
+Für unseren Vergleich haben wir uns für die Fuge in G-Moll aus
dem Wohltemperierten Clavier 1, BWV 861 von J. S. Bach entschieden,
mit dem Hauptthema:
Stückes (28--34) in Finale und LilyPond. Das ist der Punkt, an
der das Thema als dreistimmige Engführung in den Schlussabschnitt
überleitet. In der Finale-Version haben wir der Versuchung
-widerstanden, jedwede Anpassungen abweichend vom Standard vorzunehemn,
+widerstanden, jedwede Anpassungen abweichend vom Standard vorzunehmen,
weil wir zeigen wollen, welche Dinge von den beiden Programmen
-ohne Hilfeleistung richtig gemacht werden.
+ohne Hilfeleistung richtig gemacht werden. Die einzigen hauptsächlichen
+Änderungen, die wir vorgenommen haben, war die Anpassung der
+Seitengröße an die Seitengröße dieses Aufsatzes und die Begrenzung
+der Noten auf zwei Systeme, um den Vergleich einfacher zu machen.
+In der Standardeinstellung Finale hätte zwei Zeilen mit je drei
+Takten und schließlich eine letzte Zeile gesetzt, die nur einen einzigen
+Takt enthält.
Viele der Unterschiede zwischen den beiden Sätzen finden sich
in den Takten 28--29, hier zuerst in Finales Version, dann in der
Ein Balken, der zum Zentrum des Systems zeigt, sollte etwa die
Länge einer Oktave haben, aber Notensetzer verkürzen die Länge,
wenn der Balken in polyphonen Situationen aus dem System
-herauszeigt. Die Bebalkung von Finale kann einfach mit dem
+herauszeigt. Die Bebalkung von Finale kann einfach mit ihrem
Patterson Beams-Plugin verbessert werden, aber wir haben diesen
Schritt für dieses Beispiel ausgelassen.
@item Finale passt die Position von ineinander greifenden Notenköpfen
@end itemize
Dieses Beispiel soll nicht suggerieren, dass man mit Finale nicht
-schöne Ausgabe erstellen könnte. Das Programm ist dazu fähig,
+Notensatz in Publikationsqualität erstellen könnte. Das Programm ist dazu fähig,
wenn ein erfahrener Benutzer genug Zeit und Fähigkeit mitbringt.
Einer der fundamentalen Unterschiede zwischen LilyPond und kommerziellen
Notensatzprogrammen ist, dass LilyPond versucht, den Aufwand an
zu bieten, in dem die Anpassungen vorgenommen werden können.
Z. 859
-Einen besonders hervorstechenden Mangel in dem Finale-Beispiel
+Einen besonders hervorstechenden Mangel von Finale
ist ein fehlendes b-Vorzeichen in Takt 33:
@quotation
Aufsatzes als Notensatz von Finale und LilyPond sowie in vier
publizierten Editionen finden. Nähere Betrachtung zeigt, dass
es einige akzeptable Variationen zwischen den handgestochenen
-Beispielen gibt. Auch die LilyPond-Ausgabe hat noch ihre
-Fehler: sie ist beispielsweise etwas zu aggressiv bei der Verkürzung
-einiger Hälse -- hier ist also noch Raum für weitere Entwicklung
-und Feineinstellung.
+Beispielen gibt, dass LilyPond aber ziemlich guten Notensatz
+im Rahmen dieser Variationen produziert. Auch die LilyPond-Ausgabe
+hat noch ihre Fehler: sie ist beispielsweise etwas zu aggressiv
+bei der Verkürzung einiger Hälse -- hier ist also noch Raum für
+weitere Entwicklung und Feineinstellung.
Natürlich hängt Typographie vom menschlichen Urteil der Erscheinung
ab, sodass Menschen nicht vollständig ersetzt werden können. Viel
geplant.
-@node Flexible Architektur
-@unnumberedsubsec Flexible Architektur
-@translationof Flexible architecture
+@node Ein Programm bauen
+@section Ein Programm bauen
+@translationof Building software
-Als wir anfingen, haben wir LilyPond vollständig in der Programmiersprache C++
-geschrieben. Das hieß, dass der Funktionsumfang des Programms vollständig durch
-die Programmierer festgelegt war. Das stellte sich aus einer Reihe von Gründen
-als unzureichend heraus:
+Dieser Abschnitt beschreibt einige der Entscheidungen,
+die wir während des Programierens für das Design von LilyPond
+getroffen haben.
-@itemize @bullet
-@item Wenn LilyPond Fehler macht, muss der Benutzer die
-Einstellungen ändern können. Er muss also Zugang zur
-Formatierungsmaschinerie haben. Deshalb können die Regeln und
-Einstellungen nicht beim Kompilieren des Programms festgelegt
-werden, sondern sie müssen zugänglich sein, während das Programm
-aktiv ist.
+@menu
+* Die Darstellung der Musik::
+* Welche Symbole?::
+* Flexible Architektur::
+@end menu
-@item Notensatz ist eine Frage des Augenmaßes, und damit auch vom
-Geschmack abhängig. Benutzer können mit unseren Entscheidungen
-unzufrieden sein. Darum müssen also auch die Definitionen des
-typographischen Stils dem Benutzer zugänglich sein.
+@node Die Darstellung der Musik
+@unnumberedsubsec Die Darstellung der Musik
+@translationof Music representation
-@item Schließlich verfeinern wir unseren Formatierungsalgorithmus
-immer weiter, also müssen die Regeln auch flexibel sein. Die
-Sprache C++ zwingt zu einer bestimmten Gruppierungsmethode,
-die nicht den Regeln für den Notensatz entspricht.
-@end itemize
+@cindex Syntax
+@cindex rekursive Strukturen
-@cindex Scheme-Programmiersprache
+Idealerweise ist das Eingabeformat für ein komplexes Satzsystem die
+abstrakte Beschreibung des Inhaltes. In diesem Fall wäre das die
+Musik selber. Das stellt uns aber vor ein ziemlich großes Problem,
+denn wie können wir definieren, was Musik wirklich ist? Anstatt darauf
+eine Antwort zu suchen, haben wir die Frage einfach umgedreht. Wir
+schreiben ein Programm, das den Notensatz beherrscht und machen das
+Format so einfach wie möglich. Wenn es nicht mehr vereinfacht
+werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser
+Format dient als die formale Definition eines Musiktextes.
-Diese Probleme wurden angegangen, indem ein Übersetzer für
-die Programmiersprache Scheme integriert wurde und Teile
-von LilyPond in Scheme neu geschrieben wurden. Die derzeitige
-Formatierungsarchitektur ist um die Notation von graphischen
-Objekten herum aufgebaut, die von Scheme-Variablen und -Funktionen
-beschrieben werden. Diese Architektur umfasst Formatierungsregeln,
-typographische Stile und individuelle Formatierungsentscheidungen.
-Der Benutzer hat direkten Zugang zu den meisten dieser Einstellungen.
+Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond,
+darum soll sie einfach zu schreiben sein; z. B. bedeutet
-Scheme-Variablen steuern Layout-Entscheidungen. Zum Beispiel haben
-viele graphische Objekte eine Richtungsvariable, die zwischen
-oben und unten (oder rechts und links) wählen kann. Hier etwa
-sind zwei Akkorde mit Akzenten und Arpeggien.
-Beim ersten Akkord sind alle Objekte nach unten (oder links)
-ausgerichtet, beim zweiten nach oben (rechts).
+@example
+@{
+ c'4 d'8
+@}
+@end example
-@lilypond[quote,ragged-right]
-\new Score \with {
- \override SpacingSpanner #'spacing-increment = #3
- \override TimeSignature #'transparent = ##t
-} \relative c' {
- \stemDown <e g b>4_>-\arpeggio
- \override Arpeggio #'direction = #RIGHT
- \stemUp <e g b>4^>-\arpeggio
+@noindent
+dass eine Viertel c' und eine Achtel d' erstellt werden sollen,
+wie in diesem Beispiel:
+
+@lilypond[quote]
+{
+ c'4 d'8
}
@end lilypond
-@cindex Formatierung einer Partitur
-@cindex Partitur, Formatierung
-@cindex Formatierungsregeln
+In kleinem Rahmen ist diese Syntax sehr einfach zu benutzen. In
+größeren Zusammenhängen aber brauchen wir Struktur. Wie sonst kann
+man große Opern oder Symphonien notieren? Diese Struktur wird
+gewährleistet durch sog. @emph{music expressions} (Musikausdrücke):
+indem kleine Teile zu größeren kombiniert werden, kann komplexere
+Musik dargestellt werden. So etwa hier:
+
+@lilypond[quote,verbatim,fragment,relative=1]
+f4
+@end lilypond
@noindent
-Der Prozess des Notensetzens besteht für das Programm darin,
-die Variablen der graphischen Objekte zu lesen und zu
-schreiben. Einige Variablen haben festgelegte Werte. So
-ist etwa die Dicke von vielen Linien – ein Charakteristikum
-des typographischen Stils – von vornherein festgelegt.
-Wenn sie geändert werden, ergibt sich ein anderer typographischer Eindruck.
+Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in @code{<<} und @code{>>} einschließt.
-@lilypond[quote,ragged-right]
-fragment = {
- \clef bass f8 as8
- c'4-~ c'16 as g f e16 g bes c' des'4
-}
+@example
+<<c4 d4 e4>>
+@end example
+
+@lilypond[quote,fragment,relative=1]
+\new Voice { <<c4 d4 e>> }
+@end lilypond
+
+@noindent
+Um aufeinanderfolgende Noten darzustellen, werden sie in geschweifte Klammern gefasst:
+
+@code{@{@tie{}@dots{}@tie{}@}}
+
+@example
+@{ f4 <<c4 d4 e4>> @}
+@end example
+
+@lilypond[quote,relative=1,fragment]
+{ f4 <<c d e4>> }
+@end lilypond
+
+@noindent
+Dieses Gebilde ist in sich wieder ein Ausdruck, und kann
+daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben), wobei @code{<<}, @code{\\}, and @code{>>} eingesetzt wird:
+
+@example
+<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>
+@end example
+
+@lilypond[quote,fragment,relative=2]
+\new Voice { << g2 \\ { f4 <<c d e>> } >> }
+@end lilypond
+
+Solche geschachtelten Strukturen können sehr gut in einer
+kontextunabhängigen Grammatik beschrieben werden. Der Programmcode
+für den Satz ist auch mit solch einer Grammatik erstellt. Die Syntax
+von LilyPond ist also klar und ohne Zweideutigkeiten definiert.
+
+Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer
+wahrgenommen. Teilweise sind sie eine Frage des Geschmackes und werden viel
+diskutiert. Auch wenn Geschmacksfragen ihre Berechtigung
+haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond
+spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische
+Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel
+schwieriger. Das kann auch die Zeilenzahl der Programmzeilen zeigen:
+Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:
+
+Während wir die Strukturen von LilyPond entwickelten, machten wir einige Entscheidungen, die sich von anderen Programmen unterscheiden.
+Nehmen wir etwa die hierarchische Natur der Musiknotation:
+
+@lilypond[quote,fragment]
<<
- \new Staff \fragment
- \new Staff \with {
- \override Beam #'beam-thickness = #0.3
- \override Stem #'thickness = #0.5
- \override Bar #'thickness = #3.6
- \override Tie #'thickness = #2.2
- \override StaffSymbol #'thickness = #3.0
- \override Tie #'extra-offset = #'(0 . 0.3)
- }
- \fragment
+\new Staff \relative c'' {
+ \key g \major
+ \time 3/4
+ d4 g,8 a b c d4 g, g
+}
+\new Staff \relative c' {
+ \clef "bass"
+ \key g \major
+ <g b d>2 a4 b2.
+}
>>
@end lilypond
-Formatierungsregeln sind auch vorbelegte Variablen. Zu jedem Objekt gehören
-Variablen, die Prozeduren enthalten. Diese Prozeduren machen die eigentliche
-Satzarbeit aus, und wenn man sie durch andere ersetzt, kann die Darstellung
-von Objekten verändert werden. Im nächsten Beispiel wird die Regel, nach der
-die Notenköpfe gezeichnet werden, während des Ausschnitts verändert.
+In diesem Fall werden Tonhöhen in Akkorde gruppiert, die zu Takten
+gehören, welche wiederum zu Notensystemen gehören. Das erinnert an
+die saubere Struktur von geschachtelten Kästen:
-@lilypond[quote,ragged-right]
-#(set-global-staff-size 30)
+@quotation
+@iftex
+@sourceimage{pdf/nestedboxes,,4cm,}
+@end iftex
+@ifnottex
+@sourceimage{nestedboxes,,,png}
+@end ifnottex
+@end quotation
-#(define (mc-squared grob orig current)
- (let* ((interfaces (ly:grob-interfaces grob))
- (pos (ly:grob-property grob 'staff-position)))
- (if (memq 'note-head-interface interfaces)
- (begin
- (ly:grob-set-property! grob 'stencil
- (grob-interpret-markup grob
- (make-lower-markup 0.5
- (case pos
- ((-5) "m")
- ((-3) "c ")
- ((-2) (make-smaller-markup (make-bold-markup "2")))
- (else "bla")))))))))
+Leider ist die Struktur nur sauber, weil sie auf einige sehr beschränkte
+Annahmen basiert. Das wird offensichtlich, wenn man ein komplizierteres
+Beispiel heranzieht:
-\new Voice \relative c' {
- \stemUp
- \set autoBeaming = ##f
- \time 2/4
- <d f g>4
- \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
- \once \override NoteHead #'font-size = #-7
- \once \override NoteHead #'font-family = #'sans
- \once \override NoteHead #'font-series = #'bold
- <d f g>4
- \once \override NoteHead #'style = #'cross
- <d f g>4
- \applyOutput #'Voice #mc-squared
- <d f g>4
- <<
- { d8[ es-( fis^^ g] fis2-) }
- \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
- >>
+@lilypond[quote]
+\layout {
+ \context {
+ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ }
+ \context {
+ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ }
}
+
+\new PianoStaff <<
+ \new Staff = "RH" <<
+ \new Voice = "I" \relative c''' {
+ \time 3/4
+ \voiceOne
+ \times 6/7 {g8 g g g g g g}
+ \oneVoice
+ r4 <b,, fis' g bes> r4\fermata
+ }
+ \new Voice = "II" \relative c' {
+ \voiceTwo
+ c4
+ \times 4/5 {
+ <c ees>8 f g
+ \change Staff = "LH" \oneVoice
+ \stemUp g,( c}
+ r4
+ \override Stem #'cross-staff = ##t
+ \override Stem #'length = #12
+ <fis, b>) r\fermata
+ }
+ >>
+ \new Staff = "LH" <<
+ \new Voice = "III" \relative c' {
+ \time 2/4
+ \clef "bass"
+ g4 \stopStaff s
+ \startStaff s2*2
+ }
+ >>
+>>
@end lilypond
+In diesem Beispiel beginnen Systeme plötzlich und enden plötzlich,
+Stimmen springen zwischen den Systemen herum und die Systeme haben
+unterschiedliche Taktarten. Viele Software-Pakte würden sehr damit
+zu kämpfen haben, dieses Beispiel darzustellen, weil sie nach dem
+Prinzip von geschachtelten Kästen aufgebaut sind. In LilyPond dagegen
+haben wir versucht, die Struktur und das Eingabeformat so flexibel wie
+möglich zu gestalten.
@node Welche Symbole?
Der Score-Kontext ist auf der höchsten Ebene der Kontexte.
-@seealso
-Programmreferenz: @rinternals{Contexts}.
-
-
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
}
@end lilypond
+@seealso
+Referenz der Interna: @rinternals{Contexts}.
-@node Die Darstellung der Musik
-@unnumberedsubsec Die Darstellung der Musik
-@translationof Music representation
-@cindex Syntax
-@cindex rekursive Strukturen
+@node Flexible Architektur
+@unnumberedsubsec Flexible Architektur
+@translationof Flexible architecture
-Idealerweise ist das Eingabeformat für ein komplexes Satzsystem die
-abstrakte Beschreibung des Inhaltes. In diesem Fall wäre das die
-Musik selber. Das stellt uns aber vor ein ziemlich großes Problem,
-denn wie können wir definieren, was Musik wirklich ist? Anstatt darauf
-eine Antwort zu suchen, haben wir die Frage einfach umgedreht. Wir
-schreiben ein Programm, das den Notensatz beherrscht und machen das
-Format so einfach wie möglich. Wenn es nicht mehr vereinfacht
-werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser
-Format dient als die formale Definition eines Musiktextes.
+Als wir anfingen, haben wir LilyPond vollständig in der Programmiersprache C++
+geschrieben. Das hieß, dass der Funktionsumfang des Programms vollständig durch
+die Programmierer festgelegt war. Das stellte sich aus einer Reihe von Gründen
+als unzureichend heraus:
-Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond,
-darum soll sie einfach zu schreiben sein; z. B. bedeutet
+@itemize @bullet
+@item Wenn LilyPond Fehler macht, muss der Benutzer die
+Einstellungen ändern können. Er muss also Zugang zur
+Formatierungsmaschinerie haben. Deshalb können die Regeln und
+Einstellungen nicht beim Kompilieren des Programms festgelegt
+werden, sondern sie müssen zugänglich sein, während das Programm
+aktiv ist.
-@example
-@{
- c'4 d'8
-@}
-@end example
+@item Notensatz ist eine Frage des Augenmaßes, und damit auch vom
+Geschmack abhängig. Benutzer können mit unseren Entscheidungen
+unzufrieden sein. Darum müssen also auch die Definitionen des
+typographischen Stils dem Benutzer zugänglich sein.
-@noindent
-dass eine Viertel c' und eine Achtel d' erstellt werden sollen,
-wie in diesem Beispiel:
+@item Schließlich verfeinern wir unseren Formatierungsalgorithmus
+immer weiter, also müssen die Regeln auch flexibel sein. Die
+Sprache C++ zwingt zu einer bestimmten Gruppierungsmethode,
+die nicht den Regeln für den Notensatz entspricht.
+@end itemize
-@lilypond[quote]
-{
- c'4 d'8
+@cindex Scheme-Programmiersprache
+
+Diese Probleme wurden angegangen, indem ein Übersetzer für
+die Programmiersprache Scheme integriert wurde und Teile
+von LilyPond in Scheme neu geschrieben wurden. Die derzeitige
+Formatierungsarchitektur ist um die Notation von graphischen
+Objekten herum aufgebaut, die von Scheme-Variablen und -Funktionen
+beschrieben werden. Diese Architektur umfasst Formatierungsregeln,
+typographische Stile und individuelle Formatierungsentscheidungen.
+Der Benutzer hat direkten Zugang zu den meisten dieser Einstellungen.
+
+Scheme-Variablen steuern Layout-Entscheidungen. Zum Beispiel haben
+viele graphische Objekte eine Richtungsvariable, die zwischen
+oben und unten (oder rechts und links) wählen kann. Hier etwa
+sind zwei Akkorde mit Akzenten und Arpeggien.
+Beim ersten Akkord sind alle Objekte nach unten (oder links)
+ausgerichtet, beim zweiten nach oben (rechts).
+
+@lilypond[quote,ragged-right]
+\new Score \with {
+ \override SpacingSpanner #'spacing-increment = #3
+ \override TimeSignature #'transparent = ##t
+} \relative c' {
+ \stemDown <e g b>4_>-\arpeggio
+ \override Arpeggio #'direction = #RIGHT
+ \stemUp <e g b>4^>-\arpeggio
}
@end lilypond
-In kleinem Rahmen ist diese Syntax sehr einfach zu benutzen. In
-größeren Zusammenhängen aber brauchen wir Struktur. Wie sonst kann
-man große Opern oder Symphonien notieren? Diese Struktur wird
-gewährleistet durch sog. @emph{music expressions} (Musikausdrücke):
-indem kleine Teile zu größeren kombiniert werden, kann komplexere
-Musik dargestellt werden. So etwa hier:
+@cindex Formatierung einer Partitur
+@cindex Partitur, Formatierung
+@cindex Formatierungsregeln
-@lilypond[quote,verbatim,fragment,relative=1]
-f4
+@noindent
+Der Prozess des Notensetzens besteht für das Programm darin,
+die Variablen der graphischen Objekte zu lesen und zu
+schreiben. Einige Variablen haben festgelegte Werte. So
+ist etwa die Dicke von vielen Linien – ein Charakteristikum
+des typographischen Stils – von vornherein festgelegt.
+Wenn sie geändert werden, ergibt sich ein anderer typographischer Eindruck.
+
+@lilypond[quote,ragged-right]
+fragment = {
+ \clef bass f8 as8
+ c'4-~ c'16 as g f e16 g bes c' des'4
+}
+<<
+ \new Staff \fragment
+ \new Staff \with {
+ \override Beam #'beam-thickness = #0.3
+ \override Stem #'thickness = #0.5
+ \override Bar #'thickness = #3.6
+ \override Tie #'thickness = #2.2
+ \override StaffSymbol #'thickness = #3.0
+ \override Tie #'extra-offset = #'(0 . 0.3)
+ }
+ \fragment
+>>
@end lilypond
-@noindent
-Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in @code{<<} und @code{>>} einschließt.
+Formatierungsregeln sind auch vorbelegte Variablen. Zu jedem Objekt gehören
+Variablen, die Prozeduren enthalten. Diese Prozeduren machen die eigentliche
+Satzarbeit aus, und wenn man sie durch andere ersetzt, kann die Darstellung
+von Objekten verändert werden. Im nächsten Beispiel wird die Regel, nach der
+die Notenköpfe gezeichnet werden, während des Ausschnitts verändert.
-@example
-<<c4 d4 e4>>
-@end example
+@lilypond[quote,ragged-right]
+#(set-global-staff-size 30)
-@lilypond[quote,fragment,relative=1]
-\new Voice { <<c4 d4 e>> }
+#(define (mc-squared grob orig current)
+ (let* ((interfaces (ly:grob-interfaces grob))
+ (pos (ly:grob-property grob 'staff-position)))
+ (if (memq 'note-head-interface interfaces)
+ (begin
+ (ly:grob-set-property! grob 'stencil
+ (grob-interpret-markup grob
+ (make-lower-markup 0.5
+ (case pos
+ ((-5) "m")
+ ((-3) "c ")
+ ((-2) (make-smaller-markup (make-bold-markup "2")))
+ (else "bla")))))))))
+
+\new Voice \relative c' {
+ \stemUp
+ \set autoBeaming = ##f
+ \time 2/4
+ <d f g>4
+ \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
+ \once \override NoteHead #'font-size = #-7
+ \once \override NoteHead #'font-family = #'sans
+ \once \override NoteHead #'font-series = #'bold
+ <d f g>4
+ \once \override NoteHead #'style = #'cross
+ <d f g>4
+ \applyOutput #'Voice #mc-squared
+ <d f g>4
+ <<
+ { d8[ es-( fis^^ g] fis2-) }
+ \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+ >>
+}
@end lilypond
-@noindent
-Um aufeinanderfolgende Noten darzustellen, werden sie in geschweifte Klammern gefasst:
-@code{@{@tie{}@dots{}@tie{}@}}
+@node LilyPond die Arbeit überlassen
+@section LilyPond die Arbeit überlassen
+@translationof Putting LilyPond to work
+
+
+
+
+
+
-@example
-@{ f4 <<c4 d4 e4>> @}
-@end example
-@lilypond[quote,relative=1,fragment]
-{ f4 <<c d e4>> }
-@end lilypond
-@noindent
-Dieses Gebilde ist in sich wieder ein Ausdruck, und kann
-daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben), wobei @code{<<}, @code{\\}, and @code{>>} eingesetzt wird:
-@example
-<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>
-@end example
-@lilypond[quote,fragment,relative=2]
-\new Voice { << g2 \\ { f4 <<c d e>> } >> }
-@end lilypond
-Solche geschachtelten Strukturen können sehr gut in einer
-kontextunabhängigen Grammatik beschrieben werden. Der Programmcode
-für den Satz ist auch mit solch einer Grammatik erstellt. Die Syntax
-von LilyPond ist also klar und ohne Zweideutigkeiten definiert.
-Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer
-wahrgenommen. Teilweise sind sie eine Frage des Geschmackes und werden viel
-diskutiert. Auch wenn Geschmacksfragen ihre Berechtigung
-haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond
-spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische
-Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel
-schwieriger. Das kann auch die Zeilenzahl der Programmzeilen zeigen:
-Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:
@node Beispielanwendung
Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das
nächste Beispiel zeigt einige etwas exotischere Konstruktionen:
-@lilypond[quote]
+@lilypond[quote,line-width=15.9\cm]
\header {
title = "Screech and boink"
subtitle = "Random complex notation"
Dieser Aufsatz zeigt eine weitere Möglichkeit: Die Noten werden als
reiner Text eingegeben und können darum sehr einfach integriert werden
in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem
-Fall, Texinfo. Durch ein spezielles Programm werden die Eingabefragmente durch
-Notenbilder in der resultierenden PDF- oder HTML-Datei ersetzt. Dadurch ist
-es sehr einfach, Noten und Text zu kombinieren.
+Fall, Texinfo. Mithilfe des Programmes @command{lilypond-book},
+das in LilyPond inbegriffen ist, werden die Fragmente mit
+Notenbildern ersetzt und in die produzierte PDF- oder HTML-Datei
+eingefügt. Ein weiteres Beispiel ist die von LilyPond unabhängige
+Erweiterung OOoLilyPond für OpenOffice.org, mit der es sehr einfach
+ist, Musikbeispiele in Dokumente einzufügen.
+
+Zu mehr Beispielen, wie LilyPond sich in Aktion verhält, für vollständige
+Dokumentation und das Programm LilyPond besuchen Sie unsere
+Webseite: www.lilypond.org.
@page
-@node Anhang
-@unnumberedsec Anhang
-@translationof Appendix
+@node Notensatzbeispiele (BWV 861)
+@section Notensatzbeispiele (BWV 861)
+@translationof Engraved examples (BWV 861)
-Dieser Anhang enthält vier Referenz-Notenstiche und zwei
+Dieser Abschnitt enthält vier Referenz-Notenstiche und zwei
computergesetzte Versionen der Fuge G-Moll aus dem Wohltemperierten
Clavier I (BWV 681) von J. S. Bach (die letzten sieben Takte).
@chapter Literatur
@translationof Literature list
+Hier eine Liste der Literatur, die in LilyPond benutzt wurde:
+
+@menu
+* Kurze Literaturliste::
+* Lange Literaturliste::
+@end menu
+
+@node Kurze Literaturliste
+@section Kurze Literaturliste
+@translationof Short literature list
+
Wenn Sie mehr über Notation und den Notenstich erfahren wollen, sind
hier einige interessante Titel gesammelt.
@end table
-Das Quellenarchiv enthält eine ausführlichere Bib@TeX{}-Bibliographie mit
-über 100 Titeln in
-@ifhtml
-@ifset bigpage
-@uref{../bibliography/index.html, der Bibliographie}.
-@end ifset
-@ifclear bigpage
-@uref{../../bibliography/index.html, der Bibliographie}.
-@end ifclear
-@end ifhtml
-@ifnothtml
-@file{Documentation/@/bibliography/}.
-@end ifnothtml
+
+@node Lange Literaturliste
+@section Lange Literaturliste
+@translationof Long literatur list
+
+@subheading Colorado
+
+@include colorado.itexi
+
+@subheading Computernotation
+
+@include computer-notation.itexi
+
+@subheading Notensatz
+
+@include engravingbib.itexi
+
@c `Extending' was born 2003-04-23 with git commit c08f6e8...
@macro copyrightDeclare
-Copyright @copyright{} 2003--2009 bei den Autoren.
+Copyright @copyright{} 2003--2010 bei den Autoren.
@end macro
@set FDL
@contents
+@allowcodebreaks false
+
@include extending/scheme-tutorial.itely
@include extending/programming-interface.itely
--- /dev/null
+depth = ../../..
+
+STEPMAKE_TEMPLATES=documentation
+
+EXTRA_DIST_FILES= README
+EXTRA_DIST_FILES+=$(call src-wildcard,*.ly)
+EXTRA_DIST_FILES+=$(call src-wildcard,*.ily)
+EXTRA_DIST_FILES+=$(call src-wildcard,*.itexi)
+EXTRA_DIST_FILES+=$(call src-wildcard,*.itely)
+
+include $(depth)/make/stepmake.make
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of community.itexi and ../topdocs/AUTHORS.itexi
+
+@ignore
+ Translation of GIT committish: 0bbabe9eef32b46216a722cc0d49df759227b7be
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@ignore
+
+ This file lists authors of LilyPond, and what they wrote. Each
+ list is sorted alphabetically by surname. This file lists people
+ that have contributed more than a few hours of work.
+
+ Developers are people who are (or have been) listed under the
+ "Development Team" in the THANKS, and can choose their own
+ titles. Contributors are everybody else, and simply list their
+ contributions. All lists are sorted alphabetically.
+
+ Anybody who has finished doing a "main devel team" task should
+ list it under developersPrevious, even if they're still doing
+ other "main devel team" stuff. See "Graham Percival" for an
+ example.
+
+ Contributors are also split between Current and Previous, and
+ each category contains:
+ core... (programming)
+ font... (duh)
+ doc... (documentation and examples)
+ bug... (bug squad members)
+ support... (building, distributions, editors,
+ lilypond-book, LSR, but *not* answering emails)
+ translations... (duh)
+ We might add a "general" or "other" if there's something else.
+
+@end ignore
+
+
+@macro developersCurrent
+
+@itemize
+
+@item Mats Bengtsson:
+@email{mats.bengtsson@@ee.kth.se},
+@uref{http://www.s3.kth.se/~mabe/},
+Support guru
+
+@item Trevor Daniels:
+Assistant documentation editor
+
+@item Reinhold Kainhofer:
+@email{reinhold@@kainhofer.com},
+@uref{http://reinhold.kainhofer.com},
+Music2xml wrangler, bug squasher
+
+@item Jonathan Kulp:
+Assistant documentation editor
+
+@item Werner Lemberg,
+@email{wl@@gnu.org},
+Fonts, bug squasher
+
+@item John Mandereau:
+@email{john.mandereau@@free.fr},
+Translation meister
+
+@item Patrick McCarty:
+SVG guru, bug squasher, text handling
+
+@item Joe Neeman:
+Core developer
+
+@item Han-Wen Nienhuys:
+@email{hanwen@@xs4all.nl},
+@uref{http://www.xs4all.nl/~hanwen/},
+Main author
+
+@item Jan Nieuwenhuizen:
+@email{janneke@@gnu.org},
+@uref{http://www.xs4all.nl/~jantien/},
+Main author
+
+@item Graham Percival:
+@uref{http://percival-music.ca},
+Project manager, Documentation Editor
+
+@item Mark Polesky:
+Assistant documentation editor, Code cleanup
+
+@item Neil Puttock:
+Core developer
+
+@item Nicolas Sceaux:
+Core developer, Schemer extraordinaire
+
+@item Carl Sorensen:
+@email{c_sorensen@@byu.edu},
+Core developer, Frog meister
+
+@item Francisco Vila:
+Translations
+
+@item Valentin Villenave:
+LSR editor and Bug squad member
+
+@end itemize
+@end macro
+
+
+
+@macro developersPrevious
+
+@itemize
+
+@c use colons not commas for @item entries.
+
+@item Pedro Kroeger:
+Build meister
+
+@item Graham Percival:
+@uref{http://percival-music.ca},
+Bug meister, Grand Documentation Project leader
+
+@item Jürgen Reuter:
+@email{reuter_j@@web.de},
+@uref{http://www.juergen-reuter.de},
+Ancient notation
+
+@item Erik Sandberg:
+Bug meister
+
+@end itemize
+@end macro
+
+
+@c ***************** current contributors
+
+@macro coreCurrent
+
+@c use commas not colons
+
+Frédéric Bron,
+Hajo Dezelski,
+Andrew Hawryluk,
+Ian Hulin,
+Michael Käppler,
+Marek Klein,
+Kieren MacMillan,
+Thomas Morgan,
+Boris Shingarov,
+Andrew Wilson
+
+@c no comma for last entry
+
+@end macro
+
+
+
+@macro fontCurrent
+
+@c use commas not colons
+
+Marc Hohl,
+Carsten Steger
+
+@c no comma for last entry
+
+@end macro
+
+
+
+@macro docCurrent
+
+@c use commas not colons
+
+Colin Campbell,
+James Lowe,
+Ralph Palmer,
+Patrick Schmidt
+
+@c no comma for last entry
+
+@end macro
+
+
+@macro bugsquadCurrent
+
+Dmytro O. Redchuk,
+James E. Bailey
+
+@c no comma for last entry
+
+@end macro
+
+
+@macro supportCurrent
+
+@c use commas not colons
+
+Christian Hitz
+
+@c no comma for last entry
+
+@end macro
+
+
+
+@macro translationsCurrent
+
+@c use commas not colons
+
+Dénes Harmath,
+Jean-Charles Malahieude,
+@c @email{lolyfan@@wanadoo.fr},
+Till Paala,
+Yoshiki Sawada
+
+@c no comma for last entry
+
+@end macro
+
+
+@c ***************** previous contributors
+
+@macro corePrevious
+
+@c use commas not colons
+
+Erlend Aasland,
+Maximilian Albert,
+Guido Amoruso,
+Kristof Bastiaensen,
+Pal Benko,
+@c @email{benkop@@freestart.hu},
+Juliusz Chroboczek,
+@c @email{jch@@pps.jussieu.fr},
+Angelo Contardi,
+David Feuer,
+@c @email{david.feuer@@gmail.com},
+Bertalan Fodor,
+Mathieu Giraud,
+Yuval Harel,
+Bernard Hurley,
+@c @email{bernard@@fong-hurley.org.uk},
+Yoshinobu Ishizaki,
+Chris Jackson,
+@c @email{chris@@fluffhouse.org.uk},
+David Jedlinsky,
+Heikki Junes,
+@c @email{heikki.junes@@hut.fi},
+Michael Krause,
+@c @email{m.krause@@tu-harburg.de},
+Jean-Baptiste Lamy,
+@c @email{jiba@@tuxfamily.org},
+Jonatan Liljedahl,
+Peter Lutek,
+Hendrik Maryns,
+Joe Neeman,
+@c @email{joeneeman@@gmail.com},
+Matthias Neeracher,
+Tatsuya Ono,
+Lisa Opus Goldstein,
+Guy Gascoigne-Piggford,
+Stan Sanderson,
+Edward Sanford Sutton,
+Andreas Scherer,
+Johannes Schindelin,
+Kim Shrier,
+Vicente Solsona Della,
+David Svoboda,
+Sebastiano Vigna,
+Arno Waschk,
+Michael Welsh Duggan,
+John Williams,
+Milan Zamazal,
+Rune Zedeler
+
+@c no comma for last entry
+
+@end macro
+
+
+
+@macro fontPrevious
+
+@c use commas not colons
+
+Tom Cato Amundsen,
+@c @email{tca@@gnu.org},
+Chris Jackson,
+@c @email{chris@@fluffhouse.org.uk},
+Arno Waschk,
+@c @email{arno@@arnowaschk.de},
+Rune Zedeler
+
+@c no comma for last entry
+
+@end macro
+
+
+
+@macro docPrevious
+
+@c use commas not colons
+
+Erlend Aasland,
+Trevor Bača,
+Alard de Boer,
+Jay Hamilton,
+Andrew Hawryluk,
+Joseph Harfouch,
+Cameron Horsburgh,
+Geoff Horton,
+Ian Hulin,
+Heikki Junes,
+@c @email{heikki.junes@@hut.fi},
+Kurtis Kroon,
+Dave Luttinen,
+Kieren MacMillan,
+Christian Mondrup,
+@c @email{scancm@@biobase.dk},
+Eyolf Østrem,
+Ralph Palmer,
+François Pinard,
+@c @email{pinard@@iro.umontreal.ca},
+@c @uref{http://pinard.progiciels-bpi.ca/},
+Eduardo Vieira,
+Michael Rasmussen,
+Till Rettig,
+Carl D. Sorensen,
+Anh Hai Trinh,
+Rune Zedeler
+
+@c no comma for last entry
+
+@end macro
+
+
+@macro bugsquadPrevious
+
+@c nobody here yet
+
+@c no comma for last entry
+@end macro
+
+@macro supportPrevious
+
+@c use commas not colons
+
+Anthony Fok,
+@c @email{foka@@debian.org},
+Chris Jackson,
+@c @email{chris@@fluffhouse.org.uk},
+Heikki Junes,
+@c @email{heikki.junes@@hut.fi},
+David Svoboda
+@c @email{svoboda@@cmu.edu}
+
+@c no comma for last entry
+
+@end macro
+
+
+
+@macro translationsPrevious
+
+@c use commas not colons
+
+Frédéric Chiasson,
+Abel Cheung,
+Alard de Boer,
+Simon Dahlbacka,
+Orm Finnendahl,
+David González,
+Nicolas Grandclaude,
+@c @email{ngclaude@@123mail.org},
+Damien Heurtebise,
+Matthieu Jacquot,
+Bjoern Jacke,
+@c @email{bjoern.jacke@@gmx.de},
+Neil Jerram,
+@c @email{nj104@@cus.cam.ac.uk},
+Heikki Junes,
+@c @email{heikki.junes@@hut.fi},
+Nicolas Klutchnikoff,
+Jean-Charles Malahieude,
+@c @email{lolyfan@@wanadoo.fr},
+Adrian Mariano,
+Christian Mondrup,
+Tineke de Munnik,
+@c @email{tdm@@dds.nl},
+Steven Michael Murphy,
+François Pinard,
+Gauvain Pocentek,
+@c @email{gauvainpocentek@@yahoo.fr},
+Till Rettig,
+Ludovic Sardain,
+@c @email{ludovicsardain@@gmail.com},
+Yoshiki Sawada,
+Thomas Scharkowski,
+Clytie Siddall,
+August S. Sigov,
+@c @email{august@@infran.ru},
+Roland Stigge,
+Risto Vääräniemi,
+Andrea Valle,
+Olcay Yıldırım
+
+@c no comma for last entry
+
+@end macro
+
+
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of web/download.itexi and
+@c learning/tutorial.itely
+
+@ignore
+ Translation of GIT committish: 0bbabe9eef32b46216a722cc0d49df759227b7be
+
+ 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 This is about "compiling" a lilypond file
+@c (Learning 1 Tutorial), **not** compiling the
+@c source code.
+
+@macro lilypadOSX
+@warning{Diese Anweisungen gehen davon aus, dass Sie die
+LilyPond-Application benutzen. Wenn Sie eins der Programme benutzen, die in @rweb{Leichteres Editieren} beschrieben sind, schauen
+Sie bitte in der Dokumentation nach, wenn Sie Probleme damit haben,
+eine Datei zu kompilieren.}
+
+
+@subsubheading 1. Schritt: Erstellen Sie eine @file{.ly}-Datei
+
+Wenn Sie das @command{LilyPond.app}-Symbol doppelt klicken, öffnet
+sich eine Beispiel-Datei.
+
+@sourceimage{Learning_Macos_welcome,,,}
+
+Wählen Sie aus den Menüs oben links auf Ihrem Bildschirm
+@w{@code{File > Save}}.
+
+@sourceimage{Learning_Macos_Save_menu,,,}
+
+Wählen Sie einen Namen für die Datei, etwa @file{test.ly}.
+
+@sourceimage{Learning_Macos_Save_file_with_name,,,}
+
+
+@subsubheading 2. Schritt: Kompilieren (mit LilyPad)
+
+Aus den selben Menüs wählen Sie jetzt @w{@code{Compile > Tyepset}}.
+
+@sourceimage{Learning_Macos_Typeset_menu,,,}
+
+Ein neues Fenster öffnet sich, in dem ein Forschrittslog der
+Kompilation der von ihnen gerade gespeicherten Datei gezeigt
+wird.
+
+@sourceimage{Learning_Macos_Compiling_log,,,}
+
+
+@subsubheading 3. Schritt: Ausgabe anschauen
+
+Wenn die Kompilation fertig ist, wird ein PDF mit dem gleichen
+Namen wie das Original erstellt und automatisch mit dem
+Standard-PDF-Programm geöffnet und angezeigt.
+
+@sourceimage{Learning_Macos_pdf_output,,,}
+
+
+@subsubheading Andere Befehle
+
+Um neue LilyPond-Dateien zu erstellen beginnen sie mit
+@w{@code{File > New}}
+
+@sourceimage{Learning_Macos_New_menu,,,}
+
+@noindent
+oder @w{@code{File > Open}} um eine schon existierende Datei zu
+öffnen und zu editieren.
+
+@sourceimage{Learning_Macos_Open_menu,,,}
+
+Sie müssen alle Änderungen an der Datei zuerst speichern, bevor Sie
+wieder @w{@code{Compile > Tyepset}} wählen. Wenn das PDF nicht
+erscheint, schauen Sie im Fortschrittslog nach Fehlern.
+
+Wenn Sie nicht das Standard-PDF-Programm benutzen, das automatisch
+bei Mac OS X dabei ist, und Sie die PDF-Datei noch von einer vorigen
+Kompilation geöffnet haben, können weitere Kompilationen fehlschlagen,
+bis Sie das Original-PDF schließen.
+
+
+
+@end macro
+
+
+@macro lilypadWindows
+@warning{Diese Anweisungen gehen davon aus, dass Sie den installierten
+LilyPad-Editor benutzen. Wenn Sie eins der Programme benutzen, die in @rweb{Alternate input} beschrieben sind, schauen
+Sie bitte in der Dokumentation nach, wenn Sie Probleme damit haben,
+eine Datei zu kompilieren.}
+
+
+@subsubheading 1. Schritt: Erstellen Sie eine @file{.ly}-Datei
+
+Wenn sie auf das LilyPond-Symbol auf dem Desktop doppelklicken,
+öffnet sich ein einfacher Texteditor mit einer Beispieldatei.
+
+@sourceimage{Learning_Win7_Welcome_File_Whole,,,}
+
+Aus dem Menü über der Beispieldatei wählen Sie @w{@code{File > Save as}}.
+Benutzen Sie nicht @w{@code{File > Save}} für die Beispieldatei,
+weil die Datei nicht funktioniert, bis Sie sie mit einem eigenen
+Namen gespeichert haben.
+
+@sourceimage{Learning_Win7_Save_Menu,,,}
+
+Wählen Sie einen Namen für Ihre Datei, etwa @file{test.ly}.
+
+@sourceimage{Learning_Win7_Save_File_With_Name,,,}
+
+
+@subsubheading Schritt 2a: Kompilieren (mit drag-and-drop)
+
+Sie können nach Belieben die Kompilation starten, indem Sie
+entweder:
+
+Die Datei auf das LilyPond-Symbol ziehen.
+
+@sourceimage{Learning_Win7_Open_Dragndrop,,,}
+
+Oder Sie klicken mit der rechten Maustaste auf die Datei und wählen
+Sie aus dem Menü @w{@code{Open with > LilyPond}}.
+
+@sourceimage{Learning_Win7_Open_Context_Menu,,,}
+
+
+@subsubheading Schritt 2b: Kompilieren (mit Doppelklick)
+
+Sie können auch einfach die Datei @file{test.ly} doppelt anklicken.
+
+
+@subsubheading 3. Schritt: Ausgabe anschauen
+
+Während der Kompilation von @file{test.ly} öffnet sich ein
+Kommandofenster sehr schnell und schließt sich wieder. Drei
+zusätzliche Dateien werden in diesem Schritt erstellt.
+
+@sourceimage{Learning_Win7_All_Files_Created,,,}
+
+Das PDF enthält den Notensatz aus der Datei @file{test.ly}.
+
+@sourceimage{Learning_Win7_Pdf_Output,,,}
+
+
+@subsubheading Andere Befehle
+
+Um eine neue Datei zu erstellen, wählen Sie @w{@code{File > New}}
+aus irgendeiner schon erstellten Datei.
+
+@sourceimage{Learning_Win7_New_Menu,,,}
+
+@noindent
+oder @w{@code{File > Open}}, um eine Datei zu öffnen und zu
+bearbeiten, die Sie schon vorher gespeichert hatten.
+
+@sourceimage{Learning_Win7_Open_Menu,,,}
+
+Sie müssen jede neue Änderung erst speichern, bevor Sie die Datei
+kompilieren. Wenn kein PDF erstellt wird, öffnen Sie die Log-Datei
+und schauen Sie nach Fehlern.
+
+@sourceimage{Learning_Win7_Log_File,,,}
+
+Die Log-Datei wird jedes Mal überschrieben, wenn Sie Ihre
+LilyPond-Datei kompilieren.
+
+Die PS-Datei wird intern von LilyPond benutzt um das PDF zu erstellen
+und kann ignoriert werden. Sie wird auch jedes Mal neu überschrieben.
+
+Wenn Sie das PDF in einem PDF-Programm anschauen, müssen Sie es
+zuerst schließen, bevor Sie eine neue Kompilation durchführen
+können, denn es kann einen Fehler bei der Erstellung des neuen
+PDFs geben, wenn das alte noch geöffnet ist.
+
+
+
+
+@end macro
+
+
+@c not lilypad at all, but I ran out of names. :(
+@macro lilypadCommandLine
+@warning{Diese Anweisungen gehen davon aus, dass Sie den installierten
+LilyPad-Editor benutzen. Wenn Sie eins der Programme benutzen, die in @rweb{Alternate input} beschrieben sind, schauen
+Sie bitte in der Dokumentation nach, wenn Sie Probleme damit haben,
+eine Datei zu kompilieren.}
+
+@subsubheading Schritt 1: Erstellen Sie eine @file{.ly}-Datei
+
+
+Erstellen Sie eine Text-Datei mit dem Namen @file{test.ly} und
+geben Sie folgenden Text ein:
+
+@example
+@{
+ c' e' g' e'
+@}
+@end example
+
+@subsubheading Schritt 2: Kompilieren (auf der Kommandozeile)
+
+Um die Datei zu kompilieren, geben sie an der Konsole bzw. Kommandozeile
+
+@example
+lilypond test.ly
+@end example
+
+@noindent
+ein.
+Sie werden ungefähr folgende Meldungen sehen:
+
+
+@example
+lilypond test.ly
+GNU LilyPond @version{}
+»test.ly« wird verarbeitet
+Analysieren...
+Interpretation der Musik...
+Vorverarbeitung der grafischen Elemente...
+Ideale Seitenanzahl wird gefunden...
+Musik wird auf eine Seite angepasst...
+Systeme erstellen...
+Layout nach »test.ps« ausgeben...
+Konvertierung nach »test.pdf«...
+@end example
+
+@subsubheading 3. Schritt: Ausgabe anschauen
+
+Als Ergebnis erhalten Sie ein @file{test.pdf}, das Sie mit den
+Standardprogrammen Ihres Betriebssystemes anschauen können.
+
+
+@end macro
+
+
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@c This file is part of web/community.itexi and
+@c contributor/introduction.itely
+
+@ignore
+ Translation of GIT committish: 0bbabe9eef32b46216a722cc0d49df759227b7be
+
+ 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 Translators: Till Paala
+
+@macro helpusNeed
+@subheading Wir brauchen Sie!
+
+Das Entwicklerteam von LilyPond ist ziemlich klein -- es wäre
+wirklich notwendig, dass mehr Leute sich einbringen. Bitte
+erwägen Sie, Ihren LilyPond-Benutzerkollegen zu helfen indem
+Sie zur Entwicklung beitragen.
+
+Auch kleine Aufgaben können große Auswirkungen haben: wenn man sich
+ihnen annimmt, können sich die erfahrenen Entwickler den schwierigen
+Aufgaben widmen anstatt diese einfachen Probleme zu lösen.
+
+@end macro
+
+
+@macro helpusTasks
+@subheading Einfache Aufgaben
+
+@itemize
+@item
+Unterstützung auf der Mailingliste: beantworten Sie Fragen von
+anderen Benutzern.
+
+@item
+Fehlerberichte: helfen Sie anderen Benutzern, richtige
+@ref{Fehlerberichte} zu erstellen und helfen Sie dem
+Fehlerteam bei der Verwaltung der @rcontribnamed{Issues,Probleme}.
+
+@item
+Dokumentation: kleine Änderungen (immer zuerst auf Englisch)
+können vorgeschlagen werden, wenn man die Richtlinien
+von @rcontribnamed{Documentation suggestions,Vorschläge für die Dokumentation}
+beachtet.
+
+@item
+Das LilyPond-Schnipsel-Depot (LSR): erstellen und reparieren Sie
+Schnipsel. Siehe
+@rcontribnamed{Adding and editing snippets,Hinzufügen und Bearbeiten von Schnipseln.}.
+
+@item
+Diskussionen, Gutachten und Testen: die Entwickler brauchen
+oft Feedback zu neuer Dokumentation, möglichen Änderungen der
+Syntax und um neue Funktionen zu testen. Bitte nehmen Sie an
+diesen Diskussionen teil!
+
+@end itemize
+
+
+@subheading Mittlere Aufgaben
+
+@warning{Diese Aufgaben setzen voraus, dass Sie die Quellen
+von Programm und Dokumentation haben; Sie brauchen aber keine volle
+Entwicklungsumgebung. Siehe
+@rcontribnamed{Starting with git,Mit git beginnen}.}
+
+@itemize
+@item
+Dokumentation: siehe
+@rcontribnamed{Documentation work,Arbeit an der Dokumentation} und
+@rcontribnamed{Building documentation without compiling LilyPond,Kompilieren der Dokumenation ohne LilyPond zu kompilieren}.
+
+@item
+Website: die Website wird aus der Quelle der Dokumentation
+erstellt. Siehe die Information über die Dokumentation und
+zusätzlich @rcontribnamed{Website work,Arbeit an der Webseite}.
+
+@item
+Übersetzungen: siehe
+@rcontribnamed{Translating the documentation,Die Dokumentation übersetzen} und
+@rcontribnamed{Translating the website,Die Webseite übersetzen}.
+
+@end itemize
+
+
+@subheading Komplexe Aufgaben
+
+@warning{Diese Aufgaben erfordern, dass Sie die Quellen haben
+und LilyPond kompilieren können. Siehe
+@rcontribnamed{Starting with git,Mit git beginnen}
+und @rcontribnamed{Compiling LilyPond,LilyPond kompilieren}.}
+
+Wir empfehlen, dass neue Mithelfer, die Windows benutzen, eine
+virtuale Maschine einsezten, um @emph{lilybuntu} zu benutzen. Siehe
+@rcontribnamed{Using a Virtual Machine to Compile LilyPond,Ein virtuelles Betriebssystem (VM) einsetzen um LilyPond zu kompilieren}.
+
+@itemize
+@item
+Fehlerberichte, neue Eigenschaften: die beste Art, hiermit zu
+beginnen ist es, sich den @emph{Frogs}, den Fehlervertilgern,
+anzuschließen. Siehe auch
+@rcontribnamed{Programming work,Programmierungsarbeiten}.
+
+@end itemize
+
+@end macro
+
+
+@macro helpusProjects
+@subheading Projekte
+
+@subsubheading Frogs
+
+Website und Mailing-Liste: @uref{http://frogs.lilynet.net}
+
+Die Frogs sind normale LilyPond-Benutzer, die beschlossen haben,
+an der Software-Entwicklung ihres Lieblingsprogrammes teilzunehmen.
+Sie reparieren Fehler, integrieren neue Funktionen oder dokumentieren
+den Quellcode -- immer gibt es etwas zu tun! Viel besser noch:
+hiermit erhält jeder eine Chance, mehr über LilyPond, Freie
+Software, Programmierung etc. zu lernen @dots{} und Spaß zu haben.
+Wenn Sie hieran interessiert sind, dann heißt es:
+@emph{Schließen Sie sich den @qq{Fröschen} an!}
+
+
+
+@subsubheading Das GLISS-Projekt (Grand LilyPond Input Syntax Standardization)
+
+Webseite: @uref{http://lilypond.org/~graham/gliss}
+
+GLISS soll die Syntax des Eingabecodes (ohne eigene Anpassungen)
+für die kommende LilyPond-Version 3.0 standardisieren. Nachdem
+man auf 3.0 aktualisiert hat, soll die (nicht speziell
+angepasste) Syntax für die absehbare Zukunft unverändert bleiben.
+
+Es wird eine Zeit der ausführlichen Diskussionen geben, damit
+die endgültigen Eingabespezifikationen festgelegt werden können.
+
+@warning{GLISS beginnt kurz nachdem 2.14 veröffentlicht wird.}
+
+
+@subsubheading GOP (Grand Organizing Project)
+
+Webseite: @uref{http://lilypond.org/~graham/gop}
+
+GOP wird unsere große Aktion, mit welcher wir neue Interessenten
+zu eigenen Beiträgen zum Programm werben. Die Entwicklungsarbeit
+(wozu auch @qq{einfache Arbeiten}, für die man keine
+Programmierungserfahrung braucht, gehören) muss unbedingt über mehr
+Helfer verteilt werden. Wir müssen auch Kenntnisse von aktiven
+Entwicklern dokumentieren, damit sie nicht verloren gehen können.
+
+Anders als die meisten @qq{Großen Projekte} geht es bei GOP nicht
+darum, großartige neue Eigenschaften zu entwickeln oder alles
+völlig umzugestalten. Das Ziel ist es vielmehr, uns eine stabile
+Basis zu geben, sodass große Änderungen in der Zukunft einfacher
+bewerkstelligt werden können.
+
+@warning{GOP beginnt kurz nachdem 2.14 veröffentlicht wird.}
+
+@end macro
+
+
@c `Learning Manual' was born 1999-10-10 with git commit b9abaac...
@macro copyrightDeclare
-Copyright @copyright{} 1999--2009 bei den Autoren.
+Copyright @copyright{} 1999--2010 bei den Autoren.
@end macro
@set FDL
@c TOC - tex
@contents
+@allowcodebreaks false
+
@c INCLUDES
@c @include learning/preface.itely
@seealso
-Notationsreferenz: @ruser{Notenbezeichnungen in anderen Sprachen},
+Notationsreferenz:
+@ruser{Notenbezeichnungen in anderen Sprachen},
@ruser{Versetzungszeichen}, @ruser{Automatische Versetzungszeichen},
@ruser{Tonartbezeichnung}.
-Glossar: @rglos{Pitch names}.
+Glossar:
+@rglos{Pitch names}.
@node Bindebögen und Legatobögen
@lilypond[verbatim,quote,relative=2]
g4~ g c2~
-c4 ~ c8 a8 ~ a2
+c4~ c8 a8~ a2
@end lilypond
geschachtelt werden.
@lilypond[verbatim,quote,relative=2]
-c2~( c8 fis fis4 ~ fis2 g2)
+c2~( c8 fis fis4~ fis2 g2)
@end lilypond
@seealso
-Notationsreferenz: @ruser{Bindebögen}, @ruser{Legatobögen},
+Notationsreferenz:
+@ruser{Bindebögen},
+@ruser{Legatobögen},
@ruser{Phrasierungsbögen}.
@cindex Akzente
@cindex Staccato
-Glossar: @rglos{articulation}.
+Glossar:
+@rglos{articulation}.
Übliche @notation{Artikulationszeichen} können durch Anfügen von Minus
(@q{-}) und einem entsprechenden Zeichen eingegeben werden:
@funindex \!
@funindex !
-Glossar: @rglos{dynamics}, @rglos{crescendo},
+Glossar:
+@rglos{dynamics},
+@rglos{crescendo},
@rglos{decrescendo}.
Die Dynamik innerhalb eines Stückes wird eingegeben, indem man
@seealso
-Notationsreferenz: @ruser{Artikulationszeichen und Verzierungen},
-@ruser{Fingersatzanweisungen}, @ruser{Dynamik}.
+Notationsreferenz:
+@ruser{Artikulationszeichen und Verzierungen},
+@ruser{Fingersatzanweisungen},
+@ruser{Dynamik}.
@node Text hinzufügen
@code{\markup}-Befehl benutzen:
@lilypond[verbatim,quote,relative=2]
-c1^\markup{ \bold espr}
+c1^\markup{ \bold espr }
a1_\markup{
\dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}
@seealso
-Notationsreferenz: @ruser{Text eingeben}.
+Notationsreferenz:
+@ruser{Text eingeben}.
@node Automatische und manuelle Balken
@seealso
-Notationsreferenz: @ruser{Automatische Balken}, @ruser{Manuelle Balken}.
+Notationsreferenz:
+@ruser{Automatische Balken},
+@ruser{Manuelle Balken}.
@node Zusätzliche rhythmische Befehle
@seealso
-Notationsreferenz: @ruser{Verzierungen}, @ruser{Andere rhythmische Aufteilungen},
+Notationsreferenz:
+@ruser{Verzierungen},
+@ruser{Andere rhythmische Aufteilungen},
@ruser{Auftakte}.
@seealso
-Notationsreferenz: @ruser{Notation von Gesang}.
+Notationsreferenz:
+@ruser{Notation von Gesang}.
@node Text zu mehreren Systemen
@seealso
-Notationsreferenz: @ruser{Notation von Gesang}.
+Notationsreferenz:
+@ruser{Notation von Gesang}.
@node Letzter Schliff
@cindex Variablen
@cindex Bezeichner
-Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen (siehe auch @ref{Organizing pieces with variables}.)
-Alle Vorlagen verwenden diese Möglichkeit.
+Eine gute Möglichkeit zur Vereinfachung sind selbst definierte Variablen, wie auch gezeigt in @ref{Organizing pieces with variables}.
+Alle Vorlagen verwenden diese Möglichkeit:
@example
melodie = \relative c' @{
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\key g \major
% Voice "1" Voice "2"
-<< { g4 fis8( g) a4 g } \\ { d4 d d d } >> |
+<< { g4 fis8( g) a4 g } \\ { d4 d d d } >>
@end lilypond
Beachte, dass die Hälse der zweiten Stimme nun nach unten zeigen.
@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 } >> |
+<< { 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
% Main voice
c16 d e f
% Voice "1" Voice "2" Voice "3"
- << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
- << { d2 e2 } \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> |
+ << { g4 f e } \\ { r8 e4 d c8 ~ } >>
+ << { d2 e2 } \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >>
}
@end lilypond
\new Staff \relative c' {
% Main voice
c16 d e f
- << % Bar 1
+ << % Bar 1
{
\voiceOneStyle
g4 f e
\\
{
\voiceTwoStyle
- r8 e4 d c8 ~
+ r8 e4 d c8~
}
>>
- << % Bar 2
+ << % Bar 2
% Voice 1 continues
{ d2 e2 }
\\
@lilypond[quote,ragged-right]
\new Staff \relative c'' {
\key aes \major
- << % Voice one
+ << % Voice one
{ c2 aes4. bes8 }
- \\ % Voice two
+ \\ % Voice two
{ aes2 f4 fes }
- \\ % No voice three
- \\ % Voice four
+ \\ % No voice three
+ \\ % Voice four
{
% Ignore these for now - they are explained in Ch 4
\once \override NoteColumn #'force-hshift = #0
\new Staff \relative c'' {
\key aes \major
<<
- { % Voice one
+ { % Voice one
\voiceOneStyle
c2 aes4. bes8
}
\once \override NoteColumn #'force-hshift = #0.5
des2
}
- >> |
- <c ees aes c>1 |
+ >>
+ <c ees aes c>1
}
@end lilypond
@lilypond[quote,verbatim,fragment,ragged-right]
\new Staff \relative c'' {
\key aes \major
- << % erste Stimme
+ << % erste Stimme
{ c2 aes4. bes8 }
- \\ % zweite Stimme
+ \\ % zweite Stimme
{ aes2 f4 fes }
- \\ % Stimme drei auslassen
- \\ % vierte Stimme
+ \\ % Stimme drei auslassen
+ \\ % vierte Stimme
{ <ees c>2 des2 }
- >> |
- <c ees aes c>1 |
+ >>
+ <c ees aes c>1
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\relative c'{
% Default behavior or behavior after \oneVoice
- c d8 ~ d e4 ( f g a ) b-> c
+ c d8~ d e4( f g a) b-> c
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\relative c'{
\voiceOne
- c d8 ~ d e4 ( f g a ) b-> c
+ c d8~ d e4 (f g a) b-> c
\oneVoice
- c, d8 ~ d e4 ( f g a ) b-> c
+ c, d8~ d e4 (f g a) b-> c
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\relative c'{
\voiceTwo
- c d8 ~ d e4 ( f g a ) b-> c
+ c d8~ d e4 (f g a) b-> c
\oneVoice
- c, d8 ~ d e4 ( f g a ) b-> c
+ c, d8~ d e4 (f g a) b-> c
}
@end lilypond
% Start simultaneous section of three voices
<<
% Continue the main voice in parallel
- { g4 f e | d2 e2) }
+ { g4 f e | d2 e2) | }
% Initiate second voice
\new Voice {
- % Set stems, etc, down
+ % Set stems, etc., down
\voiceTwo
- r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
}
% Initiate third voice
\new Voice {
% Set stems, etc, up
\voiceThree
- s2. | s4 b4 c2
+ s2. | s4 b4 c2 |
}
>>
}
\new Staff \relative c' {
c16^( d e f
<<
- { g4 f e | d2 e2) }
+ { g4 f e | d2 e2) | }
\new Voice {
\voiceTwo
- r8 e4 d c8 ~ |
+ r8 e4 d c8~
<<
- {c8 b16 a b8 g ~ g2}
+ { c8 b16 a b8 g~ g2 }
\new Voice {
\voiceThree
s4 b4 c2
\new Voice {
% Set stems, etc, down
\voiceTwo
- s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 |
+ s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
}
% Initiate third voice
\new Voice {
@lilypond[quote,verbatim]
global = { \time 6/8 \partial 8 \key f \major}
SopOneMusic = \relative c'' {
- c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 }
+ c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 | }
SopTwoMusic = \relative c' {
- r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' }
+ r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' | }
SopOneLyrics = \lyricmode {
- Let | flee -- cy flocks the | hills a -- dorn, __ }
+ Let | flee -- cy flocks the | hills a -- dorn, __ | }
SopTwoLyrics = \lyricmode {
- Let | flee -- cy flocks the | hills a -- dorn, }
+ Let | flee -- cy flocks the | hills a -- dorn, | }
\score {
\new ChoirStaff <<
@lilypond[quote,verbatim]
TimeKey = { \time 4/4 \partial 4 \key c \major}
-SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g }
-AltoMusic = \relative c' { c4 | c4. c8 e4 e | f 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' { c4 | e4. e8 g4 g | a a g | }
+AltoMusic = \relative c' { c4 | c4. c8 e4 e | f 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 | }
VerseOne = \lyricmode {
- E -- | ter -- nal fa -- ther, | strong to save, }
+ E -- | ter -- nal fa -- ther, | strong to save, | }
VerseTwo = \lyricmode {
- O | Christ, whose voice the | wa -- ters heard, }
+ O | Christ, whose voice the | wa -- ters heard, | }
VerseThree = \lyricmode {
- O | Ho -- ly Spi -- rit, | who didst brood }
+ O | Ho -- ly Spi -- rit, | who didst brood | }
VerseFour = \lyricmode {
- O | Tri -- ni -- ty of | love and pow'r }
+ O | Tri -- ni -- ty of | love and pow'r | }
\score {
\new ChoirStaff <<
\new Staff <<
\clef "bass"
\new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
- \new Voice = "Bass" { \voiceTwo \BassMusic }
+ \new Voice = "Bass" { \voiceTwo \BassMusic }
>>
>>
}
versenotes = \relative c'' {
\clef "treble"
\key g \major
- \time 3/4 g g g b b b
+ \time 3/4
+ g g g | b b b |
}
versewords = \lyricmode {
One two three four five six
versenotes = \relative c'' {
\clef "treble"
\key g \major
- \time 3/4 g g g b b b
+ \time 3/4
+ g g g | b b b |
}
refrainnotesA = \relative c'' {
\time 2/4
- c c g g \bar "|."
+ c c | g g \bar "|."
}
refrainnotesB = \relative c {
\clef "bass"
\key g \major
- c e d d
+ c e | d d |
}
versewords = \lyricmode {
One two three four five six
versenotes = \relative c'' {
\clef "treble"
\key g \major
- \time 3/4 g g g b b b
+ \time 3/4
+ g g g | b b b |
}
refrainnotesA = \relative c'' {
\time 2/4
- c c g g \bar "|."
+ c c | g g \bar "|."
}
refrainnotesB = \relative c {
\clef "bass"
\key g \major
- c e d d
+ c e | d d |
}
versewords = \lyricmode {
One two three four five six
\clef "treble"
\new Voice { % create voice for RH notes
\relative c'' { % start of RH notes
- d4 ees16 c8. |
- d4 ees16 c8. |
+ d4 ees16 c8.
+ d4 ees16 c8.
} % end of RH notes
} % end of RH voice
} % end of RH staff
\new Voice { % create LH voice one
\voiceOne
\relative g { % start of LH voice one notes
- g8 <bes d> ees, <g c> |
- g8 <bes d> ees, <g c> |
+ g8 <bes d> ees, <g c>
+ g8 <bes d> ees, <g c>
} % 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 |
+ g4 ees
+ g4 ees
} % end of LH voice two notes
} % end of LH voice two
>> % end of LH staff
<<
\new Staff \relative c'' {
ais4 aes
- }
+ }
\new Staff \relative c'' {
\set Score.extraNatural = ##f
ais4 aes
- }
+ }
>>
@end lilypond
@seealso
Notationsreferenz:
-@ruser{Die Standardeinstellungen von Kontexten ändern}.
-@c FIXME
-@c uncomment when backslash-node-name issue is resolved -pm
-@c @ruser{Der set-Befehl}.
+@ruser{Die Standardeinstellungen von Kontexten ändern},
+@ruser{Der set-Befehl}.
Referenz der Interna:
@rinternals{Contexts},
\score {
<<
\new Staff <<
- \relative c'' { c a b g }
+ \relative c'' {
+ c a b g
+ }
>>
\new Staff <<
- \relative c' { c a b g }
+ \relative c' {
+ c a b g
+ }
>>
\new Staff <<
\clef "G_8"
- \relative c' { c a b g }
+ \relative c' {
+ c a b g
+ }
>>
\new Staff <<
\clef "bass"
- \relative c { c a b g }
+ \relative c {
+ c a b g
+ }
>>
>>
\layout {
@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 @{ @}
upper = \relative a' {
\clef "treble"
\global
- r4 <a d fis>2 <a e' a>4 |
- <d fis d'>4. <d fis d'>8 <a d a'>2 |
- <g cis g'>4 <a d fis> <a cis e>2 |
+ r4 <a d fis>2 <a e' a>4
+ <d fis d'>4. <d fis d'>8 <a d a'>2
+ <g cis g'>4 <a d fis> <a cis e>2
}
lower = \relative c, {
\clef "bass"
\global
- <d d'>4 <d d'>2 <cis cis'>4 |
- <b b'>4. <b' b'>8 <fis fis'>2 |
- <e e'>4 <d d'> <a' a'>2 |
+ <d d'>4 <d d'>2 <cis cis'>4
+ <b b'>4. <b' b'>8 <fis fis'>2
+ <e e'>4 <d d'> <a' a'>2
}
\score {
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" { \global \sopranoMusic }
+ \new Voice = "sopranos" {
+ \global
+ \sopranoMusic
+ }
>>
- \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+ \new Lyrics \lyricsto "sopranos" {
+ \sopranoWords
+ }
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
- \new Voice = "altos" { \global \altoMusic }
+ \new Voice = "altos" {
+ \global
+ \altoMusic
+ }
>>
- \new Lyrics \lyricsto "altos" { \altoWords }
+ \new Lyrics \lyricsto "altos" {
+ \altoWords
+ }
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" { \global \tenorMusic }
+ \new Voice = "tenors" {
+ \global
+ \tenorMusic
+ }
>>
- \new Lyrics \lyricsto "tenors" { \tenorWords }
+ \new Lyrics \lyricsto "tenors" {
+ \tenorWords
+ }
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" { \global \bassMusic }
+ \new Voice = "basses" {
+ \global
+ \bassMusic
+ }
>>
- \new Lyrics \lyricsto "basses" { \bassWords }
+ \new Lyrics \lyricsto "basses" {
+ \bassWords
+ }
>> % end ChoirStaff
\new PianoStaff <<
@example
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" @{ \global \SopranNoten @}
+ \set Staff.instrumentName = #"Sopran"
+ \new Voice = "sopranos" @{
+ \global
+ \SopranNoten
+ @}
>>
- \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
+ \new Lyrics \lyricsto "sopranos" @{
+ \SopranText
+ @}
\new Staff = "altos" <<
- \set Staff.instrumentName = #"Alto"
- \new Voice = "altos" @{ \global \AltNoten @}
+ \set Staff.instrumentName = #"Alt"
+ \new Voice = "altos" @{
+ \global
+ \AltNoten
+ @}
>>
- \new Lyrics \lyricsto "altos" @{ \AltText @}
+ \new Lyrics \lyricsto "altos" @{
+ \AltText
+ @}
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" @{ \global \TenorNoten @}
+ \new Voice = "tenors" @{
+ \global
+ \TenorNoten
+ @}
>>
- \new Lyrics \lyricsto "tenors" @{ \TenorText @}
+ \new Lyrics \lyricsto "tenors" @{
+ \TenorText
+ @}
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" @{ \global \BassNoten @}
+ \new Voice = "basses" @{
+ \global
+ \BassNoten
+ @}
>>
- \new Lyrics \lyricsto "basses" @{ \BassText @}
+ \new Lyrics \lyricsto "basses" @{
+ \BassText
+ @}
>> % Ende ChoirStaff
@end example
<< % ChoirStaff und PianoStaff parallel kombinieren
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \new Voice = "sopranos" @{ \global \SopranNoten @}
+ \new Voice = "sopranos" @{
+ \global
+ \sopranoMusic
+ @}
>>
- \new Lyrics \lyricsto "sopranos" @{ \SopranText @}
+ \new Lyrics \lyricsto "sopranos" @{
+ \sopranoWords
+ @}
\new Staff = "altos" <<
- \new Voice = "altos" @{ \global \AltNoten @}
+ \new Voice = "altos" @{
+ \global
+ \altoMusic
+ @}
>>
- \new Lyrics \lyricsto "altos" @{ \AltText @}
+ \new Lyrics \lyricsto "altos" @{
+ \altoWords
+ @}
\new Staff = "tenors" <<
- \clef "G_8" % Tenorschlüssel
- \new Voice = "tenors" @{ \global \TenorNoten @}
+ \clef "G_8" % tenor clef
+ \new Voice = "tenors" @{
+ \global
+ \tenorMusic
+ @}
>>
- \new Lyrics \lyricsto "tenors" @{ \TenorText @}
+ \new Lyrics \lyricsto "tenors" @{
+ \tenorWords
+ @}
\new Staff = "basses" <<
\clef "bass"
- \new Voice = "basses" @{ \global \BassNoten @}
+ \new Voice = "basses" @{
+ \global
+ \bassMusic
+ @}
>>
- \new Lyrics \lyricsto "basses" @{ \BassText @}
- >> % Ende ChoirStaff
+ \new Lyrics \lyricsto "basses" @{
+ \bassWords
+ @}
+ >> % end ChoirStaff
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano"
- \new Staff = "oben" \oben
- \new Staff = "unten" \unten
+ \new Staff = "upper" \upper
+ \new Staff = "lower" \lower
>>
>>
@end example
Takte sieht unser Beispiel nun so aus:
@lilypond[quote,verbatim,ragged-right,addversion]
-global = { \key d \major \time 4/4 }
+global = {
+ \key d \major
+ \time 4/4
+}
sopranoMusic = \relative c'' {
\clef "treble"
r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
upper = \relative a' {
\clef "treble"
\global
- r4 <a d fis>2 <a e' a>4 |
- <d fis d'>4. <d fis d'>8 <a d a'>2 |
- <g cis g'>4 <a d fis> <a cis e>2 |
+ r4 <a d fis>2 <a e' a>4
+ <d fis d'>4. <d fis d'>8 <a d a'>2
+ <g cis g'>4 <a d fis> <a cis e>2
}
lower = \relative c, {
\clef "bass"
\global
- <d d'>4 <d d'>2 <cis cis'>4 |
- <b b'>4. <b' b'>8 <fis fis'>2 |
- <e e'>4 <d d'> <a' a'>2 |
+ <d d'>4 <d d'>2 <cis cis'>4
+ <b b'>4. <b' b'>8 <fis fis'>2
+ <e e'>4 <d d'> <a' a'>2
}
\score {
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" { \global \sopranoMusic }
+ \new Voice = "sopranos" {
+ \global
+ \sopranoMusic
+ }
>>
- \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+ \new Lyrics \lyricsto "sopranos" {
+ \sopranoWords
+ }
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
- \new Voice = "altos" { \global \altoMusic }
+ \new Voice = "altos" {
+ \global
+ \altoMusic
+ }
>>
- \new Lyrics \lyricsto "altos" { \altoWords }
+ \new Lyrics \lyricsto "altos" {
+ \altoWords
+ }
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" { \global \tenorMusic }
+ \new Voice = "tenors" {
+ \global
+ \tenorMusic
+ }
>>
- \new Lyrics \lyricsto "tenors" { \tenorWords }
+ \new Lyrics \lyricsto "tenors" {
+ \tenorWords
+ }
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" { \global \bassMusic }
+ \new Voice = "basses" {
+ \global
+ \bassMusic
+ }
>>
- \new Lyrics \lyricsto "basses" { \bassWords }
+ \new Lyrics \lyricsto "basses" {
+ \bassWords
+ }
>> % end ChoirStaff
\new PianoStaff <<
title = "Jesu, meine Freude"
composer = "J. S. Bach"
@}
-TimeKey = @{ \time 4/4 \key c \minor @}
-ManualOneVoiceOneMusic = @{s1@}
-ManualOneVoiceTwoMusic = @{s1@}
-ManualTwoMusic = @{s1@}
-PedalOrganMusic = @{s1@}
+TimeKey = @{
+ \time 4/4
+ \key c \minor
+@}
+ManualOneVoiceOneMusic = @{ s1 @}
+ManualOneVoiceTwoMusic = @{ s1 @}
+ManualTwoMusic = @{ s1 @}
+PedalOrganMusic = @{ s1 @}
\score @{
@}
@example
\new PianoStaff <<
\new Staff = "ManualOne" <<
- \new Voice @{ \ManualOneVoiceOneMusic @}
- \new Voice @{ \ManualOneVoiceTwoMusic @}
+ \new Voice @{
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \ManualOneVoiceTwoMusic
+ @}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
- \new Voice @{ \ManualTwoMusic @}
+ \new Voice @{
+ \ManualTwoMusic
+ @}
>> % end ManualTwo Staff context
>> % end PianoStaff context
@end example
<< % PianoStaff and Pedal Staff must be simultaneous
\new PianoStaff <<
\new Staff = "ManualOne" <<
- \new Voice @{ \ManualOneVoiceOneMusic @}
- \new Voice @{ \ManualOneVoiceTwoMusic @}
+ \new Voice @{
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \ManualOneVoiceTwoMusic
+ @}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
- \new Voice @{ \ManualTwoMusic @}
+ \new Voice @{
+ \ManualTwoMusic
+ @}
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
- \new Voice @{ \PedalOrganMusic @}
+ \new Voice @{
+ \PedalOrganMusic
+ @}
>>
>>
@end example
\new Staff = "ManualOne" <<
\TimeKey % set time signature and key
\clef "treble"
- \new Voice @{ \voiceOne \ManualOneVoiceOneMusic @}
- \new Voice @{ \voiceTwo \ManualOneVoiceTwoMusic @}
+ \new Voice @{
+ \voiceOne
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \voiceTwo
+ \ManualOneVoiceTwoMusic
+ @}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
\TimeKey
\clef "bass"
- \new Voice @{ \ManualTwoMusic @}
+ \new Voice @{
+ \ManualTwoMusic
+ @}
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
\TimeKey
\clef "bass"
- \new Voice @{ \PedalOrganMusic @}
+ \new Voice @{
+ \PedalOrganMusic
+ @}
>> % end PedalOrgan Staff
>>
@} % end Score context
title = "Jesu, meine Freude"
composer = "J S Bach"
}
-TimeKey = { \time 4/4 \key c \minor }
+TimeKey = {
+ \time 4/4
+ \key c \minor
+}
ManualOneVoiceOneMusic = \relative g' {
- g4 g f ees | d2 c2 |
+ g4 g f ees
+ d2 c2
}
ManualOneVoiceTwoMusic = \relative c' {
- ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
- c c4 b8 c8. g16 c b c d |
+ ees16 d ees8~ ees16 f ees d c8 d~ d c~
+ c c4 b8 c8. g16 c b c d
}
ManualTwoMusic = \relative c' {
- c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
- f ees f d g aes g f ees d e8~ ees16 f ees d |
+ c16 b c8~ c16 b c g a8 g~ g16 g aes ees
+ f ees f d g aes g f ees d e8~ ees16 f ees d
}
PedalOrganMusic = \relative c {
- r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
- r16 g ees f g f g8 c,2 |
- }
+ r8 c16 d ees d ees8~ ees16 a, b g c b c8
+ r16 g ees f g f g8 c,2
+}
\score {
<< % PianoStaff and Pedal Staff must be simultaneous
\new Staff = "ManualOne" <<
\TimeKey % set time signature and key
\clef "treble"
- \new Voice { \voiceOne \ManualOneVoiceOneMusic }
- \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
+ \new Voice {
+ \voiceOne
+ \ManualOneVoiceOneMusic
+ }
+ \new Voice {
+ \voiceTwo
+ \ManualOneVoiceTwoMusic
+ }
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
\TimeKey
\clef "bass"
- \new Voice { \ManualTwoMusic }
+ \new Voice {
+ \ManualTwoMusic
+ }
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
\TimeKey
\clef "bass"
- \new Voice { \PedalOrganMusic }
+ \new Voice {
+ \PedalOrganMusic
+ }
>> % end PedalOrgan Staff context
>>
} % end Score context
@lilypond[quote,verbatim,ragged-right]
fragmentA = \relative c'' { a4 a8. b16 }
fragmentB = \relative c'' { a8. gis16 ees4 }
-violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
+violin = \new Staff {
+ \fragmentA
+ \fragmentA
+ \fragmentB
+ \fragmentA
+}
\score {
{
\violin
@c TODO Avoid padtext - not needed with skylining
@lilypond[quote,verbatim,ragged-right]
-dolce = \markup{ \italic \bold dolce }
+dolce = \markup { \italic \bold dolce }
padText = { \once \override TextScript #'padding = #5.0 }
-fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p }
+fthenp=_\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 dynamic p }
violin = \relative c'' {
\repeat volta 2 {
- c4._\dolce b8 a8 g a b |
+ c4._\dolce b8 a8 g a b
\padText
- c4.^"hi there!" d8 e' f g d |
- c,4.\fthenp b8 c4 c-. |
+ c4.^"hi there!" d8 e' f g d
+ c,4.\fthenp b8 c4 c-.
}
}
\score {
@example
violin = \relative c'' @{
\repeat volta 2 @{
- c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
+ 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@{ \dynamic f \italic \small @{ 2nd @}
- \hspace #0.1 \dynamic p @} b8 c4 c-. |
+ c4.^"hi there!" d8 e' f g d
+ c,4.\markup @{ \dynamic f \italic \small @{ 2nd @}
+ \hspace #0.1 \dynamic p @} b8 c4 c-.
@}
@}
@end example
@lilypond[quote,ragged-right]
\relative c <<
\new Staff {
- \time 2/4 R2*3
+ \time 2/4
+ R2*3
r4 f8 a cis4 f e d
}
\new Staff {
\clef bass
r4 d,8 f | gis4 c | b bes |
- a8 e f4 | g d | gis f
+ a8 e f4 | g d | gis f |
}
>>
@end lilypond
Guide, node Updating translation committishes..
@end ignore
+@include included/generating-output.itexi
+
@c \version "2.13.4"
@c Translators: Till Paala, Reinhold Kainhofer
@c Translation checkers: Hajo Bäß
die auf dem System zur Verfügung stehen, untersucht. Aber nach
diesem ersten Mal läuft LilyPond sehr viel schneller.}
-@node MacOS X
-@subsection MacOS X
-@translationof MacOS X
-
-@warning{Diese Anweisungen gehen davon aus, dass Sie die
-LilyPond-Application benutzen. Wenn Sie eins der Programme benutzen, die in @rweb{Leichteres Editieren} beschrieben sind, schauen
-Sie bitte in der Dokumentation nach, wenn Sie Probleme damit haben,
-eine Datei zu kompilieren.}
-
-
-@subsubheading 1. Schritt: Erstellen Sie eine @file{.ly}-Datei
-
-Wenn Sie das @command{LilyPond.app}-Symbol doppelt klicken, öffnet
-sich eine Beispiel-Datei.
-
-@sourceimage{Learning_Macos_welcome,,,}
-
-Wählen Sie aus den Menüs oben links auf Ihrem Bildschirm
-@w{@code{File > Save}}.
-
-@sourceimage{Learning_Macos_Save_menu,,,}
-
-Wählen Sie einen Namen für die Datei, etwa @file{test.ly}.
-@sourceimage{Learning_Macos_Save_file_with_name,,,}
-@subsubheading 2. Schritt: Kompilieren (mit LilyPad)
-Aus den selben Menüs wählen Sie jetzt @w{@code{Compile > Tyepset}}.
-
-@sourceimage{Learning_Macos_Typeset_menu,,,}
-
-Ein neues Fenster öffnet sich, in dem ein Forschrittslog der
-Kompilation der von ihnen gerade gespeicherten Datei gezeigt
-wird.
-
-@sourceimage{Learning_Macos_Compiling_log,,,}
-
-@subsubheading 3. Schritt: Ausgabe anschauen
-
-Wenn die Kompilation fertig ist, wird ein PDF mit dem gleichen
-Namen wie das Original erstellt und automatisch mit dem
-Standard-PDF-Programm geöffnet und angezeigt.
-
-@sourceimage{Learning_Macos_pdf_output,,,}
-
-
-@subsubheading Andere Befehle
-
-Um neue LilyPond-Dateien zu erstellen beginnen sie mit
-@w{@code{File > New}}
-
-@sourceimage{Learning_Macos_New_menu,,,}
-
-@noindent
-oder @w{@code{File > Open}} um eine schon existierende Datei zu
-öffnen und zu editieren.
-
-@sourceimage{Learning_Macos_Open_menu,,,}
-
-Sie müssen alle Änderungen an der Datei zuerst speichern, bevor Sie
-wieder @w{@code{Compile > Tyepset}} wählen. Wenn das PDF nicht
-erscheint, schauen Sie im Fortschrittslog nach Fehlern.
+@node MacOS X
+@subsection MacOS X
+@translationof MacOS X
-Wenn Sie nicht das Standard-PDF-Programm benutzen, das automatisch
-bei Mac OS X dabei ist, und Sie die PDF-Datei noch von einer vorigen
-Kompilation geöffnet haben, können weitere Kompilationen fehlschlagen,
-bis Sie das Original-PDF schließen.
+@cindex Starten des Programms, MacOS X
+@cindex MacOS X, LilyPond starten
+@lilypadOSX
-@cindex Windows, LilyPond starten
@node Windows
@subsection Windows
@translationof Windows
-@warning{Diese Anweisungen gehen davon aus, dass Sie den installierten
-LilyPad-Editor benutzen. Wenn Sie eins der Programme benutzen, die in @rweb{Alternate input} beschrieben sind, schauen
-Sie bitte in der Dokumentation nach, wenn Sie Probleme damit haben,
-eine Datei zu kompilieren.}
-
-@subsubheading 1. Schritt: Erstellen Sie eine @file{.ly}-Datei
-
-Wenn sie auf das LilyPond-Symbol auf dem Desktop doppelklicken,
-öffnet sich ein einfacher Texteditor mit einer Beispieldatei.
-
-@sourceimage{Learning_Win7_Welcome_File_Whole,,,}
-
-Aus dem Menü über der Beispieldatei wählen Sie @w{@code{File > Save as}}.
-Benutzen Sie nicht @w{@code{File > Save}} für die Beispieldatei,
-weil die Datei nicht funktioniert, bis Sie sie mit einem eigenen
-Namen gespeichert haben.
-
-@sourceimage{Learning_Win7_Save_Menu,,,}
-
-Wählen Sie einen Namen für Ihre Datei, etwa @file{test.ly}.
-
-@sourceimage{Learning_Win7_Save_File_With_Name,,,}
-
-
-@subsubheading Schritt 2a: Kompilieren (mit drag-and-drop)
-
-Sie können nach Belieben die Kompilation starten, indem Sie
-entweder:
-
-Die Datei auf das LilyPond-Symbol ziehen.
-
-@sourceimage{Learning_Win7_Open_Dragndrop,,,}
-
-Klicken Sie mit der rechten Maustaste auf die Datei und wählen
-Sie aus dem Menü @w{@code{Open with > LilyPond}}.
-
-@sourceimage{Learning_Win7_Open_Context_Menu,,,}
-
-
-@subsubheading Schritt 2b: Kompilieren (mit Doppelklick)
-
-Oder klicken Sie einfach die Datei @file{test.ly} doppelt an.
-
-
-@subsubheading 3. Schritt: Ausgabe anschauen
-
-Während der Kompilation von @file{test.ly} öffnet sich ein
-Kommandofenster sehr schnell und schließt sich wieder. Drei
-zusätzliche Dateien werden in diesem Schritt erstellt.
-
-@sourceimage{Learning_Win7_All_Files_Created,,,}
-
-Das PDF enthält den Notensatz aus der Datei @file{test.ly}.
-
-@sourceimage{Learning_Win7_Pdf_Output,,,}
-
-
-@subsubheading Andere Befehle
-
-Um eine neue Datei zu erstellen, wählen Sie @w{@code{File > New}}
-aus irgendeiner schon erstellten Datei.
-
-@sourceimage{Learning_Win7_New_Menu,,,}
-
-@noindent
-oder @w{@code{File > Open}}, um eine Datei zu öffnen und zu
-bearbeiten, die Sie schon vorher gespeichert hatten.
-
-@sourceimage{Learning_Win7_Open_Menu,,,}
-
-Sie müssen jede neue Änderung erst speichern, bevor Sie die Datei
-kompilieren. Wenn kein PDF erstellt wird, öffnen Sie die Log-Datei
-und schauen Sie nach Fehlern.
-
-@sourceimage{Learning_Win7_Log_File,,,}
-
-Die Log-Datei wird jedes Mal überschrieben, wenn Sie Ihre
-LilyPond-Datei kompilieren.
-
-Die PS-Datei wird intern von LilyPond benutzt um das PDF zu erstellen
-und kann ignoriert werden. Sie wird auch jedes Mal neu überschrieben.
-
-Wenn Sie das PDF in einem PDF-Programm anschauen, müssen Sie es
-zuerst schließen, bevor Sie eine neue Kompilation durchführen
-können, denn es kann einen Fehler bei der Erstellung des neuen
-PDFs geben, wenn das alte noch geöffnet ist.
+@cindex Windows, LilyPond starten
+@lilypadWindows
-@cindex Unix, LilyPond starten
@node Kommandozeile
@subsection Kommandozeile
@translationof Command-line
-@warning{Diese Anweisungen gehen davon aus, dass Sie den installierten
-LilyPad-Editor benutzen. Wenn Sie eins der Programme benutzen, die in @rweb{Alternate input} beschrieben sind, schauen
-Sie bitte in der Dokumentation nach, wenn Sie Probleme damit haben,
-eine Datei zu kompilieren.}
-
-@subsubheading Schritt 1: Erstellen Sie eine @file{.ly}-Datei
-
-
-Erstellen Sie eine Text-Datei mit dem Namen @file{test.ly} und
-geben Sie folgenden Text ein:
-
-@example
-@{
- c' e' g' e'
-@}
-@end example
-
-@subsubheading Schritt 2: Kompilieren (auf der Kommandozeile)
-
-Um die Datei zu kompilieren, geben sie an der Konsole bzw. Kommandozeile
-
-@example
-lilypond test.ly
-@end example
-
-@noindent
-ein.
-Sie werden ungefähr folgende Meldungen sehen:
-
-
-@example
-lilypond test.ly
-GNU LilyPond @version{}
-»test.ly« wird verarbeitet
-Analysieren...
-Interpretation der Musik...
-Vorverarbeitung der grafischen Elemente...
-Ideale Seitenanzahl wird gefunden...
-Musik wird auf eine Seite angepasst...
-Systeme erstellen...
-Layout nach »test.ps« ausgeben...
-Konvertierung nach »test.pdf«...
-@end example
-
-@subsubheading 3. Schritt: Ausgabe anschauen
+@cindex Unix, LilyPond starten
-Als Ergebnis erhalten Sie ein @file{test.pdf}, das Sie mit den
-Standardprogrammen Ihres Betriebssystemes anschauen können.
+@lilypadCommandLine
der Online-Version.
@menu
-* Ausgelassenes Material::
-* Anklickbare Beispiele::
-* Navigation mit der Tastatur::
-* Überblick über die Handbücher::
+* Ausgelassenes Material::
+* Anklickbare Beispiele::
+* Überblick über die Handbücher::
@end menu
@c KEEP LY
@lilypond[quote]
\relative c'' {
- c-\markup { \bold \huge { Hier klicken! } }
+ c-\markup { \bold \huge { Hier klicken! } }
}
@end lilypond
cut-&-pastable section} bis ganz zum Ende der Datei.
-@node Navigation mit der Tastatur
-@subsection Navigation mit der Tastatur
+@ignore
+
+@n ode Navigation mit der Tastatur
+@s ubsection Navigation mit der Tastatur
@translationof Keyboard navigation
@warning{Diese Funktion gibt es nur für die HTML-Version der Handbücher.}
@c TODO: once this is figured out, insert it here.
Es wird gegenwärtig an dieser Funktion gearbeitet.
-
+@end ignore
@node Überblick über die Handbücher
@c NOTE Tuplet brackets collide if notes are high on staff
@c See issue 509
@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\times 2/3 { c8[ c c]}
+\times 2/3 { c8[ c c] }
\once \override TupletNumber
#'text = #tuplet-number::calc-fraction-text
\times 2/3 {
c[ c]
\once \override TupletNumber #'transparent = ##t
\times 2/3 { c8[ c c] }
-\times 2/3 { c8[ c c]}
+\times 2/3 { c8[ c c] }
}
@end lilypond
{
\time 6/8
{
- r4 b8 b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ r4 b8 b[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
{
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur #'thickness = #5.0
- r4 b8 b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ r4 b8 b[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
r4 b8
% Increase thickness of immediately following slur only
\once \override Slur #'thickness = #5.0
- b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ b4[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
r4 b8
% Increase thickness of immediately following slur only
\once \override Slur #'thickness = #5.0
- b[( g]) g |
+ b4[( g]) g
% Increase thickness of immediately following slur only
\once \override Slur #'thickness = #5.0
- g[( e]) e d[( f]) a |
- a g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
r4 b8
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur #'thickness = #5.0
- b[( g]) g |
- g[( e])
+ b4[( g]) g
+ g4[( e])
% Revert thickness of all following slurs to default of 1.2
\revert Slur #'thickness
- e d[( f]) a |
- a g
+ e4 d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
{
\time 6/8
{
- r4 b8 b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ r4 b8 b[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
\override LyricText #'font-shape = #'italic
{
\time 12/16
\override BarLine #'stencil = ##f
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'stencil = ##f
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'break-visibility = #'#(#f #f #f)
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.TimeSignature #'transparent = ##t
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.TimeSignature #'stencil = ##f
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'color = #white
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'color = #(x11-color 'white)
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'color = #(rgb-color 1 1 1)
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
\override Voice.NoteHead #'color = #(x11-color 'grey85)
\override Voice.Stem #'color = #(x11-color 'grey85)
\override Staff.BarLine #'color = #(x11-color 'grey10)
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
- e4 r8
- <<
- { f c c }
- \new Staff \with {
- alignAboveContext = #"main" }
- { f8 f c }
- >>
- r4 |
- }
- }
+ \relative g' {
+ r4 g8 g c4 c8 d |
+ e4 r8
+ <<
+ { f c c }
+ \new Staff \with {
+ alignAboveContext = #"main" }
+ { f8 f c }
+ >>
+ r4 |
+ }
+}
@end lilypond
Ossia-Systeme werden normalerweise ohne Schlüssel und Taktangabe
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
}
{ f8 f c }
}
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
% Don't print clefs in this staff
% Don't print time signatures in this staff
\override TimeSignature #'stencil = ##f
}
- { f8 f c }
+ { f8 f c }
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
\override Clef #'stencil = ##f
% Reduce all font sizes by ~24%
fontSize = #-2
}
- { f8 f c }
+ { f8 f c }
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
\override Clef #'stencil = ##f
% Reduce stem length and line spacing to match
\override StaffSymbol #'staff-space = #(magstep -2)
}
- { f8 f c }
+ { f8 f c }
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c2^"Text1"
-c^"Text2"
-c^"Text3"
-c^"Text4"
+c2^"Text2"
+c2^"Text3"
+c2^"Text4"
@end lilypond
Notensysteme werden in den Standardeinstellungen auch so dicht
@lilypond[quote,ragged-right,verbatim]
<<
\new Staff {
- \relative c' { c a, }
+ \relative c' { c4 a, }
}
\new Staff {
- \relative c'''' { c a, }
+ \relative c'''' { c4 a, }
}
>>
@end lilypond
@lilypond[quote,verbatim,relative=2]
a4 g c a
\override Stem #'direction = #DOWN
-a g c a
+a4 g c a
\override Stem #'direction = #UP
-a g c a
+a4 g c a
\revert Stem #'direction
-a g c a
+a4 g c a
@end lilypond
Hier werden die Konstanten @code{DOWN} und @code{UP}
@lilypond[quote,verbatim,relative=1]
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left down)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(right)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
@end lilypond
@noindent
\override Fingering #'font-size = #-7
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left down)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(right)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
@end lilypond
\dynamicUp
% Start Ottava Bracket
\ottava #1
-c' \startTextSpan
+c'4 \startTextSpan
% Add Dynamic Text and hairpin
-c\pp\<
-c
+c4\pp\<
+c4
% Add Text Script
-c^Text
-c c
+c4^Text
+c4 c
% Add Dynamic Text and terminate hairpin
-c\ff c \stopTextSpan
+c4\ff c \stopTextSpan
% Stop Ottava Bracket
\ottava #0
-c, c c c
+c,4 c c c
@end lilypond
Dieses Beispiel zeigt auch, wie man Text-Strecker erstellt, d.h.
\once \override Staff.OttavaBracket #'outside-staff-priority = #340
% Start Ottava Bracket
\ottava #1
-c' \startTextSpan
+c'4 \startTextSpan
% Add Dynamic Text
-c\pp
+c4\pp
% Add Dynamic Line Spanner
-c\<
+c4\<
% Add Text Script
-c^Text
-c c
+c4^Text
+c4 c
% Add Dynamic Text
-c\ff c \stopTextSpan
+c4\ff c \stopTextSpan
% Stop Ottava Bracket
\ottava #0
-c, c c c
+c,4 c c c
@end lilypond
@cindex Legatobögen und outside-staff-priority
Hier ein Beispiel, das die beiden Möglichkeiten veranschaulicht:
@lilypond[quote,verbatim,relative=2]
-c4( c^\markup\tiny\sharp d4.) c8
+c4( c^\markup { \tiny\sharp } d4.) c8
c4(
\once \override TextScript #'avoid-slur = #'inside
\once \override TextScript #'outside-staff-priority = ##f
-c^\markup\tiny\sharp d4.) c8
+c4^\markup { \tiny\sharp } d4.) c8
\once \override Slur #'outside-staff-priority = #500
c4( c^\markup\tiny\sharp d4.) c8
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c2^"Text1"
-c^"Text2"
+c2^"Text2"
\once \override TextScript #'outside-staff-priority = #500
-c^"Text3"
-c^"Text4"
+c2^"Text3"
+c2^"Text4"
@end lilypond
Damit wird zwar @qq{Text3} ganz richtig über @qq{Text4}
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\textLengthOn % Cause notes to space out to accommodate text
c2^"Text1"
-c^"Text2"
-c^"Text3"
-c^"Text4"
+c2^"Text2"
+c2^"Text3"
+c2^"Text4"
@end lilypond
Dieses Verhalten wird mit dem @code{\textLengthOff}-Befehl
\key aes \major
\time 9/8
\dynamicUp
-bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
-ees,2.~\)\mf ees4 r8 |
+bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\!
+ees,2.~\)\mf ees4 r8
@end lilypond
Wenn aber Noten und Dynamikzeichen sehr dicht beieinander
@cindex padding (Verschiebuns-Eigenschaft), Beispiel
@lilypond[quote,fragment,relative=1,verbatim]
-% This will not work, see below:
+% This will not work, see below
\override MetronomeMark #'padding = #3
\tempo 4=120
c1
-% This works:
+% This works
\override Score.MetronomeMark #'padding = #3
\tempo 4=80
d1
@lilypond[quote,ragged-right,verbatim]
sesquisharp = \markup { \sesquisharp }
\relative c'' {
- c
+ c4
% This prints a sesquisharp but the spacing is too small
\once \override Accidental
#'stencil = #ly:text-interface::print
\once \override Accidental #'text = #sesquisharp
- cis c
+ cis4 c
% This improves the spacing
\once \override Score.AccidentalPlacement #'right-padding = #0.6
\once \override Accidental
#'stencil = #ly:text-interface::print
\once \override Accidental #'text = #sesquisharp
- cis
+ cis4
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
\voiceOne
-< a \2 >
+< a\2 >
\once \override StringNumber #'self-alignment-X = #RIGHT
-< a \2 >
+< a\2 >
@end lilypond
Kollision dieser Art:
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
-<< {c c c c} \\ {R1} >>
+<< { c4 c c c } \\ { R1 } >>
@end lilypond
Die beste Lösung ist es, die Ganztaktpause nach unten zu
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
<<
- {c c c c}
-\\
+ { c4 c c c }
+ \\
\override MultiMeasureRest #'staff-position = #-8
- {R1}
+ { R1 }
>>
@end lilypond
@lilypond[quote,fragment,relative=1,verbatim]
\stemUp
-f-5
-\once \override Fingering
- #'extra-offset = #'(-0.3 . -1.8)
-f-5
+f4-5
+\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+f4-5
@end lilypond
er den Bogen des Vorschlags vermeidet:
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4 \acciaccatura e8\( d8 c ~c d c d\)
+r4 \acciaccatura e8\( d8 c~ c d c d\)
@end lilypond
@noindent
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
r4
\phrasingSlurUp
-\acciaccatura e8\( d8 c ~c d c d\)
+\acciaccatura e8\( d8 c~ c d c d\)
@end lilypond
@noindent
r4
\once \override PhrasingSlur #'positions = #'(-4 . -3)
\acciaccatura
-e8\( d8 c ~c d c d\)
+e8\( d8 c~ c d c d\)
@end lilypond
Hier noch ein weiteres Beispiel aus der Einleitung von Chopins
@lilypond[quote,verbatim,fragment,ragged-right]
{
\clef "bass"
-<< {b,8 ais, b, g,} \\ {e, g e, g} >>
-<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+<< { b,8 ais, b, g, } \\ { e, g e, g } >>
+<< { b,8 ais, b, g, } \\ { e, g e, g } >>
}
@end lilypond
\clef "bass"
<<
\override Beam #'positions = #'(3 . 3)
- {b,8 ais, b, g,}
+ { b,8 ais, b, g, }
\\
- {e, g e, g}
+ { e, g e, g }
>>
- << {b,8 ais, b, g,} \\ {e, g e, g} >>
+ << { b,8 ais, b, g, } \\ { e, g e, g } >>
}
@end lilypond
@cindex force-hshift-Eigenschaft
@cindex Vertikale Verschiebung erzwingen
-@c FIXME: formatting stuff (ie not important right now IMO)
-@c @a nchor Chopin finally corrected TODOgp
-
An diesem Punkt können wir den letzten Feinschliff an unserem
Chopin-Beispiel vornhemen, das wir behandelt haben in
@ref{Ich höre Stimmen}. Wir hatten es in folgende Form
@}
@end example
+@code{keep-inside-line} braucht jedoch sehr viel Berechnungen,
+sodass es sich anbietet, diese Funktion zunächst nicht zu aktivieren
+und erst einzufügen, wenn man die endgültige Version erstellt.
+Auf diese Weise muss man nicht mit der Hand @code{\break}-Befehle
+hinzufügen, um zu vermeiden, dass Text über den rechten Rand der
+Seite hinausragt.
+
@node Fortgeschrittene Optimierungen mit Scheme
@subsection Fortgeschrittene Optimierungen mit Scheme
Translation of GIT committish: e9bfcb4ffbd7eab2aa453c8b8d4ddd4c43f99ac2
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes.
@end ignore
+@c Translators: Till Paala
+
@setfilename web.info
@settitle LilyPond -- Notation für Jedermann
@documentencoding UTF-8
@set FDL
@set web
@include macros.itexi
+@include weblinks.itexi
@afourpaper
@translationof Top
@end ifnottex
-@c Translators: Till Paala
-
@c hack for texi2html, bleh -gp
@ifnothtml
@contents
+@allowcodebreaks false
+
@c ****************** GENERAL STUFF FOR INFO ************
@ignore
@c FIXME: this still doesn't solve the broken links in pdf and big
@c html; we'll need a bunch of @iftext and stuff in here. -gp
@c ****************** SPECIAL MACROS FOR WEB MANUAL ************
+
@macro docLinks{name,base,refLink,split,big,bigsize,pdf,pdfsize}
-@subheading Read it
+@subheading Lesen Sie
-@itemize
+@docLinksBare{\name\,\base\,\refLink\,\split\,\big\,\bigsize\,\pdf\,\pdfsize\}
+
+@end macro
-@c normal case, special online case
+@macro docLinkSplit{name,base,webLink}
@ifclear web_version
- @item \refLink\:
+ @uref{../\base\/index.html, \name\ (aufgeteilt, HTML)}
@end ifclear
@ifset web_version
- @c we assume that the online web version will be split html
- @item \split\:
+ \webLink\
@end ifset
-lesen Sie das Handbuch im gleichen Format wie das vorliegende.
-
-@end itemize
-
-@subheading Alle Formate
-
-@divClass{keep-bullets}
-@itemize
+@end macro
+@macro docLinkBig{name,base,webLink}
@ifclear web_version
- @item @uref{../\base\/index.html, \name\ (split HTML)}:
+ @uref{../\base\-big-page.html, \name\ (großes HTML)}
@end ifclear
@ifset web_version
- @item \split\
+ \webLink\
@end ifset
- das Handbuch wird auf viele HTML-Seiten aufgeteilt.
- @*@ @ @emph{(kleiner Download für jede Seite)}
+@end macro
+@macro docLinkPdf{name,base,webLink}
@ifclear web_version
- @item @uref{../\base\-big-page.html, \name\ (big HTML)}:
+ @uref{../\base\.pdf, \base\.pdf}
@end ifclear
@ifset web_version
- @item \big\
+ \webLink\
@end ifset
+@end macro
+
+
+@macro docLinksBare{name,base,refLink,split,big,bigsize,pdf,pdfsize}
+
+@divClass{keep-bullets}
+@itemize
+
+@item @docLinkSplit{\name\,\base\,\split\} @minus{}
+ das Handbuch wird auf viele HTML-Seiten aufgeteilt.
+ @*@ @ @emph{(kleiner Download für jede Seite)}
+
+@item @docLinkBig{\name\,\base\,\big\} @minus{}
das Handbuch auf einer großen HTML-Seite.
@*@ @ @emph{(großer einmaliger Download, \bigsize\)}
-@ifclear web_version
- @item @uref{../\base\.pdf, \base\.pdf}:
-@end ifclear
-@ifset web_version
- @item \pdf\
-@end ifset
+@item @docLinkPdf{\name\,\base\,\pdf\} @minus{}
das Handbuch als PDF-Datei.
@*@ @ @emph{(großer einmaliger Download, \pdfsize\)}
@end macro
+
@include web/introduction.itexi
@include web/download.itexi
@include web/manuals.itexi
Translation of GIT committish: e9bfcb4ffbd7eab2aa453c8b8d4ddd4c43f99ac2
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes.
@end ignore
+@c Translators: Till Paala
+
@include included/authors.itexi
+@include included/helpus.itexi
@node Gemeinschaft
@unnumbered Gemeinschaft
@unnumberedsec Helfen Sie uns
@translationof Help us
-@untranslated
+@divClass{column-center-top}
+@helpusNeed
-@ignore
+@divEnd
+
+@divClass{column-left-top}
+@divClass{keep-bullets}
+@helpusTasks
+
+@divEnd
+@divEnd
+
+@divClass{column-right-top}
+@helpusProjects
+
+@divEnd
+
+
+@node Entwicklung
+@unnumberedsec Entwicklung
+@translationof Development
+
+@divClass{heading-center}
+@ifclear web_version
+ @heading Entwicklung für LilyPond @version
+@end ifclear
+@ifset web_version
+ @heading Entwicklung für LilyPond @versionDevel
+@end ifset
-@divClass{column-center-top}
-@subheading Wir brauchen Sie!
-Das Entwicklerteam von LilyPond ist ziemlich klein -- es wäre
-wirklich notwendig, dass mehr Leute sich einbringen. Bitte
-erwägen Sie, Ihren LilyPond-Benutzerkollegen zu helfen indem
-Sie zur Entwicklung beitragen.
+@warning{Hier handelt es sich um nicht stabile Entwicklerversionen.
+Wenn Sie nicht genau wissen, wie man LilyPond installiert und
+benutzt, empfehlen wir ausdrücklich, die stabilen @ref{Download}-Versionen
+zu benutzen und die stabilen @ref{Handbücher} zu lesen.}
+
+@divEnd
+
+@divClass{column-center-top}
+@subheading Veröffentlichungsnummern
-Auch kleine Aufgaben können große Auswirkungen haben: wenn man sich
-ihnen annimmt, können sich die erfahrenen Entwickler den schwierigen
-Aufgaben widmen anstatt diese einfachen Probleme zu lösen.
+Es gibt zwei Veröffentlichungsreihen für LilyPond: stabile Versionen
+und die unstabilen Entwicklerversionen. Stabile Versionen haben eine
+gerade zweite Versionsnummer (also etwa 2.8, 2.10, 2.12).
+Entwicklerversionen haben eine ungerade zweite Versionsnummer
+(also 2.7, 2.9, 2.11).
@divEnd
@divClass{column-left-top}
-@subheading Einfache Aufgaben
+@subheading Download
-@divClass{keep-bullets}
+Anleitungen zu git und der Kompilierung finden sich im Contributor's Guide (nur auf Englisch).
+
+@quotation
+@uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git, lilypond git-Repositorium}
+@end quotation
+
+Schreiber der Dokumentation und Tester sollten die neuesten
+Binärpakete herunterladen:
+
+@quotation
+@downloadDevelLinuxNormal
+
+@downloadDevelLinuxBig
+
+@downloadDevelLinuxPPC
+
+@downloadDevelFreeBSDNormal
+
+@downloadDevelFreeBSDBig
+
+@downloadDevelDarwinNormal
+
+@downloadDevelDarwinPPC
+
+@downloadDevelWindows
+
+@downloadDevelSource
+
+@end quotation
+
+@divEnd
+
+
+@divClass{column-right-top}
+@subheading Handbuch für Entwicklungsarbeiten (Contributor's guide)
+
+Die Entwicklung von LilyPond ist eine ziemlich komplizierte Angelegenheit.
+Um neuen Mitarbeitern zu helfen und das ganze System (ziemlich)
+stabil zu halten, haben wir ein Handbuch für Entwicklungsarbeiten
+geschrieben (nur auf Englisch).
+
+@docLinksBare{Handbuch für Entwicklungsarbeiten, contributor,
+ @rcontribnamed{Top,Handbuch für Entwicklungsarbeiten},
+ @manualDevelContributorSplit,
+ @manualDevelContributorBig, 500 kB,
+ @manualDevelContributorPdf, 2.8 MB}
+
+@divEnd
+
+
+@divClass{column-center-top}
+@subheading Regressionsteste
+
+@divClass{keep-bullets}
@itemize
-@item
-Unterstützung auf der Mailingliste: beantworten Sie Fragen von
-anderen Benutzern.
-@item
-Fehlerberichte: helfen Sie anderen Benutzern, richtige
-@ref{Fehlerberichte} zu erstellen und helfen Sie dem
-Fehlerteam bei der Verwaltung der @rcontrib{Issues}.
+@ifclear web_version
@item
-Dokumentation: kleine Änderungen (immer zuerst auf Englisch)
-können vorgeschlagen werden, wenn man die Richtlinien
-von @rcontrib{Documentation suggestions} beachtet.
+@uref{../../input/regression/collated-files.html, Regressionsteste}:
+Die Regressionsteste dieser Version.
+(@uref{../../input/regression/collated-files.pdf, PDF-Version})
@item
-Das LilyPond-Schnipsel-Depot (LSR): erstellen und reparieren Sie
-Schnipsel. Siehe
-@rcontrib{Adding and editing snippets}.
+@uref{../../input/regression/musicxml/collated-files.html, MusicXML-Teste}:
+musicXML-Regressionsteste dieser Version.
+(@uref{../../input/regression/musicxml/collated-files.pdf, PDF-Version})
+@end ifclear
-@item
-Diskussionen, Gutachten und Testen: die Entwickler brauchen
-oft Feedback zu neuer Dokumentation, möglichen Änderungen der
-Syntax und um neue Funktionen zu testen. Bitte nehmen Sie an
-diesen Diskussionen teil!
+@ifset web_version
+@item @regtestDevel (@regtestDevelPdf{})
+
+@item @regtestDevelXml (@regtestDevelXmlPdf{})
+
+@item @regtestStable (@regtestStablePdf{})
+
+@item @regtestStableXml (@regtestStableXmlPdf{})
+@end ifset
+
+
+@item @uref{http://lilypond.org/test, Archiv der Regressionsteste}:
+Vergleiche zweier Versionen.
@end itemize
+@divEnd
+@divEnd
-@subheading Mittlere Aufgaben
-@warning{Diese Aufgaben setzen voraus, dass Sie die Quellen
-von Programm und Dokumentation haben, aber keine volle
-Entwicklungsumgebung. Siehe @rcontrib{Starting with git}.}
-@itemize
+@divClass{column-center-bottom}
+@subheading Handbücher
+
+@ifclear web_version
+@warning{Diese Handbücher sind für LilyPond @version{}; die neuesten
+Handbücher finden sich auf @url{http://lilypond.org}.}
+@end ifclear
+
+@divClass{normal-table}
+@multitable @columnfractions .3 .3 .3
+@headitem Einleitung
@item
-Dokumentation: siehe
-@rcontrib{Documentation work} und
-@rcontrib{Building documentation without compiling LilyPond}.
+@docLinkSplit{Lernen,learning,@manualDevelLearningSplit}
+@tab
+@docLinkBig{Lernen,learning,@manualDevelLearningBig}
+@tab
+@docLinkPdf{Lernen,learning,@manualDevelLearningPdf}
@item
-Website: die Website wird aus der Quelle der Dokumentation
-erstellt. Siehe die Information über die Dokumentation und
-zusätzlich @rcontrib{Website work}.
+@docLinkSplit{Glossar,music-glossary,@manualDevelGlossarySplit}
+@tab
+@docLinkBig{Glossar,music-glossary,@manualDevelGlossaryBig}
+@tab
+@docLinkPdf{Glossar,music-glossary,@manualDevelGlossaryPdf}
@item
-Übersetzungen: siehe @rcontrib{Translating the documentation} und
-@rcontrib{Translating the website}.
+@docLinkSplit{Aufsatz,essay,@manualDevelEssaySplit}
+@tab
+@docLinkBig{Aufsatz,essay,@manualDevelEssayBig}
+@tab
+@docLinkPdf{Aufsatz,essay,@manualDevelEssayPdf}
-@end itemize
+@headitem Häufig benutzte Handbücher
+@item
+@docLinkSplit{Notation,notation,@manualDevelNotationSplit}
+@tab
+@docLinkBig{Notation,notation,@manualDevelNotationBig}
+@tab
+@docLinkPdf{Notation,notation,@manualDevelNotationPdf}
-@subheading Komplexe Aufgaben
+@item
+@docLinkSplit{Benutzung,usage,@manualDevelUsageSplit}
+@tab
+@docLinkBig{Benutzung,usage,@manualDevelUsageBig}
+@tab
+@docLinkPdf{Benutzung,usage,@manualDevelUsagePdf}
-@warning{Diese Aufgaben erfordern, dass Sie die Quellen haben
-und LilyPond kompilieren können. Siehe @rcontrib{Starting with git}
-und @rcontrib{Compiling LilyPond}.}
+@item
+@docLinkSplit{Schnipsel,snippets,@manualDevelSnippetsSplit}
+@tab
+@docLinkBig{Schnipsel,snippets,@manualDevelSnippetsBig}
+@tab
+@docLinkPdf{Schnipsel,snippets,@manualDevelSnippetsPdf}
-Wir empfehlen, dass neue Mithelfer, die Windows benutzen, eine
-virtuale Maschine einsezten, um @emph{lilybuntu} zu benutzen. Siehe
-@rcontrib{Using a Virtual Machine to Compile LilyPond}.
-@itemize
+@headitem Seltenere Handbücher
+
@item
-Fehlerberichte, neue Eigenschaften: die beste Art, hiermit zu
-beginnen ist es, sich den @emph{Frogs} anzuschließen. Siehe
-auch @rcontrib{Programming work}.
+@docLinkSplit{Webseite,web,@manualDevelWebSplit}
+@tab
+@docLinkBig{Webseite,web,@manualDevelWebBig}
+@tab
+@docLinkPdf{Webseite,web,@manualDevelWebPdf}
-@end itemize
+@item
+@docLinkSplit{Veränderungen,changes,@manualDevelChangesSplit}
+@tab
+@docLinkBig{Veränderungen,changes,@manualDevelChangesBig}
+@tab
+@docLinkPdf{Veränderungen,changes,@manualDevelChangesPdf}
+
+@item
+@docLinkSplit{Erweitern,extending,@manualDevelExtendingSplit}
+@tab
+@docLinkBig{Erweitern,extending,@manualDevelExtendingBig}
+@tab
+@docLinkPdf{Erweitern,extending,@manualDevelExtendingPdf}
+
+@item
+@docLinkSplit{Interna,internals,@manualDevelInternalsSplit}
+@tab
+@docLinkBig{Interna,internals,@manualDevelInternalsBig}
+@tab
+@docLinkPdf{Interna,internals,@manualDevelInternalsPdf}
+
+@ifset web_version
+@headitem Zum Herunterladen
+
+@item
+@doctarballDevel
+@end ifset
+
+@end multitable
@divEnd
@divEnd
+
+@node Autoren
+@unnumberedsec Autoren
+@translationof Authors
+
+@help{Under construction; this is not an accurate list!}
+
+
+@divClass{column-left-top}
+@subheading Current Development Team
+
+@divClass{keep-bullets}
+@developersCurrent
+@divEnd
+@divEnd
+
@divClass{column-right-top}
-@subheading Projects
+@subheading Previous Development Team
-@subsubheading Frogs
+@divClass{keep-bullets}
+@developersPrevious
+@divEnd
+@divEnd
-Website and mailist: @uref{http://frogs.lilynet.net}
-The Frogs are ordinary LilyPond users who have chosen to get
-involved in their favorite software's development. Fixing bugs,
-implementing new features, documenting the source code: there's a
-lot to be done, but most importantly: this is a chance for
-everyone to learn more about LilyPond, about Free Software, about
-programming... and to have fun. If you're curious about any of
-it, then the word is: @emph{Join the Frogs!}
+@divClass{column-center-top}
+@subheading Current Contributors
+@divClass{keep-bullets}
+@subsubheading Programming
+@coreCurrent
-@help{not active yet; either comment out or begin these projects
-before 2.14}
+@subsubheading Font
-@subsubheading Grand LilyPond Input Syntax Standardization
+@fontCurrent
-Website and mailist: TODO
+@subsubheading Documentation
-GLISS will stabilize the (non-tweak) input syntax for the upcoming
-LilyPond 3.0. After updating to 3.0, the input syntax for
-untweaked music will remain stable for the foreseeable future.
+@docCurrent
-We will have an extensive discussion period to determine the final
-input specification.
+@subsubheading Bug squad
-@subsubheading Grand Organizing Project
+@bugsquadCurrent
-Website and mailist: TODO
+@subsubheading Support
-GOP is our big recruiting drive for new contributors.
+@supportCurrent
-@divEnd
+@subsubheading Translation
-@end ignore
+@translationsCurrent
+
+@divEnd
+@divEnd
-@ignore
@divClass{column-center-bottom}
-@subheading Interested?
+@subheading Previous Contributors
-@divEnd
-@end ignore
+@divClass{keep-bullets}
+@subsubheading Programming
+@corePrevious
+@subsubheading Font
+@fontPrevious
-@node Entwicklung
-@unnumberedsec Entwicklung
-@translationof Development
+@subsubheading Documentation
-@untranslated
+@docPrevious
-@ignore
+@c uncomment when we have any previous members -gp
+@c @subsubheading Bug squad
-@divClass{heading-center}
-@heading Development materials for LilyPond 2.13.3
-@ref{Manuals}.}
-@divEnd
-@divClass{column-left-bottom}
-@subheading Download
-@subheading Manuals
-@divEnd
-@divClass{column-right-bottom}
-@subheading Contributor's Guide
-@divEnd
+@c @bugsquadCurrent
-@end ignore
+@subsubheading Support
+@supportPrevious
-@node Autoren
-@unnumberedsec Autoren
-@translationof Authors
+@subsubheading Translation
+
+@translationsPrevious
+
+@divEnd
+@divEnd
-@untranslated
@node Veröffentlichungen
Translation of GIT committish: e9bfcb4ffbd7eab2aa453c8b8d4ddd4c43f99ac2
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes.
@end ignore
+@c Translators: Till Paala
+
@macro warningTextBased
@warning{LilyPond ist ein @strong{textbasiertes} Notationsprogramm,
es ähnelt eher einer Programmiersprache als einem graphischen
@divEnd
+@divClass{column-right-top}
+@subheading Eine Datei kompilieren
+
+@lilypadCommandLine
+
+@divEnd
+
@divClass{column-right-top}
@subheading Distributionspezifische Pakete
@divClass{column-right-top}
-@subheading Benutzung auf der Kommandozeile
+@subheading Compiling a file
-@warning{Wenn Sie mit der GUI zufrieden sind, dann ignorieren Sie
-bitte diese Anweisungen.}
-
-@ignore
-FIXME: I had one report that we don't need this stuff; will delete
-after confirmation. -gp
+@lilypadOSX
-@subsubheading Benutzung von Python-Skripten unter MacOS 10.3 oder 10.4
+@divEnd
-LilyPond-Programme für MacOS X stellen Python nicht zur Verfügung,
-aber Python 2.4 oder neuer wird benötigt, um @command{convert-ly}
-benutzen zu können. Darum müssen Sie eine neuere Python-Version
-von @uref{http://python.org/download/} installieren, wenn Sie
-MacOS 10.3 oder 10.4 benutzen. Editieren Sie die erste Zeile
-von @command{convert-ly} und @command{lilypond-book} folgenderweise:
-Wenn das Python-Programm, das Sie installiert haben, in ihrem
-@var{PFAD} ist, sollte die erste Zeile einfach lauten:
-@example
-#!/usr/bin/env python
-@end example
+@divClass{column-right-top}
+@subheading Benutzung auf der Kommandozeile
-@noindent
-andernfalls sollte sie sein:
+@warning{Wenn Sie mit der GUI zufrieden sind, dann ignorieren Sie
+bitte diese Anweisungen.}
-@example
-#!@var{/Pfad/zum/gerade/installierten/phyton}
-@end example
-@end ignore
@subsubheading MacOS X auf der Kommandozeile
@divEnd
+@divClass{column-right-top}
+@subheading Compiling a file
+
+@lilypadWindows
+
+@divEnd
+
+
@divClass{column-right-top}
@subheading Benutzung auf der Kommandozeile
Für ein ausführliche Liste aller Versionen (alt und neu) siehe
unsere
-@uref{http://download.linuxaudio.org/lilypond/binaries/, Download-Seite}.
+@uref{http://download.linuxaudio.org/lilypond/source/?C=N;O=D, Download-Seite}.
@divEnd
@divClass{column-right-bottom}
@subheading Anweisungen zum Kompilieren
-Anweisungen finden sich unter @rcontrib{Compiling LilyPond}.
+Anweisungen finden sich unter @rcontribnamed{Compiling LilyPond,LilyPond kompilieren}.
@divEnd
Translation of GIT committish: e9bfcb4ffbd7eab2aa453c8b8d4ddd4c43f99ac2
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes.
@end ignore
+@c Translators: Till Paala
+
@node Einleitung
@unnumbered Einleitung
@translationof Introduction
@imageFloat{flat-design,png,right}
-Die Inspiration zu LilyPond kam, als zwei Musiker sich über das langweilige und anonyme Aussehen von computererstellten Notendrucken ärgerten. Alle Musiker wollen schöne Noten lesen, warum also sollten Programmierer kein Programm schreiben können, dass schönere Orchesterstimmen setzen kann?
+LilyPond entstand, als zwei Musiker sich über das langweilige und anonyme Aussehen von computererstellten Notendrucken ärgerten. Alle Musiker wollen schöne Noten lesen, warum also sollten Programmierer kein Programm schreiben können, dass schönere Orchesterstimmen setzen kann?
-Unser Programm tut genau das: es setzt Noten nach den besten Traditionen des klassischen Musiksatzes mit minimaler Notwendigkeit zu eigenen Änderungen. Verlieren Sie keine Zeit damit, die Abstände zu verändern, Symbole herumzuschieben oder Bögen zu formen. Beeindrucken Sie ihre Freunde und Kollegen mit gestochen scharfem Notensatz!
+Das Resultat ist ein System, welches Musiker von den Details des
+Notensatzlayouts befreit, sodass sie sich darauf konzentrieren
+können, Musik zu machen. LilyPond arbeitet mit ihnen zusammen,
+um Notensatz professioneller Qualität zu erstellen, welche nach
+dem ganzen Erfahrungsschatz und den Traditionen des klassischen
+Notensatzes gesetzt werden.
@divEnd
@divClass{column-left-top}
@unnumberedsec Eigenschaften
@translationof Features
-@help{Hoffentlich kann das delegiert werden. Verlangt: ein
-enthusiastischer Einblick, um die Leute von LilyPond einzunehmen.
-Die Warnungen, dass Noten als Text eingegeben werden, kommt im
-Crashkurs, nicht hier.}
-
-Vielleicht Inspirationen von
-@uref{http://lilypond.org/web/about/features} und
-@uref{http://lilypond.org/web/switch/tour} und
-@uref{http://lilypond.org/web/switch/advantages}
Lieblingstexteditor erstellen können, schnell und bequem. Kein
Herumfummeln mit der Maus mehr. Die Eingabe enthält alle
Information, sodass man keine komplexen Befehlssequenzen erinnern
-muss. Speichern Sie die Eingabe einfach für spätere Verwendung.
+muss. Speichern Sie die Eingabe einfach in einer Textdatei
+für spätere Verwendung.
@subsubheading Barrierefreiheit
@divClass{column-center-bottom}
@subheading Was jetzt?
-Sind Sie noch nicht überzeugt? Dann schauen Sie sich einige schöne
+Sind Sie noch nicht überzeugt? Dann schauen Sie sich einige konkrete
@ref{Beispiele} an. Wenn Sie sich schon entschlossen haben,
LilyPond auszuprobieren, lesen Sie zuerst über unsere
@ref{Text-Eingabe}.
@itemize
@item
-@emph{Affaire Étrangère}, eine Oper von Valentin Villenave, mit
-libretto von Lewis Trondheim, wurde am 1. Februar 2009 in der
+@emph{Affaire Étrangère}, eine Oper von
+@uref{http://valentin.villenave.net/,Valentin Villenave} mit
+einem französischen Libretto von
+@uref{http://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis Trondheim}, wurde am 1. Februar 2009 in der
@uref{http://www.orchestre-montpellier.com/, L'Opéra Montpellier}
uraufgeführt.
Es ist uns klar, dass diese Art, Noten zu schreiben, vielen Benutzern
seltsam vorkommt. Aus diesem Grund haben wir eine ausführliche
Anleitung verfasst, die neuen Benutzern helfen soll. Man sollte
-mit @ref{Learning} beginnen.
+mit der @ref{Einführung} beginnen. Das Handbuch zum Lernen
+funktioniert als Einführung und Beginn für das Arbeiten mit LilyPond;
+hier werden viele Fragen beantwortet, bevor man sie überhaupt
+stellen konnte!
Lesen Sie bitte das Handbuch zum Lernen bevor Sie sich über
Fehler beschweren! Neue Benutzer denken manchmal, dass LilyPond
nicht richtig funktioniert, während das Programm in Wirklichkeit
genau das tut, wozu es geschrieben worden ist.
+Weitere Information findet sich unter @ref{Handbücher}
+
@subsubheading Einfachere Editionsumgebungen
@uref{http://denemo.org}
Denemo ist ein graphischer Editor, welcher LilyPond-Dateien
-produzieren kann und auch Audioplayback erlaubt. Es ist
-zurzeit in Entwicklung und erstellt Dateien für ältere
-LilyPond-Versionen (V2.8.7). Hiermit kann die LilyPond-Datei
-paralell zum graphischen Notenbild betrachtet werden.
+produzieren kann (mit Eingabeformat der Version 2.8.7) und auch Audioplayback erlaubt. Hiermit kann die LilyPond-Datei
+paralell zum graphischen Notenbild betrachtet werden. Zusätzliche
+Veränderungen und Anpassungen können an die Objekte angehängt
+werden -- sie werden mit der Denemo-Datei gespeichert, sodass der
+Benutzer graphisch weiterarbeiten kann.
-@ignore
-Import: LilyPond, MIDI
-
-Export: Lilypond, MIDI, ABC, CSound Score File, PDF
-@end ignore
+Wenn man den Cursor im LilyPond-Text bewegt, wird er auch im Notenbild
+verschoben, und Syntaxfeher in LilyPond-Anpassungen werden in
+Textansicht markiert, wenn man von dort aus druckt.
@divEnd
@sourceimage{logo-macosx,,,}
@sourceimage{logo-windows,,,}
-@uref{http://lilypondtool@/.organum@/.hu}
+@uref{http://lilypondtool.organum.hu}
-Als Plugin für den @uref{http://@/www@/.jedit@/.org@/,jEdit}-Texteditor
+Als Plugin für den @uref{http://www.jedit.org,jEdit}-Texteditor
erstellt, ist das LilyPondTool das textbasierte Werkzeug mit den
meisten Eigenschaften, um LilyPond-Partituren zu setzen und zu
editieren. Hierzu gehören ein Document Wizard um neue Dateien
@divClass{column-center-top}
@subheading Andere
-@help Text und Graphik einfügen
+
@subsubheading Gemischte Umgebung: LilyKDE
@uref{http://lilykde.googlecode.com/}
+LilyKDE wurde durch @uref{http://www.frescobaldi.org/,Frescobaldi}
+ersetzt und existiert als LilyKDE3 für KDE3.5 und
+lilypond-KDE4 für KDE 4.1.
+
LilyKDE ist ein Plugin für den Texteditor
@uref{http://kate-editor.org/,Kate} der Destkopumgebung KDE.
Er hat eine gute Funktion um neue Dateien schnell einzurichten
und die Möglichkeit, LilyPond für mehrere Dateien gleichzeitig
vom KDE-Dateimanager aus aufzurufen.
+
@subsubheading Textumgebung: TexShop
@sourceimage{logo-macosx,,,}
-@uref{http://@/www@/.uoregon@/.edu/~koch/texshop}
+@uref{http://www.uoregon.edu/~koch/texshop}
Der TexShop-Editor für MacOS@tie{}X kann erweitert werden, sodass
er LilyPond, @command{lilypond-book} und @command{convert-ly}
vom Editor aus ausführen kann. Hierzu wird eine Erweiterung
eingesetzt, die man hier erhält:
-@uref{http://@/www@/.dimi@/.uniud@/.it/vitacolo/freesoftware@/.html#desktoppub}.
+@uref{http://www.dimi.uniud.it/vitacolo/freesoftware.html#desktoppub}.
@ignore
TODO: ask somebody to sponsor/check these. -gp
@divClass{column-center-top}
@subheading Andere Programme können LilyPond-Doce exportieren
-@ignore
-TODO: change url back to full adress, to make it readable in printouts -ch
-@end ignore
-
-@help Säubern und updaten der Liste etc.
@subsubheading Graphische Umgebungen:
@itemize
@item
-@uref{http://@/noteedit@/.berlios@/.de,NoteEdit}
+@uref{http://noteedit.berlios.de,NoteEdit}
das @uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML} importieren kann
@item
-@uref{http://@/www@/.rosegardenmusic@/.com,Rosegarden},
-das MIDI importiert
+@uref{http://www.rosegardenmusic.com,Rosegarden},
+das MIDI importiert.
@item
@uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd},
hat experimentelle Unterstützung für LilyPond-Export.
@uref{http://musescore.org,MuseScore} kann nach LilyPond exportieren.
@item
@uref{http://canorus.org,Canorus} kann nach LilyPond exportieren, ist allerdings noch im Beta-Stadium. Testpersonen sind willkommen.
+@item
+@uref{http://lilycomp.sourceforge.net, LilyComp} ist ein graphisches
+Noteneingabeprogramm, dass sozusagen ein Zahlenblock ist, der
+LilyPond-Noten erzeugt.
@end itemize
@subsubheading Programme für die Kommandozeile:
@itemize
@item
-@uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, ein monophoner Echtzeitkonverter von MIDI nach LilyPond.
+@uref{http://www.volny.cz/smilauer/rumor/rumor.html,Rumor},
+ein monophoner Echtzeitkonverter von MIDI nach LilyPond.
@item
-@uref{http://nicolas@/.sceaux@/.free@/.fr/lilypond/lyqi@/.html,lyqi}, ein Hauptmodus von Emacs.
+@uref{http://nicolas.sceaux.free.fr/lilypond/lyqi.html,lyqi}, ein Hauptmodus von Emacs.
@item
-@uref{http://@/common-lisp@/.net/project/fomus/,FOMUS},
+@uref{http://common-lisp.net/project/fomus/,FOMUS},
eine LISP-Bibliothek, mit der Musiknotation erstellt werden kann.
@end itemize
@divEnd
Translation of GIT committish: e9bfcb4ffbd7eab2aa453c8b8d4ddd4c43f99ac2
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes.
@end ignore
@node Handbücher
* Notation::
* Benutzung::
* Schnipsel::
-* Web::
* FAQ::
+* Web::
* Änderungen::
* Erweitert::
* Inerna::
@divEnd
-@node Web
-@unnumberedsec Web
-@translationof Web
-
-@divClass{column-left-top}
-@subheading Web
-
-Dieses Handbuch stellt allgemeine Information zu LilyPond zur
-Verfügung. Es enthält auch Information über die verschiedenen
-Gemeinschaftsforen, das Melden von Fehlern und die Mitarbeit am
-Programm.
-
-@divEnd
-
-@divClass{column-right-bottom}
-
-@docLinks{Web, web,
- @ref{Top,,,,Web},
- @manualStableWebSplit,
- @manualStableWebBig, 1 MB,
- @manualStableWebPdf, 2 MB}
-
-@divEnd
-
-
@node FAQ
@unnumberedsec FAQ
@translationof FAQ
@divEnd
+@node Web
+@unnumberedsec Web
+@translationof Web
+
+@divClass{column-left-top}
+@subheading Web
+
+Dieses Handbuch stellt allgemeine Information zu LilyPond zur
+Verfügung. Es enthält auch Information über die verschiedenen
+Gemeinschaftsforen, das Melden von Fehlern und die Mitarbeit am
+Programm.
+
+@divEnd
+
+@divClass{column-right-bottom}
+@subheading Lesen Sie es
+
+@subsubheading Das neueste Handbuch
+
+@divClass{keep-bullets}
+@itemize
+@ref{Top,Web}
+@end itemize
+@divEnd
+
+@subsubheading Web-Handbuch von @versionDevel
+
+@docLinksBare{Web, web,
+ @ref{Top,Web},
+ @manualDevelWebSplit,
+ @manualDevelWebBig, 1 MB,
+ @manualDevelWebPdf, 2 MB}
+
+@divEnd
+
+
+
@node Änderungen
@unnumberedsec Änderungen
@translationof Changes
@c this should match the (main) manual page.
@divClass{column-center-top}
-@subheading Einleitung
+@subheading Einführung
@itemize
@c no colon : needed in this section
-@item @ifWebLinks{@manualStableLearningSplit,@rlearningnamed{Top,Einführung}}
+@item @ifWebLinks{@manualStableLearningSplit,@rlearningnamed{Top,Handbuch zum Lernen}}
eine sanfte @qq{unbedingt lesen!} Einführung in LilyPond.
@item @ifWebLinks{@manualStableGlossarySplit,@rglosnamed{Top,Glossar}}
@itemize
-@item @ifWebLinks{@manualStableNotationSplit,@rusernamed{Top,Notation}}
+@item @ifWebLinks{@manualStableNotationSplit,@rusernamed{Top,Notationsreferenz}}
der hauptsächliche Teil der Dokumentation, welcher detailierte
Information zur Notensatzerstellung zur Verfügung stellt.
@divClass{column-center-bottom}
@subheading Versionen zum Herunterladen
-@help{Vergleich von Tar und Zip-Größe, wie gehen Windowsbenutzer
-mit gz und bz2 um etc.}
-@help{oder: warten bis die neue Doku-Version erscheint. Entschuldigung,
-dass es keine Tar-Pakete gibt.}
+@ifclear web_version
+Tar-Archive zum Herunterladen sind nur über @uref{http://lilypond.org}
+erhältlich.
+@end ifclear
+@ifset web_version
@divClass{keep-bullets}
@itemize
-@item html-split zip
-
-@item html-big zip
-
-@item pdf zip
-
-@item info zip maybe?!?!
+@item @doctarballStable
@end itemize
@divEnd
+@end ifset
+@divEnd
+
+@divClass{column-right-bottom}
@subheading Alte stabile Versionen
@divClass{keep-bullets}
@item @uref{http://lilypond.org/doc/v2.8/Documentation/,
LilyPond 2.8 Dokumentation} (auf englisch)
-@help wer schreibt das?
@end itemize
@c require adding a new snippet option to lilypond-book.py
@c check formatting of HTML output
-@c Notes:
-@c Incorrect beaming in the Sarabande is a known bug.
-
@menu
* Historia de LilyPond::
* Detalles del grabado::
* Grabado automatizado::
-* ¿Qué símbolos grabar?::
-* Representación musical::
-* Aplicaciones de ejemplo::
-* Apéndice::
+* Construcción del software::
+* Poner a LilyPond a trabajar::
+* Ejemplos de partituras (BWV 861)::
@end menu
@node Historia de LilyPond
aprecia como un fragmento de música vivo y palpitante, mientras que la
edición más reciente parece fría y mecánica.
-Es un poco difícil apreciar inmediatamente en qué consiste la
+Es difícil apreciar inmediatamente en qué consiste la
diferencia entra las ediciones antigua y nueva. En ésta todo parece
pulcro y detallista, posiblemente incluso @qq{mejor} a causa de su
aspecto computerizado y uniforme. De hecho, esto nos tuvo confundidos
Existen también otras diferencias: en la edición grabada a mano todas
las líneas verticales son más gruesas, las ligaduras quedan más cerca
-de la cabeza de las notas, y hay más variedad visual en la colocación
+de la cabeza de las notas, y hay más variedad en las inclinaciones
de las barras de corchea. Aunque dichos detalles pueden parecer
minucias, el resultado es una partitura más fácil de leer. En la
partitura de ordenador, todas las líneas son casi idénticas y si el
-músico levanta la mirada por un momento, probablemente se pierda por
+músico levanta la mirada por un momento probablemente se pierda por
la página.
LilyPond se diseñó para resolver los problemas que encontramos en el
software existente y para crear notación musical bella que emulara a
-las mejores partituras trazadas a mano. Al mismo tiempo, hemos
-aprendido una gran lección sobre el trabajo implícito en una partitura
-bien trazada. En este ensayo vamos a describir algunos de esos
-aspectos que hemos tratado de imitar en LilyPond.
+las mejores partituras trazadas a mano.
@iftex
@page
hasta la primera mitad del s.XX, entre ellos Bärenreiter, Duhem,
Durand, Hofmeister, Peters y Schott. En ocasiones se consideran a
éstos como la cima de la práctica del grabado musical tradicional.
+Según hemos estudiado estas ediciones, hemos aprendido una gran
+lección sobre el trabajo implícito en una partitura bien trazada, y
+los aspectos de ella que queríamos tratar de imitar en LilyPond.
@c Now all newly printed music is produced with computers. This has
@c obvious advantages: prints are cheaper to make, editorial work can be
Aquí describimos lo que se necesita para crear un software que pueda
recrear la disposición de las partituras grabadas: un método de
-explicar las buenas disposiciones al ordenador, comparaciones
-detalladas con grabados reales, y la flexibilidad suficiente para
-enfrentarse al amplio rango de desafíos que puede presentar la música
-impresa.
+explicar las buenas disposiciones al ordenador, y gran cantidad de
+comparaciones detalladas con grabados de música reales.
@menu
* Concursos de belleza::
* Mejoras por medio de pruebas::
* Hacer las cosas bien::
-* Arquitectura flexible::
@end menu
@node Concursos de belleza
Por ejemplo, tenemos aquí tres configuraciones posibles para la
ligadura, y LilyPond ha otorgado una puntuación a cada una en
@q{puntos de fealdad}. El primer ejemplo obtiene 15.39 puntos por
-rozar una de las notas:
+rozar la cabeza de una de las figuras:
@lilypond
\relative c {
longitud de una octava aproximadamente, pero los grabadores acortan
esta longitud cuando la barra apunta hacia fuera de la pauta en música
de varias voces. El barrado de Finale se puede mejorar fácilmente con
-el complemento de barras de Patterson, pero hemos decidido saltarnos
+su complemento de barras de Patterson, pero hemos decidido saltarnos
ese paso para este ejemplo.
@item Finale no ajusta las posiciones de las cabezas que se bloquean mutuamente,
lo que hace a la música extremadamente difícil de leer cuando las
Donde se necesitan ajustes manuales, la estructura de LilyPond está
diseñada teniendo en mente esa flexibilidad.
-@node Arquitectura flexible
-@unnumberedsubsec Arquitectura flexible
-@translationof Flexible architecture
-Al principio escribimos el programa LilyPond completamente en el
-lenguaje de programación C++; la funcionalidad del programa estaba
-grabada en piedra por parte de los desarrolladores. Se comprobó que
-esto no era satisfactorio por unas cuantas razones:
+@node Construcción del software
+@section Construcción del software
+@translationof Building software
-@itemize
+Esta sección describe algunas de las decisiones de programación que
+hicimos cuando diseñamos el programa LilyPond.
-@item Cuando LilyPond comete errores, los usuarios necesitan sobreescribir
-las decisiones de formateo. Por tanto, el usuario debe tener acceso
-al motor de formateo. De aquí que las reglas y los ajustes
-predeterminados no se puedan fijar por nuestra parte en el tiempo de
-compilación sino que deben estar accesibles para los usuarios en el
-tiempo de ejecución.
+@menu
+* Representación musical::
+* ¿Qué símbolos grabar?::
+* Arquitectura flexible::
+@end menu
-@item El grabado musical es cuestión de juicio visual, y por tanto está en
-el terreno del buen gusto. Por más entendidos que pretendamos ser,
-nuestros usuarios siempre podrían discrepar de nuestras decisiones
-personales. Por ello, las definiciones del estilo tipográfico debe
-también ser accesible para el usuario.
-@item Finalmente, nos encontramos refinando continuamente los algoritmos de
-formateo, por lo que necesitamos un enfoque flexible para las reglas.
-El lenguaje C++ fuerza un cierto método de agrupación de las reglas
-que no está preparado para aplicarse al formateo de la notación
-musical.
+@node Representación musical
+@unnumberedsubsec Representación musical
+@translationof Music representation
-@end itemize
+@cindex sintaxis
+@cindex recursivas, estructuras
-@cindex Scheme, lenguaje de programación
+Idealmente, el formato de entrada de cualquier sistema de formateado
+de alto nivel es una descripción abstracta del contenido. En este
+caso, eso sería la propia música. Ello presenta un enorme problema:
+¿cómo podemos definir qué es la música realmente? En lugar de buscar
+una respuesta, le hemos dado la vuelta a la pregunta. Escribimos un
+programa capaz de producir música impresa, y luego ajustamos el
+formato de forma que sea lo más escueto posible. Cuando el formato ya
+no se puede recortar más, por definición nos estamos quedando con el
+propio contenido. Nuestro programa sirve como una definición formal
+de un documento musical.
-Estos programas se han solucionado integrando un intérprete para el
-lenguaje de programación Scheme y reescribiendo partes de LilyPond en
-Scheme. La arquitectura de formateo actual está construida alrededor
-de la noción de objetos gráficos, descritos por medio de variables y
-funciones de Scheme. Esta arquitectura coordina las reglas de
-formateo, el estilo tipográfico y las decisiones de formateo
-individuales. El usuario tiene acceso directo a la mayoría de esos
-controles.
+La sintaxis es también el interfaz de usuario de LilyPond, de aquí
+que sea tan fácil teclear:
-Las variables de Scheme controlan las decisiones de disposición en la
-página. Por ejemplo, muchos objetos gráficos tienen una variable de
-dirección que codifica la elección entre arriba y abajo (o izquierda y
-derecha). A continuación vemos dos acordes, con acentos y símbolos de
-arpegio. En el primer acorde, los objetos gráficos tienen todas las
-direcciones hacia abajo (o hacia la izquierda). El segundo acorde
-tiene todas las direcciones hacia arriba (o hacia la derecha).
+@example
+@{
+ c'4 d'8
+@}
+@end example
-@lilypond[quote,ragged-right]
-\new Score \with {
- \override SpacingSpanner #'spacing-increment = #3
- \override TimeSignature #'transparent = ##t
-} \relative c' {
- \stemDown <e g b>4_>-\arpeggio
- \override Arpeggio #'direction = #RIGHT
- \stemUp <e g b>4^>-\arpeggio
+@noindent
+para crear un Do central negra (Do 4) y un Re por encima del Do
+central, corchea (Re 4).
+
+@lilypond[quote]
+{
+ c'4 d'8
}
@end lilypond
-@cindex partitura, formateo de
-@cindex formateo de una partitura
-@cindex formateo, reglas de
+A una escala microscópica, esta sintaxis es fácil de usar. A una
+escala mayor, la sintaxis necesita también una estructura. ¿De qué
+otra forma podríamos introducir piezas complejas como sinfonías u
+óperas? La estructura se forma por medio del concepto de expresiones
+musicales: combinando pequeños fragmentos de música dentro de otros
+más grandes, se puede expresar una música más compleja. Por ejemplo:
+
+@lilypond[quote,verbatim,fragment,relative=1]
+f4
+@end lilypond
@noindent
-El proceso de dar formato a una partitura comprende la lectura y
-escritura de las variables de los objetos gráficos. Algunas variables
-tienen un valor preestablecido. Por ejemplo, el grosor de muchas
-líneas (una característica del estilo tipográfico) es una variable con
-un valor preestablecido. Somos libres de alterar este valor, dando a
-nuestra partitura una impresión tipográfica distinta.
+Las notas simultáneas se pueden construir encerrándolas dentro de
+@code{<<} y @code{>>}:
-@lilypond[quote,ragged-right]
-fragment = {
- \clef bass f8 as8
- c'4-~ c'16 as g f e16 g bes c' des'4
-}
+@example
+<<c4 d4 e4>>
+@end example
+
+@lilypond[quote,fragment,relative=1]
+\new Voice { <<c4 d4 e>> }
+@end lilypond
+
+@noindent
+La expresión se pone en secuencia encerrándola dentro de llaves
+@code{@{@tie{}@dots{}@tie{}@}}:
+
+@example
+@{ f4 <<c4 d4 e4>> @}
+@end example
+
+@lilypond[quote,relative=1,fragment]
+{ f4 <<c d e4>> }
+@end lilypond
+
+@noindent
+Esto es también una expresión, y así se puede combinar de nuevo con
+otra expresión simultánea (una blanca) utilizando @code{<<}, @code{\\}
+y @code{>>}:
+
+@example
+<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>
+@end example
+
+@lilypond[quote,fragment,relative=2]
+\new Voice { << g2 \\ { f4 <<c d e>> } >> }
+@end lilypond
+
+Tales estructuras recursivas se pueden especificar limpia y
+formalmente dentro de una gramática independiente del contexto. El
+código del analizador sintáctico también se genera a partir de esta
+gramática. Dicho de otra forma, la sintaxis de LilyPond está definida
+claramente y sin ambigüedades.
+
+Los interfaces de usuario y la sintaxis son aquello que la gente ve y
+con lo que trata más frecuentemente. Son, en parte, cuestión de
+gusto, y también objeto de mucha discusión. Aunque las discusiones
+sobre el gusto tienen su mérito, no son muy productivas. Bajo el
+punto de vista más amplio de LilyPond, la importancia de la sintaxis
+de la entrada es pequeña: inventarse una sintaxis limpia es fácil,
+pero escribir un código de formatead que sea decente es mucho más
+difícil. Esto queda ilustrado por la cantidad de líneas que están
+dedicadas a los componentes respectivos: el análisis sintáctico y la
+representación se llevan menos del 10% del código fuente.
+
+Cuando estábamos diseñando las estructuras utilizadas dentro de
+LilyPond, tomamos algunas decisiones de forma diferente a como es
+aparente en otros programas. Consideremos la naturaleza jerárquica de
+la notación musical:
+
+@lilypond[quote,fragment]
<<
- \new Staff \fragment
- \new Staff \with {
- \override Beam #'beam-thickness = #0.3
- \override Stem #'thickness = #0.5
- \override Bar #'thickness = #3.6
- \override Tie #'thickness = #2.2
- \override StaffSymbol #'thickness = #3.0
- \override Tie #'extra-offset = #'(0 . 0.3)
- }
- \fragment
+\new Staff \relative c'' {
+ \key g \major
+ \time 3/4
+ d4 g,8 a b c d4 g, g
+}
+\new Staff \relative c' {
+ \clef "bass"
+ \key g \major
+ <g b d>2 a4 b2.
+}
>>
@end lilypond
-Las reglas de formateado también son variables preestablecidas: cada
-objeto tiene variables que contienen procedimientos. Estos
-procedimientos realizan el formateo propiamente dicho, y mediante la
-sustitución de unos u otros, podemos modificar el aspecto de los
-objetos. En el ejemplo siguiente, la regla que gobierna qué objetos
-de cabeza se utilizan para producir el símbolo de la cabeza, se cambia
-a lo largo del fragmento musical.
+En este caso, hay notas agrupadas en acordes que están dentro de
+compases, que pertenecen a pentagramas. Esto se parece a una
+estructura ordenada de cajas anidadas unas dentro de otras:
-@lilypond[quote,ragged-right]
-#(set-global-staff-size 30)
+@quotation
+@iftex
+@sourceimage{pdf/nestedboxes,,4cm,}
+@end iftex
+@ifnottex
+@sourceimage{nestedboxes,,,png}
+@end ifnottex
+@end quotation
-#(define (mc-squared grob orig current)
- (let* ((interfaces (ly:grob-interfaces grob))
- (pos (ly:grob-property grob 'staff-position)))
- (if (memq 'note-head-interface interfaces)
- (begin
- (ly:grob-set-property! grob 'stencil
- (grob-interpret-markup grob
- (make-lower-markup 0.5
- (case pos
- ((-5) "m")
- ((-3) "c ")
- ((-2) (make-smaller-markup (make-bold-markup "2")))
- (else "bla")))))))))
+Desgraciadamente la estructura resulta ordenada porque está basada en
+algunas suposiciones excesivamente restrictivas. Este extremo se hace
+aparente si tenemos en cuenta un ejemplo musical más complejo:
-\new Voice \relative c' {
- \stemUp
- \set autoBeaming = ##f
- \time 2/4
- <d f g>4
- \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
- \once \override NoteHead #'font-size = #-7
- \once \override NoteHead #'font-family = #'sans
- \once \override NoteHead #'font-series = #'bold
- <d f g>4
- \once \override NoteHead #'style = #'cross
- <d f g>4
- \applyOutput #'Voice #mc-squared
- <d f g>4
- <<
- { d8[ es-( fis^^ g] fis2-) }
- \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
- >>
+@lilypond[quote]
+\layout {
+ \context {
+ \Score
+ \remove "Timing_translator"
+ \remove "Default_bar_line_engraver"
+ }
+ \context {
+ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ }
}
+
+\new PianoStaff <<
+ \new Staff = "RH" <<
+ \new Voice = "I" \relative c''' {
+ \time 3/4
+ \voiceOne
+ \times 6/7 {g8 g g g g g g}
+ \oneVoice
+ r4 <b,, fis' g bes> r4\fermata
+ }
+ \new Voice = "II" \relative c' {
+ \voiceTwo
+ c4
+ \times 4/5 {
+ <c ees>8 f g
+ \change Staff = "LH" \oneVoice
+ \stemUp g,( c}
+ r4
+ \override Stem #'cross-staff = ##t
+ \override Stem #'length = #12
+ <fis, b>) r\fermata
+ }
+ >>
+ \new Staff = "LH" <<
+ \new Voice = "III" \relative c' {
+ \time 2/4
+ \clef "bass"
+ g4 \stopStaff s
+ \startStaff s2*2
+ }
+ >>
+>>
@end lilypond
+En este ejemplo, los pentagramas parecen iniciarse y terminar a
+capricho, las voces saltan de un pentagrama a otro, y las pautas
+tienen tipos de compás diferentes. Muchos programas se las ven y se
+las desean para reproducir este ejemplo porque están construidos sobre
+la estructura de las cajas anidadas. Con LilyPond, por el contrario,
+hemos tratado de conservar el formato del código de entrada y la
+estructura lo más flexibles posible.
@node ¿Qué símbolos grabar?
-@section ¿Qué símbolos grabar?
+@unnumberedsubsec ¿Qué símbolos grabar?
@translationof What symbols to engrave?
@cindex grabado
único contexto de partitura. El contexto de partitura es el contexto
de notación del nivel más alto que hay.
-
-@seealso
-Referencia de funcionamiento interno:
-@rinternals{Contexts}.
-
-
@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
}
@end lilypond
+@seealso
+Referencia de funcionamiento interno:
+@rinternals{Contexts}.
-@node Representación musical
-@section Representación musical
-@translationof Music representation
-
-@cindex sintaxis
-@cindex recursivas, estructuras
+@node Arquitectura flexible
+@unnumberedsubsec Arquitectura flexible
+@translationof Flexible architecture
-Idealmente, el formato de entrada de cualquier sistema de formateado
-de alto nivel es una descripción abstracta del contenido. En este
-caso, eso sería la propia música. Ello presenta un enorme problema:
-¿cómo podemos definir qué es la música realmente? En lugar de buscar
-una respuesta, le hemos dado la vuelta a la pregunta. Escribimos un
-programa capaz de producir música impresa, y luego ajustamos el
-formato de forma que sea lo más escueto posible. Cuando el formato ya
-no se puede recortar más, por definición nos estamos quedando con el
-propio contenido. Nuestro programa sirve como una definición formal
-de un documento musical.
+Al principio escribimos el programa LilyPond completamente en el
+lenguaje de programación C++; la funcionalidad del programa estaba
+grabada en piedra por parte de los desarrolladores. Se comprobó que
+esto no era satisfactorio por unas cuantas razones:
-La sintaxis es también el interfaz de usuario de LilyPond, de aquí
-que sea tan fácil teclear:
+@itemize
-@example
-@{
- c'4 d'8
-@}
-@end example
+@item Cuando LilyPond comete errores, los usuarios necesitan sobreescribir
+las decisiones de formateo. Por tanto, el usuario debe tener acceso
+al motor de formateo. De aquí que las reglas y los ajustes
+predeterminados no se puedan fijar por nuestra parte en el tiempo de
+compilación sino que deben estar accesibles para los usuarios en el
+tiempo de ejecución.
-@noindent
-para crear un Do central negra (Do 4) y un Re por encima del Do
-central, corchea (Re 4).
+@item El grabado musical es cuestión de juicio visual, y por tanto está en
+el terreno del buen gusto. Por más entendidos que pretendamos ser,
+nuestros usuarios siempre podrían discrepar de nuestras decisiones
+personales. Por ello, las definiciones del estilo tipográfico debe
+también ser accesible para el usuario.
-@lilypond[quote]
-{
- c'4 d'8
-}
-@end lilypond
+@item Finalmente, nos encontramos refinando continuamente los algoritmos de
+formateo, por lo que necesitamos un enfoque flexible para las reglas.
+El lenguaje C++ fuerza un cierto método de agrupación de las reglas
+que no está preparado para aplicarse al formateo de la notación
+musical.
-A una escala microscópica, esta sintaxis es fácil de usar. A una
-escala mayor, la sintaxis necesita también una estructura. ¿De qué
-otra forma podríamos introducir piezas complejas como sinfonías u
-óperas? La estructura se forma por medio del concepto de expresiones
-musicales: combinando pequeños fragmentos de música dentro de otros
-más grandes, se puede expresar una música más compleja. Por ejemplo:
+@end itemize
-@lilypond[quote,verbatim,fragment,relative=1]
-f4
-@end lilypond
+@cindex Scheme, lenguaje de programación
-@noindent
-Las notas simultáneas se pueden construir encerrándolas dentro de
-@code{<<} y @code{>>}:
+Estos programas se han solucionado integrando un intérprete para el
+lenguaje de programación Scheme y reescribiendo partes de LilyPond en
+Scheme. La arquitectura de formateo actual está construida alrededor
+de la noción de objetos gráficos, descritos por medio de variables y
+funciones de Scheme. Esta arquitectura coordina las reglas de
+formateo, el estilo tipográfico y las decisiones de formateo
+individuales. El usuario tiene acceso directo a la mayoría de esos
+controles.
-@example
-<<c4 d4 e4>>
-@end example
+Las variables de Scheme controlan las decisiones de disposición en la
+página. Por ejemplo, muchos objetos gráficos tienen una variable de
+dirección que codifica la elección entre arriba y abajo (o izquierda y
+derecha). A continuación vemos dos acordes, con acentos y símbolos de
+arpegio. En el primer acorde, los objetos gráficos tienen todas las
+direcciones hacia abajo (o hacia la izquierda). El segundo acorde
+tiene todas las direcciones hacia arriba (o hacia la derecha).
-@lilypond[quote,fragment,relative=1]
-\new Voice { <<c4 d4 e>> }
+@lilypond[quote,ragged-right]
+\new Score \with {
+ \override SpacingSpanner #'spacing-increment = #3
+ \override TimeSignature #'transparent = ##t
+} \relative c' {
+ \stemDown <e g b>4_>-\arpeggio
+ \override Arpeggio #'direction = #RIGHT
+ \stemUp <e g b>4^>-\arpeggio
+}
@end lilypond
-@noindent
-La expresión se pone en secuencia encerrándola dentro de llaves
-@code{@{@tie{}@dots{}@tie{}@}}:
+@cindex partitura, formateo de
+@cindex formateo de una partitura
+@cindex formateo, reglas de
-@example
-@{ f4 <<c4 d4 e4>> @}
-@end example
+@noindent
+El proceso de dar formato a una partitura comprende la lectura y
+escritura de las variables de los objetos gráficos. Algunas variables
+tienen un valor preestablecido. Por ejemplo, el grosor de muchas
+líneas (una característica del estilo tipográfico) es una variable con
+un valor preestablecido. Somos libres de alterar este valor, dando a
+nuestra partitura una impresión tipográfica distinta.
-@lilypond[quote,relative=1,fragment]
-{ f4 <<c d e4>> }
+@lilypond[quote,ragged-right]
+fragment = {
+ \clef bass f8 as8
+ c'4-~ c'16 as g f e16 g bes c' des'4
+}
+<<
+ \new Staff \fragment
+ \new Staff \with {
+ \override Beam #'beam-thickness = #0.3
+ \override Stem #'thickness = #0.5
+ \override Bar #'thickness = #3.6
+ \override Tie #'thickness = #2.2
+ \override StaffSymbol #'thickness = #3.0
+ \override Tie #'extra-offset = #'(0 . 0.3)
+ }
+ \fragment
+>>
@end lilypond
-@noindent
-Esto es también una expresión, y así se puede combinar de nuevo con
-otra expresión simultánea (una blanca) utilizando @code{<<}, @code{\\}
-y @code{>>}:
+Las reglas de formateado también son variables preestablecidas: cada
+objeto tiene variables que contienen procedimientos. Estos
+procedimientos realizan el formateo propiamente dicho, y mediante la
+sustitución de unos u otros, podemos modificar el aspecto de los
+objetos. En el ejemplo siguiente, la regla que gobierna qué objetos
+de cabeza se utilizan para producir el símbolo de la cabeza, se cambia
+a lo largo del fragmento musical.
-@example
-<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>
-@end example
+@lilypond[quote,ragged-right]
+#(set-global-staff-size 30)
-@lilypond[quote,fragment,relative=2]
-\new Voice { << g2 \\ { f4 <<c d e>> } >> }
-@end lilypond
+#(define (mc-squared grob orig current)
+ (let* ((interfaces (ly:grob-interfaces grob))
+ (pos (ly:grob-property grob 'staff-position)))
+ (if (memq 'note-head-interface interfaces)
+ (begin
+ (ly:grob-set-property! grob 'stencil
+ (grob-interpret-markup grob
+ (make-lower-markup 0.5
+ (case pos
+ ((-5) "m")
+ ((-3) "c ")
+ ((-2) (make-smaller-markup (make-bold-markup "2")))
+ (else "bla")))))))))
-Tales estructuras recursivas se pueden especificar limpia y
-formalmente dentro de una gramática independiente del contexto. El
-código del analizador sintáctico también se genera a partir de esta
-gramática. Dicho de otra forma, la sintaxis de LilyPond está definida
-claramente y sin ambigüedades.
+\new Voice \relative c' {
+ \stemUp
+ \set autoBeaming = ##f
+ \time 2/4
+ <d f g>4
+ \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
+ \once \override NoteHead #'font-size = #-7
+ \once \override NoteHead #'font-family = #'sans
+ \once \override NoteHead #'font-series = #'bold
+ <d f g>4
+ \once \override NoteHead #'style = #'cross
+ <d f g>4
+ \applyOutput #'Voice #mc-squared
+ <d f g>4
+ <<
+ { d8[ es-( fis^^ g] fis2-) }
+ \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+ >>
+}
+@end lilypond
-Los interfaces de usuario y la sintaxis son aquello que la gente ve y
-con lo que trata más frecuentemente. Son, en parte, cuestión de
-gusto, y también objeto de mucha discusión. Aunque las discusiones
-sobre el gusto tienen su mérito, no son muy productivas. Bajo el
-punto de vista más amplio de LilyPond, la importancia de la sintaxis
-de la entrada es pequeña: inventarse una sintaxis limpia es fácil,
-pero escribir un código de formatead que sea decente es mucho más
-difícil. Esto queda ilustrado por la cantidad de líneas que están
-dedicadas a los componentes respectivos: el análisis sintáctico y la
-representación se llevan menos del 10% del código fuente.
-@node Aplicaciones de ejemplo
-@section Aplicaciones de ejemplo
-@translationof Example applications
+@node Poner a LilyPond a trabajar
+@section Poner a LilyPond a trabajar
+@translationof Putting LilyPond to work
@cindex simple, ejemplos
@cindex ejemplos simples
También puede imprimirse notación polifónica y música para piano. El
ejemplo siguiente combina unas pocas construcciones algo más exóticas.
-@lilypond[quote]
+@lilypond[quote,line-width=15.9\cm]
\header {
title = "Screech and boink"
subtitle = "Random complex notation"
Este manual muestra también una aplicación: el formato de entrada es
texto, y puede ser por tanto fácilmente empotrado dentro de otros
formatos basados en texto como @LaTeX{}, HTML, o en el caso de este
-manual, Texinfo. Por medio de un programa especial, los fragmentos de
-entrada se pueden reemplazar por imágenes de la música en los archivos
-de salida PDF o HTML resultantes. De esta forma se hace fácil la
-mezcla de música y texto dentro de los documentos.
-
+manual, Texinfo. Utilizando el programa @command{lilypond-book}, que
+viene incluido con LilyPond, los fragmentos de entrada se pueden
+reemplazar por imágenes de la música en los archivos de salida PDF o
+HTML resultantes. Otro ejemplo es la extensión (de terceras partes)
+OOoLilyPond para OpenOffice.org, que hace de la inclusión de ejemplos
+musicales dentro de los documentos, una tarea extremadamente sencilla.
-@c TODO: add extra chapter for computer aesthetics?
+Para ver más ejemplos de LilyPond en acción, la documentación
+completa, y el programa propiamente dicho, visite nuestra página
+principal: www.lilypond.org.
@page
-@node Apéndice
-@section Apéndice
-@translationof Appendix
+@node Ejemplos de partituras (BWV 861)
+@section Ejemplos de partituras (BWV 861)
+@translationof Engraved examples (BWV 861)
-Este apéndice contiene cuatro grabados musicales de referencia y dos
+Esta sección contiene cuatro grabados musicales de referencia y dos
versiones grabadas por ordenador de la fuga en Sol menor del libro I
del Clave Bien Temperado, BWV 861, de Bach (los últimos siete
compases).
ISOLANG = fr
depth = ../..
-SUBDIRS = web learning notation texidocs usage included
+SUBDIRS = web learning notation texidocs usage included essay
STEPMAKE_TEMPLATES = documentation
LOCALSTEPMAKE_TEMPLATES = lilypond ly doc-i18n-root
--- /dev/null
+depth = ../../..
+
+LOCALSTEPMAKE_TEMPLATES = ly
+
+include $(depth)/make/stepmake.make
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+
+@ignore
+ Translation of GIT committish: 9c14e95e980875a6f5af33562e5a57afa8f389b3
+
+ 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: Jean-Jacques Gerbaud, Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude
+
+
+@node Bibliographie
+@chapter Bibliographie
+@translationof Literature list
+
+Voici des listes de références utilisées dans Lilypond.
+
+@menu
+* Bibliographie succincte::
+* Bibliographie développée::
+@end menu
+
+@node Bibliographie succincte
+@section Bibliographie succincte
+@translationof Short literature list
+
+
+Voici quelques titres intéressants pour en savoir plus
+sur la notation de la musique.
+
+
+@table @cite
+@item Ignatzek 1995
+Klaus Ignatzek, Die Jazzmethode für Klavier. Schott's Söhne
+1995. Mainz, Germany ISBN 3-7957-5140-3.
+
+Une méthode d'introduction pour le jazz au piano. Un des premiers
+chapitres contient une présentation des accords couramment utilisés
+dans la musique de jazz.
+
+
+@item Gerou 1996
+
+Tom Gerou and Linda Lusk, Essential Dictionary of Music
+Notation. Alfred Publishing, Van Nuys CA ISBN 0-88284-768-6.
+
+Une liste concise et classée par ordre alphabétique des éléments de
+notation musicale couramment utilisés, qui couvre la plupart
+des cas usuels.
+
+
+@item Read 1968
+Gardner Read, Music Notation: A Manual of Modern Practice.
+Taplinger Publishing, New York (2nd edition).
+
+Un ouvrage canonique sur la notation de la musique.
+
+@item Ross 1987
+Ted Ross, Teach yourself the art of music engraving and processing.
+Hansen House, Miami, Florida 1987.
+
+Ce livre traite de la gravure musicale, c'est-à-dire de l'édition
+musicale à un niveau professionnel. Il contient des indications sur
+l'estampage, l'utilisation des plumes et les conventions de notation,
+ainsi que d'intéressants chapitres traitant de détails techniques et
+historiques.
+
+@item Schirmer 2001
+The G.Schirmer/AMP Manual of Style and Usage. G.Schirmer/AMP, NY, 2001.
+(Ce livre peut être commandé depuis le service de location.)
+
+Ce manuel se concentre spécifiquement sur la préparation d'épreuves
+pour les publications de Schirmer. Il traite de plusieurs
+détails qu'on ne trouve pas dans les livres plus conventionnels. Il
+donne également une bonne idée de la qualité requise pour des tirages
+destinés à la publication.
+
+@item Stone 1980
+
+Kurt Stone, Music Notation in the Twentieth Century.
+Norton, New York 1980.
+
+Ce livre décrit la notation de la musique savante moderne, mais
+débute par une présentation exhaustive des pratiques traditionnelles
+de notation.
+
+@end table
+
+
+@node Bibliographie développée
+@section Bibliographie développée
+@translationof Long literature list
+
+@c Better left untranslated -vv
+
+@ignore
+@subheading Colorado
+
+@include colorado.itexi
+
+@subheading Notation informatique
+
+@include computer-notation.itexi
+
+@subheading Gravure
+
+@include engravingbib.itexi
+@end ignore
+
+@untranslated
@c \version "2.12.0"
-@c Translators: Jean-Jacques Gerbaud
-@c Translation checkers: Jean-Charles Malahieude, Valentin Villenave
+@c Translators: Jean-Jacques Gerbaud, Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude
@node Musiques du monde
@section Musiques du monde