1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
4 Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
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
16 Dieses Kapitel stellt dem Leser die Idee hinter LilyPond und die Dokumentation
21 * About the documentation::
28 Dieser Abschnitt behandelt die allgemeinen Ziele und die Architektur von LilyPond.
32 * Automated engraving::
33 * What symbols to engrave?::
34 * Music representation::
35 * Example applications::
40 @unnumberedsubsec Engraving
45 @cindex Gravur, Notensatz
46 @cindex Plattendruck, Noten
48 Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser
49 Begriff stammt aus dem traditionellen Notendruck. Noch bis vor etwa 20
50 Jahren wurden Noten erstellt, indem man sie in eine Zink- oder Zinnplatte
51 schnitt oder mit Stempeln schlug. Diese Platte wurde dann mit Druckerschwärze
52 versehen, so dass sie in den geschnittenen und gestempelten Vertiefungen
53 blieb. Diese Vertiefungen schwärzten dann ein auf die Platte gelegtes
54 Papier. Das Gravieren wurde vollständig von Hand erledigt. Es war darum
55 sehr mühsam, Korrekturen anzubringen, weshalb man von vornherein richtig
56 schneiden musste. Es handelte sich dabei um ein sehr spezialisiertes Handwerk.
58 Heutzutage wird fast alle gedruckte Musik von Computern erstellt. Das
59 hat einige deutliche Vorteile: Drucke sind billiger als die gravierten
60 Platten und der Computersatz kann per E-Mail verschickt werden. Leider
61 hat der intensive Einsatz des Computers die graphische Qualität
62 des Notensatzes vermindert. Mit dem Computer erstellte Noten sehen
63 langweilig und mechanisch aus, was es erschwert, von ihnen zu spielen.
66 @c introduce illustrating aspects of engraving, font...
67 Die Abbildung unten illustriert den Unterschied zwischen
68 traditionellem Notensatz und einem typischen Computersatz. Das
69 dritte Bild zeigt, wie LilyPond die Formen des traditionellen
70 Satzes nachahmt. Das linke Bild zeigt ein eingescanntes b-Vorzeichen
71 aus einer 2000 herausgegebenen Edition. Das mittlere Bild
72 zeigt das b-Vorzeichen der selben Musik aus einer handgestochenen
73 Bärenreiter-Ausgabe. Das linke Bild zeigt die typischen Makel
74 des Computer-Satzes: Die Notenlinien sind sehr dünn, die Schwärze
75 des Vorzeichens entspricht den dünnen Linien und hat eine gerade
76 Form mit scharfen Ecken und Kanten. Im Gegensatz dazu hat das
77 Bärenreiter-Vorzeichen dicke, gerade zu sinnlich rundliche
78 Formen. Unser Symbol für das Vorzeichen hat neben anderen
79 auch dieses b als Vorbild. Es ist abgerundet und passt zu unseren
80 Notenlinien, die sehr viel dicker sind als die der entsprechenden
83 @multitable @columnfractions .125 .25 .25 .25 .125
87 @image{henle-flat-gray,,4cm}
90 @image{henle-flat-gray,,,png}
95 @image{baer-flat-gray,,4cm}
98 @image{baer-flat-gray,,,png}
103 @image{lily-flat-bw,,4cm}
106 @image{lily-flat-bw,,,png}
110 @c workaround for makeinfo-4.6: line breaks and multi-column cookies
111 @image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
112 @image{lily-flat-bw,,,png}
120 LilyPond Feta-Schriftart (2003)
130 @c introduce illustrating aspects of engraving, spacing...
131 Die Verteilung der Noten innerhalb des Taktes sollte ihrer Dauer
132 entsprechen. Moderne Partituren zeigen diese Verhältnisse jedoch
133 mit einer mathematischen Präzision, die nur sehr schlechte
134 Ergebnisse bringt. Im nächsten Beispiel ist ein Motiv zweimal
135 gesetzt: einmal mit den exakten mathematischen Längenverhältnissen, dann
136 mit kleinen Korrekturen. Welches von beiden ist mit dieser Korrektur
139 @cindex Optischer Ausgleich
140 @c file spacing-optical.
141 @c need to include it here, because we want two images.
162 \override NoteSpacing #'stem-spacing-correction = #0.6
187 \override NoteSpacing #'stem-spacing-correction = #0.0
188 \override NoteSpacing #'same-direction-correction = #0.0
189 \override StaffSpacing #'stem-spacing-correction = #0.0
195 @cindex normale Rhythmen
196 @cindex normale Abstände
197 @cindex Abstände, normal
198 @cindex Rhythmen, normal
200 In diesem Ausschnitt kommen nur Viertel vor, Noten, die in einem
201 gleichmäßigen Rhythmus gespielt werden. Die Abstände sollten das
202 widerspiegeln. Leider lässt uns aber das Auge im Stich: es beachtet
203 nicht nur den Abstand von aufeinander folgenden Notenköpfen, sondern
204 auch den ihrer Hälse. Also müssen Noten, deren Hälse in direkter
205 Folge zuerst nach oben und dann nach unten ausgerichtet sind, weiter
206 auseinander gezogen werden, während die unten/oben-Folge engere
207 Abstände fordert, und das alles auch noch in Abhängigkeit von der
208 vertikalen Position der Noten. Das obere Beispiel ist mit dieser
209 Korrektur gesetzt, das untere ohne. In letzterem Fall bilden sich
210 für das Auge bei unten/oben-Folgen Notenklumpen mit schmalen Abständen
211 zwischen den Notenhälsen.
215 Musiker sind üblicherweise zu zu konzentriert, die Musik aufzuführen,
216 als das Aussehen der Noten zu studieren; und diese
217 Beschäftigung mit typographischen Details mag akademisch wirken.
218 Das ist sie aber nicht. Unser Beispielstück hat einen
219 monotonen Rhythmus, und wenn alle Zeilen gleich aussehen, wird
220 das Notenblatt zu einem Labyrinth. Wenn der Spieler auch nur
221 einmal wegschaut oder kurze Zeit unkonzentriert ist, findet er
222 nicht mehr zurück zu der Stelle, an der er war.
224 Der dichtere Eindruck, den die dickeren Notenlinien und schwereren
225 Notationssymbole schaffen, eignet sich auch besser für Noten,
226 die weit vom Leser entfernt stehen, etwa auf einem Notenständer.
227 Eine sorgfältige Verteilung der Zwischenräume erlaubt es, die
228 Noten sehr dicht zu setzen, ohne dass die Symbole zusammenklumpen.
229 Dadurch werden unnötige Seitenumbrüche vermieden, sodass man
230 nicht so oft blättern muss.
232 Dies sind die Anforderungen der Typographie: Das Layout sollte
233 schön sein -- nicht aus Selbstzweck, sondern um dem Leser zu helfen. Für
234 Aufführungsmaterial ist das umso wichtiger, denn Musiker haben eine begrenzte
235 Aufmerksamkeit. Je weniger Mühe nötig ist, die Noten zu erfassen, desto mehr
236 Zeit bleibt für die Gestaltung der eigentlichen Musik. Das heißt: Gute
237 Typographie führt zu besseren Aufführungen!
239 Die Beispiele haben gezeigt, dass der Notensatz eine subtile und
240 komplexe Kunst ist und gute Ergebnisse nur mit viel Erfahrung
241 erlangt werden können, die Musiker normalerweise nicht haben.
242 LilyPond stellt unser Bemühen dar, die graphische Qualität
243 handgestochener Notenseiten ins Computer-Zeitalter zu transportieren
244 und sie für normale Musiker erreichbar zu machen. Wir haben
245 unsere Algorithmen, die Gestalt der Symbole und die Programm-Einstellungen
246 darauf abgestimmt, einen Ausdruck zu erzielen, der der Qualität
247 der alten Editionen entspricht, die wir so gerne betrachten
248 und von denen wir gerne spielen.
252 @node Automated engraving
253 @unnumberedsubsec Automated engraving
255 @cindex Notensatz, automatisch
256 @cindex automatischer Notensatz
258 Wie sollen wir also jetzt die Typographie anwenden?
259 Wie können wir erwarten, dass wir in der Lage wären,
260 ein Programm zu schreiben, dass den Beruf des
261 Notenstechers ersetzt, wo dieser doch mehr als zehn
262 Jahre braucht, um ein Meister zu werden?
264 Wir können es tatsächlich nicht! Da Typographie allein
265 durch das menschliche Auge bestimmt ist, kann der Mensch
266 nicht ersetzt werden. Aber sehr viel mechanische Arbeit
267 kann automatisiert werden. Indem etwa LilyPond die üblichen
268 Situationen kennt und bewältigt, können die restlichen
269 Fehler von Hand beseitigt werden. Das ist schon ein
270 großer Fortschritt im Vergleich zu den existierenden
271 Programmen. Und mit der Zeit können immer mehr Fälle
272 automatisiert werden, so dass immer weniger Eingriffe
273 von Hand notwendig werden.
276 Als wir anfingen, haben wir LilyPond vollständig in der Programmiersprache C++
277 geschrieben. Das hieß, dass der Funktionsumfang des Programms vollständig durch
278 die Programmierer festgelegt war. Das stellte sich aus einer Reihe von Gründen
279 als unzureichend heraus:
282 @item Wenn LilyPond Fehler macht, muss der Benutzer die
283 Einstellungen ändern können. Er muss also Zugang zur
284 Formatierungsmaschinerie haben. Deshalb können die Regeln und
285 Einstellungen nicht beim Kompilieren des Programms festgelegt
286 werden, sondern sie müssen während des Laufes zugänglich sein.
289 @item Notensatz ist eine Frage des Augenmaßes, und damit auch vom
290 Geschmack abhängig. Benutzer können mit unseren Entscheidungen
291 unzufrieden sein. Darum müssen also auch die Definitionen des
292 typographischen Stils dem Benutzer zugänglich sein.
294 @item Schließlich verfeinern wir unseren Formatierungsalgorithmus
295 immer weiter, also müssen die Regeln auch flexibel sein. Die
296 Sprache C++ zwingt zu einer bestimmten Gruppierungsmethode,
297 die nicht den Regeln für den Notensatz entspricht.
300 @cindex Scheme-Programmiersprache
302 Diese Probleme wurden angegangen, indem ein Übersetzer für
303 die Programmiersprache Scheme integriert wurde und Teile
304 von LilyPond in Scheme neu geschrieben wurden. Die derzeitige
305 Formatierungsarchitektur ist um die Notation von graphischen
306 Objekten herum aufgebaut, die von Scheme-Variablen und -Funktionen
307 beschrieben werden. Diese Architektur umfasst Formatierungsregeln,
308 typographische Stile und individuelle Formatierungsentscheidungen.
309 Der Benutzer hat direkten Zugang zu den meisten dieser Einstellungen.
311 Scheme-Variablen steuern Layout-Entscheidungen. Zum Beispiel haben
312 viele graphische Objekte eine Richtungsvariable, die zwischen
313 oben und unten (oder rechts und links) wählen kann. Hier etwa
314 sind zwei Akkorde mit Akzenten und Arpeggien.
315 Beim ersten Akkord sind alle Objekte nach unten (oder links)
316 ausgerichtet, beim zweiten nach oben (rechts).
318 @lilypond[quote,ragged-right]
320 \override SpacingSpanner #'spacing-increment = #3
321 \override TimeSignature #'transparent = ##t
323 \stemDown <e g b>4_>-\arpeggio
324 \override Arpeggio #'direction = #RIGHT
325 \stemUp <e g b>4^>-\arpeggio
329 @cindex Formatierung einer Partitur
330 @cindex Partitur, Formatierung
331 @cindex Formatierungsregeln
334 Der Prozess des Notensetzens besteht für das Programm darin,
335 die Variablen der graphischen Objekte zu lesen und zu
336 schreiben. Einige Variablen haben festgelegte Werte. So
337 ist etwa die Dicke von vielen Linien – ein Charakteristikum
338 des typographischen Stils – von vornherein festgelegt.
339 Wenn sie geändert werden, ergibt sich ein anderer typographischer Eindruck.
341 @lilypond[quote,ragged-right]
344 c'4-~ c'16 as g f e16 g bes c' des'4
349 \override Beam #'thickness = #0.3
350 \override Stem #'thickness = #0.5
351 \override Bar #'thickness = #3.6
352 \override Tie #'thickness = #2.2
353 \override StaffSymbol #'thickness = #3.0
354 \override Tie #'extra-offset = #'(0 . 0.3)
360 Formatierungsregeln sind auch vorbelegte Variablen. Zu jedem Objekt gehören
361 Variablen, die Prozeduren enthalten. Diese Prozeduren machen die eigentliche
362 Satzarbeit, und wenn man sie durch andere ersetzt, kann die Darstellung
363 von Objekten verändert werden. Im nächsten Beispiel wird die Regel, nach der
364 die Notenköpfe gezeichnet werden, während des Ausschnitts verändert.
366 @lilypond[quote,ragged-right]
367 #(set-global-staff-size 30)
369 #(define (mc-squared grob orig current)
370 (let* ((interfaces (ly:grob-interfaces grob))
371 (pos (ly:grob-property grob 'staff-position)))
372 (if (memq 'note-head-interface interfaces)
374 (ly:grob-set-property! grob 'stencil
375 (grob-interpret-markup grob
376 (make-lower-markup 0.5
380 ((-2) (make-smaller-markup (make-bold-markup "2")))
383 \new Voice \relative c' {
385 \set autoBeaming = ##f
388 \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
389 \once \override NoteHead #'font-size = #-7
390 \once \override NoteHead #'font-family = #'sans
391 \once \override NoteHead #'font-series = #'bold
393 \once \override NoteHead #'style = #'cross
395 \applyOutput #'Voice #mc-squared
398 { d8[ es-( fis^^ g] fis2-) }
399 \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
406 @node What symbols to engrave?
407 @unnumberedsubsec What symbols to engrave?
416 Während des Notensatzprozesses entscheidet sich, wo
417 Symbole platziert werden. Das kann aber nur gelingen,
418 wenn vorher entschieden wird, @emph{welche} Symbole
419 gesetzt werden sollen, also welche Notation benutzt
422 Die heutige Notation ist ein System zur Musikaufzeichnung,
423 das sich über die letzten 1000 Jahre entwickelt hat. Die
424 Form, die heute üblicherweise benutzt wird, stammt aus dem
425 frühen Barock. Auch wenn sich die grundlegenden Formen (also
426 die Notenköpfe, das Fünfliniensystem) nicht verändert haben,
427 entwickeln sich die Details trotzdem immer noch weiter, um
428 die Errungenschaften der Neuen Musik darstellen zu können. Die
429 Notation umfasst also 500 Jahre Musikgeschichte. Ihre Anwendung
430 reicht von monophonen Melodien bis zu ungeheurem Kontrapunkt
431 für großes Orchester.
433 Wie bekommen wir dieses vielköpfige Monster zu fassen?
434 Unsere Lösung ist es, eine strikte Trennung zwischen der Notation,
435 also welche Symbole benutzt werden, und dem Satz, also wohin sie
436 gesetzt werden, zu machen. Um das Problem anzupacken, haben wir
437 es in kleine (programmierbare) Happen zerteilt, so dass jede Art
438 von Symbol durch ein eigenes Plugin verarbeitet wird. Alle Plugins
439 kooperieren durch die LilyPond-Architektur. Sie sind vollständig
440 modular und unabhängig und können somit auch unabhängig voneinander
441 entwickelt werden. Der Schreiber, der die Musik in Graphik umwandelt,
442 ist ein Kopist oder Notenstecher (engl. engraver). Darum werden
443 die Plugins als @code{engraver} bezeichnet.
445 Im nächsten Beispiel wird gezeigt, wie mit dem Plugin für die Notenköpfe,
446 dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.
448 @lilypond[quote,ragged-right]
449 \include "engraver-example.ily"
456 \remove "Stem_engraver"
457 \remove "Phrasing_slur_engraver"
458 \remove "Slur_engraver"
459 \remove "Script_engraver"
460 \remove "Beam_engraver"
461 \remove "Auto_beam_engraver"
465 \remove "Accidental_engraver"
466 \remove "Key_engraver"
467 \remove "Clef_engraver"
468 \remove "Bar_engraver"
469 \remove "Time_signature_engraver"
470 \remove "Staff_symbol_engraver"
471 \consists "Pitch_squash_engraver"
478 Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher})
479 die Notenlinien hinzu.
481 @lilypond[quote,ragged-right]
482 \include "engraver-example.ily"
489 \remove "Stem_engraver"
490 \remove "Phrasing_slur_engraver"
491 \remove "Slur_engraver"
492 \remove "Script_engraver"
493 \remove "Beam_engraver"
494 \remove "Auto_beam_engraver"
498 \remove "Accidental_engraver"
499 \remove "Key_engraver"
500 \remove "Clef_engraver"
501 \remove "Bar_engraver"
502 \consists "Pitch_squash_engraver"
503 \remove "Time_signature_engraver"
510 Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert
511 eine Referenzstelle für das System.
513 @lilypond[quote,ragged-right]
514 \include "engraver-example.ily"
521 \remove "Stem_engraver"
522 \remove "Phrasing_slur_engraver"
523 \remove "Slur_engraver"
524 \remove "Script_engraver"
525 \remove "Beam_engraver"
526 \remove "Auto_beam_engraver"
530 \remove "Accidental_engraver"
531 \remove "Key_engraver"
532 \remove "Bar_engraver"
533 \remove "Time_signature_engraver"
540 Der @code{Stem_engraver} (@qq{Halsstecher}) schließlich fügt
543 @lilypond[quote,ragged-right]
544 \include "engraver-example.ily"
551 \remove "Phrasing_slur_engraver"
552 \remove "Slur_engraver"
553 \remove "Script_engraver"
554 \remove "Beam_engraver"
555 \remove "Auto_beam_engraver"
559 \remove "Accidental_engraver"
560 \remove "Key_engraver"
561 \remove "Bar_engraver"
562 \remove "Time_signature_engraver"
569 Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt,
570 der vorkommt. Jedes Mal, wenn ein Notenkopf erscheint (oder mehrere bei
571 einem Akkord), wird ein Hals-Objekt erstellt und an den
572 Kopf geheftet. Wenn wir dann noch engraver für Balken, Bögen,
573 Akzente, Vorzeichen, Taktlinien, Taktangaben und Tonartbezeichnungen
574 hinzufügen, erhalten wir eine vollständige Notation.
577 @lilypond[quote,ragged-right]
578 \include "engraver-example.ily"
583 @cindex Mehrstimmigkeit
584 @cindex Notensatz, Mehrstimmigkeit
587 Dieses System funktioniert gut für monophone Musik, aber wie geht
588 es mit Polyphonie? Hier müssen sich mehrere Stimmen ein System teilen.
590 @lilypond[quote,ragged-right]
591 \include "engraver-example.ily"
592 \new Staff << \topVoice \\ \botVoice >>
595 In diesem Fall benutzen beide Stimmen das System und die Vorzeichen gemeinsam,
597 Hälse, Bögen, Balken usw. sind jeder einzelnen Stimme eigen. Die engraver
598 müssen also gruppiert werden. Die Köpfe, Hälse, Bögen usw. werden
599 in einer Gruppe mit dem Namen @qq{Voice context} (Stimmenkontext)
600 zusammengefasst, die engraver für den Schlüssel, die Vorzeichen,
601 Taktstriche usw. dagegen in einer Gruppe mit dem Namen @qq{Staff context}
602 (Systemkontext). Im Falle von Polyphonie hat ein Staff-Kontext dann also
603 mehr als nur einen Voice-Kontext. Auf gleiche Weise können auch mehrere Staff-Kontexte
604 in einen großen Score-Kontext (Partiturkontext) eingebunden werden.
608 Programmreferenz: @rinternals{Contexts}.
611 @lilypond[quote,ragged-right]
612 \include "engraver-example.ily"
615 \new Staff << \topVoice \\ \botVoice >>
616 \new Staff << \pah \\ \hoom >>
621 @node Music representation
622 @unnumberedsubsec Music representation
625 @cindex rekursive Strukturen
627 Idealerweise ist das Eingabeformat für ein höheres Satzsystem die
628 abstrakte Beschreibung des Inhaltes. In diesem Fall wäre das die
629 Musik selber. Das stellt uns aber vor ein ziemlich großes Problem,
630 denn wie können wir definieren, was Musik wirklich ist? Anstatt darauf
631 eine Antwort zu suchen, haben wir die Frage einfach umgedreht. Wir
632 schreiben ein Programm, das den Notensatz beherrscht und passen das
633 Format an, so einfach wie möglich zu sein. Wenn es nicht mehr vereinfacht
634 werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser
635 Format dient als die formale Definition eines Musiktextes.
637 Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond,
638 darum soll sie einfach zu schreiben sein; z. B. bedeutet
645 eine Viertel c' und eine Achtel d', wie in diesem Beispiel:
653 In kleinem Rahmen ist diese Syntax sehr einfach zu benutzen. In
654 größeren Zusammenhängen aber brauchen wir Struktur. Wie sonst kann
655 man große Opern oder Symphonien notieren? Diese Struktur wird
656 gewährleistet durch sog. music expressions (Musikausdrücke): indem
657 kleine Teile zu größeren kombiniert werden, kann komplexere Musik
658 dargestellt werden. So etwa hier:
660 @lilypond[quote,verbatim,fragment,relative=1]
665 Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in @code{<<} und @code{>>} einschließt.
667 @c < > is not a music expression,
668 @c so we use <<>> iso. <> to drive home the point of
669 @c expressions. Don't change this back --hwn.
674 @lilypond[quote,fragment,relative=1]
675 \new Voice { <<c4 d4 e>> }
679 Um aufeinanderfolgende Noten darzustellen, werden sie in geschweifte Klammern gefasst:
681 @code{@{@tie{}@dots{}@tie{}@}}
684 @{ f4 <<c4 d4 e4>> @}
687 @lilypond[quote,relative=1,fragment]
692 Dieses Gebilde ist in sich wieder ein Ausdruck, und kann
693 daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben).
696 << g2 \\ @{ f4 <<c4 d4 e4>> @} >>
699 @lilypond[quote,fragment,relative=2]
700 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
703 Solche geschachtelten Strukturen können sehr gut in einer
704 kontextunabhängigen Grammatik beschrieben werden. Der Programmcode
705 für den Satz ist auch mit solch einer Grammatik erstellt. Die Syntax
706 von LilyPond ist also klar und ohne Zweideutigkeiten definiert.
708 Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer
709 wahrgenommen. Teilweise sind sie eine Frage des Geschmackes und werden viel
710 diskutiert. Auch wenn Geschmacksfragen ihre Berechtigung
711 haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond
712 spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische
713 Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel
714 schwieriger. Das kann auch die Zeilenzahl der Programmzeilen zeigen:
715 Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:
717 @node Example applications
718 @unnumberedsubsec Example applications
720 @cindex einfaches Beispiel
721 @cindex Beispiel, einfach
723 Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des
724 Musiksatzes in ein Computerprogramm gießen kann. Dieses
725 Programm kann nun dank vieler harter Arbeitsstunden benutzt werden,
726 um sinnvolle Aufgaben zu erledigen. Die einfachste ist dabei der
729 @lilypond[quote,relative=1]
737 Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir
740 @lilypond[quote,ragged-right]
742 \chords { c2 c f2 c }
748 \addlyrics { twin -- kle twin -- kle lit -- tle star }
752 Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das
753 nächste Beispiel zeigt einige etwas exotischere Konstruktionen:
757 title = "Screech and boink"
758 subtitle = "Random complex notation"
759 composer = "Han-Wen Nienhuys"
763 \context PianoStaff <<
768 \revert Stem #'direction
770 \set subdivideBeams = ##t
782 \set followVoice = ##t
783 c'''32([ b''16 a''16 gis''16 g''32)]
785 s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
787 s4 \autoBeamOff d''8.. f''32
793 \new Staff = "down" {
796 \set subdivideBeams = ##f
797 \override Stem #'french-beaming = ##t
798 \override Beam #'thickness = #0.3
799 \override Stem #'thickness = #4.0
806 \override Staff.Arpeggio #'arpeggio-direction =#down
807 <cis, e, gis, b, cis>4\arpeggio
814 tempoWholesPerMinute = #(ly:make-moment 60 8)
820 \consists Horizontal_bracket_engraver
826 Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht
827 die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft,
828 kann er auch von anderen Programmen angesteuert werden, die Musik oder Noten
829 verarbeiten. So können etwa ganze Datenbanken musikalischer Fragmente automatisch
830 in Notenbilder umgewandelt werden, die dann auf Internetseiten oder
831 in Multimediapräsentation Anwendung finden.
833 Dieses Benutzerhandbuch zeigt eine weitere Möglichkeit: Die Noten werden als
834 reiner Text eingegeben und können darum sehr einfach integriert werden
835 in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem
836 Fall, Texinfo. Durch ein spezielles Programm werden die Eingabefragmente durch
837 Notenbilder in der resultierenden PDF- oder HTML-Datei ersetzt. Dadurch ist
838 es sehr einfach, Noten und Text zu kombinieren.
842 @node About the documentation
843 @section About the documentation
845 @cindex Handbuch zum Lernen
847 @cindex Anwendungsbenutzung
848 @cindex Schnipselliste
849 @cindex Referenz der Interna
851 Die Dokumentation zu LilyPond ist unterteilt in mehrere Handbücher.
853 @c leave these lines wrapping around. It's some texinfo 4.12 thing. -gp
854 @c This is actually a limitation of texi2html. -jm
856 * About the Learning Manual:: Dieses Handbuch stellt LilyPond vor und vermittelt die Grundkenntnisse, um damit arbeiten zu können.
857 * About the Music Glossary:: Dieses Handbuch erklärt zahlreiche musikalische Fachausdrücke inklusive Übersetzungen in verschiedene Sprachen.
858 * About the Notation Reference:: 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.
859 * About the Application Usage:: Dieses Handbuch diskutiert den konkreten Aufruf des @qq{lilypond}-Programms und wie LilyPond-Notensatz in andere Programme integriert werden kann.
860 * About the Snippet List:: Dies ist eine Sammlung von kurzen LilyPond-Beispielen.
861 * About the Internals Reference:: Dieses Dokument liefert Referenzwissen über LilyPonds interne Strukturen und ist vor allem bei der Erstellung von tiefergehenden Optimierungen und Anpassungen hilfreich.
862 * Other documentation:: Es existieren noch etliche weitere Teile der Dokumentation, wie etwa die @q{Neueigkeiten} Seite oder das Archiv der Mailingliste.
866 @node About the Learning Manual
867 @unnumberedsubsec About the Learning Manual
869 @cindex Handbuch zum Lernen
871 Dieses Handbuch erklärt die Grundbegriffe von LilyPond und stellt
872 die fundamentalen Konzepte hinter dem Programm vor. Diese Kapitel sollten
873 in linearer Reihenfolge gelesen werden.
875 Am Ende jedes Abschnitts findet sich ein Absatz @strong{Siehe auch}, der
876 Kreuzreferenzen zu anderen Abschnitten enthält. Beim ersten Durchlesen
877 empfiehlt es sich nicht, diesen gleich zu folgen, da meist noch
878 zahlreiche Grundbegriffe zum Verständnis fehlen. Wenn Sie sich durch
879 das Handbuch zum Lernen geackert haben, wollen Sie vielleicht einzelne
880 Abschnitte nochmal durchgehen und dann den Kreuzverweisen zur Vertiefung
881 der Zusammenhänge folgen.
886 @ref{Introduction}: erklärt den Hintergrund und das Ziel von LilyPond.
889 @ref{Tutorial}: liefert eine einfache Einführung in das Setzen von Musik
890 mit LilyPond. Neulinge sollten mit diesem Kapitel beginnen.
893 @ref{Fundamental concepts}: erklärt etliche allgemeine Konzepte
894 hinter dem Dateiformat von LilyPond. Wenn Sie sich nicht sicher
895 sind, an welcher Stelle Sie einen Befehl in die Datei einfügen sollen,
896 ist dieses Kapitel genau das richtige!
899 @ref{Tweaking output}: stellt dar, wie die Standardeinstellungen von
900 LilyPond verändert werden können.
903 @ref{Working on LilyPond projects}: liefert Tipps im praktischen Umgang mit
904 Lilypond und gibt Hinweise, wie gängige Fehler vermieden werden können.
905 Bevor Sie mit einem großen Projekt beginnen, sollten Sie dieses Kapitel
906 unbedingt gelesen haben!
910 Das Handbuch zum Lernen enthält auch zahlreiche Anhänge, die nicht
911 zum linearen Durchlesen geeignet sind. Sie sind allerdings zur späteren
912 Referenz sehr gut geeignet:
917 @ref{Templates}: zeigt einige fertige Dokumentvorlagen für diverse
918 Stücke mit unterschiedlichen Charakteristika. Kopieren Sie einfach
919 die Vorlagen in Ihre eigene Datei, fügen Sie die Noten hinzu und Sie
923 @ref{Scheme tutorial}: liefert eine kurze Einführung in Scheme, die
924 Programmiersprache, die die Musikfunktionen in LilyPond intern benutzen.
925 Dies stellt tiefgehendes Wissen dar, wenn Sie LilyPond bis ins kleinste Detail
926 konfigurieren möchten. Die meisten Benutzer brauchen dies jedoch selten bis
932 @node About the Music Glossary
933 @unnumberedsubsec About the Music Glossary
938 @cindex Übersetzungen
944 @rglosnamed{Top,Das Glossar} erklärt musikalische Fachausdrücke und
945 enthält auch deren Übersetzungen in diverse Sprachen. Wenn Sie mit
946 Musiknotation oder der (englisch-sprachigen) Musikterminologie nicht vertraut
947 sind (vor allem, wenn Englisch nicht Ihre Muttersprache ist), ist es
948 sehr empfehlenswert, das Glossar immer wieder zu Rate zu ziehen.
951 @node About the Notation Reference
952 @unnumberedsubsec About the Notation Reference
954 @cindex Notationsreferenz
956 @cindex Referenz zum Notensatz
958 In diesem Buch werden alle LilyPond-Befehle erklärt, die Notationszeichen
959 produzieren. Es geht von der Annahme aus, dass der Leser sich mit den
960 Grundkonzepten des Programmes im Handbuch zum Lernen bekannt gemacht hat.
965 @emph{@ruser{Musical notation}}:
966 erklärt alles über die grundlegenden Notationskonstruktionen. Dieses Kapitel
967 ist für fast jedes Notationsprojekt nützlich.
970 @emph{@ruser{Specialist notation}}:
971 erklärt spezifische Schwierigkeiten, die sich bei bestimmten Notationstypen
972 ergeben. Dieses Kapitel ist nur in entsprechenden Fällen bestimmter Instrumente
973 oder bei Gesang zu konsultieren.
976 @emph{@ruser{General input and output}}:
977 erläutert allgemeine Informationen über die Eingabedateien von Lilypond und
978 wie die Ausgabe gesteuert werden kann.
981 @emph{@ruser{Spacing issues}}:
982 befasst sich mit globalen Fragen wie der Definition von Papierformaten
983 oder wie man Seitenumbrüche definiert.
986 @emph{@ruser{Changing defaults}}:
987 erklärt, wie des Layout getrimmt werden kann um genau zum gewünschten Ergebnis
991 @emph{@ruser{Interfaces for programmers}}:
992 demonstriert die Erstellung von musikalischen Funktionen.
996 Ds Benutzerhandbuch enthält auch Anhänge mit nützlichen Referenztabellen.
1001 Die @ruser{Literature list}
1002 enthält einige wichtige Quellen für alle, die mehr über Notation und
1003 den Notensatz erfahren wollen.
1006 @ruser{Notation manual tables}
1007 sind Tabellen, in denen Akkordbezeichnungen, MIDI-Instrumente,
1008 Farbbezeichnungen und die Zeichen der Feta-Schriftart gesammelt sind.
1012 @emph{@ruser{Cheat sheet}}
1013 zeigt die wichtigsten LilyPond-Befehle.
1017 @emph{@ruser{LilyPond command index}}
1018 listet alle Befehle auf, die mit @code{\} anfangen.
1022 @emph{@ref{LilyPond index}}
1023 ist ein vollständiger Index.
1029 @node About the Application Usage
1030 @unnumberedsubsec About the Application Usage
1032 @cindex Anwendungsbenutzung
1033 @cindex Benutzung, lilypond-Programm
1034 @cindex Integration von LilyPond in andere Programme
1036 In diesem Buch wird erklärt, wie das Programm ausgeführt wird und
1037 wie die Notation von LilyPond in andere Programme integriert werden
1043 @emph{@rprogram{Install}}:
1044 erklärt wie LilyPond installiert wird (inklusive Kompilation, wenn es
1048 @emph{@rprogram{Setup}}:
1049 erklärt wie der Computer eingerichtet wird, damit LilyPond optimal genutzt
1050 werden kann. Hierzu gehören etwa spezielle Umgebungen für bestimmte
1054 @emph{@rprogram{Running LilyPond}}:
1055 zeigt, wie LilyPond und seine Hilfsprogramme gestartet werden. Zusätzlich
1056 wird hier erklärt, wie Quelldateien von alten LilyPond-Versionen aktualisiert
1060 @emph{@rprogram{LilyPond-book}}:
1061 erklärt die Details, um einen Text mit eingefügten Notenbeispielen (wie
1062 etwa dieses Handbuch) zu
1066 @emph{@rprogram{Converting from other formats}}:
1067 erklärt, wie die Konvertierungsprogramme aufgerufen werden. Diese
1068 Programme kommen mit LilyPond zusammen und konvertieren eine Vielzahl
1069 von Notensatzformaten in das @code{.ly}-Format.
1074 @node About the Snippet List
1075 @unnumberedsubsec About the Snippet List
1079 @cindex LilyPond Snippet Repository
1080 @cindex LilyPond-Schnipsel-Depot
1082 Die @rlsrnamed{Top,LilyPond-Schnipsel} sind eine ausführliche Sammlung kurzer
1083 Beispiele, anhand derer Tricks, Tipps und Spezialfunktionen von LilyPond
1084 demonstriert werden. Die meisten dieser Schnipsel können auch im
1085 @uref{http://lsr.dsi.unimi.it/,LilyPond-Schnipsel-Depot} betrachtet
1086 werden. Diese Internetseite verfügt auch über ein
1087 durchsuchbares LilyPond-Handbuch.
1089 Die Liste der Schnipsel zu einem Abschnitt des Benutzerhandbuchs ist auch
1090 dort jeweils im Abschnitt @strong{Siehe auch} verlinkt.
1093 @node About the Internals Reference
1094 @unnumberedsubsec About the Internals Reference
1096 @cindex Referenz der Interna
1098 Die @rinternalsnamed{Top,Referenz der Interna} ist eine Sammlung intensiv
1099 verlinkter HTML-Seiten, die alle Details jeder einzelnen
1100 LilyPond-Klasse, jedes Objektes und jeder Funktion erklären. Sie wird
1101 direkt aus den Satzdefinitionen im Quellcode produziert.
1103 So gut wie alle Formatierungsmöglichkeiten, die intern verwendet werden,
1104 sind auch direkt für den Benutzer zugänglich. Alle Variablen z. B., die
1105 Dicke-Werte, Entfernungen usw. kontrollieren, können in den Eingabe-Dateien
1106 verändert werden. Es gibt eine riesige Anzahl von Formatierungsoptionen, und
1107 alle haben einen @qq{Siehe}-Abschnitt, der auf die Dokumentation verweist.
1108 Im HTML-Handbuch haben diese Abschnitte klickbare Links.
1110 Die Programmreferenz ist nur auf englisch verfügbar.
1113 @node Other documentation
1114 @unnumberedsubsec Other documentation
1116 Es gibt noch eine Reihe weiterer wertvoller Informationsquellen zu LilyPond:
1124 @uref{../topdocs/NEWS.html,Neuigkeiten}:
1127 @uref{../../topdocs/NEWS.html,Neuigkeiten}:
1133 eine Zusammenfassung der Änderungen in LilyPond seit der letzten Version.
1135 @item @uref{http://lists.gnu.org/archive/html/lilypond-user/,Das Archiv
1136 der lilypond-user Mailing-Liste}: enthält alle bisher an die Liste
1137 gesendeten Mails. Viele Fragen werden immer wieder gestellt und auch
1138 beantwortet. Die Chance, dass Ihre Frage auch schon mal aufgetaucht ist,
1139 ist also relativ groß. In diesem Fall finden Sie die Antwort in diesem
1142 @item @uref{http://lists.gnu.org/archive/html/lilypond-devel/,Das Archiv
1143 der lilypond-devel Mailing-Liste}: enthält alle bisher an die
1144 Entwicklerliste gesendeten Mails. Diese Diskussionen sind dementsprechend
1145 technisch gehalten. Wenn Sie eine tiefergehende Frage zu den Interna von
1146 LilyPond haben, finden Sie die Antwort vielleicht in diesem Archiv.
1148 @item Eingebettete Musikbeispiele: Auf allen HTML-Seiten mit Notenbeispielen,
1149 die von LilyPond erzeugt wurden, kann die originale Quelldatei durch einen Klick auf das
1150 Bild betrachtet werden.
1152 @item Initialisierungsdateien von LilyPond:
1154 Der Speicherort der Dokumentationsdateien unterscheidet sich evtl. je
1155 nach Betriebssystem. Manchmal wird hier auf Initialisierungs- oder
1156 Beispieldateien verwiesen. Das Handbuch nimmt dabei an, dass diese
1157 Dateien sich relativ zum Quellverzeichnis befinden. Zum Beispiel würde
1158 der Pfad @file{input/@/lsr/@/Verzeichnis/@/bla@/.ly} etwa auf die Datei
1159 @file{lilypond@/2.x.y/@/input/@/lsr/@/Verzeichnis/@/bla@/.ly} verweisen. In den
1160 Binärpaketen für Unix-Plattformen sind Dokumentation und Beispiele
1161 üblicherweise in einem Verzeichnis wie @file{/usr/@/share/@/doc/@/lilypond/}
1162 gespeichert. Initialisierungsdateien, etwa @file{scm/@/lily@/.scm}
1163 oder @file{ly/@/engraver@/-init@/.ly}, befinden sich normalerweise im
1164 Verzeichnis @file{/usr/@/share/@/lilypond/}.
1166 Weiterführende Informationen finden Sie unter @ref{Other sources of information}.