1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
4 Translation of GIT committish: 3a8542af9f54c99b53374328af0d5d87005ca49e
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 ly:text-interface::print)
375 (ly:grob-set-property! grob 'font-family 'roman)
376 (ly:grob-set-property! grob 'text
377 (make-raise-markup -0.5
379 ((-5) (make-simple-markup "m"))
380 ((-3) (make-simple-markup "c "))
381 ((-2) (make-smaller-markup (make-bold-markup "2")))
382 (else (make-simple-markup "bla")))))))))
384 \new Voice \relative c' {
386 \set autoBeaming = ##f
389 \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
390 \once \override NoteHead #'font-size = #-7
391 \once \override NoteHead #'font-family = #'sans
392 \once \override NoteHead #'font-series = #'bold
394 \once \override NoteHead #'style = #'cross
396 \applyOutput #'Voice #mc-squared
399 { d8[ es-( fis^^ g] fis2-) }
400 \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
407 @node What symbols to engrave?
408 @unnumberedsubsec What symbols to engrave?
417 Während des Notensatzprozesses entscheidet sich, wo
418 Symbole platziert werden. Das kann aber nur gelingen,
419 wenn vorher entschieden wird, @emph{welche} Symbole
420 gesetzt werden sollen, also welche Notation benutzt
423 Die heutige Notation ist ein System zur Musikaufzeichnung,
424 das sich über die letzten 1000 Jahre entwickelt hat. Die
425 Form, die heute üblicherweise benutzt wird, stammt aus dem
426 frühen Barock. Auch wenn sich die grundlegenden Formen (also
427 die Notenköpfe, das Fünfliniensystem) nicht verändert haben,
428 entwickeln sich die Details trotzdem immer noch weiter, um
429 die Errungenschaften der Neuen Musik darstellen zu können. Die
430 Notation umfasst also 500 Jahre Musikgeschichte. Ihre Anwendung
431 reicht von monophonen Melodien bis zu ungeheurem Kontrapunkt
432 für großes Orchester.
434 Wie bekommen wir dieses vielköpfige Monster zu fassen?
435 Unsere Lösung ist es, eine strikte Trennung zwischen der Notation,
436 also welche Symbole benutzt werden, und dem Satz, also wohin sie
437 gesetzt werden, zu machen. Um das Problem anzupacken, haben wir
438 es in kleine (programmierbare) Happen zerteilt, so dass jede Art
439 von Symbol durch ein eigenes Plugin verarbeitet wird. Alle Plugins
440 kooperieren durch die LilyPond-Architektur. Sie sind vollständig
441 modular und unabhängig und können somit auch unabhängig voneinander
442 entwickelt werden. Der Schreiber, der die Musik in Graphik umwandelt,
443 ist ein Kopist oder Notenstecher (engl. engraver). Darum werden
444 die Plugins als @code{engraver} bezeichnet.
446 Im nächsten Beispiel wird gezeigt, wie mit dem Plugin für die Notenköpfe,
447 dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.
449 @lilypond[quote,ragged-right]
450 \include "engraver-example.ily"
457 \remove "Stem_engraver"
458 \remove "Phrasing_slur_engraver"
459 \remove "Slur_engraver"
460 \remove "Script_engraver"
461 \remove "Beam_engraver"
462 \remove "Auto_beam_engraver"
466 \remove "Accidental_engraver"
467 \remove "Key_engraver"
468 \remove "Clef_engraver"
469 \remove "Bar_engraver"
470 \remove "Time_signature_engraver"
471 \remove "Staff_symbol_engraver"
472 \consists "Pitch_squash_engraver"
479 Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher})
480 die Notenlinien hinzu.
482 @lilypond[quote,ragged-right]
483 \include "engraver-example.ily"
490 \remove "Stem_engraver"
491 \remove "Phrasing_slur_engraver"
492 \remove "Slur_engraver"
493 \remove "Script_engraver"
494 \remove "Beam_engraver"
495 \remove "Auto_beam_engraver"
499 \remove "Accidental_engraver"
500 \remove "Key_engraver"
501 \remove "Clef_engraver"
502 \remove "Bar_engraver"
503 \consists "Pitch_squash_engraver"
504 \remove "Time_signature_engraver"
511 Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert
512 eine Referenzstelle für das System.
514 @lilypond[quote,ragged-right]
515 \include "engraver-example.ily"
522 \remove "Stem_engraver"
523 \remove "Phrasing_slur_engraver"
524 \remove "Slur_engraver"
525 \remove "Script_engraver"
526 \remove "Beam_engraver"
527 \remove "Auto_beam_engraver"
531 \remove "Accidental_engraver"
532 \remove "Key_engraver"
533 \remove "Bar_engraver"
534 \remove "Time_signature_engraver"
541 Der @code{Stem_engraver} (@qq{Halsstecher}) schließlich fügt
544 @lilypond[quote,ragged-right]
545 \include "engraver-example.ily"
552 \remove "Phrasing_slur_engraver"
553 \remove "Slur_engraver"
554 \remove "Script_engraver"
555 \remove "Beam_engraver"
556 \remove "Auto_beam_engraver"
560 \remove "Accidental_engraver"
561 \remove "Key_engraver"
562 \remove "Bar_engraver"
563 \remove "Time_signature_engraver"
570 Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt,
571 der vorkommt. Jedes Mal, wenn ein Notenkopf erscheint (oder mehrere bei
572 einem Akkord), wird ein Hals-Objekt erstellt und an den
573 Kopf geheftet. Wenn wir dann noch engraver für Balken, Bögen,
574 Akzente, Vorzeichen, Taktlinien, Taktangaben und Tonartbezeichnungen
575 hinzufügen, erhalten wir eine vollständige Notation.
578 @lilypond[quote,ragged-right]
579 \include "engraver-example.ily"
584 @cindex Mehrstimmigkeit
585 @cindex Notensatz, Mehrstimmigkeit
588 Dieses System funktioniert gut für monophone Musik, aber wie geht
589 es mit Polyphonie? Hier müssen sich mehrere Stimmen ein System teilen.
591 @lilypond[quote,ragged-right]
592 \include "engraver-example.ily"
593 \new Staff << \topVoice \\ \botVoice >>
596 In diesem Fall benutzen beide Stimmen das System und die Vorzeichen gemeinsam,
598 Hälse, Bögen, Balken usw. sind jeder einzelnen Stimme eigen. Die engraver
599 müssen also gruppiert werden. Die Köpfe, Hälse, Bögen usw. werden
600 in einer Gruppe mit dem Namen @qq{Voice context} (Stimmenkontext)
601 zusammengefasst, die engraver für den Schlüssel, die Vorzeichen,
602 Taktstriche usw. dagegen in einer Gruppe mit dem Namen @qq{Staff context}
603 (Systemkontext). Im Falle von Polyphonie hat ein Staff-Kontext dann also
604 mehr als nur einen Voice-Kontext. Auf gleiche Weise können auch mehrere Staff-Kontexte
605 in einen großen Score-Kontext (Partiturkontext) eingebunden werden.
609 Programmreferenz: @rinternals{Contexts}.
612 @lilypond[quote,ragged-right]
613 \include "engraver-example.ily"
616 \new Staff << \topVoice \\ \botVoice >>
617 \new Staff << \pah \\ \hoom >>
622 @node Music representation
623 @unnumberedsubsec Music representation
626 @cindex rekursive Strukturen
628 Idealerweise ist das Eingabeformat für ein höheres Satzsystem die
629 abstrakte Beschreibung des Inhaltes. In diesem Fall wäre das die
630 Musik selber. Das stellt uns aber vor ein ziemlich großes Problem,
631 denn wie können wir definieren, was Musik wirklich ist? Anstatt darauf
632 eine Antwort zu suchen, haben wir die Frage einfach umgedreht. Wir
633 schreiben ein Programm, das den Notensatz beherrscht und passen das
634 Format an, so einfach wie möglich zu sein. Wenn es nicht mehr vereinfacht
635 werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser
636 Format dient als die formale Definition eines Musiktextes.
638 Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond,
639 darum soll sie einfach zu schreiben sein; z. B. bedeutet
646 eine Viertel c' und eine Achtel d', wie in diesem Beispiel:
654 In kleinem Rahmen ist diese Syntax sehr einfach zu benutzen. In
655 größeren Zusammenhängen aber brauchen wir Struktur. Wie sonst kann
656 man große Opern oder Symphonien notieren? Diese Struktur wird
657 gewährleistet durch sog. music expressions (Musikausdrücke): indem
658 kleine Teile zu größeren kombiniert werden, kann komplexere Musik
659 dargestellt werden. So etwa hier:
661 @lilypond[quote,verbatim,fragment,relative=1]
666 Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in @code{<<} und @code{>>} einschließt.
668 @c < > is not a music expression,
669 @c so we use <<>> iso. <> to drive home the point of
670 @c expressions. Don't change this back --hwn.
675 @lilypond[quote,fragment,relative=1]
676 \new Voice { <<c4 d4 e>> }
680 Um aufeinanderfolgende Noten darzustellen, werden sie in geschweifte Klammern gefasst:
682 @code{@{@tie{}@dots{}@tie{}@}}
685 @{ f4 <<c4 d4 e4>> @}
688 @lilypond[quote,relative=1,fragment]
693 Dieses Gebilde ist in sich wieder ein Ausdruck, und kann
694 daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben).
697 << g2 \\ @{ f4 <<c4 d4 e4>> @} >>
700 @lilypond[quote,fragment,relative=2]
701 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
704 Solche geschachtelten Strukturen können sehr gut in einer
705 kontextunabhängigen Grammatik beschrieben werden. Der Programmcode
706 für den Satz ist auch mit solch einer Grammatik erstellt. Die Syntax
707 von LilyPond ist also klar und ohne Zweideutigkeiten definiert.
709 Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer
710 wahrgenommen. Teilweise sind sie eine Frage des Geschmackes und werden viel
711 diskutiert. Auch wenn Geschmacksfragen ihre Berechtigung
712 haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond
713 spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische
714 Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel
715 schwieriger. Das kann auch die Zeilenzahl der Programmzeilen zeigen:
716 Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:
718 @node Example applications
719 @unnumberedsubsec Example applications
721 @cindex einfaches Beispiel
722 @cindex Beispiel, einfach
724 Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des
725 Musiksatzes in ein Computerprogramm gießen kann. Dieses
726 Programm kann nun dank vieler harter Arbeitsstunden benutzt werden,
727 um sinnvolle Aufgaben zu erledigen. Die einfachste ist dabei der
730 @lilypond[quote,relative=1]
738 Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir
741 @lilypond[quote,ragged-right]
743 \chords { c2 c f2 c }
749 \addlyrics { twin -- kle twin -- kle lit -- tle star }
753 Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das
754 nächste Beispiel zeigt einige etwas exotischere Konstruktionen:
758 title = "Screech and boink"
759 subtitle = "Random complex notation"
760 composer = "Han-Wen Nienhuys"
764 \context PianoStaff <<
769 \revert Stem #'direction
771 \set subdivideBeams = ##t
783 \set followVoice = ##t
784 c'''32([ b''16 a''16 gis''16 g''32)]
786 s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
788 s4 \autoBeamOff d''8.. f''32
794 \new Staff = "down" {
797 \set subdivideBeams = ##f
798 \override Stem #'french-beaming = ##t
799 \override Beam #'thickness = #0.3
800 \override Stem #'thickness = #4.0
807 \override Staff.Arpeggio #'arpeggio-direction =#down
808 <cis, e, gis, b, cis>4\arpeggio
815 tempoWholesPerMinute = #(ly:make-moment 60 8)
821 \consists Horizontal_bracket_engraver
827 Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht
828 die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft,
829 kann er auch von anderen Programmen angesteuert werden, die Musik oder Noten
830 verarbeiten. So können etwa ganze Datenbanken musikalischer Fragmente automatisch
831 in Notenbilder umgewandelt werden, die dann auf Internetseiten oder
832 in Multimediapräsentation Anwendung finden.
834 Dieses Benutzerhandbuch zeigt eine weitere Möglichkeit: Die Noten werden als
835 reiner Text eingegeben und können darum sehr einfach integriert werden
836 in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem
837 Fall, Texinfo. Durch ein spezielles Programm werden die Eingabefragmente durch
838 Notenbilder in der resultierenden PDF- oder HTML-Datei ersetzt. Dadurch ist
839 es sehr einfach, Noten und Text zu kombinieren.
843 @node About the documentation
844 @section About the documentation
846 @cindex Handbuch zum Lernen
848 @cindex Anwendungsbenutzung
849 @cindex Schnipselliste
850 @cindex Referenz der Interna
852 Die Dokumentation zu LilyPond ist unterteilt in mehrere Handbücher.
854 @c leave these lines wrapping around. It's some texinfo 4.12 thing. -gp
855 @c This is actually a limitation of texi2html. -jm
857 * About the Learning Manual:: Dieses Handbuch stellt LilyPond vor und vermittelt die Grundkenntnisse, um damit arbeiten zu können.
858 * About the Music Glossary:: Dieses Handbuch erklärt zahlreiche musikalische Fachausdrücke inklusive Übersetzungen in verschiedene Sprachen.
859 * 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.
860 * About the Application Usage:: Dieses Handbuch diskutiert den konkreten Aufruf des @qq{lilypond}-Programms und wie LilyPond-Notensatz in andere Programme integriert werden kann.
861 * About the Snippet List:: Dies ist eine Sammlung von kurzen LilyPond-Beispielen.
862 * 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.
863 * Other documentation:: Es existieren noch etliche weitere Teile der Dokumentation, wie etwa die @q{Neueigkeiten} Seite oder das Archiv der Mailingliste.
867 @node About the Learning Manual
868 @unnumberedsubsec About the Learning Manual
870 @cindex Handbuch zum Lernen
872 Dieses Handbuch erklärt die Grundbegriffe von LilyPond und stellt
873 die fundamentalen Konzepte hinter dem Programm vor. Diese Kapitel sollten
874 in linearer Reihenfolge gelesen werden.
876 Am Ende jedes Abschnitts findet sich ein Absatz @strong{Siehe auch}, der
877 Kreuzreferenzen zu anderen Abschnitten enthält. Beim ersten Durchlesen
878 empfiehlt es sich nicht, diesen gleich zu folgen, da meist noch
879 zahlreiche Grundbegriffe zum Verständnis fehlen. Wenn Sie sich durch
880 das Handbuch zum Lernen geackert haben, wollen Sie vielleicht einzelne
881 Abschnitte nochmal durchgehen und dann den Kreuzverweisen zur Vertiefung
882 der Zusammenhänge folgen.
887 @ref{Introduction}: erklärt den Hintergrund und das Ziel von LilyPond.
890 @ref{Tutorial}: liefert eine einfache Einführung in das Setzen von Musik
891 mit LilyPond. Neulinge sollten mit diesem Kapitel beginnen.
894 @ref{Fundamental concepts}: erklärt etliche allgemeine Konzepte
895 hinter dem Dateiformat von LilyPond. Wenn Sie sich nicht sicher
896 sind, an welcher Stelle Sie einen Befehl in die Datei einfügen sollen,
897 ist dieses Kapitel genau das richtige!
900 @ref{Tweaking output}: stellt dar, wie die Standardeinstellungen von
901 LilyPond verändert werden können.
904 @ref{Working on LilyPond projects}: liefert Tipps im praktischen Umgang mit
905 Lilypond und gibt Hinweise, wie gängige Fehler vermieden werden können.
906 Bevor Sie mit einem großen Projekt beginnen, sollten Sie dieses Kapitel
907 unbedingt gelesen haben!
911 Das Handbuch zum Lernen enthält auch zahlreiche Anhänge, die nicht
912 zum linearen Durchlesen geeignet sind. Sie sind allerdings zur späteren
913 Referenz sehr gut geeignet:
918 @ref{Templates}: zeigt einige fertige Dokumentvorlagen für diverse
919 Stücke mit unterschiedlichen Charakteristika. Kopieren Sie einfach
920 die Vorlagen in Ihre eigene Datei, fügen Sie die Noten hinzu und Sie
924 @ref{Scheme tutorial}: liefert eine kurze Einführung in Scheme, die
925 Programmiersprache, die die Musikfunktionen in LilyPond intern benutzen.
926 Dies stellt tiefgehendes Wissen dar, wenn Sie LilyPond bis ins kleinste Detail
927 konfigurieren möchten. Die meisten Benutzer brauchen dies jedoch selten bis
933 @node About the Music Glossary
934 @unnumberedsubsec About the Music Glossary
939 @cindex Übersetzungen
945 @rglosnamed{Top,Das Glossar} erklärt musikalische Fachausdrücke und
946 enthält auch deren Übersetzungen in diverse Sprachen. Wenn Sie mit
947 Musiknotation oder der (englisch-sprachigen) Musikterminologie nicht vertraut
948 sind (vor allem, wenn Englisch nicht Ihre Muttersprache ist), ist es
949 sehr empfehlenswert, das Glossar immer wieder zu Rate zu ziehen.
952 @node About the Notation Reference
953 @unnumberedsubsec About the Notation Reference
955 @cindex Notationsreferenz
957 @cindex Referenz zum Notensatz
959 In diesem Buch werden alle LilyPond-Befehle erklärt, die Notationszeichen
960 produzieren. Es geht von der Annahme aus, dass der Leser sich mit den
961 Grundkonzepten des Programmes im Handbuch zum Lernen bekannt gemacht hat.
966 @emph{@ruser{Musical notation}}:
967 erklärt alles über die grundlegenden Notationskonstruktionen. Dieses Kapitel
968 ist für fast jedes Notationsprojekt nützlich.
971 @emph{@ruser{Specialist notation}}:
972 erklärt spezifische Schwierigkeiten, die sich bei bestimmten Notationstypen
973 ergeben. Dieses Kapitel ist nur in entsprechenden Fällen bestimmter Instrumente
974 oder bei Gesang zu konsultieren.
977 @emph{@ruser{General input and output}}:
978 erläutert allgemeine Informationen über die Eingabedateien von Lilypond und
979 wie die Ausgabe gesteuert werden kann.
982 @emph{@ruser{Spacing issues}}:
983 befasst sich mit globalen Fragen wie der Definition von Papierformaten
984 oder wie man Seitenumbrüche definiert.
987 @emph{@ruser{Changing defaults}}:
988 erklärt, wie des Layout getrimmt werden kann um genau zum gewünschten Ergebnis
992 @emph{@ruser{Interfaces for programmers}}:
993 demonstriert die Erstellung von musikalischen Funktionen.
997 Ds Benutzerhandbuch enthält auch Anhänge mit nützlichen Referenztabellen.
1002 Die @ruser{Literature list}
1003 enthält einige wichtige Quellen für alle, die mehr über Notation und
1004 den Notensatz erfahren wollen.
1007 @ruser{Notation manual tables}
1008 sind Tabellen, in denen Akkordbezeichnungen, MIDI-Instrumente,
1009 Farbbezeichnungen und die Zeichen der Feta-Schriftart gesammelt sind.
1013 @emph{@ruser{Cheat sheet}}
1014 zeigt die wichtigsten LilyPond-Befehle.
1018 @emph{@ruser{LilyPond command index}}
1019 listet alle Befehle auf, die mit @code{\} anfangen.
1023 @emph{@ref{LilyPond index}}
1024 ist ein vollständiger Index.
1030 @node About the Application Usage
1031 @unnumberedsubsec About the Application Usage
1033 @cindex Anwendungsbenutzung
1034 @cindex Benutzung, lilypond-Programm
1035 @cindex Integration von LilyPond in andere Programme
1037 In diesem Buch wird erklärt, wie das Programm ausgeführt wird und
1038 wie die Notation von LilyPond in andere Programme integriert werden
1044 @emph{@rprogram{Install}}:
1045 erklärt wie LilyPond installiert wird (inklusive Kompilation, wenn es
1049 @emph{@rprogram{Setup}}:
1050 erklärt wie der Computer eingerichtet wird, damit LilyPond optimal genutzt
1051 werden kann. Hierzu gehören etwa spezielle Umgebungen für bestimmte
1055 @emph{@rprogram{Running LilyPond}}:
1056 zeigt, wie LilyPond und seine Hilfsprogramme gestartet werden. Zusätzlich
1057 wird hier erklärt, wie Quelldateien von alten LilyPond-Versionen aktualisiert
1061 @emph{@rprogram{LilyPond-book}}:
1062 erklärt die Details, um einen Text mit eingefügten Notenbeispielen (wie
1063 etwa dieses Handbuch) zu
1067 @emph{@rprogram{Converting from other formats}}:
1068 erklärt, wie die Konvertierungsprogramme aufgerufen werden. Diese
1069 Programme kommen mit LilyPond zusammen und konvertieren eine Vielzahl
1070 von Notensatzformaten in das @code{.ly}-Format.
1075 @node About the Snippet List
1076 @unnumberedsubsec About the Snippet List
1080 @cindex LilyPond Snippet Repository
1081 @cindex LilyPond-Schnipsel-Depot
1083 Die @rlsrnamed{Top,LilyPond-Schnipsel} sind eine ausführliche Sammlung kurzer
1084 Beispiele, anhand derer Tricks, Tipps und Spezialfunktionen von LilyPond
1085 demonstriert werden. Die meisten dieser Schnipsel können auch im
1086 @uref{http://lsr.dsi.unimi.it/,LilyPond-Schnipsel-Depot} betrachtet
1087 werden. Diese Internetseite verfügt auch über ein
1088 durchsuchbares LilyPond-Handbuch.
1090 Die Liste der Schnipsel zu einem Abschnitt des Benutzerhandbuchs ist auch
1091 dort jeweils im Abschnitt @strong{Siehe auch} verlinkt.
1094 @node About the Internals Reference
1095 @unnumberedsubsec About the Internals Reference
1097 @cindex Referenz der Interna
1099 Die @rinternalsnamed{Top,Referenz der Interna} ist eine Sammlung intensiv
1100 verlinkter HTML-Seiten, die alle Details jeder einzelnen
1101 LilyPond-Klasse, jedes Objektes und jeder Funktion erklären. Sie wird
1102 direkt aus den Satzdefinitionen im Quellcode produziert.
1104 So gut wie alle Formatierungsmöglichkeiten, die intern verwendet werden,
1105 sind auch direkt für den Benutzer zugänglich. Alle Variablen z. B., die
1106 Dicke-Werte, Entfernungen usw. kontrollieren, können in den Eingabe-Dateien
1107 verändert werden. Es gibt eine riesige Anzahl von Formatierungsoptionen, und
1108 alle haben einen @qq{Siehe}-Abschnitt, der auf die Dokumentation verweist.
1109 Im HTML-Handbuch haben diese Abschnitte klickbare Links.
1111 Die Programmreferenz ist nur auf englisch verfügbar.
1114 @node Other documentation
1115 @unnumberedsubsec Other documentation
1117 Es gibt noch eine Reihe weiterer wertvoller Informationsquellen zu LilyPond:
1125 @uref{../topdocs/NEWS.html,Neuigkeiten}:
1128 @uref{../../topdocs/NEWS.html,Neuigkeiten}:
1134 eine Zusammenfassung der Änderungen in LilyPond seit der letzten Version.
1136 @item @uref{http://lists.gnu.org/archive/html/lilypond-user/,Das Archiv
1137 der lilypond-user Mailing-Liste}: enthält alle bisher an die Liste
1138 gesendeten Mails. Viele Fragen werden immer wieder gestellt und auch
1139 beantwortet. Die Chance, dass Ihre Frage auch schon mal aufgetaucht ist,
1140 ist also relativ groß. In diesem Fall finden Sie die Antwort in diesem
1143 @item @uref{http://lists.gnu.org/archive/html/lilypond-devel/,Das Archiv
1144 der lilypond-devel Mailing-Liste}: enthält alle bisher an die
1145 Entwicklerliste gesendeten Mails. Diese Diskussionen sind dementsprechend
1146 technisch gehalten. Wenn Sie eine tiefergehende Frage zu den Interna von
1147 LilyPond haben, finden Sie die Antwort vielleicht in diesem Archiv.
1149 @item Eingebettete Musikbeispiele: Auf allen HTML-Seiten mit Notenbeispielen,
1150 die von LilyPond erzeugt wurden, kann die originale Quelldatei durch einen Klick auf das
1151 Bild betrachtet werden.
1153 @item Initialisierungsdateien von LilyPond:
1155 Der Speicherort der Dokumentationsdateien unterscheidet sich evtl. je
1156 nach Betriebssystem. Manchmal wird hier auf Initialisierungs- oder
1157 Beispieldateien verwiesen. Das Handbuch nimmt dabei an, dass diese
1158 Dateien sich relativ zum Quellverzeichnis befinden. Zum Beispiel würde
1159 der Pfad @file{input/@/lsr/@/Verzeichnis/@/bla@/.ly} etwa auf die Datei
1160 @file{lilypond@/2.x.y/@/input/@/lsr/@/Verzeichnis/@/bla@/.ly} verweisen. In den
1161 Binärpaketen für Unix-Plattformen sind Dokumentation und Beispiele
1162 üblicherweise in einem Verzeichnis wie @file{/usr/@/share/@/doc/@/lilypond/}
1163 gespeichert. Initialisierungsdateien, etwa @file{scm/@/lily@/.scm}
1164 oder @file{ly/@/engraver@/-init@/.ly}, befinden sich normalerweise im
1165 Verzeichnis @file{/usr/@/share/@/lilypond/}.
1167 Weiterführende Informationen finden Sie unter @ref{Other sources of information}.