@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 4582b7b24d22b2041bfcba49e716a714effcce92
+ Translation of GIT committish: 8cbb38db1591ab95a178643e7bf41db018aa22c0
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 \version "2.13.4"
+@c \version "2.14.0"
+
+@c Translators: Till Paala
@node Notensatz
@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
-* Notensatz::
+* Die Geschichte von LilyPond::
+* Details des Notensetzens::
* Automatisierter Notensatz::
-* Welche Symbole?::
-* Die Darstellung der Musik::
-* Beispielanwendung::
+* Ein Programm bauen::
+* LilyPond die Arbeit überlassen::
+* Notensatzbeispiele (BWV 861)::
@end menu
-@node Notensatz
-@unnumberedsubsec Notensatz
-@translationof Engraving
+@node Die Geschichte von LilyPond
+@section Die Geschichte von LilyPond
+@translationof The LilyPond story
+
+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
+Warum schaffen es die meisten computergesetzten Noten nicht, die
+Schönheit und Ausgeglichenheit von handgestochenem Notensatz aufzuweisen?
+@end quotation
+
+@noindent
+Einige der Antworten können gefunden werden, indem wir uns die
+beiden folgenden Noten zur Analyse vornehmen. Das erste Beispiel
+ist ein schöner handgestochener Notensatz von 1950, das zweite
+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
+Violoncello von J. S. Bach, aber ihre Erscheinung ist sehr
+unterschiedlich, insbesondere wenn man sie ausdruckt und aus einigem
+Abstand betrachtet.
+@ifnottex
+(Die PDF-Version dieses Handbuchs hat hochauflösende Abbildungen,
+die sich zum Drucken eignen.)
+@end ifnottex
+Versuchen Sie, beide Beispiele zu lesen oder von ihnen zu spielen,
+und Sie werden feststellen, dass der handgestochene Satz sich
+angenehmer benutzen lässt. Er weist fließende Linien und Bewegung
+auf und fühlt sich wie ein lebendes, atmendes Stück Musik an, während
+die neuere Edition kalt und mechanisch erscheint.
+
+Es ist schwer, sofort die Unterschiede zur neueren Edition auszumachen.
+Alles sieht sauber und fein aus, möglicherweise sogar @qq{besser},
+weil es eher computerkonform und einheitlich wirkt. Das hat uns
+tatsächlich für eine ganze Weile beschäftigt. Wir wollten die
+Computernotation verbessern, aber wir mussten erst verstehen, was
+eigentlich falsch mit ihr war.
+
+Die Antwort findet sich in der präzisen, mathematischen Gleichheit
+der neueren Edition. Suchen Sie die Taktstriche in der Mitte jeder
+Zeile: im handgestochenen Satz hat die Position dieser Taktstriche
+sozusagen natürliche Variation, während die neuere Version sie
+fast immer perfekt in die Mitte setzt. Das zeigen diese vereinfachten
+Diagramme des Seitenlayouts vom handgestochenen (links) und
+Computersatz (rechts):
+
+@quotation
+@iftex
+@sourceimage{pdf/page-layout-comparison,,,}
+@end iftex
+@ifnottex
+@sourceimage{page-layout-comparison,,,png}
+@end ifnottex
+@end quotation
+@noindent
+
+Im Computersatz sind sogar die einzelnen Notenköpfe vertikal
+aneinander ausgerichtet, was dazu führt, dass die Melodie hinter
+einem starren Gitter aus musikalischen Zeichen verschwindet.
+
+Es gibt noch weitere Unterschiede: in der handgestochenen Version
+sind die vertikalen Linien stärker, die Bögen liegen dichter an den
+Notenköpfen und es gibt mehr Abweichungen in der Steigung der
+Balken. Auch wenn derartige Details als Haarspalterei erscheinen,
+haben wir trotzdem als Ergebnis einen Satz, der einfacher zu lesen
+ist. In der Computerausgabe ist jede Zeile fast identisch mit den
+anderen und wenn der Musiker für einen Moment weg schaut, wird
+er die Orientierung auf der Seite verlieren.
+
+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.
+
+@iftex
+@page
+@noindent
+Bärenreiter BA 320, @copyright{}1950:
+
+@sourceimage{baer-suite1-fullpage-hires,16cm,,}
+@page
+@noindent
+Henle no. 666, @copyright{}2000:
+@sp 3
+@sourceimage{henle-suite1-fullpage-hires,16cm,,}
+@page
+@end iftex
+
+
+@node Details des Notensetzens
+@section Details des Notensetzens
+@translationof Engraving details
@cindex Notensatz
@cindex Typographie
@cindex Gravur, Notensatz
@cindex Plattendruck, Noten
-Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser
-Begriff stammt aus dem traditionellen Notendruck. Noch bis vor etwa 20
-Jahren wurden Noten erstellt, indem man sie in eine Zink- oder Zinnplatte
+Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser
+Begriff stammt aus dem traditionellen Notendruck@footnote{Frühe
+europäische Drucker versuchten sich an verschiedenen Techniken
+wie handgeschnitzten Holzblöcken, beweglichen Lettern und
+gravierten dünnen Metallblechen. Der Satz mit Lettern hat den
+Vorteil, dass man ihn schnell korrigieren kann und auch Text
+einfach einfügen kann, aber nur der Notenstich als Gravur
+ermöglichte die Möglichkeit, lebendiges Layout ohne
+Qualitätsabstriche zu erstellen. So wurden der Notenstich
+mit der Hand bis ins 20. Jahrhundert zum Standard für alle
+gedruckten Noten, ausgenommen einige Hymnale und Liederbücher, wo
+der Letterdruck durch seine Einfachheit und Kostenersparnis
+gerechtfertigt war.}. Noch bis vor etwa 20
+Jahren wurden Noten erstellt, indem man sie in eine Zink- oder Zinnplatte
schnitt oder mit Stempeln schlug. Diese Platte wurde dann mit Druckerschwärze
- versehen, so dass sie in den geschnittenen und gestempelten Vertiefungen
-blieb. Diese Vertiefungen schwärzten dann ein auf die Platte gelegtes
-Papier. Das Gravieren wurde vollständig von Hand erledigt. Es war darum
+versehen, so dass sie in den geschnittenen und gestempelten Vertiefungen
+blieb. Diese Vertiefungen schwärzten dann ein auf die Platte gelegtes
+Papier. Das Gravieren wurde vollständig von Hand erledigt. Es war darum
sehr mühsam, Korrekturen anzubringen, weshalb man von vornherein richtig
- schneiden musste. Es handelte sich dabei um ein sehr spezialisiertes Handwerk.
-
-Heutzutage wird fast alle gedruckte Musik von Computern erstellt. Das
-hat einige deutliche Vorteile: Drucke sind billiger als die gravierten
-Platten und der Computersatz kann per E-Mail verschickt werden. Leider
-hat der intensive Einsatz des Computers die graphische Qualität
-des Notensatzes vermindert. Mit dem Computer erstellte Noten sehen
-langweilig und mechanisch aus, was es erschwert, von ihnen zu spielen.
-
-
-@c introduce illustrating aspects of engraving, font...
-Die Abbildung unten illustriert den Unterschied zwischen
-traditionellem Notensatz und einem typischen Computersatz. Das
-dritte Bild zeigt, wie LilyPond die Formen des traditionellen
-Satzes nachahmt. Das linke Bild zeigt ein eingescanntes b-Vorzeichen
-aus einer 2000 herausgegebenen Edition. Das mittlere Bild
-zeigt das b-Vorzeichen derselben Musik aus einer handgestochenen
-Bärenreiter-Ausgabe. Das linke Bild zeigt die typischen Makel
-des Computer-Satzes: Die Notenlinien sind sehr dünn, die Schwärze
-des Vorzeichens entspricht den dünnen Linien und hat eine gerade
-Form mit scharfen Ecken und Kanten. Im Gegensatz dazu hat das
-Bärenreiter-Vorzeichen dicke, geradezu sinnlich rundliche
-Formen. Unser Symbol für das Vorzeichen hat neben anderen
-auch dieses b als Vorbild. Es ist abgerundet und passt zu unseren
-Notenlinien, die sehr viel dicker sind als die der entsprechenden
-Computer-Ausgabe.
-
-@multitable @columnfractions .125 .25 .25 .25 .125
-@item @tab
-@ifnotinfo
+schneiden musste. Die Kunst des Notenstechens war eine sehr
+spezialisierte Handwerkskunst, für die ein Handwerker etwa fünf
+Ausbildungsjahre benötigte, bevor der den Meistertitel tragen durfte.
+Weitere fünf Jahre waren erforderlich, um diese Kunst wirklich zu
+beherrschen.
+
+@quotation
@iftex
-@image{pictures/henle-flat-gray,,4cm}
+@sourceimage{hader-slaan,,7cm,}
@end iftex
@ifnottex
-@image{pictures/henle-flat-gray,,,png}
+@sourceimage{hader-slaan,,,jpg}
@end ifnottex
+@end quotation
+
+LilyPond wurde von den handgestochenen traditionellen Noten
+inspiriert, die in der ersten Hälfte des 20. Jahrhunderts von
+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. 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
+@c Platten und der Computersatz kann per E-Mail verschickt werden. Leider
+@c hat der intensive Einsatz des Computers die graphische Qualität
+@c des Notensatzes vermindert. Mit dem Computer erstellte Noten sehen
+@c langweilig und mechanisch aus, was es erschwert, von ihnen zu spielen.
-@tab
+@menu
+* Notenschriftarten::
+* Optischer Ausgleich::
+* Hilfslinien::
+* Optische Größen::
+* Warum der große Aufwand?::
+ @end menu
+
+@node Notenschriftarten
+@unnumberedsubsec Notenschriftarten
+@translationof Music fonts
+
+Die Abbildung unten illustriert den Unterschied zwischen
+traditionellem Notensatz und einem typischen Computersatz.
+Das linke Bild zeigt ein eingescanntes b-Vorzeichen
+einer handgestochenen Bärenreiter-Edition, das rechte Bild
+hingegen ein Symbol aus einer 2000 herausgegebenen Edition
+der selben Noten. Obwohl beide Bilder mit der gleichen
+Tintenfarbe gedruckt sind, wird die frühere Version dunkler: die
+Notenlinien sind dicker und das Bärenreiter-b hat ein rundliches,
+beinahe sinnliches Aussehen. Der rechte Scan hingegen hat
+dünnere Linien und eine gerade Form mit scharfen Ecken und Kanten.
+
+@multitable @columnfractions .25 .25 .25 .25
+@item @tab
+@ifnotinfo
@iftex
-@image{pictures/baer-flat-gray,,4cm}
+@sourceimage{baer-flat-gray,,4cm,}
@end iftex
@ifnottex
-@image{pictures/baer-flat-gray,,,png}
+@sourceimage{baer-flat-gray,,,png}
@end ifnottex
@tab
@iftex
-@image{pictures/lily-flat-bw,,4cm}
+@sourceimage{henle-flat-gray,,4cm,}
@end iftex
@ifnottex
-@image{pictures/lily-flat-bw,,,png}
+@sourceimage{henle-flat-gray,,,png}
@end ifnottex
+
@end ifnotinfo
@ifinfo
-@image{pictures/henle-flat-bw,,,png}
-@image{pictures/baer-flat-bw,,,,png}
-@image{pictures/lily-flat-bw,,,png}
+@sourceimage{henle-flat-bw,,,png}
+@sourceimage{baer-flat-bw,,,png}
+@sourceimage{lily-flat-bw,,,png}
@end ifinfo
+
@item @tab
-Henle (2000)
-@tab
Bärenreiter (1950)
@tab
-LilyPond Feta-Schriftart (2003)
+Henle (2000)
@end multitable
@cindex Dichte
@cindex Balance
-@c introduce illustrating aspects of engraving, spacing...
-Die Verteilung der Noten innerhalb des Taktes sollte ihrer Dauer
-entsprechen. Moderne Partituren zeigen diese Verhältnisse jedoch
-mit einer mathematischen Präzision, die nur sehr schlechte
-Ergebnisse bringt. Im nächsten Beispiel ist ein Motiv zweimal
-gesetzt: einmal mit den exakten mathematischen Längenverhältnissen, dann
-mit kleinen Korrekturen. Welches von beiden ist mit dieser Korrektur
-gesetzt?
+Als wir uns entschlossen hatten, ein Programm zu schreiben, das
+die Typographie des Notensatzes beherrscht, gab es keine freien
+Musikschriftarten, die unserem geplanten eleganten Notenbild passen
+würden. Unbeirrt schufen wir eine Schriftart und dazu einen
+Computerfont mit den musikalischen Symbolen, wobei wir uns an den
+schönen Musikdrucken der handgestochenen Noten orientierten. Ohne
+diese Erfahrung hätten wir nie verstanden, wie hässlich die
+Schriftarten waren, die wir zuerst bewunderten.
+
+Unten ein Beispiel zweier Notenschriftarten. Das obere Beispiel ist der
+Standard im Sibelius-Programm (die @emph{Opus}-Schriftart), das
+untere unsere eigene LilyPond-Schriftart.
+
+@quotation
+@iftex
+@sourceimage{pdf/OpusAndFeta,,,}
+@end iftex
+@ifnottex
+@sourceimage{OpusAndFeta,,,png}
+@end ifnottex
+@end quotation
+
+Die LilyPond-Symbole sind schwerer und ihre Dicke ist durchgängiger,
+wodurch sie einfacher zu lesen sind. Feine Enden, wie etwa die
+Seiten der Viertelpause, sollten nicht als scharfe Spitzen enden,
+sondern etwas abgerundet. Das liegt daran, dass scharfe Enden
+der Stempel sehr fragil sind und sich schnell durch die Verwendung
+abnutzen. Zusammengefasst muss die Schwärze der Schriftart sehr
+vorsichtig mit der Schwärze von Notenlinien, Balken und Bögen
+abgeglichen werden, um ein starkes, aber doch ausgewogenes Gesamtbild
+zu ergeben.
+
+Einige weitere Besonderheiten: der Notenkopf der Halben ist nicht
+elliptisch, sondern etwas rautenförmig. Der vertikale Hals des
+b-Symbols ist schwach keilförmig nach oben hin. Das Kreuz und das
+Auflösungszeichen sind einfacher aus der Entfernung zu unterscheiden,
+weil ihre schrägen Linien eine andere Neigung haben und die vertikalen
+Linien dicker sind.
+
+@node Optischer Ausgleich
+@unnumberedsubsec Optischer Ausgleich
+@translationof Optical spacing
+
+Die Aufteilung der Noten in der Horizontalen sollte die Dauer der
+jeweiligen Note widerspiegeln. Wie wir jedoch im Beispiel der
+Bach-Suite oben sehen konnten, orientieren sich viele moderne
+Partituren an den Dauern mit mathematischer Präzision, was zu
+schlechten Ergebnissen führt. Im nächsten Beispiel ist ein Motiv
+zweimal dargestellt: das erste Mal mit exakter mathematischer
+Aufteilung, das zweite Mal mit Korrekturen. Welches Beispiel
+spricht Sie mehr an?
@cindex Optischer Ausgleich
-@c file spacing-optical.
-@c need to include it here, because we want two images.
+
@lilypond
\paper {
ragged-right = ##t
}
music = {
- c'4 e''4 e'4 b'4 |
+ c'4 e''4 e'4 b'4
\stemDown
b'8[ e'' a' e'']
\stemNeutral
e'8[ e'8 e'8 e'8]
}
-
\score
{
\music
\layout {
\context {
\Staff
- \override NoteSpacing #'stem-spacing-correction = #0.6
+ \override NoteSpacing #'stem-spacing-correction = #0.0
+ \override NoteSpacing #'same-direction-correction = #0.0
+ \override StaffSpacing #'stem-spacing-correction = #0.0
}
}
}
\stemNeutral
e'8[ e'8 e'8 e'8]
}
+
\score
{
\music
\layout {
\context {
\Staff
- \override NoteSpacing #'stem-spacing-correction = #0.0
- \override NoteSpacing #'same-direction-correction = #0.0
- \override StaffSpacing #'stem-spacing-correction = #0.0
+ \override NoteSpacing #'stem-spacing-correction = #0.6
}
}
}
@cindex Abstände, normal
@cindex Rhythmen, normal
-In diesem Ausschnitt kommen nur Viertel vor, Noten, die in einem
- gleichmäßigen Rhythmus gespielt werden. Die Abstände sollten das
- widerspiegeln. Leider lässt uns aber das Auge im Stich: es beachtet
- nicht nur den Abstand von aufeinander folgenden Notenköpfen, sondern
- auch den ihrer Hälse. Also müssen Noten, deren Hälse in direkter
- Folge zuerst nach oben und dann nach unten ausgerichtet sind, weiter
- auseinander gezogen werden, während die unten/oben-Folge engere
- Abstände fordert, und das alles auch noch in Abhängigkeit von der
-vertikalen Position der Noten. Das obere Beispiel ist mit dieser
-Korrektur gesetzt, das untere ohne. In letzterem Fall bilden sich
-für das Auge bei unten/oben-Folgen Notenklumpen mit schmalen Abständen
-zwischen den Notenhälsen.
+In jedem Takt in diesem Ausschnitt kommen Noten vor, die in einem
+gleichmäßigen Rhythmus gespielt werden. Die Abstände sollten das
+widerspiegeln. Leider lässt uns aber das Auge im Stich: es beachtet
+nicht nur den Abstand von aufeinander folgenden Notenköpfen, sondern
+auch den ihrer Hälse. Also müssen Noten, deren Hälse in direkter
+Folge zuerst nach oben und dann nach unten ausgerichtet sind, weiter
+auseinander gezogen werden, während die unten/oben-Folge engere
+Abstände fordert, und das alles auch noch in Abhängigkeit von der
+vertikalen Position der Noten. Das untere Beispiel ist mit dieser
+Korrektur gesetzt. Im oberen Beispiel hingegen bilden sich
+für das Auge bei unten/oben-Folgen Notenklumpen. Ein Notenstechermeister
+hätte die Notenaufteilung angepasst, sodass die angenehm zu lesen ist.
+
+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.
+
+
+@node Hilfslinien
+@unnumberedsubsec Hilfslinien
+@translationof Ledger lines
+
+@cindex Hilfslinien
+@cindex Zusammenstöße
+
+Hilfslinien stellen eine typographische Herausforderung dar: sie
+machen es schwerer, die Notensymbole dicht anzuordnen und sie müssen
+klar genug sein, dass sich die Tonhöhe mit einem schnellen Blick
+erkennen lässt. Im Beispiel unten können wir sehen, dass
+Hilfslinien dicker als normale Notenlinien sein sollten und dass
+ein gelernter Notenstecher eine Hilfslinie verkürzt, um dichteres
+Platzieren von Versetzungszeichen zu erlauben. Wir haben diese
+Eigenschaft in den Notensatz von LilyPond eingebaut.
+
+@multitable @columnfractions .25 .25 .25 .25
+@item @tab
-@cindex Typographie
+@iftex
+@sourceimage{baer-ledger,3cm,,}
+@end iftex
+@ifnottex
+@sourceimage{baer-ledger,,,png}
+@end ifnottex
+
+@tab
+
+@iftex
+@sourceimage{lily-ledger,3cm,,}
+@end iftex
+@ifnottex
+@sourceimage{lily-ledger,,,png}
+@end ifnottex
+
+@end multitable
+
+
+@node Optische Größen
+@unnumberedsubsec Optische Größen
+@translationof Optical sizing
+
+Noten werden in verschiedenen Größen gedruckt. Ursprünglich hatte
+man hierzu Stempel in verschiedenen Größen, was gleichzeitig heißt,
+dass jeder Stempel so beschaffen war, dass er für seine Größe ein
+ideales Abbild erzeugte. Mit den digitalen Fonts kann ein einziger
+Umriss mathematisch skaliert werden, um eine beliebige Größe zu
+erzeugen, was sehr viele Vorteile hat. In kleinen Größen erscheinen
+die Symbole jedoch zu dünn.
+
+Für LilyPond haben wir Schriftarten mit einer Reihe von Dicken
+erstellt, die jeweils einer Notengröße entsprechen. Hier ein
+LilyPond-Notensatz mit der Systemgröße 26:
+
+@quotation
+@iftex
+@sourceimage{pdf/size26,,23mm,}
+@end iftex
+@ifnottex
+@sourceimage{size26,,,png}
+@end ifnottex
+@end quotation
+
+@noindent
+und hier die gleichen Noten mit Systemgröße 11, anschließend um 236%
+vergrößert, damit das Bild in exakt der gleichen Größe wie das
+vorige erscheint:
+
+@quotation
+@iftex
+@sourceimage{pdf/size11,,23mm,}
+@end iftex
+@ifnottex
+@sourceimage{size11,,,png}
+@end ifnottex
+@end quotation
+
+@noindent
+Bei kleineren Größen benutzt LilyPond proportional dickere
+Notenlinien, sodass das Notenbild immer noch gut zu lesen ist.
-Musiker sind üblicherweise zu sehr damit beschäftigt, die Musik aufzuführen,
-als dass sie das Aussehen der Noten studieren könnten; und diese
-Beschäftigung mit typographischen Details mag akademisch wirken.
-Das ist sie aber nicht. Unser Beispielstück hat einen
-monotonen Rhythmus, und wenn alle Zeilen einförmig aussehen, wird
-das Notenblatt zu einem Labyrinth. Wenn der Spieler auch nur
-einmal wegschaut oder kurze Zeit unkonzentriert ist, findet er
-nicht mehr zurück zu der Stelle, an der er war.
+@ignore
+Dadurch können auch Notensysteme unterschiedlicher Größe
+friedlich nebeneinander auf der gleichen Seite erscheinen:
+
+@c TODO: are the stems in this example the right thickness? How should
+@c line weights be scaled for small staves?
+
+@c Grieg's Violin Sonata Op. 45
+@lilypond[indent=1.5cm]
+global = {
+ \time 6/8
+ \key c \minor
+}
+
+\score {
+ <<
+ \new Staff \with {
+ fontSize = #-4
+ \override StaffSymbol #'staff-space = #(magstep -4)
+ \override StaffSymbol #'thickness = #(magstep -3)
+ }
+ \relative c' {
+ \global
+ \set Staff.instrumentName = #"Violin"
+ c8.(\f^> b16 c d) ees8.(^> d16 c b)
+ g8.(^> b16 c ees) g8-.^> r r
+ R2.
+ }
+ \new PianoStaff <<
+ \set PianoStaff.instrumentName = #"Piano"
+ \new Staff \relative c' {
+ \global
+ s2.
+ s4. s8 r8 r16 <c f aes c>
+ <c f aes c>4.^> <c ees g>8 r r
+ }
+ \new Staff \relative c {
+ \global
+ \clef "bass"
+ <<
+ {
+ \once \override DynamicText #'X-offset = #-3
+ <ees g c>2.~->^\f
+ <ees g c>4.~ <ees g c>8
+ } \\ {
+ <c g c,>2.~
+ <c g c,>4.~ <c g c,>8
+ }
+ >>
+ r8 r16 <f, c' aes'>16
+ <f c' aes'>4.-> <c' g'>8 r r
+ }
+ >>
+ >>
+>>
+}
+@end lilypond
+@end ignore
+
+
+@node Warum der große Aufwand?
+@unnumberedsubsec Warum der große Aufwand?
+@translationof Why work so hard?
+
+Musiker sind üblicherweise zu sehr damit beschäftigt, die Musik aufzuführen,
+als dass sie das Aussehen der Noten studieren könnten; darum mag diese
+Beschäftigung mit typographischen Details akademisch wirken.
+Das ist sie aber nicht. Notenmaterial ist Aufführungsmaterial:
+alles muss unternommen werden, damit der Musiker die Aufführung
+besser bewältigt, und alles, das unklar oder unangenehm ist,
+ist eine Hindernis.
Der dichtere Eindruck, den die dickeren Notenlinien und schwereren
-Notationssymbole schaffen, eignet sich auch besser für Noten,
+Notationssymbole schaffen, eignet sich besser für Noten,
die weit vom Leser entfernt stehen, etwa auf einem Notenständer.
-Eine sorgfältige Verteilung der Zwischenräume erlaubt es, die
-Noten sehr dicht zu setzen, ohne dass die Symbole zusammenklumpen.
-Dadurch werden unnötige Seitenumbrüche vermieden, so dass man
+Eine sorgfältige Verteilung der Zwischenräume erlaubt es, die
+Noten sehr dicht zu setzen, ohne dass die Symbole zusammenklumpen.
+Dadurch werden unnötige Seitenumbrüche vermieden, so dass man
nicht so oft blättern muss.
Dies sind die Anforderungen der Typographie: Das Layout sollte
-schön sein -- nicht aus Selbstzweck, sondern um dem Leser zu helfen. Für
-Aufführungsmaterial ist das umso wichtiger, denn Musiker haben eine begrenzte
-Aufnahmefähigkeit. Je weniger Mühe nötig ist, die Noten zu erfassen, desto mehr
-Zeit bleibt für die Gestaltung der eigentlichen Musik. Das heißt: Gute
+schön sein -- nicht nur aus Selbstzweck, sondern vor allem um dem
+Leser zu helfen. Für Aufführungsmaterial ist das umso wichtiger,
+denn Musiker haben eine begrenzte Aufnahmefähigkeit. Je weniger
+Mühe nötig ist, die Noten zu erfassen, desto mehr Zeit bleibt für
+die Gestaltung der eigentlichen Musik. Das heißt: Gute
Typographie führt zu besseren Aufführungen!
-Die Beispiele haben gezeigt, dass der Notensatz eine subtile und
-komplexe Kunst ist und gute Ergebnisse nur mit viel Erfahrung
+Die Beispiele haben gezeigt, dass der Notensatz eine subtile und
+komplexe Kunst ist und gute Ergebnisse nur mit viel Erfahrung
erlangt werden können, die Musiker normalerweise nicht haben.
LilyPond stellt unser Bemühen dar, die graphische Qualität
-handgestochener Notenseiten ins Computer-Zeitalter zu transportieren
-und sie für normale Musiker erreichbar zu machen. Wir haben
+handgestochener Notenseiten ins Computer-Zeitalter zu transportieren
+und sie für normale Musiker erreichbar zu machen. Wir haben
unsere Algorithmen, die Gestalt der Symbole und die Programm-Einstellungen
-darauf abgestimmt, einen Ausdruck zu erzielen, der der Qualität
-der alten Editionen entspricht, die wir so gerne betrachten
+darauf abgestimmt, einen Ausdruck zu erzielen, der der Qualität
+der alten Editionen entspricht, die wir so gerne betrachten
und aus denen wir gerne spielen.
@node Automatisierter Notensatz
-@unnumberedsubsec Automatisierter Notensatz
+@section Automatisierter Notensatz
@translationof Automated engraving
@cindex Notensatz, automatisch
@cindex automatischer Notensatz
+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 und detailliertes
+Vergleichen mit echten Notendrucken.
+
+@menu
+* Schönheitswettbewerb::
+* Verbessern durch Benchmarking::
+* Alles richtig machen::
+@end menu
+
+@node Schönheitswettbewerb
+@unnumberedsubsec Schönheitswettbewerb
+@translationof Beauty contests
+
Wie sollen wir also jetzt die Typographie anwenden?
-Wie können wir erwarten, dass wir in der Lage wären,
-ein Programm zu schreiben, dass den Beruf des
-Notenstechers ersetzt, wo dieser doch mehr als zehn
-Jahre braucht, um ein Meister zu werden?
-
-Wir können es tatsächlich nicht! Da Typographie allein
-durch das menschliche Auge bestimmt ist, kann der Mensch
-nicht ersetzt werden. Aber sehr viel mechanische Arbeit
-kann automatisiert werden. Indem etwa LilyPond die üblichen
-Situationen kennt und bewältigt, können die restlichen
-Fehler von Hand beseitigt werden. Das ist schon ein
-großer Fortschritt im Vergleich zu den existierenden
-Programmen. Und mit der Zeit können immer mehr Fälle
-automatisiert werden, so dass immer weniger Eingriffe
-von Hand notwendig werden.
+Anders gesagt: welcher von den drei Konfigurationen sollte für
+den folgenden Bogen ausgewählt werden?
+@lilypond
+\relative c {
+ \clef bass
+ \once \override Slur #'positions = #'(1.5 . 1)
+ e8[( f] g[ a b d,)] r4
+ \once \override Slur #'positions = #'(2 . 3)
+ e8[( f] g[ a b d,)] r4
+ e8[( f] g[ a b d,)] r4
+}
+@end lilypond
-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:
+Es gibt wenige Bücher über die Kunst des Notensatzes. Leider
+haben sie nur Daumenregeln und einige Beispiele zu bieten. Solche
+Regeln können sehr informativ sein, aber sie sind weit entfernt
+von einem Algorithmus, den wir in unser Programm einbauen könnten.
+Indem man die Anweisungen der Literatur anwendet, kommt man zu
+Algorithmen mit sehr vielen manuellen Ausnahmen. Alle die möglichen
+Fälle zu analysieren stellt sehr viel Arbeit dar und meistens
+werden dennoch nicht alle Fälle vollständig abgedeckt:
-@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.
+@quotation
+@iftex
+@sourceimage{ross-beam-scan,7cm,,}
+@end iftex
+@ifnottex
+@sourceimage{ross-beam-scan,,,.jpg}
+@end ifnottex
+@end quotation
+(Bildquelle: Ted Ross, @emph{The Art of Music Engraving})
-@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.
+Anstatt zu versuchen, für jedes mögliche Szenario eine passende
+Layoutregel zu definieren, müssen wir nur die Regeln genau genug
+beschreiben, sodass LilyPond die Gefälligkeit von mehreren
+Alternativen selber einschätzen kann. Dann errechnen wir für jede
+mögliche Konfiguration eine Hässlichkeits-Rangliste und wir wählen
+die Konfiguration aus, die am wenigsten hässlich ist.
-@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.
+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 einer der
+Notenköpfe angeschnitten wird:
+
+@lilypond
+\relative c {
+ \clef bass
+ \once \override Slur #'positions = #'(1.5 . 1)
+ e8[(_"15.39" f] g[ a b d,)] r4
+}
+@end lilypond
+
+Das zweite Beispiel ist schöner, aber der Bogen beginnt weder noch
+endet er an den Notenköpfen. Hier werden 1.71 Punkte auf der linken
+und 9.37 Punkte auf der rechten Seite verliehen, plus weiteren
+2 Punkten, weil der Bogen aufsteigt, während die Melodie absteigt.
+Insgesamt also 13.08 Punkte:
+
+@lilypond
+\relative c {
+ \clef bass
+ \once \override Slur #'positions = #'(2 . 3)
+ e8[(_"13.08" f] g[ a b d,)] r4
+}
+@end lilypond
+
+Der letzte Bogen erhält 10.04 Punkte für die Lücke rechts und
+2 Punkte für die Neigung nach oben, aber er ist die schönste
+der drei Varianten, sodass LilyPond ihn auswählt:
+
+@lilypond
+\relative c {
+ \clef bass
+ e8[(_"12.04" f] g[ a b d,)] r4
+}
+@end lilypond
+
+Diese Technik ist sehr allgemein und wird benutzt, um optimale
+Entscheidungen für Bögenkonfigurationen, Bindebögen und Punkten
+in Akkorden, Zeilenumbrüche und Seitenumbrüche zu erhalten. Die
+Ergebnisse dieser Entscheidungen können durch einen Vergleich mit
+handgestochenen Noten eingeschätzt werden.
+
+
+@node Verbessern durch Benchmarking
+@unnumberedsubsec Verbessern durch Benchmarking
+@translationof Improvement by benchmarking
+
+Die Ausgabe von LilyPond hat sich schrittweise mit der Zeit
+verbessert, und sie verbessert sich weiter, indem sie immer wieder
+mit handgestochenen Noten verglichen wird.
+
+Hier als Beispiel eine Zeile eines Benchmark-Stückes aus einer
+handgestochenen Notenedition (Bärenreiter BA320):
+
+@iftex
+@sourceimage{baer-sarabande-hires,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{baer-sarabande,,,png}
+@end ifnottex
+
+@noindent
+und die gleiche Zeile als Satz einer sehr alten LilyPond-Version
+(Version 1.4, Mai 2001):
+
+@iftex
+@sourceimage{pdf/lily14-sarabande,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{lily14-sarabande,,,png}
+@end ifnottex
+
+@noindent
+Die Ausgabe von LilyPond 1.4 ist auf jeden Fall leserlich, aber
+ein ausführlicher Vergleich mit der Vorlage zeigt viele Fehler in
+den Formatierungsdetails:
+
+@iftex
+@sourceimage{lily14-sarabande-annotated-hires,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{lily14-sarabande-annotated,,,png}
+@end ifnottex
+
+@itemize @bullet
+@item vor der Taktangabe ist nicht genug Platz
+@item die Hälse der bebalkten Noten sind zu lang
+@item der zweite und vierte Takt sind zu schmal
+@item der Bogen sieht ungeschickt aus
+@item das Triller-Symbol ist zu groß
+@item die Hälse sind zu dünn
@end itemize
-@cindex Scheme-Programmiersprache
+@noindent
+(Es gibt auch zwei fehlende Notenköpfe, verschiedene editorische
+Anweisungen, die Fehler und eine falsche Tonhöhe!)
-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.
+Indem die Layoutregeln und das Design der Schriftarten angepasst
+wurde, hat sich die Ausgabe sehr stark verbessert. Vergleichen
+Sie das gleiche Referenzbeispiel und die Ausgabe der aktuellen
+LilyPond-Version (@version{}):
-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).
+@iftex
+@sourceimage{baer-sarabande-hires,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{baer-sarabande,,,png}
+@end ifnottex
-@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
+@lilypond[staffsize=17.5,line-width=15.9\cm]
+\relative c {
+ \clef "bass"
+ \key d \minor
+ \time 3/4
+ \mergeDifferentlyDottedOn
+ <<
+ { \slurDashed d8.-\flageolet( e16) e4.-\trill( d16 e) }
+ \\
+ { d4_2 a2 }
+ >>
+ \slurDashed
+ <f' a, d,>4. e8( d c)
+ \slurSolid
+ bes8 g' f e16( f g_1 a_2 bes_3 d,_2)
+ \slurDashed
+ cis4.-\trill b8_3( a g)
+ <<
+ { \slurDashed d'8.( e16) e4.-\trill( d16 e) }
+ \\
+ { <f, a>4 a2 }
+ >>
}
@end lilypond
-@cindex Formatierung einer Partitur
-@cindex Partitur, Formatierung
-@cindex Formatierungsregeln
+@noindent
+Die jetzige Ausgabe ist kein Klon der Referenzedition, aber sie ist
+sehr viel näher an einer Publikationsqualität.
+
+
+@node Alles richtig machen
+@unnumberedsubsec Alles richtig machen
+@translationof Getting things right
+
+Wir können auch die Fähigkeiten von LilyPond, Notensatzentscheidungen
+alleine zu fällen, messen, indem wir die Ausgabe von LilyPond mit
+der Ausgabe eines kommerziellen Notensatzprogramms vergleichen.
+In diesem Fall haben wir Finale 2008 genommen, eines der beliebtesten
+Notensatzprogramme, insbesondere in Nordamerika. Sibelius ist
+Finales hauptsächlicher Gegenspieler, offensichtlich vor allem in
+Europa verbreitet.
+
+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:
+
+@lilypond
+\relative c' {
+ \key g \minor
+ \clef "treble_8"
+ r8 d ees g, fis4 g
+ r8 a16 bes c8 bes16 a bes8
+}
+@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.
+In unserem Vergleich setzten wir die letzten sieben Takte des
+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 vorzunehmen,
+weil wir zeigen wollen, welche Dinge von den beiden Programmen
+ohne Hilfeleistung richtig gemacht werden. Die einzigen größeren
+Ä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
+Version von LilyPond:
-@lilypond[quote,ragged-right]
-fragment = {
- \clef bass f8 as8
- c'4-~ c'16 as g f e16 g bes c' des'4
+@iftex
+@sourceimage{pdf/bwv861mm28-29,14cm,,}
+@end iftex
+@ifnottex
+@sourceimage{bwv861mm28-29,,,png}
+@end ifnottex
+
+@lilypond[staffsize=19.5,line-width=14\cm]
+global = { \key g \minor }
+
+partI = \relative c' {
+ \voiceOne
+ fis8 d' ees g, fis4 g
+ r8 a16 bes c8 bes16 a d8 r r4
+}
+
+partII = \relative c' {
+ \voiceTwo
+ d4 r4 r8 d'16 c bes8 c16 d
+ ees8 d c ees a, r r4
+}
+
+partIII = \relative c' {
+ \voiceOne
+ r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a
}
+
+partIV = \relative c {
+ \voiceTwo
+ d4 r r2
+ r8 d ees g, fis4 a
+}
+
+\score {
+ <<
+ % \set Score.barNumberVisibility = #all-bar-numbers-visible
+ % required in 2.13
+ \set Score.currentBarNumber = #28
+ \bar ""
+ \new PianoStaff <<
+ \new Staff = "RH"
+ <<
+ \global
+ \new Voice = "voiceI" { \partI }
+ \new Voice = "voiceII" { \partII }
+ >>
+
+ \new Staff = "LH" <<
+ \clef "bass"
+ \global
+ \new Voice = "voiceIII" { \partIII }
+ \new Voice = "voiceIV" { \partIV }
+ >>
+ >>
+ >>
+ \layout {
+ \context {
+ \Staff
+ \remove "Time_signature_engraver"
+ }
+ \context {
+ \PianoStaff
+ \override StaffGrouper #'staff-staff-spacing #'padding = #1
+ }
+ }
+}
+@end lilypond
+
+Einige der Mängel des nicht editierten Finale-Satzes beinhalten:
+
+@itemize @bullet
+
+@item Die meisten Balken sind zu weit vom Notensystem entfernt.
+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 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
+nicht an, sodass die Noten sehr schwer lesbar werden, wenn
+die untere und obere Stimme zeitweise ausgetauscht werden:
+
+@lilypond
+collide = \once \override NoteColumn #'force-hshift = #0
+
+\score {
+ <<
+ \new Voice = "sample" \relative c''{
+ \key g \minor
+ <<
+ { \voiceOne g4 \collide g4 }
+ \new Voice { \voiceTwo bes \collide bes }
+ >>
+ }
+ \new Lyrics \lyricsto "sample" \lyricmode { "good " " bad" }
+ >>
+}
+@end lilypond
+
+@item Finale positioniert alle Pausen an einer festen Position auf
+dem System. Der Benutzer kann sie anpassen, wie er es richtig
+findet, aber das Programm unternimmt keinen Versuch, den Inhalt
+der anderen Stimme mit einzubeziehen. Durch einen Glücksfall
+kommen keine wirklichen Kollisionen zwischen Noten und Pausen
+in diesem Beispiel vor, aber das liegt mehr an der Position der
+Noten als an der der Pausen. Anders gesagt: Bach verdient mehr
+Aufmerksamkeit um vollständige Kollisionen zu vermeiden als
+Finale ihm gönnt.
+
+@end itemize
+
+Dieses Beispiel soll nicht suggerieren, dass man mit Finale nicht
+Notensatz in Publikationsqualität erstellen könnte. Das Programm ist
+durchaus 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
+menschlicher Intervention auf ein absolutes Minimum zu reduzieren,
+während andere Programme versuchen, ein attraktives Programmfenster
+zu bieten, in dem die Anpassungen vorgenommen werden können.
+
+Einen besonders hervorstechenden Mangel von Finale
+ist ein fehlendes b-Vorzeichen in Takt 33:
+
+@quotation
+@iftex
+@sourceimage{pdf/bwv861mm33-34-annotate,7.93cm,,}
+@end iftex
+@ifnottex
+@sourceimage{bwv861mm33-34-annotate,,,png}
+@end ifnottex
+@end quotation
+
+@noindent
+Das b-Symbol wird benötigt, um das Auflösungzeichen im selben
+Takt rückgängig zu machen, aber Finale lässt es aus, weil es in
+einer anderen Stimme vorkommt. Der Benutzer muss nicht nur daran
+denken, ein Balken-Plugin zu starten und die Notenköpfe und Pausen
+neu anzuordnen, er muss auch jeden Takt prüfen, ob Versetzungszeichen
+aus anderen Stimmen korrigiert werden müssen, damit nicht ein
+Notensatzfehler die Probe unnötig unterbricht.
+
+Wenn Sie diese Beispiel noch detaillierter betrachten wollen,
+können Sie den vollen siebentaktigen Ausschnitt am Ende dieses
+Aufsatzes als Notensatz in vier unterschiedlichen
+publizierten Editionen finden. Nähere Betrachtung zeigt, dass
+es einige akzeptable Variationen zwischen den handgestochenen
+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
+der eintönigen Arbeit kann jedoch automatisiert werden. Wenn
+LilyPond die meisten üblichen Situationen richtig löst, ist das
+schon eine große Verbesserung gegenüber existierender Software.
+Im Laufe der Jahre wir das Programm immer besser und macht mehr
+und mehr Sachen automatisch, sodass manuelles Eingreifen immer
+seltener wird. Wo manuelle Anpassungen benötigt werden,
+wurde die Struktur von LilyPond mit Flexibilität im Hinterkopf
+geplant.
+
+
+@node Ein Programm bauen
+@section Ein Programm bauen
+@translationof Building software
+
+Dieser Abschnitt beschreibt einige der Entscheidungen,
+die wir während des Programmierens für das Design von LilyPond
+getroffen haben.
+
+@menu
+* Die Darstellung der Musik::
+* Welche Symbole?::
+* Flexible Architektur::
+@end menu
+
+@node Die Darstellung der Musik
+@unnumberedsubsec Die Darstellung der Musik
+@translationof Music representation
+
+@cindex Syntax
+@cindex rekursive Strukturen
+
+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.
+
+Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond,
+darum soll sie einfach zu schreiben sein; z. B. bedeutet
+
+@example
+@{
+ c'4 d'8
+@}
+@end example
+
+@noindent
+dass eine Viertel c' und eine Achtel d' erstellt werden sollen,
+wie in diesem Beispiel:
+
+@lilypond[quote]
+{
+ c'4 d'8
+}
+@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:
+
+@lilypond[quote,verbatim,fragment,relative=1]
+f4
+@end lilypond
+
+@noindent
+Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in @code{<<} und @code{>>} einschließt.
+
+@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?
@cindex Plugin
Während des Notensatzprozesses entscheidet sich, wo
-Symbole platziert werden. Das kann aber nur gelingen,
+Symbole platziert werden. Das kann aber nur gelingen,
wenn vorher entschieden wird, @emph{welche} Symbole
gesetzt werden sollen, also welche Art von Notation benutzt
werden soll.
Die heutige Notation ist ein System zur Musikaufzeichnung,
-das sich über die letzten 1000 Jahre entwickelt hat. Die
-Form, die heute üblicherweise benutzt wird, stammt aus dem
-Barock. Auch wenn sich die grundlegenden Formen (also
-die Notenköpfe, das Fünfliniensystem) nicht verändert haben,
-entwickeln sich die Details trotzdem immer noch weiter, um
-die Errungenschaften der Neuen Musik darstellen zu können. Die
-Notation umfasst also 500 Jahre Musikgeschichte. Ihre Anwendung
-reicht von monophonen Melodien bis zu ungeheuer komplexem Kontrapunkt
+das sich über die letzten 1000 Jahre entwickelt hat. Die
+Form, die heute üblicherweise benutzt wird, stammt aus der frühen
+Renaissance. Auch wenn sich die grundlegenden Formen (also
+die Notenköpfe, das Fünfliniensystem) nicht verändert haben,
+entwickeln sich die Details trotzdem immer noch weiter, um
+die Errungenschaften der Neuen Musik darstellen zu können. Die
+Notation umfasst also 500 Jahre Musikgeschichte. Ihre Anwendung
+reicht von monophonen Melodien bis zu ungeheuer komplexem Kontrapunkt
für großes Orchester.
-Wie bekommen wir dieses vielköpfige Monster zu fassen?
-Unsere Lösung ist es, eine strikte Trennung zwischen der Notation,
-also welche Symbole benutzt werden, und dem Satz, also wohin sie
-gesetzt werden, zu machen. Um das Problem anzupacken, haben wir
-es in kleine (programmierbare) Happen zerteilt, so dass jede Art
-von Symbol durch ein eigenes Plugin verarbeitet wird. Alle Plugins
- kooperieren durch die LilyPond-Architektur. Sie sind vollständig
-modular und unabhängig und können somit auch unabhängig voneinander
- entwickelt werden. Der Schreiber, der die Musik in Graphik umwandelt,
- ist ein Kopist oder Notenstecher (engl. engraver). Darum werden
-die Plugins als @code{engraver} bezeichnet.
-
-Im nächsten Beispiel wird gezeigt, wie mit dem Plugin für die Notenköpfe,
+Wie bekommen wir dieses vielköpfige Monster zu fassen und in die
+Fesseln eines Computerprogrammes zu legen?
+Unsere Lösung ist es, das Problem in kleine (programmierbare) Happen zu zerteilen, so dass jede Art
+von Symbol durch ein eigenes Modul, als Plugin bezeichnet,
+verarbeitet werden kann. Jedes Plugin ist vollständig modular
+und unabhängig und kann unabhängig entwickelt und verbessert
+werden. Derartige Plugins werden @code{engraver} genannt,
+analog zu den Notenstechern (engl. engraver), die musikalische
+Ideen in graphische Symbole übersetzen.
+
+Im nächsten Beispiel wird gezeigt, wie mit dem Plugin für die Notenköpfe,
dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.
@lilypond[quote,ragged-right]
@end lilypond
@noindent
-Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher})
+Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher})
die Notenlinien hinzu.
@lilypond[quote,ragged-right]
@end lilypond
@noindent
-Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert
+Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert
eine Referenzstelle für das System.
@lilypond[quote,ragged-right]
@end lilypond
@noindent
-Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt,
-der vorkommt. Jedes Mal, wenn ein Notenkopf erscheint (oder mehrere bei
-einem Akkord), wird ein Hals-Objekt erstellt und an den
-Kopf geheftet. Wenn wir dann noch engraver für Balken, Bögen,
-Akzente, Vorzeichen, Taktlinien, Taktangaben und Tonartbezeichnungen
+Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt,
+der vorkommt. Jedes Mal, wenn ein Notenkopf erscheint (oder mehrere bei
+einem Akkord), wird ein Hals-Objekt erstellt und an den
+Kopf geheftet. Wenn wir dann noch Engraver für Balken, Bögen,
+Akzente, Versetzungszeichen, Taktstriche, Taktangaben und Tonartbezeichnungen
hinzufügen, erhalten wir eine vollständige Notation.
@cindex Notensatz, Mehrstimmigkeit
@cindex Kontexte
-Dieses System funktioniert gut für monophone Musik, aber wie geht
+Dieses System funktioniert gut für monophone Musik, aber wie geht
es mit Polyphonie? Hier müssen sich mehrere Stimmen ein System teilen.
@lilypond[quote,ragged-right]
@end lilypond
In diesem Fall benutzen beide Stimmen das System und die Vorzeichen gemeinsam,
-aber die
-Hälse, Bögen, Balken usw. sind jeder einzelnen Stimme eigen. Die engraver
-müssen also gruppiert werden. Die Köpfe, Hälse, Bögen usw. werden
-in einer Gruppe mit dem Namen @qq{Voice context} (Stimmenkontext)
-zusammengefasst, die engraver für den Schlüssel, die Vorzeichen,
-Taktstriche usw. dagegen in einer Gruppe mit dem Namen @qq{Staff context}
-(Systemkontext). Im Falle von Polyphonie hat ein Staff-Kontext dann also
-mehr als nur einen Voice-Kontext. Auf gleiche Weise können auch mehrere Staff-Kontexte
+aber die Hälse, Bögen, Balken usw. sind jeder einzelnen Stimme
+eigen. Die Engraver müssen also gruppiert werden. Die Köpfe,
+Hälse, Bögen usw. werden in einer Gruppe mit dem Namen @qq{Voice
+context} (Stimmenkontext) zusammengefasst, die Engraver für den
+Schlüssel, die Vorzeichen, Taktstriche usw. dagegen in einer
+Gruppe mit dem Namen @qq{Staff context} (Systemkontext). Im Falle
+von Polyphonie hat ein Staff-Kontext dann also mehr als nur einen
+Voice-Kontext. Auf gleiche Weise können auch mehrere Staff-Kontexte
in einen großen Score-Kontext (Partiturkontext) eingebunden werden.
-
-
-@seealso
-Programmreferenz: @rinternals{Contexts}.
+Der Score-Kontext ist auf der höchsten Ebene der Kontexte.
@lilypond[quote,ragged-right]
}
@end lilypond
-@node Die Darstellung der Musik
-@unnumberedsubsec Die Darstellung der Musik
-@translationof Music representation
+@seealso
+Referenz der Interna: @rinternals{Contexts}.
-@cindex Syntax
-@cindex rekursive Strukturen
-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.
+@node Flexible Architektur
+@unnumberedsubsec Flexible Architektur
+@translationof Flexible architecture
-Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond,
-darum soll sie einfach zu schreiben sein; z. B. bedeutet
+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:
-@example
-c'4 d'8
-@end example
+@itemize @bullet
-@noindent
-eine Viertel c' und eine Achtel d', wie in diesem Beispiel:
+@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.
-@lilypond[quote]
-{
- c'4 d'8
-}
-@end lilypond
+@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.
-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. music expressions (Musikausdrücke): indem
-kleine Teile zu größeren kombiniert werden, kann komplexere Musik
-dargestellt werden. So etwa hier:
+@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,verbatim,fragment,relative=1]
-f4
-@end lilypond
+@cindex Scheme-Programmiersprache
-@noindent
-Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in @code{<<} und @code{>>} einschließt.
+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.
-@c < > is not a music expression,
-@c so we use <<>> iso. <> to drive home the point of
-@c expressions. Don't change this back --hwn.
-@example
-<<c4 d4 e4>>
-@end example
+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,fragment,relative=1]
-\new Voice { <<c4 d4 e>> }
+@lilypond[quote,ragged-right]
+\score {
+ \relative c' {
+ \stemDown <e g b>4_>-\arpeggio
+ \override Arpeggio #'direction = #RIGHT
+ \stemUp <e g b>4^>-\arpeggio
+ }
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner #'spacing-increment = #3
+ \override TimeSignature #'transparent = ##t
+ }
+ }
+}
@end lilypond
-@noindent
-Um aufeinanderfolgende Noten darzustellen, werden sie in geschweifte Klammern gefasst:
-
-@code{@{@tie{}@dots{}@tie{}@}}
+@cindex Formatierung einer Partitur
+@cindex Partitur, Formatierung
+@cindex Formatierungsregeln
-@example
-@{ f4 <<c4 d4 e4>> @}
-@end example
+@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,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
-Dieses Gebilde ist in sich wieder ein Ausdruck, und kann
-daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben).
+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
-<< 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")))))))))
-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.
+\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
-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
-@unnumberedsubsec Beispielanwendung
-@translationof Example applications
+@node LilyPond die Arbeit überlassen
+@section LilyPond die Arbeit überlassen
+@translationof Putting LilyPond to work
@cindex einfaches Beispiel
@cindex Beispiel, einfach
-Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des
-Musiksatzes in ein Computerprogramm gießen kann. Dieses
-Programm kann nun dank vieler harter Arbeitsstunden benutzt werden,
-um sinnvolle Aufgaben zu erledigen. Die einfachste ist dabei der
+Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des
+Musiksatzes in ein Computerprogramm gießen kann. Dieses
+Programm kann nun dank vieler harter Arbeitsstunden benutzt werden,
+um sinnvolle Aufgaben zu erledigen. Die einfachste ist dabei der
Notendruck.
@lilypond[quote,relative=1]
@end lilypond
@noindent
-Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir
-ein Lead Sheet.
+Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir
+ein Liedblatt.
@lilypond[quote,ragged-right]
<<
>>
@end lilypond
-Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das
+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"
}
@end lilypond
-Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht
-die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft,
+Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht
+die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft,
kann er auch von anderen Programmen angesteuert werden, die Musik oder Noten
-verarbeiten. So können etwa ganze Datenbanken musikalischer Fragmente automatisch
-in Notenbilder umgewandelt werden, die dann auf Internetseiten oder
+verarbeiten. So können etwa ganze Datenbanken musikalischer Fragmente automatisch
+in Notenbilder umgewandelt werden, die dann auf Internetseiten oder
in Multimediapräsentation Anwendung finden.
-Dieses Benutzerhandbuch zeigt eine weitere Möglichkeit: Die Noten werden als
+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.
+in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem
+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 Notensatzbeispiele (BWV 861)
+@section Notensatzbeispiele (BWV 861)
+@translationof Engraved examples (BWV 861)
+
+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).
+
+@noindent
+Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1,
+1989):
+
+@iftex
+@sourceimage{bwv861-baer,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{bwv861-baer-small,,,png}
+@end ifnottex
+
+@noindent
+Bärenreiter BA5070 (Neue Ausgabe Sämtlicher Werke, Serie V, Band 6.1,
+1989), eine alternative musikalische Quelle. Neben den
+musikalischen Unterschieden sind hier auch ein paar unterschiedliche
+Notensatzentscheidungen getroffen worden, sogar vom selben Herausgeber
+in der selben Edition:
+
+@iftex
+@sourceimage{bwv861-baer-alt,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{bwv861-baer-alt-small,,,png}
+@end ifnottex
+
+@noindent
+Breitkopf & Härtel, bearbeitet von Ferruccio Busoni (Wiesbaden, 1894),
+auch in der Petrucci Music Library (IMSLP #22081) erhältlich.
+Die editorischen Bezeichnungen (Fingersatz, Artikulation usw.)
+wurde entfernt, um bessere Vergleichbarkeit mit den anderen
+Editionen zu bieten:
+
+@iftex
+@sourceimage{bwv861-breitkopf,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{bwv861-breitkopf-small,,,png}
+@end ifnottex
+
+@noindent
+Bach-Gesellschaft Edition (Leipzig, 1866), erhältlich in der Petrucci
+Music Library (IMSPL #02221):
+
+@iftex
+@sourceimage{bwv861-gessellschaft,16cm,,}
+@end iftex
+@ifnottex
+@sourceimage{bwv861-gessellschaft-small,,,png}
+@end ifnottex
+
+@noindent
+Finale 2008:
+
+@iftex
+@sourceimage{pdf/bwv861-finale2008a,,,}
+@end iftex
+@ifnottex
+@sourceimage{bwv861-finale2008a,,,png}
+@end ifnottex
+
+@sp 4
+@noindent
+LilyPond, version @version{}:
+
+@lilypond[staffsize=14.3,line-width=15.9\cm]
+global = {\key g \minor}
+
+partI = \relative c' {
+ \voiceOne
+ fis8 d' ees g, fis4 g
+ r8 a16 bes c8 bes16 a d8 r r4
+ r2 r8 d16 ees f8 ees16 d
+ ees4 ~ ees16 d c bes a4 r8 ees'16 d
+ c8 d16 ees d8 e16 fis g8 fis16 g a4 ~
+ a8 d, g f ees d c bes
+ a2 g\fermata \bar "|."
+}
+
+partII = \relative c' {
+ \voiceTwo
+ d4 r4 r8 d'16 c bes8 c16 d
+ ees8 d c ees a, r r4
+ r8 fis16 g a8 g16 fis g2 ~
+ g2 r8 d' ees g,
+ fis4 g r8 a16 bes c8 bes16 a
+ bes4. <g b>8 <a c> r <d, g> r
+ <ees g>4 <d fis> d2
+}
+partIII = \relative c' {
+ \voiceOne
+ r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a
+ bes2 ~ bes8 b16 a g8 a16 b
+ c4 r r2
+ R1
+ r8 d ees g, fis4 g
+ r8 a16 bes c8 bes16 a b2
+}
+partIV = \relative c {
+ \voiceTwo
+ d4 r r2
+ r8 d ees g, fis4 a
+ d,8 d'16 c bes8 c16 d ees2 ~
+ ees8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a
+ d,8 d'16 c bes8 c16 d ees8 c a fis'
+ g f ees d c bes a g
+ c a d d, g2\fermata
+}
+
+\score {
+ <<
+ % \set Score.barNumberVisibility = #all-bar-numbers-visible
+ % required in 2.13
+ \set Score.currentBarNumber = #28
+ \bar ""
+ \new PianoStaff <<
+ \new Staff = "RH" <<
+ \global
+ \new Voice = "voiceI" { \partI }
+ \new Voice = "voiceII" { \partII }
+ >>
+
+ \new Staff = "LH" <<
+ \clef "bass"
+ \global
+ \new Voice = "voiceIII" { \partIII }
+ \new Voice = "voiceIV" { \partIV }
+ >>
+ >>
+ >>
+ \layout {
+ \context {
+ \Staff
+ \remove "Time_signature_engraver"
+ }
+ \context {
+ \PianoStaff
+ \override StaffGrouper #'staff-staff-spacing #'padding = #1
+ }
+ }
+}
+@end lilypond