]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/de/user/working.itely
Updates to fret-diagrams
[lilypond.git] / Documentation / de / user / working.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
3 @ignore
4     Translation of GIT committish: 2c00bdbfaf62dd90863331c4713e6b29e32c9322
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.12.0"
11
12 @node Working on LilyPond projects
13 @chapter Working on LilyPond projects
14
15 Dieses Kapitel erklärt, wie bestimmte häufige Probleme zu 
16 lösen oder ganz zu vermeiden sind.  Wenn Sie schon 
17 Programmiererfahrung mitbringen, erscheinen diese Hinweise 
18 vielleicht überflüssig, aber es wird dennoch empfohlen, dieses Kapitel 
19 zu lesen.
20
21
22 @menu
23 * Suggestions for writing LilyPond input files::
24 * When things don't work::
25 * Scores and parts::
26 @end menu
27
28
29 @node Suggestions for writing LilyPond input files
30 @section Suggestions for writing LilyPond input files
31
32 Jetzt sind Sie so weit, größere Stücke mit LilyPond zu schreiben -- 
33 nicht nur die kleinen Beispiele aus der Übung, sondern ganze Stücke.
34 Aber wie geht man das am besten an?
35
36 Solange LilyPond Ihre Dateien versteht und die Noten so setzt, 
37 wie Sie das wollen, spielt es eigentlich keine Rolle, wie Ihre 
38 Dateien aussehen.  Es gibt aber trotzdem ein paar Dinge, die man 
39 beim Schreiben von LilyPond-Code berücksichtigen sollte.
40
41 @itemize @bullet
42 @item Was ist, wenn Sie einen Fehler machen?  Die Struktur einer 
43 LilyPond-Datei kann es erleichtern (oder erschweren), bestimmte 
44 Fehler zu finden.
45
46 @item Was ist, wenn Sie Ihre Dateien mit jemandem austauschen 
47 wollen?  Oder Ihre Dateien nach einige Jahren noch einmal überarbeiten 
48 wollen?  Manche LilyPond-Dateien versteht man auf den ersten Blick, 
49 über anderen muss man eine Stunde grübeln, um die Struktur zu ahnen.
50
51 @item Was ist, wenn sie Ihre Dateien auf eine neuere LilyPond-Version 
52 aktualisieren wollen?  Die Syntax der Eingabesprache verändert sich 
53 allmählich mit Verbesserungen im Programm.  Die meisten Veränderungen 
54 können automatisch durch @code{convert-ly} gelöst werden, aber 
55 bestimmte Änderungen brauchen Handarbeit.  LilyPond-Dateien können 
56 strukturiert werden, damit sie einfacher aktualisierbar sind.
57 @end itemize
58
59 @menu
60 * General suggestions::
61 * Typesetting existing music::
62 * Large projects::
63 * Saving typing with variables and functions::
64 * Style sheets::
65 @end menu
66
67
68 @node General suggestions
69 @subsection General suggestions
70
71 Hier einige Vorschläge, wie Sie Probleme vermeiden oder lösen können:
72
73 @itemize @bullet
74 @item @strong{Schreiben Sie immer mit @code{\version} die 
75 Versionsnummer 
76 in jede Datei}.  Beachten Sie, dass in allen Vorlagen die Versionsnummer  
77 @code{\version "2.12.0"} eingetragen ist.  Es empfiehlt sich, in alle 
78 Dateien, unabhängig von ihrer Größe, den @code{\version}-Befehl 
79 einzufügen.  Persönliche Erfahrung hat gezeigt, dass es ziemlich 
80 frustrierend sein kann zu erinnern, welche Programmversion man etwa 
81 vor einem Jahr verwendet hat.  Auch @code{convert-ly} benötigt die 
82 Versionsnummer.
83
84 @item @strong{Benutzen Sie Überprüfungen}: @ruser{Octave checks}, und
85 @ruser{Bar and bar number checks}.  Wenn Sie hier und da diese
86 Überprüfungen einfügen, finden Sie einen möglichen Fehler weit
87 schneller.  Wie oft aber ist @qq{hier und da}?  Das hängt von der
88 Komplexität der Musik ab.  ei einfachen Stücken reicht es vielleicht
89 ein- oder zweimal, in sehr komplexer Musik sollte man sie vielleicht
90 in jeden Takt einfügen.
91
92 @item @strong{Ein Takt pro Textzeile}.  Wenn irgendetwas kompliziertes 
93 vorkommt, entweder in der Musik selber oder in der Anpassung der 
94 Ausgabe,
95 empfiehlt es sich oft, nur einen Takt pro Zeile zu schreiben. 
96 Bildschirmplatz zu sparen, indem Sie acht Takte in eine Zeile zwängen, 
97 hilft nicht weiter, wenn Sie ihre Datei @qq{debuggen} müssen.
98
99 @item @strong{Kommentieren Sie ihre Dateien}.  Benutzen Sie entweder 
100 Taktnummern (in regelmäßigen Abständen) oder Verweise auf musikalische 
101 Themen (@qq{Zweites Thema in den Geigen}, @qq{vierte Variation} usw.). 
102 Sie brauchen diese Kommentare vielleicht noch nicht, wenn Sie das Stück  
103 notieren, aber spätestens wenn Sie nach ein paar Jahren etwas 
104 verändern 
105 wollen oder Sie den Quelltext an einen Freund weitergeben wollen, 
106 ist es weitaus komplizierter, die Dateistruktur ohne Kommentare zu 
107 verstehen, als wenn Sie sie rechtzeitig eingefügt hätten.
108
109 @item @strong{Schreiben Sie Klammern mit Einrückung}.  Viele 
110 Probleme entstehen durch ungerade Anzahl von  @code{@{} and 
111 @code{@}}-Klammern.
112
113 @item @strong{Schreiben Sie Tondauerangaben} am Anfang von 
114 Abschnitten und Bezeichnern.  Wenn Sie beispielsweise 
115  @code{c4 d e} am Anfang eines Abschnittes schreiben, 
116 ersparen Sie sich viele Probleme, wenn Sie ihre Musik 
117 eines Tages umarrangieren wollen.
118
119 @item @strong{Trennen Sie Einstellungen} von den eigentlichen 
120 Noten.  Siehe auch @ref{Saving typing with variables and functions} 
121 und
122 @ref{Style sheets}.
123
124 @end itemize
125
126
127 @node Typesetting existing music
128 @subsection Typesetting existing music
129
130 Wenn Sie Musik aus einer fertigen Partitur kopieren (z. B. die 
131 LilyPond-Eingabe einer gedruckten Partitur):
132
133 @itemize @bullet
134
135 @item Schreiben Sie ein System ihrer Quelle nach dem anderen 
136 (aber trotzdem nur einen Takt pro Textzeile) und überprüfen 
137 Sie jedes System, nachdem Sie es fertig kopiert haben.  Mit dem 
138 @code{showLastLength}- oder @code{showFirstLenght}-Befehl können Sie den Übersetzungsprozess 
139 beschleunigen. Siehe auch 
140 @ruser{Skipping corrected music}.
141
142 @item Definieren Sie @code{mBreak = @{ \break @}} und schreiben Sie
143  @code{\mBreak} in der Quelldatei immer dann, wenn im Manuskript 
144 ein Zeilenumbruch vorkommt.  Das macht es einfacher, die gesetzte 
145 Zeile mit den ursprünglichen Noten zu vergleichen.  Wenn Sie die 
146 Partitur fertig gestellt haben, könne Sie  @code{mBreak = @{ @}}, 
147 also leer definieren, um diese manuellen Zeilenumbrüche zu entfernen. 
148 Damit kann dann LilyPond selber entscheiden, wohin es passende 
149 Zeilenumbrüche platziert.
150
151 @end itemize
152
153
154 @node Large projects
155 @subsection Large projects
156
157 Besonders wenn Sie an größeren Projekten arbeiten, ist es 
158 unumgänglich, dass Sie ihre LilyPond-Dateien klar strukturieren.
159
160 @itemize @bullet
161
162 @item @strong{Verwenden Sie Variablen für jede Stimme}, innerhalb 
163 der Definition sollte so wenig Struktur wie möglich sein.  Die 
164 Struktur des @code{\score}-Abschnittes verändert sich am ehesten, 
165 während die @code{violine}-Definition sich wahrscheinlich mit einer 
166 neuen Programmversion nicht verändern wird.
167
168 @example
169 violine = \relative c'' @{
170 g4 c'8. e16
171 @}
172 ...
173 \score @{
174   \new GrandStaff @{
175     \new Staff @{
176       \violine
177     @}
178   @}
179 @}
180 @end example
181
182 @item @strong{Trennen Sie Einstellungen von den Noten}.  Diese 
183 Empfehlung wurde schon im Abschnitt @ref{General suggestions} gegeben, 
184 aber für große Projekte ist es unumgänglich.  Muss z. B. die 
185 Definition für @code{fdannp} verändert werden, so braucht 
186 man es nur einmal vorzunehmen und die Noten in der Geigenstimme, 
187 @code{violin}, bleiben unberührt.
188
189 @example
190 fdannp = _\markup@{
191   \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
192 violin = \relative c'' @{
193 g4\fdannp c'8. e16
194 @}
195 @end example
196
197 @end itemize
198
199
200 @node Saving typing with variables and functions
201 @subsection Saving typing with variables and functions
202
203 @cindex Variable
204 @cindex Bezeichner
205
206 Bis jetzt haben Sie immer etwa solche Noten gesehen:
207
208 @lilypond[quote,verbatim,ragged-right]
209 hornNotes = \relative c'' { c4 b dis c }
210 \score {
211   {
212     \hornNotes
213   }
214 }
215 @end lilypond
216
217 Das könnte auch nützlich in Minimal-Music sein:
218
219 @lilypond[quote,verbatim,ragged-right]
220 fragmentA = \relative c'' { a4 a8. b16 }
221 fragmentB = \relative c'' { a8. gis16 ees4 }
222 violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
223 \score {
224   {
225     \violin
226   }
227 }
228 @end lilypond
229
230 Sie können diese Bezeichner oder Variablen aber auch für 
231 (eigene) Einstellungen verwenden:
232
233 @lilypond[quote,verbatim,ragged-right]
234 dolce = \markup{ \italic \bold dolce }
235 padText = { \once \override TextScript #'padding = #5.0 }
236 fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
237 violin = \relative c'' {
238   \repeat volta 2 {
239     c4._\dolce b8 a8 g a b |
240     \padText
241     c4.^"hi there!" d8 e' f g d |
242     c,4.\fthenp b8 c4 c-. |
243   }
244 }
245 \score {
246   {
247     \violin
248   }
249 \layout{ragged-right=##t}
250 }
251 @end lilypond
252
253 Die Variablen haben in diesem Beispiel deutlich die 
254 Tipparbeit erleichtert.  Aber es lohnt sich, sie zu 
255 einzusetzen, auch wenn man sie nur einmal anwendet, 
256 denn sie vereinfachen die Struktur. 
257 Hier ist das vorangegangene Beispiel ohne 
258 Variablen.  Es ist sehr viel komplizierter zu lesen, 
259 besonders die letzte Zeile. 
260
261 @example
262 violin = \relative c'' @{
263   \repeat volta 2 @{
264     c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
265     \once \override TextScript #'padding = #5.0
266     c4.^"hi there!" d8 e' f g d |
267     c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
268       \hspace #0.1 \dynamic p @} b8 c4 c-. |
269   @}
270 @}
271 @end example
272
273 @c TODO Replace the following with a better example  -td
274 @c Skylining handles this correctly without padText
275
276 Bis jetzt wurde nur statische Substitution vorgestellt 
277 -- wenn LilyPond den Befehl @code{\padText} findet, wird 
278 er ersetzt durch durch unsere vorherige Definition (alles, 
279 was nach dem @code{padtext =} kommt).
280
281 LilyPond kennt aber auch nicht-statische Substitutionen (man 
282 kann sie sich als Funktionen vorstellen).
283
284 @lilypond[quote,verbatim,ragged-right]
285 padText =
286 #(define-music-function (parser location padding) (number?)
287   #{
288     \once \override TextScript #'padding = #$padding
289   #})
290
291 \relative c''' {
292   c4^"piu mosso" b a b
293   \padText #1.8
294   c4^"piu mosso" d e f
295   \padText #2.6
296   c4^"piu mosso" fis a g
297 }
298 @end lilypond
299
300 Die Benutzung von Variablen hilft auch, viele Schreibarbeit zu 
301 vermeiden, wenn die Eingabesyntax von LilyPond sich verändert 
302 (siehe auch @ref{Updating old files}).  Wenn nur eine einzige 
303 Definition (etwa @code{\dolce}) für alle Dateien verwendet wird 
304 (vgl. @ref{Style sheets}), muss nur diese einzige Definition 
305 verändert werden, wenn sich die Syntax ändert.  Alle Verwendungen 
306 des Befehles beziehen sich dann auf die neue Definition.
307
308 @node Style sheets
309 @subsection Style sheets
310
311 Die Ausgabe, die LilyPond erstellt, kann sehr stark modifiziert 
312 werden, siehe @ref{Tweaking output} für Einzelheiten.  Aber wie 
313 kann man diese Änderungen auf eine ganze Serie von Dateien 
314 anwenden?  Oder die Einstellungen von den Noten trennen?  Das 
315 Verfahren ist ziemlich einfach.
316
317 Hier ist ein Beispiel.  Es ist nicht schlimm, wenn Sie nicht auf 
318 Anhieb die Abschnitte mit den ganzen @code{#()} verstehen.  Das 
319 wird im Kapitel @ref{Advanced tweaks with Scheme} erklärt.
320
321 @lilypond[quote,verbatim,ragged-right]
322 mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
323   #:line(#:dynamic "mp" #:text #:italic "dolce" )))
324 tempoMark = #(define-music-function (parser location markp) (string?)
325 #{
326   \once \override Score . RehearsalMark #'self-alignment-X = #left
327   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
328   \mark \markup { \bold $markp }
329 #})
330
331 \relative c'' {
332   \tempo 4=50
333   a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
334   \tempoMark "Poco piu mosso"
335   cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
336 }
337 @end lilypond
338
339 Es treten einige Probleme mit überlappenden Symbolen auf. Sie 
340 werden beseitigt mit den Tricks aus dem Kapitel @ref{Moving objects}.
341 Aber auch die @code{mpdolce} und @code{tempoMark}-Definitionen 
342 können verbessert werden.  Sie produzieren das Ergebnis, das 
343 gewünscht ist, aber es wäre schön, sie auch in anderen Stücken 
344 verwenden zu können.  Man könnte sie natürlich einfach kopieren 
345 und in die anderen Dateien einfügen, aber das ist lästig.  Die 
346 Definitionen verbleiben auch in der Notendatei und diese @code{#()} 
347 sehen nicht wirklich schön aus.  Sie sollen in einer anderen 
348 Datei versteckt werden:
349
350 @example
351 %%% speichern in einer Datei "definitions.ly"
352 mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
353   #:line(#:dynamic "mp" #:text #:italic "dolce" )))
354 tempoMark = #(define-music-function (parser location markp) (string?)
355 #@{
356   \once \override Score . RehearsalMark #'self-alignment-X = #left
357   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
358   \mark \markup @{ \bold $markp @}
359 #@})
360 @end example
361
362 Jetzt muss natürlich noch die Notendatei angepasst werden (gespeichert 
363 unter dem Namen @file{"music.ly"}).
364
365 @c  We have to do this awkward example/lilypond-non-verbatim
366 @c  because we can't do the \include stuff in the manual.
367
368 @example
369 \include "definitions.ly"
370
371 \relative c'' @{
372   \tempo 4=50
373   a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
374   \once \override Score.RehearsalMark #'padding = #2.0
375   \tempoMark "Poco piu mosso"
376   cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
377 @}
378 @end example
379
380 @lilypond[quote,ragged-right]
381 mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
382   #:line(#:dynamic "mp" #:text #:italic "dolce" )))
383 tempoMark = #(define-music-function (parser location markp) (string?)
384 #{
385   \once \override Score . RehearsalMark #'self-alignment-X = #left
386   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
387   \mark \markup { \bold $markp }
388 #})
389
390 \relative c'' {
391   \tempo 4=50
392   a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
393   \once \override Score.RehearsalMark #'padding = #2.0
394   \tempoMark "Poco piu mosso"
395   cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
396 }
397 @end lilypond
398
399 Das sieht schon besser aus, aber es sind noch einige Verbesserungen 
400 möglich. 
401 Das Glissando ist schwer zu sehen, also soll es etwas dicker erscheinen 
402 und dichter an den Notenköpfen gesetzt werden.  Das Metronom-Zeichen 
403 soll über dem Schlüssel erscheinen, nicht über der ersten Note.  Und 
404 schließlich kann unser Kompositionsprofessor @qq{C}-Taktangaben 
405 überhaupt nicht leiden, also 
406 müssen sie in @qq{4/4} verändert werden.
407
408 Diese Veränderungen sollten Sie aber nicht in der @file{music.ly}-Datei 
409 vornehmen.  Ersetzen Sie die @file{definitions.ly}-Datei hiermit:
410
411 @example
412 %%%  definitions.ly
413 mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
414   #:line( #:dynamic "mp" #:text #:italic "dolce" )))
415 tempoMark = #(define-music-function (parser location markp) (string?)
416 #@{
417   \once \override Score . RehearsalMark #'self-alignment-X = #left
418   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
419   \mark \markup @{ \bold $markp @}
420 #@})
421
422 \layout@{
423   \context @{ \Score
424     \override MetronomeMark #'extra-offset = #'(-9 . 0)
425     \override MetronomeMark #'padding = #'3
426   @}
427   \context @{ \Staff
428     \override TimeSignature #'style = #'numbered
429   @}
430   \context @{ \Voice
431     \override Glissando #'thickness = #3
432     \override Glissando #'gap = #0.1
433   @}
434 @}
435 @end example
436
437 @lilypond[quote,ragged-right]
438 mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
439   #:line( #:dynamic "mp" #:text #:italic "dolce" )))
440 tempoMark = #(define-music-function (parser location markp) (string?)
441 #{
442   \once \override Score . RehearsalMark #'self-alignment-X = #left
443   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
444   \mark \markup { \bold $markp }
445 #})
446
447 \layout{
448   \context { \Score
449     \override MetronomeMark #'extra-offset = #'(-9 . 0)
450     \override MetronomeMark #'padding = #'3
451   }
452   \context { \Staff
453     \override TimeSignature #'style = #'numbered
454   }
455   \context { \Voice
456     \override Glissando #'thickness = #3
457     \override Glissando #'gap = #0.1
458   }
459 }
460
461 \relative c'' {
462   \tempo 4=50
463   a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
464   \once \override Score.RehearsalMark #'padding = #2.0
465   \tempoMark "Poco piu mosso"
466   cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
467 }
468 @end lilypond
469
470 Das sieht schon besser aus!  Aber angenommen Sie möchten dieses 
471 Stück jetzt veröffentlichen.  Ihr Kompositionsprofessor mag 
472 die @qq{C}-Taktangaben nicht, aber Sie finden sie irgendwie 
473 schöner.  Also kopieren Sie die Datei @file{definitions.ly} nach 
474 @file{web-publish.ly} und verändern diese.  Weil die Noten 
475 in einer PDF-Datei auf dem Bildschirm angezeigt werden sollen, 
476 bietet es sich auch an, die gesamte Ausgabe zu vergrößern.
477
478 @example
479 %%%  definitions.ly
480 mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
481   #:line( #:dynamic "mp" #:text #:italic "dolce" )))
482 tempoMark = #(define-music-function (parser location markp) (string?)
483 #@{
484   \once \override Score . RehearsalMark #'self-alignment-X = #left
485   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
486   \mark \markup @{ \bold $markp @}
487 #@})
488
489 #(set-global-staff-size 23)
490 \layout@{
491   \context @{ \Score
492     \override MetronomeMark #'extra-offset = #'(-9 . 0)
493     \override MetronomeMark #'padding = #'3
494   @}
495   \context @{ \Staff
496   @}
497   \context @{ \Voice
498     \override Glissando #'thickness = #3
499     \override Glissando #'gap = #0.1
500   @}
501 @}
502 @end example
503
504 @lilypond[quote,ragged-right]
505 mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
506   #:line( #:dynamic "mp" #:text #:italic "dolce" )))
507 tempoMark = #(define-music-function (parser location markp) (string?)
508 #{
509   \once \override Score . RehearsalMark #'self-alignment-X = #left
510   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
511   \mark \markup { \bold $markp }
512 #})
513
514 #(set-global-staff-size 23)
515 \layout{
516   \context { \Score
517     \override MetronomeMark #'extra-offset = #'(-9 . 0)
518     \override MetronomeMark #'padding = #'3
519   }
520   \context { \Voice
521     \override Glissando #'thickness = #3
522     \override Glissando #'gap = #0.1
523   }
524 }
525
526 \relative c'' {
527   \tempo 4=50
528   a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
529   \once \override Score.RehearsalMark #'padding = #2.0
530   \tempoMark "Poco piu mosso"
531   cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
532 }
533 @end lilypond
534
535 In der Notendatei muss jetzt nur noch @code{\include "definitions.ly"}
536 durch @code{\include "web-publish.ly"} ausgetauscht werden. 
537 Das könnte man natürlich noch weiter vereinfachen.  Also 
538 eine Datei @file{definitions.ly}, die nur die Definitionen 
539 von @code{mpdolce} und @code{tempoMark} enthält, eine Datei 
540 @file{web-publish.ly}, die alle die Änderungen für den 
541 @code{\layout}-Abschnitt enthält und eine Datei @file{university.ly} 
542 für eine Ausgabe, die den Wünschen des Professors entspricht. 
543 Der Anfang der @file{music.ly}-Datei würde dann so aussehen:
544
545 @example
546 \include "definitions.ly"
547
548 %%%  Nur eine der beiden Zeilen auskommentieren!
549 \include "web-publish.ly"
550 %\include "university.ly"
551 @end example
552
553 Durch diese Herangehensweise kann auch bei der Erstellung 
554 von nur einer Ausgabeversion Arbeit gespart werden.  Ich 
555 benutze ein halbes Dutzend verschiedener Stilvorlagen 
556 für meine Projekte.  Jede Notationsdatei fängt an mit 
557 @code{\include "../global.ly"}, welches folgenden Inhalt hat:
558
559
560 @example
561 %%%   global.ly
562 \version "2.12.0"
563 #(ly:set-option 'point-and-click #f)
564 \include "../init/init-defs.ly"
565 \include "../init/init-layout.ly"
566 \include "../init/init-headers.ly"
567 \include "../init/init-paper.ly"
568 @end example
569
570
571 @node When things don't work
572 @section When things don't work
573
574 @menu
575 * Updating old files::
576 * Troubleshooting (taking it all apart)::
577 * Minimal examples::
578 @end menu
579
580 @node Updating old files
581 @subsection Updating old files
582
583 Die Syntax von LilyPond verändert sich ab und zu.  Wenn LilyPond 
584 besser wird, muss auch die Syntax (Eingabesprache) entsprechend 
585 angepasst werden.  Teilweise machen diese Veränderungen die 
586 Eingabesprache einfacher lesbar, teilweise dienen sie dazu, neue 
587 Eigenschaften des Programmes benutzbar zu machen.
588
589 LilyPond stellt ein Programm bereit, das Aktualisierungen 
590 vereinfacht: @code{convert-ly}.  Einzelheiten zur Programmbenutzung 
591 finden sich in @rprogram{Updating files with convert-ly}.
592
593 Leider kann @code{convert-ly} nicht alle Veränderungen der Syntax
594 berücksichtigen.  Hier werden einfache @qq{Suchen und
595 Ersetzen}-Veränderungen vorgenommen (wie etwa @code{raggedright} zu
596 @code{ragged-right}), aber einige Veränderungen sind zu
597 kompliziert.  Die Syntax-Veränderungen, die das Programm nicht
598 berücksichtigt, sind im Kapitel @rprogram{Updating files with
599 convert-ly} aufgelistet.
600
601 Zum Beispiel wurden in LilyPond 2.4 und früheren Versionen 
602 Akzente und Umlaute mit LaTeX-Befehlen eingegeben, ein 
603 @qq{No\"el} etwa ergäbe das französische Wort für Weihnachten.
604 In LilyPond 2.6 und höher müssen diese Sonderzeichen direkt 
605 als utf-8-Zeichen eingegeben werden, in diesem Fall also @qq{ë}. 
606 @code{convert-ly} kann nicht alle dieser LaTeX-Befehle 
607 verändern, das muss manuell vorgenommen werden.
608
609
610 @node Troubleshooting (taking it all apart)
611 @subsection Troubleshooting (taking it all apart)
612
613 Früher oder später werden Sie in die Lage kommen, 
614 dass LilyPond Ihre Datei nicht kompilieren will.  Die 
615 Information, die LilyPond während der Übersetzung 
616 gibt, können Ihnen helfen, den Fehler zu finden, aber 
617 in vielen Fällen müssen Sie nach der Fehlerquelle 
618 auf die Suche gehen.
619
620 Die besten Hilfsmittel sind in diesem Fall das Zeilen- 
621 und Blockkommentar (angezeigt durch @code{%} bzw. 
622 @code{%@{ ... %@}}).  Wenn Sie nicht bestimmen können, 
623 wo sich das Problem befindet, beginnen Sie damit, große 
624 Teile des Quelltextes auszukommentieren.  Nachdem Sie 
625 einen Teil auskommentiert haben, versuchen Sie, die Datei 
626 erneut zu übersetzen.  Wenn es jetzt funktioniert, muss 
627 sich das Problem innerhalb der Kommentare befinden. 
628 Wenn es nicht funktioniert, müssen Sie weitere Teile 
629 auskommentieren bis sie eine Version haben, die funktioniert.
630
631 In Extremfällen bleibt nur noch solch ein Beispiel übrig:
632
633 @example
634 \score @{
635   <<
636     % \melody
637     % \harmony
638     % \bass
639   >>
640   \layout@{@}
641 @}
642 @end example
643
644 @noindent
645 (also eine Datei ohne Noten).
646
647 Geben Sie nicht auf, wenn das vorkommen sollte.  Nehmen 
648 Sie das Kommentarzeichen von einem Teil wieder weg, sagen 
649 wir der Bassstimme, und schauen Sie, ob es funktioniert. 
650 Wenn nicht, dann kommentieren Sie die gesamte Bassstimme 
651 aus, aber nicht den @code{\bass}-Befehl in dem 
652  @code{\score}-Abschnitt:
653
654 @example
655 bass = \relative c' @{
656 %@{
657   c4 c c c
658   d d d d
659 %@}
660 @}
661 @end example
662
663 Jetzt beginnen Sie damit, langsam Stück für Stück der 
664 Bassstimme wieder hineinzunehmen, bis Sie die problematische 
665 Zeile finden.
666
667 Eine andere nützliche Technik zur Problemlösung ist es, 
668 @ref{Minimal examples} zu konstruieren.
669
670
671 @node Minimal examples
672 @subsection Minimal examples
673
674 Ein Minimalbeispiel ist eine Beispieldatei, die so klein wie 
675 möglich ist.  Diese Beispiele sind sehr viel einfacher zu 
676 verstehen als die langen Originaldateien.  Minimalbeispiele 
677 werden benutzt, um
678
679
680 @itemize
681 @item Fehlerberichte zu erstellen,
682 @item eine Hilfeanfrage an die E-Mail-Liste zu schicken,
683 @item Ein Beispiel zur @uref{http://lsr@/.dsi@/.unimi@/.it/,LilyPond
684 Schnipselsammlung} hinzuzufügen.
685 @end itemize
686
687 Um ein Beispiel zu konstruieren, das so klein wie möglich ist, 
688 gibt es eine einfache Regel:  Alles nicht Notwendige entfernen. 
689 Wenn Sie unnötige Teile einer Datei entfernen, bietet es sich an, 
690 sie auszukommentieren und nicht gleich zu löschen.  Auf diese Weise 
691 können Sie eine Zeile leicht wieder mit aufnehmen, sollten Sie sie 
692 doch brauchen, anstatt sie von Anfang an neu zu schreiben.
693
694 Es gibt zwei Ausnahmen dieser @qq{So klein wie möglich}-Regel:
695
696 @itemize
697 @item Fügen Sie immer einen @code{\version}Befehl ein.
698 @item Wenn es möglich ist, benutzen Sie @code{\paper@{ ragged-right = ##t @}}
699 am Beginn des Beispiels.
700 @end itemize
701
702 Der Sinn der Minimalbeispiele ist, dass sie einfach lesbar sind:
703
704 @itemize
705 @item Vermeiden Sie es, komplizierte Noten, Schlüssel oder Taktangaben 
706 zu verwenden, es sei denn, Sie wollen genau an diesen Elementen 
707 etwas demonstrieren.
708 @item Benutzen Sie keine @code{\override}-Befehle, wenn sie nicht der 
709 Zweck des Beispieles sind.
710 @end itemize
711
712
713 @node Scores and parts
714 @section Scores and parts
715
716 Orchesternoten werden alle zweimal gesetzt. Erstens als Stimmen für 
717 die Musiker, und dann als große Partitur für den Dirigenten.  Mit 
718 Variablen 
719 kann hier doppelte Arbeit erspart werden. Die Musik muss nur einmal 
720 eingegeben werden und wird in einer Variable abgelegt.  Der Inhalt 
721 dieser 
722 Variable wird dann benutzt, um sowohl die Stimme als auch die Partitur 
723 zu erstellen.
724
725 Es bietet sich an, die Noten in eigenen Dateien zu speichern.  Sagen wir 
726 beispielsweise, dass in der Datei @file{Horn-Noten.ly} die folgenden 
727 Noten eines Duetts für Horn und Fagott gespeichert sind:
728
729 @example
730 HornNoten = \relative c @{
731   \time 2/4
732   r4 f8 a cis4 f e d
733 @}
734 @end example
735
736 @noindent
737 Daraus wird dann eine eigene Stimme gemacht, indem folgende Datei 
738 erstellt 
739 wird:
740
741 @example
742 \include "Horn-Noten.ly"
743 \header @{
744   instrument = "Horn in F"
745 @}
746
747 @{
748  \transpose f c' \HornNoten
749 @}
750 @end example
751
752 Die Zeile
753
754 @example
755 \include "Horn-Noten.ly"
756 @end example
757
758 @noindent
759 setzt den Inhalt der Datei @file{Horn-Noten.ly} an die Stelle des 
760 Befehls in die aktuelle Datei.  Damit besteht also eine Definition 
761 für @code{HornNoten}, so dass die Variable verwendet werden kann. 
762 Der Befehl @code{\transpose f@tie{}c'} zeigt an, dass das Argument, 
763 also @code{\HornNoten}, um eine Quinte nach oben transponiert wird.
764 Klingendes @q{f} wird also als @code{c'} notiert.  Das entspricht 
765 der Notation eines Waldhorns in F.  Die Transposition zeigt die folgende 
766 Ausgabe:
767
768 @lilypond[quote,ragged-right]
769 \transpose f c' \relative c {
770   \time 2/4
771   r4 f8 a cis4 f e d
772 }
773 @end lilypond
774
775 In der Musik für mehrere Instrumente kommt es oft vor, dass eine Stimme 
776 für mehrere Takte nicht spielt.  Das wird mit einer besonderen Pause 
777 angezeigt, dem Pausenzeichen für mehrere Takte (engl. multi-measure 
778 rest).  Sie wird mit dem @emph{großen} Buchstaben @samp{R} eingegeben, 
779 gefolgt von einer Dauer (@code{1}@tie{}für eine Ganze, @code{2}@tie{}
780 für eine Halbe usw.).  Indem man die Dauer multipliziert, können längere  
781 Pausen erstellt werden.  Z. B. dauert diese Pause drei Takte eines 
782 2/4-Taktes:
783
784 @example
785 R2*3
786 @end example
787
788 Wenn die Stimme gedruckt wird, müssen diese Pausen zusammengezogen 
789 werden. 
790 Das wird durch eine Variable erreicht:
791
792 @example
793 \set Score.skipBars = ##t
794 @end example
795
796 @noindent
797 Dieser Befehl setzt die Eigenschaft des @code{skipBars} (@qq{überspringe 
798 Takte}) auf wahr (@code{##t}).  Wenn diese Option und die Pause 
799 zu der Musik des Beispiels gesetzt wird, erhält man folgendes Ergebnis:
800
801 @lilypond[quote,ragged-right]
802 \transpose f c' \relative c {
803   \time 2/4
804   \set Score.skipBars = ##t
805   R2*3
806   r4 f8 a cis4 f e d
807 }
808 @end lilypond
809
810 Die Partitur wird erstellt, indem alle Noten zusammengesetzt werden. 
811 Angenommen, die andere Stimme trägt den Namen @code{FagottNoten} 
812  und ist in der Datei @file{Fagott-Noten.ly} gespeichert.  Die
813 Partitur sieht dann folgendermaßen aus:
814
815 @example
816 \include "Fagott-Noten.ly"
817 \include "Horn-Noten.ly"
818
819 <<
820   \new Staff \HornNoten
821   \new Staff \FagottNoten
822 >>
823 @end example
824
825 @noindent
826 Und mit LilyPond übersetzt:
827
828 @lilypond[quote,ragged-right]
829 \relative c <<
830   \new Staff {
831     \time 2/4 R2*3
832     r4 f8 a cis4 f e d
833   }
834   \new Staff {
835     \clef bass
836     r4 d,8 f | gis4 c | b bes |
837     a8 e f4 | g d | gis f
838   }
839 >>
840 @end lilypond
841
842