1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
4 Translation of GIT committish: d415427752fa5fd83b0da189d677481d1c7f3043
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
11 @c Translators: Till Rettig, Reinhold Kainhofer
12 @c Translation checkers: Hajo Bäß
16 @translationof Introduction
18 Dieses Kapitel stellt dem Leser die Idee hinter LilyPond und die Dokumentation
23 * Über die Dokumentation::
29 @translationof Background
31 Dieser Abschnitt behandelt die allgemeinen Ziele und die Architektur von LilyPond.
35 * Automatisierter Notensatz::
37 * Die Darstellung der Musik::
43 @unnumberedsubsec Notensatz
44 @translationof Engraving
49 @cindex Gravur, Notensatz
50 @cindex Plattendruck, Noten
52 Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser
53 Begriff stammt aus dem traditionellen Notendruck. Noch bis vor etwa 20
54 Jahren wurden Noten erstellt, indem man sie in eine Zink- oder Zinnplatte
55 schnitt oder mit Stempeln schlug. Diese Platte wurde dann mit Druckerschwärze
56 versehen, so dass sie in den geschnittenen und gestempelten Vertiefungen
57 blieb. Diese Vertiefungen schwärzten dann ein auf die Platte gelegtes
58 Papier. Das Gravieren wurde vollständig von Hand erledigt. Es war darum
59 sehr mühsam, Korrekturen anzubringen, weshalb man von vornherein richtig
60 schneiden musste. Es handelte sich dabei um ein sehr spezialisiertes Handwerk.
62 Heutzutage wird fast alle gedruckte Musik von Computern erstellt. Das
63 hat einige deutliche Vorteile: Drucke sind billiger als die gravierten
64 Platten und der Computersatz kann per E-Mail verschickt werden. Leider
65 hat der intensive Einsatz des Computers die graphische Qualität
66 des Notensatzes vermindert. Mit dem Computer erstellte Noten sehen
67 langweilig und mechanisch aus, was es erschwert, von ihnen zu spielen.
70 @c introduce illustrating aspects of engraving, font...
71 Die Abbildung unten illustriert den Unterschied zwischen
72 traditionellem Notensatz und einem typischen Computersatz. Das
73 dritte Bild zeigt, wie LilyPond die Formen des traditionellen
74 Satzes nachahmt. Das linke Bild zeigt ein eingescanntes b-Vorzeichen
75 aus einer 2000 herausgegebenen Edition. Das mittlere Bild
76 zeigt das b-Vorzeichen derselben Musik aus einer handgestochenen
77 Bärenreiter-Ausgabe. Das linke Bild zeigt die typischen Makel
78 des Computer-Satzes: Die Notenlinien sind sehr dünn, die Schwärze
79 des Vorzeichens entspricht den dünnen Linien und hat eine gerade
80 Form mit scharfen Ecken und Kanten. Im Gegensatz dazu hat das
81 Bärenreiter-Vorzeichen dicke, geradezu sinnlich rundliche
82 Formen. Unser Symbol für das Vorzeichen hat neben anderen
83 auch dieses b als Vorbild. Es ist abgerundet und passt zu unseren
84 Notenlinien, die sehr viel dicker sind als die der entsprechenden
87 @multitable @columnfractions .125 .25 .25 .25 .125
91 @image{pictures/henle-flat-gray,,4cm}
94 @image{pictures/henle-flat-gray,,,png}
99 @image{pictures/baer-flat-gray,,4cm}
102 @image{pictures/baer-flat-gray,,,png}
107 @image{pictures/lily-flat-bw,,4cm}
110 @image{pictures/lily-flat-bw,,,png}
114 @image{pictures/henle-flat-bw,,,png}
115 @image{pictures/baer-flat-bw,,,,png}
116 @image{pictures/lily-flat-bw,,,png}
124 LilyPond Feta-Schriftart (2003)
134 @c introduce illustrating aspects of engraving, spacing...
135 Die Verteilung der Noten innerhalb des Taktes sollte ihrer Dauer
136 entsprechen. Moderne Partituren zeigen diese Verhältnisse jedoch
137 mit einer mathematischen Präzision, die nur sehr schlechte
138 Ergebnisse bringt. Im nächsten Beispiel ist ein Motiv zweimal
139 gesetzt: einmal mit den exakten mathematischen Längenverhältnissen, dann
140 mit kleinen Korrekturen. Welches von beiden ist mit dieser Korrektur
143 @cindex Optischer Ausgleich
144 @c file spacing-optical.
145 @c need to include it here, because we want two images.
166 \override NoteSpacing #'stem-spacing-correction = #0.6
191 \override NoteSpacing #'stem-spacing-correction = #0.0
192 \override NoteSpacing #'same-direction-correction = #0.0
193 \override StaffSpacing #'stem-spacing-correction = #0.0
199 @cindex normale Rhythmen
200 @cindex normale Abstände
201 @cindex Abstände, normal
202 @cindex Rhythmen, normal
204 In diesem Ausschnitt kommen nur Viertel vor, Noten, die in einem
205 gleichmäßigen Rhythmus gespielt werden. Die Abstände sollten das
206 widerspiegeln. Leider lässt uns aber das Auge im Stich: es beachtet
207 nicht nur den Abstand von aufeinander folgenden Notenköpfen, sondern
208 auch den ihrer Hälse. Also müssen Noten, deren Hälse in direkter
209 Folge zuerst nach oben und dann nach unten ausgerichtet sind, weiter
210 auseinander gezogen werden, während die unten/oben-Folge engere
211 Abstände fordert, und das alles auch noch in Abhängigkeit von der
212 vertikalen Position der Noten. Das obere Beispiel ist mit dieser
213 Korrektur gesetzt, das untere ohne. In letzterem Fall bilden sich
214 für das Auge bei unten/oben-Folgen Notenklumpen mit schmalen Abständen
215 zwischen den Notenhälsen.
219 Musiker sind üblicherweise zu sehr damit beschäftigt, die Musik aufzuführen,
220 als dass sie das Aussehen der Noten studieren könnten; und diese
221 Beschäftigung mit typographischen Details mag akademisch wirken.
222 Das ist sie aber nicht. Unser Beispielstück hat einen
223 monotonen Rhythmus, und wenn alle Zeilen einförmig aussehen, wird
224 das Notenblatt zu einem Labyrinth. Wenn der Spieler auch nur
225 einmal wegschaut oder kurze Zeit unkonzentriert ist, findet er
226 nicht mehr zurück zu der Stelle, an der er war.
228 Der dichtere Eindruck, den die dickeren Notenlinien und schwereren
229 Notationssymbole schaffen, eignet sich auch besser für Noten,
230 die weit vom Leser entfernt stehen, etwa auf einem Notenständer.
231 Eine sorgfältige Verteilung der Zwischenräume erlaubt es, die
232 Noten sehr dicht zu setzen, ohne dass die Symbole zusammenklumpen.
233 Dadurch werden unnötige Seitenumbrüche vermieden, so dass man
234 nicht so oft blättern muss.
236 Dies sind die Anforderungen der Typographie: Das Layout sollte
237 schön sein -- nicht aus Selbstzweck, sondern um dem Leser zu helfen. Für
238 Aufführungsmaterial ist das umso wichtiger, denn Musiker haben eine begrenzte
239 Aufnahmefähigkeit. Je weniger Mühe nötig ist, die Noten zu erfassen, desto mehr
240 Zeit bleibt für die Gestaltung der eigentlichen Musik. Das heißt: Gute
241 Typographie führt zu besseren Aufführungen!
243 Die Beispiele haben gezeigt, dass der Notensatz eine subtile und
244 komplexe Kunst ist und gute Ergebnisse nur mit viel Erfahrung
245 erlangt werden können, die Musiker normalerweise nicht haben.
246 LilyPond stellt unser Bemühen dar, die graphische Qualität
247 handgestochener Notenseiten ins Computer-Zeitalter zu transportieren
248 und sie für normale Musiker erreichbar zu machen. Wir haben
249 unsere Algorithmen, die Gestalt der Symbole und die Programm-Einstellungen
250 darauf abgestimmt, einen Ausdruck zu erzielen, der der Qualität
251 der alten Editionen entspricht, die wir so gerne betrachten
252 und aus denen wir gerne spielen.
256 @node Automatisierter Notensatz
257 @unnumberedsubsec Automatisierter Notensatz
258 @translationof Automated engraving
260 @cindex Notensatz, automatisch
261 @cindex automatischer Notensatz
263 Wie sollen wir also jetzt die Typographie anwenden?
264 Wie können wir erwarten, dass wir in der Lage wären,
265 ein Programm zu schreiben, dass den Beruf des
266 Notenstechers ersetzt, wo dieser doch mehr als zehn
267 Jahre braucht, um ein Meister zu werden?
269 Wir können es tatsächlich nicht! Da Typographie allein
270 durch das menschliche Auge bestimmt ist, kann der Mensch
271 nicht ersetzt werden. Aber sehr viel mechanische Arbeit
272 kann automatisiert werden. Indem etwa LilyPond die üblichen
273 Situationen kennt und bewältigt, können die restlichen
274 Fehler von Hand beseitigt werden. Das ist schon ein
275 großer Fortschritt im Vergleich zu den existierenden
276 Programmen. Und mit der Zeit können immer mehr Fälle
277 automatisiert werden, so dass immer weniger Eingriffe
278 von Hand notwendig werden.
281 Als wir anfingen, haben wir LilyPond vollständig in der Programmiersprache C++
282 geschrieben. Das hieß, dass der Funktionsumfang des Programms vollständig durch
283 die Programmierer festgelegt war. Das stellte sich aus einer Reihe von Gründen
284 als unzureichend heraus:
287 @item Wenn LilyPond Fehler macht, muss der Benutzer die
288 Einstellungen ändern können. Er muss also Zugang zur
289 Formatierungsmaschinerie haben. Deshalb können die Regeln und
290 Einstellungen nicht beim Kompilieren des Programms festgelegt
291 werden, sondern sie müssen zugänglich sein, während das Programm
295 @item Notensatz ist eine Frage des Augenmaßes, und damit auch vom
296 Geschmack abhängig. Benutzer können mit unseren Entscheidungen
297 unzufrieden sein. Darum müssen also auch die Definitionen des
298 typographischen Stils dem Benutzer zugänglich sein.
300 @item Schließlich verfeinern wir unseren Formatierungsalgorithmus
301 immer weiter, also müssen die Regeln auch flexibel sein. Die
302 Sprache C++ zwingt zu einer bestimmten Gruppierungsmethode,
303 die nicht den Regeln für den Notensatz entspricht.
306 @cindex Scheme-Programmiersprache
308 Diese Probleme wurden angegangen, indem ein Übersetzer für
309 die Programmiersprache Scheme integriert wurde und Teile
310 von LilyPond in Scheme neu geschrieben wurden. Die derzeitige
311 Formatierungsarchitektur ist um die Notation von graphischen
312 Objekten herum aufgebaut, die von Scheme-Variablen und -Funktionen
313 beschrieben werden. Diese Architektur umfasst Formatierungsregeln,
314 typographische Stile und individuelle Formatierungsentscheidungen.
315 Der Benutzer hat direkten Zugang zu den meisten dieser Einstellungen.
317 Scheme-Variablen steuern Layout-Entscheidungen. Zum Beispiel haben
318 viele graphische Objekte eine Richtungsvariable, die zwischen
319 oben und unten (oder rechts und links) wählen kann. Hier etwa
320 sind zwei Akkorde mit Akzenten und Arpeggien.
321 Beim ersten Akkord sind alle Objekte nach unten (oder links)
322 ausgerichtet, beim zweiten nach oben (rechts).
324 @lilypond[quote,ragged-right]
326 \override SpacingSpanner #'spacing-increment = #3
327 \override TimeSignature #'transparent = ##t
329 \stemDown <e g b>4_>-\arpeggio
330 \override Arpeggio #'direction = #RIGHT
331 \stemUp <e g b>4^>-\arpeggio
335 @cindex Formatierung einer Partitur
336 @cindex Partitur, Formatierung
337 @cindex Formatierungsregeln
340 Der Prozess des Notensetzens besteht für das Programm darin,
341 die Variablen der graphischen Objekte zu lesen und zu
342 schreiben. Einige Variablen haben festgelegte Werte. So
343 ist etwa die Dicke von vielen Linien – ein Charakteristikum
344 des typographischen Stils – von vornherein festgelegt.
345 Wenn sie geändert werden, ergibt sich ein anderer typographischer Eindruck.
347 @lilypond[quote,ragged-right]
350 c'4-~ c'16 as g f e16 g bes c' des'4
355 \override Beam #'thickness = #0.3
356 \override Stem #'thickness = #0.5
357 \override Bar #'thickness = #3.6
358 \override Tie #'thickness = #2.2
359 \override StaffSymbol #'thickness = #3.0
360 \override Tie #'extra-offset = #'(0 . 0.3)
366 Formatierungsregeln sind auch vorbelegte Variablen. Zu jedem Objekt gehören
367 Variablen, die Prozeduren enthalten. Diese Prozeduren machen die eigentliche
368 Satzarbeit aus, und wenn man sie durch andere ersetzt, kann die Darstellung
369 von Objekten verändert werden. Im nächsten Beispiel wird die Regel, nach der
370 die Notenköpfe gezeichnet werden, während des Ausschnitts verändert.
372 @lilypond[quote,ragged-right]
373 #(set-global-staff-size 30)
375 #(define (mc-squared grob orig current)
376 (let* ((interfaces (ly:grob-interfaces grob))
377 (pos (ly:grob-property grob 'staff-position)))
378 (if (memq 'note-head-interface interfaces)
380 (ly:grob-set-property! grob 'stencil
381 (grob-interpret-markup grob
382 (make-lower-markup 0.5
386 ((-2) (make-smaller-markup (make-bold-markup "2")))
389 \new Voice \relative c' {
391 \set autoBeaming = ##f
394 \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
395 \once \override NoteHead #'font-size = #-7
396 \once \override NoteHead #'font-family = #'sans
397 \once \override NoteHead #'font-series = #'bold
399 \once \override NoteHead #'style = #'cross
401 \applyOutput #'Voice #mc-squared
404 { d8[ es-( fis^^ g] fis2-) }
405 \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
412 @node Welche Symbole?
413 @unnumberedsubsec Welche Symbole?
414 @translationof What symbols to engrave?
423 Während des Notensatzprozesses entscheidet sich, wo
424 Symbole platziert werden. Das kann aber nur gelingen,
425 wenn vorher entschieden wird, @emph{welche} Symbole
426 gesetzt werden sollen, also welche Art von Notation benutzt
429 Die heutige Notation ist ein System zur Musikaufzeichnung,
430 das sich über die letzten 1000 Jahre entwickelt hat. Die
431 Form, die heute üblicherweise benutzt wird, stammt aus dem
432 Barock. Auch wenn sich die grundlegenden Formen (also
433 die Notenköpfe, das Fünfliniensystem) nicht verändert haben,
434 entwickeln sich die Details trotzdem immer noch weiter, um
435 die Errungenschaften der Neuen Musik darstellen zu können. Die
436 Notation umfasst also 500 Jahre Musikgeschichte. Ihre Anwendung
437 reicht von monophonen Melodien bis zu ungeheuer komplexem Kontrapunkt
438 für großes Orchester.
440 Wie bekommen wir dieses vielköpfige Monster zu fassen?
441 Unsere Lösung ist es, eine strikte Trennung zwischen der Notation,
442 also welche Symbole benutzt werden, und dem Satz, also wohin sie
443 gesetzt werden, zu machen. Um das Problem anzupacken, haben wir
444 es in kleine (programmierbare) Happen zerteilt, so dass jede Art
445 von Symbol durch ein eigenes Plugin verarbeitet wird. Alle Plugins
446 kooperieren durch die LilyPond-Architektur. Sie sind vollständig
447 modular und unabhängig und können somit auch unabhängig voneinander
448 entwickelt werden. Der Schreiber, der die Musik in Graphik umwandelt,
449 ist ein Kopist oder Notenstecher (engl. engraver). Darum werden
450 die Plugins als @code{engraver} bezeichnet.
452 Im nächsten Beispiel wird gezeigt, wie mit dem Plugin für die Notenköpfe,
453 dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.
455 @lilypond[quote,ragged-right]
456 \include "engraver-example.ily"
463 \remove "Stem_engraver"
464 \remove "Phrasing_slur_engraver"
465 \remove "Slur_engraver"
466 \remove "Script_engraver"
467 \remove "Beam_engraver"
468 \remove "Auto_beam_engraver"
472 \remove "Accidental_engraver"
473 \remove "Key_engraver"
474 \remove "Clef_engraver"
475 \remove "Bar_engraver"
476 \remove "Time_signature_engraver"
477 \remove "Staff_symbol_engraver"
478 \consists "Pitch_squash_engraver"
485 Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher})
486 die Notenlinien hinzu.
488 @lilypond[quote,ragged-right]
489 \include "engraver-example.ily"
496 \remove "Stem_engraver"
497 \remove "Phrasing_slur_engraver"
498 \remove "Slur_engraver"
499 \remove "Script_engraver"
500 \remove "Beam_engraver"
501 \remove "Auto_beam_engraver"
505 \remove "Accidental_engraver"
506 \remove "Key_engraver"
507 \remove "Clef_engraver"
508 \remove "Bar_engraver"
509 \consists "Pitch_squash_engraver"
510 \remove "Time_signature_engraver"
517 Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert
518 eine Referenzstelle für das System.
520 @lilypond[quote,ragged-right]
521 \include "engraver-example.ily"
528 \remove "Stem_engraver"
529 \remove "Phrasing_slur_engraver"
530 \remove "Slur_engraver"
531 \remove "Script_engraver"
532 \remove "Beam_engraver"
533 \remove "Auto_beam_engraver"
537 \remove "Accidental_engraver"
538 \remove "Key_engraver"
539 \remove "Bar_engraver"
540 \remove "Time_signature_engraver"
547 Der @code{Stem_engraver} (@qq{Halsstecher}) schließlich fügt
550 @lilypond[quote,ragged-right]
551 \include "engraver-example.ily"
558 \remove "Phrasing_slur_engraver"
559 \remove "Slur_engraver"
560 \remove "Script_engraver"
561 \remove "Beam_engraver"
562 \remove "Auto_beam_engraver"
566 \remove "Accidental_engraver"
567 \remove "Key_engraver"
568 \remove "Bar_engraver"
569 \remove "Time_signature_engraver"
576 Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt,
577 der vorkommt. Jedes Mal, wenn ein Notenkopf erscheint (oder mehrere bei
578 einem Akkord), wird ein Hals-Objekt erstellt und an den
579 Kopf geheftet. Wenn wir dann noch engraver für Balken, Bögen,
580 Akzente, Vorzeichen, Taktlinien, Taktangaben und Tonartbezeichnungen
581 hinzufügen, erhalten wir eine vollständige Notation.
584 @lilypond[quote,ragged-right]
585 \include "engraver-example.ily"
590 @cindex Mehrstimmigkeit
591 @cindex Notensatz, Mehrstimmigkeit
594 Dieses System funktioniert gut für monophone Musik, aber wie geht
595 es mit Polyphonie? Hier müssen sich mehrere Stimmen ein System teilen.
597 @lilypond[quote,ragged-right]
598 \include "engraver-example.ily"
599 \new Staff << \topVoice \\ \botVoice >>
602 In diesem Fall benutzen beide Stimmen das System und die Vorzeichen gemeinsam,
604 Hälse, Bögen, Balken usw. sind jeder einzelnen Stimme eigen. Die engraver
605 müssen also gruppiert werden. Die Köpfe, Hälse, Bögen usw. werden
606 in einer Gruppe mit dem Namen @qq{Voice context} (Stimmenkontext)
607 zusammengefasst, die engraver für den Schlüssel, die Vorzeichen,
608 Taktstriche usw. dagegen in einer Gruppe mit dem Namen @qq{Staff context}
609 (Systemkontext). Im Falle von Polyphonie hat ein Staff-Kontext dann also
610 mehr als nur einen Voice-Kontext. Auf gleiche Weise können auch mehrere Staff-Kontexte
611 in einen großen Score-Kontext (Partiturkontext) eingebunden werden.
615 Programmreferenz: @rinternals{Contexts}.
618 @lilypond[quote,ragged-right]
619 \include "engraver-example.ily"
622 \new Staff << \topVoice \\ \botVoice >>
623 \new Staff << \pah \\ \hoom >>
628 @node Die Darstellung der Musik
629 @unnumberedsubsec Die Darstellung der Musik
630 @translationof Music representation
633 @cindex rekursive Strukturen
635 Idealerweise ist das Eingabeformat für ein komplexes Satzsystem die
636 abstrakte Beschreibung des Inhaltes. In diesem Fall wäre das die
637 Musik selber. Das stellt uns aber vor ein ziemlich großes Problem,
638 denn wie können wir definieren, was Musik wirklich ist? Anstatt darauf
639 eine Antwort zu suchen, haben wir die Frage einfach umgedreht. Wir
640 schreiben ein Programm, das den Notensatz beherrscht und machen das
641 Format so einfach wie möglich. Wenn es nicht mehr vereinfacht
642 werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser
643 Format dient als die formale Definition eines Musiktextes.
645 Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond,
646 darum soll sie einfach zu schreiben sein; z. B. bedeutet
653 eine Viertel c' und eine Achtel d', wie in diesem Beispiel:
661 In kleinem Rahmen ist diese Syntax sehr einfach zu benutzen. In
662 größeren Zusammenhängen aber brauchen wir Struktur. Wie sonst kann
663 man große Opern oder Symphonien notieren? Diese Struktur wird
664 gewährleistet durch sog. music expressions (Musikausdrücke): indem
665 kleine Teile zu größeren kombiniert werden, kann komplexere Musik
666 dargestellt werden. So etwa hier:
668 @lilypond[quote,verbatim,fragment,relative=1]
673 Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in @code{<<} und @code{>>} einschließt.
675 @c < > is not a music expression,
676 @c so we use <<>> iso. <> to drive home the point of
677 @c expressions. Don't change this back --hwn.
682 @lilypond[quote,fragment,relative=1]
683 \new Voice { <<c4 d4 e>> }
687 Um aufeinanderfolgende Noten darzustellen, werden sie in geschweifte Klammern gefasst:
689 @code{@{@tie{}@dots{}@tie{}@}}
692 @{ f4 <<c4 d4 e4>> @}
695 @lilypond[quote,relative=1,fragment]
700 Dieses Gebilde ist in sich wieder ein Ausdruck, und kann
701 daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben).
704 << g2 \\ @{ f4 <<c4 d4 e4>> @} >>
707 @lilypond[quote,fragment,relative=2]
708 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
711 Solche geschachtelten Strukturen können sehr gut in einer
712 kontextunabhängigen Grammatik beschrieben werden. Der Programmcode
713 für den Satz ist auch mit solch einer Grammatik erstellt. Die Syntax
714 von LilyPond ist also klar und ohne Zweideutigkeiten definiert.
716 Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer
717 wahrgenommen. Teilweise sind sie eine Frage des Geschmackes und werden viel
718 diskutiert. Auch wenn Geschmacksfragen ihre Berechtigung
719 haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond
720 spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische
721 Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel
722 schwieriger. Das kann auch die Zeilenzahl der Programmzeilen zeigen:
723 Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:
725 @node Beispielanwendung
726 @unnumberedsubsec Beispielanwendung
727 @translationof Example applications
729 @cindex einfaches Beispiel
730 @cindex Beispiel, einfach
732 Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des
733 Musiksatzes in ein Computerprogramm gießen kann. Dieses
734 Programm kann nun dank vieler harter Arbeitsstunden benutzt werden,
735 um sinnvolle Aufgaben zu erledigen. Die einfachste ist dabei der
738 @lilypond[quote,relative=1]
746 Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir
749 @lilypond[quote,ragged-right]
751 \chords { c2 c f2 c }
757 \addlyrics { twin -- kle twin -- kle lit -- tle star }
761 Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das
762 nächste Beispiel zeigt einige etwas exotischere Konstruktionen:
766 title = "Screech and boink"
767 subtitle = "Random complex notation"
768 composer = "Han-Wen Nienhuys"
772 \context PianoStaff <<
777 \revert Stem #'direction
779 \set subdivideBeams = ##t
791 \set followVoice = ##t
792 c'''32([ b''16 a''16 gis''16 g''32)]
794 s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
796 s4 \autoBeamOff d''8.. f''32
802 \new Staff = "down" {
805 \set subdivideBeams = ##f
806 \override Stem #'french-beaming = ##t
807 \override Beam #'thickness = #0.3
808 \override Stem #'thickness = #4.0
815 \override Staff.Arpeggio #'arpeggio-direction =#down
816 <cis, e, gis, b, cis>4\arpeggio
823 tempoWholesPerMinute = #(ly:make-moment 60 8)
829 \consists Horizontal_bracket_engraver
835 Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht
836 die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft,
837 kann er auch von anderen Programmen angesteuert werden, die Musik oder Noten
838 verarbeiten. So können etwa ganze Datenbanken musikalischer Fragmente automatisch
839 in Notenbilder umgewandelt werden, die dann auf Internetseiten oder
840 in Multimediapräsentation Anwendung finden.
842 Dieses Benutzerhandbuch zeigt eine weitere Möglichkeit: Die Noten werden als
843 reiner Text eingegeben und können darum sehr einfach integriert werden
844 in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem
845 Fall, Texinfo. Durch ein spezielles Programm werden die Eingabefragmente durch
846 Notenbilder in der resultierenden PDF- oder HTML-Datei ersetzt. Dadurch ist
847 es sehr einfach, Noten und Text zu kombinieren.
851 @node Über die Dokumentation
852 @section Über die Dokumentation
853 @translationof About the documentation
855 @cindex Handbuch zum Lernen
857 @cindex Anwendungsbenutzung
858 @cindex Schnipselliste
859 @cindex Referenz der Interna
861 Die Dokumentation zu LilyPond ist unterteilt in mehrere Handbücher.
863 @c leave these lines wrapping around. It's some texinfo 4.12 thing. -gp
864 @c This is actually a limitation of texi2html. -jm
866 * Über das Handbuch zum Lernen (LM):: Dieses Handbuch stellt LilyPond vor und vermittelt die Grundkenntnisse, um damit arbeiten zu können.
867 * Über das Glossar (MG):: Dieses Handbuch erklärt zahlreiche musikalische Fachausdrücke inklusive Übersetzungen in verschiedene Sprachen.
868 * Über die Notationsreferenz (NR):: Dieses Handbuch stellt den Hauptteil der Dokumentation dar. Es liefert detaillierte Informationen zum Notensatz mit LilyPond. Als Voraussetzung werden die Kenntnisse des @qq{Handbuchs zum Lernen} angenommen.
869 * Über die Anwendungsbenutzung (AU):: Dieses Handbuch diskutiert den konkreten Aufruf des @qq{lilypond}-Programms und wie LilyPond-Notensatz in andere Programme integriert werden kann.
870 * Über die Schnipselliste:: Dies ist eine Sammlung von kurzen LilyPond-Beispielen.
871 * Über die Referenz der Iterna (IR):: Dieses Dokument liefert Referenzwissen über LilyPonds interne Strukturen und ist vor allem bei der Erstellung von tiefergehenden Optimierungen und Anpassungen hilfreich.
872 * Andere Dokumentation:: Es existieren noch etliche weitere Teile der Dokumentation, wie etwa die @q{Neueigkeiten} Seite oder das Archiv der Mailingliste.
876 @node Über das Handbuch zum Lernen (LM)
877 @unnumberedsubsec Über das Handbuch zum Lernen (LM)
878 @translationof About the Learning Manual
880 @cindex Handbuch zum Lernen
882 Dieses Handbuch erklärt die Grundbegriffe von LilyPond und stellt
883 die fundamentalen Konzepte hinter dem Programm vor. Diese Kapitel sollten
884 in linearer Reihenfolge gelesen werden.
886 Am Ende jedes Abschnitts findet sich ein Absatz @strong{Siehe auch}, der
887 Kreuzreferenzen zu anderen Abschnitten enthält. Beim ersten Durchlesen
888 empfiehlt es sich nicht, diesen gleich zu folgen, da meist noch
889 zahlreiche Grundbegriffe zum Verständnis fehlen. Wenn Sie sich durch
890 das Handbuch zum Lernen geackert haben, wollen Sie vielleicht einzelne
891 Abschnitte nochmal durchgehen und dann den Kreuzverweisen zur Vertiefung
892 der Zusammenhänge folgen.
897 @ref{Einleitung}: erklärt den Hintergrund und das Ziel von LilyPond.
900 @ref{Übung}: liefert eine einfache Einführung in das Setzen von Musik
901 mit LilyPond. Neulinge sollten mit diesem Kapitel beginnen.
904 @ref{Grundbegriffe}: erklärt etliche allgemeine Konzepte
905 hinter dem Dateiformat von LilyPond. Wenn Sie sich nicht sicher
906 sind, an welcher Stelle Sie einen Befehl in die Datei einfügen sollen,
907 ist dieses Kapitel genau das richtige!
910 @ref{Die Ausgabe verändern}: stellt dar, wie die Standardeinstellungen von
911 LilyPond verändert werden können.
914 @ref{An LilyPond-Projekten arbeiten}: liefert Tipps im praktischen Umgang mit
915 Lilypond und gibt Hinweise, wie gängige Fehler vermieden werden können.
916 Bevor Sie mit einem großen Projekt beginnen, sollten Sie dieses Kapitel
917 unbedingt gelesen haben!
921 Das Handbuch zum Lernen enthält auch zahlreiche Anhänge, die nicht
922 zum linearen Durchlesen geeignet sind. Sie sind allerdings zur späteren
923 Referenz sehr gut geeignet:
928 @ref{Vorlagen}: zeigt einige fertige Dokumentvorlagen für diverse
929 Stücke mit unterschiedlichen Charakteristika. Kopieren Sie einfach
930 die Vorlagen in Ihre eigene Datei, fügen Sie die Noten hinzu und Sie
934 @ref{Scheme-Übung}: liefert eine kurze Einführung in Scheme, die
935 Programmiersprache, die die Musikfunktionen in LilyPond intern benutzen.
936 Dies stellt tiefgehendes Wissen dar, wenn Sie LilyPond bis ins kleinste Detail
937 konfigurieren möchten. Die meisten Benutzer brauchen dies jedoch selten bis
943 @node Über das Glossar (MG)
944 @unnumberedsubsec Über das Glossar (MG)
945 @translationof About the Music Glossary
950 @cindex Übersetzungen
956 @rglosnamed{Top,Das Glossar} erklärt musikalische Fachausdrücke und
957 enthält auch deren Übersetzungen in diverse Sprachen. Wenn Sie mit
958 Musiknotation oder der (englisch-sprachigen) Musikterminologie nicht vertraut
959 sind (vor allem, wenn Englisch nicht Ihre Muttersprache ist), ist es
960 sehr empfehlenswert, das Glossar immer wieder zu Rate zu ziehen.
963 @node Über die Notationsreferenz (NR)
964 @unnumberedsubsec Über die Notationsreferenz (NR)
965 @translationof About the Notation Reference
967 @cindex Notationsreferenz
969 @cindex Referenz zum Notensatz
971 In diesem Buch werden alle LilyPond-Befehle erklärt, die Notationszeichen
972 produzieren. Es geht von der Annahme aus, dass der Leser sich mit den
973 Grundkonzepten des Programmes im Handbuch zum Lernen bekannt gemacht hat.
978 @emph{@ruser{Musikalische Notation}}:
979 erklärt alles über die grundlegenden Notationskonstruktionen. Dieses Kapitel
980 ist für fast jedes Notationsprojekt nützlich.
983 @emph{@ruser{Spezielle Notation}}:
984 erklärt spezifische Schwierigkeiten, die sich bei bestimmten Notationstypen
985 ergeben. Dieses Kapitel ist nur in entsprechenden Fällen bestimmter Instrumente
986 oder bei Gesang zu konsultieren.
989 @emph{@ruser{Allgemeine Eingabe und Ausgabe}}:
990 erläutert allgemeine Informationen über die Eingabedateien von Lilypond und
991 wie die Ausgabe gesteuert werden kann.
994 @emph{@ruser{Abstände}}:
995 befasst sich mit globalen Fragen wie der Definition von Papierformaten
996 oder wie man Seitenumbrüche definiert.
999 @emph{@ruser{Standardeinstellungen verändern}}:
1000 erklärt, wie des Layout getrimmt werden kann um genau zum gewünschten Ergebnis
1004 @emph{@ruser{Schnittstellen für Programmierer}}:
1005 demonstriert die Erstellung von musikalischen Funktionen.
1009 Ds Benutzerhandbuch enthält auch Anhänge mit nützlichen Referenztabellen.
1014 Die @ruser{Literatur}
1015 enthält einige wichtige Quellen für alle, die mehr über Notation und
1016 den Notensatz erfahren wollen.
1019 @ruser{Notationsübersicht}
1020 sind Tabellen, in denen Akkordbezeichnungen, MIDI-Instrumente,
1021 Farbbezeichnungen und die Zeichen der Feta-Schriftart gesammelt sind.
1025 @emph{@ruser{Befehlsübersicht}}
1026 zeigt die wichtigsten LilyPond-Befehle.
1030 @emph{@ruser{Index der LilyPond-Befehle}}
1031 listet alle Befehle auf, die mit @code{\} anfangen.
1035 @emph{@ref{LilyPond-Index}}
1036 ist ein vollständiger Index.
1042 @node Über die Anwendungsbenutzung (AU)
1043 @unnumberedsubsec Über die Anwendungsbenutzung (AU)
1044 @translationof About the Application Usage
1046 @cindex Anwendungsbenutzung
1047 @cindex Benutzung, lilypond-Programm
1048 @cindex Integration von LilyPond in andere Programme
1050 In diesem Buch wird erklärt, wie das Programm ausgeführt wird und
1051 wie die Notation von LilyPond in andere Programme integriert werden
1057 @emph{@rprogram{Installieren}}:
1058 erklärt wie LilyPond installiert wird (inklusive Kompilation, wenn es
1062 @emph{@rprogram{Setup}}:
1063 erklärt wie der Computer eingerichtet wird, damit LilyPond optimal genutzt
1064 werden kann. Hierzu gehören etwa spezielle Umgebungen für bestimmte
1068 @emph{@rprogram{LilyPond starten}}:
1069 zeigt, wie LilyPond und seine Hilfsprogramme gestartet werden. Zusätzlich
1070 wird hier erklärt, wie Quelldateien von alten LilyPond-Versionen aktualisiert
1074 @emph{@rprogram{LilyPond-book}}:
1075 erklärt die Details, um einen Text mit eingefügten Notenbeispielen (wie
1076 etwa dieses Handbuch) zu
1080 @emph{@rprogram{Von anderen Formaten konvertieren}}:
1081 erklärt, wie die Konvertierungsprogramme aufgerufen werden. Diese
1082 Programme kommen mit LilyPond zusammen und konvertieren eine Vielzahl
1083 von Notensatzformaten in das @code{.ly}-Format.
1088 @node Über die Schnipselliste
1089 @unnumberedsubsec Über die Schnipselliste
1090 @translationof About the Snippet List
1094 @cindex LilyPond Snippet Repository
1095 @cindex LilyPond-Schnipsel-Depot
1097 Die @rlsrnamed{Top,LilyPond-Schnipsel} sind eine ausführliche Sammlung kurzer
1098 Beispiele, anhand derer Tricks, Tipps und Spezialfunktionen von LilyPond
1099 demonstriert werden. Die meisten dieser Schnipsel können auch im
1100 @uref{http://lsr.dsi.unimi.it/,LilyPond-Schnipsel-Depot} betrachtet
1101 werden. Diese Internetseite verfügt auch über ein
1102 durchsuchbares LilyPond-Handbuch.
1104 Die Liste der Schnipsel zu einem Abschnitt des Benutzerhandbuchs ist auch
1105 dort jeweils im Abschnitt @strong{Siehe auch} verlinkt.
1108 @node Über die Referenz der Iterna (IR)
1109 @unnumberedsubsec Über die Referenz der Iterna (IR)
1110 @translationof About the Internals Reference
1112 @cindex Referenz der Interna
1114 Die @rinternalsnamed{Top,Referenz der Interna} ist eine Sammlung intensiv
1115 verlinkter HTML-Seiten, die alle Details jeder einzelnen
1116 LilyPond-Klasse, jedes Objektes und jeder Funktion erklären. Sie wird
1117 direkt aus den Satzdefinitionen im Quellcode produziert.
1119 So gut wie alle Formatierungsmöglichkeiten, die intern verwendet werden,
1120 sind auch direkt für den Benutzer zugänglich. Alle Variablen z. B., die
1121 Dicke-Werte, Entfernungen usw. kontrollieren, können in den Eingabe-Dateien
1122 verändert werden. Es gibt eine riesige Anzahl von Formatierungsoptionen, und
1123 alle haben einen @qq{Siehe}-Abschnitt, der auf die Dokumentation verweist.
1124 Im HTML-Handbuch haben diese Abschnitte klickbare Links.
1126 Die Programmreferenz ist nur auf englisch verfügbar.
1129 @node Andere Dokumentation
1130 @unnumberedsubsec Andere Dokumentation
1131 @translationof Other documentation
1133 Es gibt noch eine Reihe weiterer wertvoller Informationsquellen zu LilyPond:
1141 @uref{../topdocs/NEWS.html,Neuigkeiten}:
1144 @uref{../../topdocs/NEWS.html,Neuigkeiten}:
1150 eine Zusammenfassung der Änderungen in LilyPond seit der letzten Version.
1152 @item @uref{http://lists.gnu.org/archive/html/lilypond-user/,Das Archiv
1153 der lilypond-user Mailing-Liste}: enthält alle bisher an die Liste
1154 gesendeten Mails. Viele Fragen werden immer wieder gestellt und auch
1155 beantwortet. Die Chance, dass Ihre Frage auch schon mal aufgetaucht ist,
1156 ist also relativ groß. In diesem Fall finden Sie die Antwort in diesem
1159 @item @uref{http://lists.gnu.org/archive/html/lilypond-devel/,Das Archiv
1160 der lilypond-devel Mailing-Liste}: enthält alle bisher an die
1161 Entwicklerliste gesendeten Mails. Diese Diskussionen sind dementsprechend
1162 technisch gehalten. Wenn Sie eine tiefergehende Frage zu den Interna von
1163 LilyPond haben, finden Sie die Antwort vielleicht in diesem Archiv.
1165 @item Eingebettete Musikbeispiele: Auf allen HTML-Seiten mit Notenbeispielen,
1166 die von LilyPond erzeugt wurden, kann die originale Quelldatei durch einen Klick auf das
1167 Bild betrachtet werden.
1169 @item Initialisierungsdateien von LilyPond:
1171 Der Speicherort der Dokumentationsdateien unterscheidet sich evtl. je
1172 nach Betriebssystem. Manchmal wird hier auf Initialisierungs- oder
1173 Beispieldateien verwiesen. Das Handbuch nimmt dabei an, dass diese
1174 Dateien sich relativ zum Quellverzeichnis befinden. Zum Beispiel würde
1175 der Pfad @file{input/@/lsr/@/Verzeichnis/@/bla@/.ly} etwa auf die Datei
1176 @file{lilypond@/2.x.y/@/input/@/lsr/@/Verzeichnis/@/bla@/.ly} verweisen. In den
1177 Binärpaketen für Unix-Plattformen sind Dokumentation und Beispiele
1178 üblicherweise in einem Verzeichnis wie @file{/usr/@/share/@/doc/@/lilypond/}
1179 gespeichert. Initialisierungsdateien, etwa @file{scm/@/lily@/.scm}
1180 oder @file{ly/@/engraver@/-init@/.ly}, befinden sich normalerweise im
1181 Verzeichnis @file{/usr/@/share/@/lilypond/}.
1183 Weiterführende Informationen finden Sie unter @ref{Mehr Information}.