@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@ignore
    Translation of GIT committish: fc6469f52dc27d4b5c22067367878a5c2ff5fb45

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  See TRANSLATION for details.
@end ignore

@node Introduction
@chapter Introduction


@menu
* Engraving::                   
* Automated engraving::         
* What symbols to engrave?::    
* Music representation::        
* Example applications::        
* About this manual::           
@end menu


@node Engraving
@section Engraving

Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser 
Begriff stammt aus dem traditionellen Notendruck. Noch etwa bis vor 20 
Jahren wurden Noten erstellt, indem man sie in eine Zink- oder Zinnplatte 
schnitt oder mit Stempeln schlug. Diese Platte wurde dann mit Druckerschwärze
 versehen, so dass sie in geschnittenen und gestempelten Vertiefungen 
blieb. Diese Vertiefungen schwärzten dann ein auf die Platte gelegtes 
Papier. Das Gravieren wurde vollständig von Hand erledigt. Es war darum 
sehr mühsam, Korrekturen anzubringen, weshalb man von vornherein richtig
 schneiden musste. Es handelte sich dabei um ein sehr spezialisiertes Handwerk.

Heutzutage wird fast alle gedruckte Musik von Computern erstellt. Das 
hat einige deutliche Vorteile: Drucke sind billiger als die gravierten
Platten und der Computersatz kann per E-Mail verschickt werden. Leider
hat der intensive Einsatz des Computers die graphische Qualität
des Notensatzes vermindert. Mit dem Computer erstellte Noten sehen 
langweilig und mechanisch aus, was es erschwert, von ihnen zu spielen.


@c introduce illustrating aspects of engraving, font...
Die Abbildung unten illustriert den Unterschied zwischen  
traditionellem Notensatz und einem typischen Computersatz. Das 
dritte Bild zeigt, wie LilyPond die Formen des traditionellen
Satzes nachahmt. Das linke Bild zeigt ein eingescanntes b-Vorzeichen 
aus einer 2000 herausgegebenen Edition. Das mittlere Bild
zeigt das b-Vorzeichen der selben Musik aus einer handgestochenen 
 Bärenreiter-Ausgabe. Das linke Bild zeigt die typischen Makel
des Computer-Satzes: Die Notenlinien sind sehr dünn, die Schwärze 
des Vorzeichens entspricht den dünnen Linien und hat eine gerade 
Form mit scharfen Ecken und Kanten. Im Gegensatz dazu hat das
Bärenreiter-Vorzeichen dicke, gerade zu sinnlich rundliche
Formen. Unser Symbol für das Vorzeichen hat neben anderen 
auch dieses b als Vorbild. Es ist abgerundet und passt zu unseren
Notenlinien, die sehr viel dicker sind als die der entsprechenden
Computer-Ausgabe.

@multitable @columnfractions .125 .25 .25 .25 .125
@item @tab
@ifnotinfo
@iftex
@image{henle-flat-gray,,4cm}
@end iftex
@ifnottex
@image{henle-flat-gray,,,png}
@end ifnottex

@tab
@iftex
@image{baer-flat-gray,,4cm}
@end iftex
@ifnottex
@image{baer-flat-gray,,,png}
@end ifnottex

@tab
@iftex
@image{lily-flat-bw,,4cm}
@end iftex
@ifnottex
@image{lily-flat-bw,,,png}
@end ifnottex
@end ifnotinfo
@ifinfo
@c workaround for makeinfo-4.6: line breaks and multi-column cookies
@image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
@image{lily-flat-bw,,,png}
@end ifinfo

@item @tab
Henle (2000)
@tab
Bärenreiter (1950)
@tab
LilyPond Feta-Schriftart (2003)

@end multitable


@cindex Musiksymbole
@cindex Schriftart
@cindex Dichte
@cindex Balance

@c introduce illustrating aspects of engraving, spacing...
Die Verteilung der Noten innerhalb des Taktes sollte ihrer Dauer
entsprechen. Moderne Partituren zeigen diese Verhältnisse jedoch 
mit einer mathematischen Präzision, die nur sehr schlechte 
Ergebnisse bringt. Im nächsten Beispiel ist ein Motiv zweimal
gesetzt: einmal mit den exakten mathematischen Längenverhältnissen, dann
mit kleinen Korrekturen. Welches von beiden ist mit dieser Korrektur
gesetzt?

@cindex Optischer Ausgleich
@c file spacing-optical.
@c need to include it here,  because we want two images.
@lilypond
\paper {
  ragged-right = ##t
  indent = #0.0
}

music = {
   c'4 e''4 e'4 b'4 |
   \stemDown
   b'8[ e'' a' e'']
   \stemNeutral
   e'8[ e'8 e'8 e'8]
}

\score
{
  \music
  \layout {
    \context {
      \Staff
      \override NoteSpacing #'stem-spacing-correction = #0.6
    }
  }
}
@end lilypond

@lilypond
\paper {
  ragged-right = ##t
  indent = #0.0
}

music = {
   c'4 e''4 e'4 b'4 |
   \stemDown
   b'8[ e'' a' e'']
   \stemNeutral
   e'8[ e'8 e'8 e'8]
}
\score
{
  \music
  \layout {
    \context {
      \Staff
      \override NoteSpacing #'stem-spacing-correction = #0.0
      \override NoteSpacing #'same-direction-correction = #0.0
      \override StaffSpacing #'stem-spacing-correction = #0.0
    }
  }
}
@end lilypond

@cindex normale Rhythmen
@cindex normale Abstände

In diesem Ausschnitt kommen nur Viertel vor, Noten, die in einem
 gleichmäßigen Rhythmus gespielt werden. Die Abstände sollten das
 widerspiegeln. Leider lässt uns aber das Auge im Stich: es beachtet
 nicht nur den Abstand von aufeinander folgenden Notenköpfen, sondern
 auch den ihrer Hälse. Also müssen Noten, deren Hälse in direkter
 Folge zuerst nach oben und dann nach unten ausgerichtet sind, weiter
 auseinander gezogen werden, während die unten/oben-Folge engere
 Abstände fordert, und das alles auch noch in Abhängigkeit von der 
vertikalen Position der Noten. Das obere Beispiel ist mit dieser 
Korrektur gesetzt, das unter ohne. In letzterem Fall bilden sich 
für das Auge bei unten/oben-Folgen Notenklumpen mit schmalen Abständen 
zwischen den Notenhälsen.

@cindex Typographie

Musiker sind üblicherweise zu zu konzentriert, die Musik aufzuführen, 
als dass sie das Aussehen der Noten studieren könnten; und diese 
Erbsenzählerei der typographischen Details mag akademisch wirken. 
Das ist aber nicht gerechtfertigt. Unser Beispielstück hat einen 
monotonen Rhythmus, und wenn alle Zeilen gleich aussehen, wird 
das Notenblatt zu einem Labyrinth. Wenn der Spieler auch nur 
einmal wegschaut oder kurze Zeit unkonzentriert ist, findet er 
nicht mehr zurück zu der Stelle, an der er war.

Der dichtere Eindruck, den die dickeren Notenlinien und schwereren
Notationssymbole schaffen, eignet sich auch besser für Noten,
die weit vom Leser entfernt stehen, etwa auf einem Notenständer.
Eine sorgfältige Verteilung der Zwischenräume erlaubt es, die 
Noten sehr dicht zu setzen, ohne dass die Symbole zusammenklumpen. 
Dadurch werden unnötige Seitenumbrüche vermieden, sodass man 
nicht so oft blättern muss.

Hier eine übliche Charakteristik der Typographie: Das Layout sollte
schön sein, nicht um seiner selbst willen, sondern um dem Leser
zu helfen. Für Aufführungsmaterial wie Partituren ist das um
so wichtiger. Ein Spieler kann den Noten nur eine begrenzte 
Aufmerksamkeit schenken. Und je weniger Aufmerksamkeit nötig 
ist, um die Noten zu erfassen, um so mehr Zeit können sie in 
die Aufführung selber stecken. So wirkt sich gute Typographie 
direkt in eine verbesserte Aufführung aus!

Die Beispiele haben gezeigt, dass der Notensatz eine subtile und 
komplexe Kunst ist und gute Ergebnisse nur mit viel Erfahrung 
erlangt werden können, die Musiker normalerweise nicht haben.
LilyPond stellt unser Bemühen dar, die graphische Qualität
handgestochener Notenseiten ins Computer-Zeitalter zu transportieren 
und sie für normale Musiker erreichbar zu machen. Wir haben 
unsere Algorithmen, die Gestalt der Symbole und die Programm-Einstellungen
darauf abgestimmt, einen Ausdruck zu erzielen, der der Qualität 
der alten Editionen entspricht, die wir so gerne betrachten 
und von denen wir gerne spielen.



@node Automated engraving
@section Automated engraving

Wie sollen wir also jetzt die Typographie anwenden?
Wie können wir erwarten, dass wir in der Lage wären, 
ein Programm zu schreiben, dass den Beruf des 
Notenstechers ersetzt, wo dieser doch mehr als zehn 
Jahre braucht, um ein Meister zu werden?

Wir können es tatsächlich nicht! Da Typographie allein 
durch das menschliche Auge bestimmt ist, kann der Mensch 
nicht ersetzt werden. Aber sehr viel mechanische Arbeit 
kann erleichtert werden. Indem etwa LilyPond die üblichen 
Situationen kennt und bewältigt, können die restlichen 
Fehler von Hand beseitigt werden. Das ist schon ein 
großer Fortschritt im Vergleich mit den existierenden 
Programmen. Und mit der Zeit können immer mehr Fälle 
automatisiert werden, so dass immer weniger Eingriffe 
von Hand notwendig werden.

Als wir anfingen, haben wir ein Programm mit C++ 
geschrieben. Das heißt aber, dass der Funktionsumfang 
des Programms vom Anfang an durch die Entwickler festgelegt
 ist. Das erschien uns aber nicht ausreichend: 

@itemize @bullet
@item Wenn LilyPond Fehler macht, muss der Benutzer die
Einstellungen ändern können. Er muss also Zugang zur 
Formatierungsmaschinerie haben. Also können die Regeln und 
Einstellungen nicht beim Kompilieren des Programms festgelegt 
werden, sondern sie müssen während des Laufes zugänglich sein.


@item Notensatz ist eine Frage des Augenmaßes, und damit auch vom
 Geschmack abhängig. Benutzer können mit unseren Entscheidungen 
unzufrieden sein. Darum müssen also auch die Definitionen des 
typographischen Stils dem Benutzer zugänglich sein.

@item Schließlich verfeinern wir unseren Formatierungsalgorithmus 
immer weiter, also müssen die Regeln auch flexibel sein. Die
 C++-Sprache zwingt zu einer bestimmten Gruppierungsmethode, 
die nicht den Regeln für den Notensatz entspricht.
@end itemize

Diese Probleme wurden angegangen, indem ein Übersetzer für 
die Scheme-Programmiersprache integriert wurde und Teile
von LilyPond in Scheme neu geschrieben wurden. Die derzeitige 
Formatierungsarchitektur ist um die Notation von graphischen 
Objekten herum aufgebaut, die von Scheme-Variablen und -Funktionen
beschrieben werden. Diese Architektur umfasst Formatierungsregeln,
typographische Stile und individuelle Formatierungsentscheidungen. 
Der Benutzer hat direkten Zugang zu den meisten dieser Einstellungen.

Scheme-Variablen steuern Layout-Entscheidungen. Zum Beispiel haben 
viele graphische Objekte eine Richtungsvariable, die zwischen 
oben und unten (oder rechts und links) wählen kann. Hier etwa 
sind zwei Akkorde mit Akzenten und Arpeggien. 
Beim ersten Akkord sind alle Objekte nach unten (oder links)
 ausgerichtet, beim zweiten nach oben (rechts).

@lilypond[quote,ragged-right]
\new Score \with {
   \override SpacingSpanner #'spacing-increment = #3
   \override TimeSignature #'transparent = ##t
} \relative {
   \stemDown <e g b>4_>-\arpeggio
   \override Arpeggio #'direction = #RIGHT
   \stemUp <e g b>4^>-\arpeggio
}
@end lilypond

@noindent
Der Prozess des Notensatzes besteht für das Programm darin,
die Variablen der graphischen Objekte zu lesen und zu
schreiben. Einige Variablen haben festgelegte Werte. So 
ist etwa die Dicke von vielen Linien – ein Charakteristikum 
des typographischen Stils – von vornherein festgelegt. 
Wenn sie geändert werden, ergibt sich ein anderer typographischer Eindruck.

@lilypond[quote,ragged-right]
fragment = {
   \clef bass f8 as8
   c'4-~ c'16 as g f e16 g bes c' des'4
}
<<
   \new Staff \fragment
   \new Staff \with {
      \override Beam #'thickness = #0.3
      \override Stem #'thickness = #0.5
      \override Bar #'thickness = #3.6
      \override Tie #'thickness = #2.2
      \override StaffSymbol #'thickness = #3.0
      \override Tie #'extra-offset = #'(0 .  0.3)
      }
      \fragment
>>
@end lilypond
Formatierungsregeln sind auch von vornherein festgelegt. 
Jedes Objekt hat Variablen, die Vorgänge beschreiben. 
Diese Vorgänge machen die eigentlich Satzarbeit, und 
wenn man sie durch andere ersetzt, kann ihr Verhalten 
verändert werden. Im nächsten Beispiel wird die Regel,
 mit der die Notenköpfe gezeichnet werden, verändert.

@lilypond[quote,ragged-right]
#(set-global-staff-size 30)

#(define (mc-squared grob orig current)
  (let* ((interfaces (ly:grob-interfaces grob))
         (pos (ly:grob-property grob 'staff-position)))
    (if (memq 'note-head-interface interfaces)
        (begin
          (ly:grob-set-property! grob 'stencil ly:text-interface::print)
          (ly:grob-set-property! grob 'font-family 'roman)
          (ly:grob-set-property! grob 'text
            (make-raise-markup -0.5
              (case pos
                ((-5) (make-simple-markup "m"))
                ((-3) (make-simple-markup "c "))
                ((-2) (make-smaller-markup (make-bold-markup "2")))
                (else (make-simple-markup "bla")))))))))

\new Voice \relative c' {
   \stemUp
   \set autoBeaming = ##f
   \time 2/4
   <d f g>4
   \once \override NoteHead #'stencil = #ly:note-head::brew-ez-stencil
   \once \override NoteHead #'font-size = #-7
   \once \override NoteHead #'font-family = #'sans
   \once \override NoteHead #'font-series = #'bold
   <d f g>
   \once \override NoteHead #'style = #'cross
   <d f g>
   \applyOutput #'Voice #mc-squared
   <d f g>
   <<
      { d8[ es-( fis^^ g] fis2-) }
      \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
   >>
}
@end lilypond



@node What symbols to engrave?
@section What symbols to engrave?

@cindex Notensatz
@cindex Typographie

Während des Notensatzprozesses entscheidet sich, wo
Symbole platziert werden. Das kann aber nur gelingen, 
wenn vorher entschieden wird, @emph{welche} Symbole
gesetzt werden sollen, also welche Notation benutzt
werden soll.

Die heutige Notation ist ein System zur Musikaufzeichnung,
das sich über die letzten 1000 Jahre entwickelt hat. Die 
Form, die heute üblicherweise benutzt wird, stammt aus dem 
frühen Barock. Auch wenn sich die grundlegenden Formen (also
die Notenköpfe, das Fünfliniensystem) nicht verändert hat, 
entwickeln sich die Details trotzdem immer noch weiter, um 
die Errungenschaften der Neuen Musik darstellen zu können. Die 
Notation umfasst also 500 Jahre Musikgeschichte. Ihre Anwendung 
reicht von monophonen Melodien bis zu ungeheurem Kontrapunkt 
für großes Orchester.

Orchester. Wie bekommen wir dieses vielköpfige Monster zu fassen? 
Unsere Lösung ist es, eine strikte Trennung zwischen der Notation, 
also welche Symbole benutzt werden, und dem Satz, also wohin sie 
gesetzt werden, zu machen. Um das Problem anzupacken, haben wir 
es in kleine (programmierbare) Happen zerteilt, so dass jede Art 
von Symbol durch ein eigenes Plugin verarbeitet wird. Alle Plugins
 kooperieren durch die LilyPond-Architektur. Sie sind vollständig 
modular und unabhängig und können somit auch unabhängig voneinander
 entwickelt werden. Der Schreiber, der die Musik in Graphik umwandelt,
 ist ein Kopist oder Notenstecher (engl. engraver). Darum werden 
die Plugins  als @code{engraver} bezeichnet.

Im nächsten Beispiel wird gezeigt, wie mit dem Plugin für die Notenköpfe, 
dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird.

@lilypond[quote,ragged-right]
\include "engraver-example.ily"

\score {
   \topVoice
   \layout {
   \context {
      \Voice
      \remove "Stem_engraver"
      \remove "Phrasing_slur_engraver"
      \remove "Slur_engraver"
      \remove "Script_engraver"
      \remove "Beam_engraver"
      \remove "Auto_beam_engraver"
   }
   \context {
      \Staff
      \remove "Accidental_engraver"
      \remove "Key_engraver"
      \remove "Clef_engraver"
      \remove "Bar_engraver"
      \remove "Time_signature_engraver"
      \remove "Staff_symbol_engraver"
      \consists "Pitch_squash_engraver"
   }
}
}
@end lilypond

@noindent
Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher}) 
die Notenlinien hinzu.

@lilypond[quote,ragged-right]
\include "engraver-example.ily"

\score {
  \topVoice
  \layout {
    \context {
      \Voice
      \remove "Stem_engraver"
      \remove "Phrasing_slur_engraver"
      \remove "Slur_engraver"
      \remove "Script_engraver"
      \remove "Beam_engraver"
      \remove "Auto_beam_engraver"
    }
    \context {
      \Staff
      \remove "Accidental_engraver"
      \remove "Key_engraver"
      \remove "Clef_engraver"
      \remove "Bar_engraver"
      \consists "Pitch_squash_engraver"
      \remove "Time_signature_engraver"
    }
  }
}
@end lilypond

@noindent
Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert 
eine Referenzstelle für das System.

@lilypond[quote,ragged-right]
\include "engraver-example.ily"

\score {
  \topVoice
  \layout {
    \context {
      \Voice
      \remove "Stem_engraver"
      \remove "Phrasing_slur_engraver"
      \remove "Slur_engraver"
      \remove "Script_engraver"
      \remove "Beam_engraver"
      \remove "Auto_beam_engraver"
    }
    \context {
      \Staff
      \remove "Accidental_engraver"
      \remove "Key_engraver"
      \remove "Bar_engraver"
      \remove "Time_signature_engraver"
    }
  }
}
@end lilypond

@noindent
Der @code{Stem_engraver} (@qq{Halsstecher}) schließlich fügt
 Hälse hinzu.

@lilypond[quote,ragged-right]
\include "engraver-example.ily"

\score {
  \topVoice
  \layout {
    \context {
      \Voice
      \remove "Phrasing_slur_engraver"
      \remove "Slur_engraver"
      \remove "Script_engraver"
      \remove "Beam_engraver"
      \remove "Auto_beam_engraver"
    }
    \context {
      \Staff
      \remove "Accidental_engraver"
      \remove "Key_engraver"
      \remove "Bar_engraver"
      \remove "Time_signature_engraver"
    }
  }
}
@end lilypond

@noindent
Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt, 
der vorkommt. Jedes Mal wenn ein (oder mehrere bei einem Akkord) 
Notenkopf erscheint, wird ein Hals-Objekt erstellt und an den 
Kopf geheftet. Wenn wir dann noch engraver für Balken, Bögen, 
Akzente, Vorzeichen, Taktlinien, Taktangaben und Tonartbezeichnungen 
hinzufügen, erhalten wir eine vollständige Notation.


@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score { \topVoice }
@end lilypond

Dieses System funktioniert gut für monophone Musik, aber wie geht 
es mit Polyphonie? Hier müssen sich mehrere Stimmen ein System teilen.

@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\new Staff << \topVoice \\ \botVoice >>
@end lilypond

In diesem Fall werden das System und die Vorzeichen geteilt, aber die 
Hälse, Bögen, Balken usw. sind jeder einzelnen Stimme eigen. Die engraver 
müssen also gruppiert werden. Die Köpfe, Hälse, Bögen usw. werden 
in einer Gruppe mit dem Namen @qq{Voice context} (Stimmenkontext) 
zusammengefasst, die engraver für den Schlüssel, die Vorzeichen, 
Taktstriche usw. dagegen in einer Gruppe mit dem Namen @qq{Staff context} 
(Systemkontext). Im Falle von Polyphonie hat ein Staff context dann also 
mehr als einen Voice context. Auf gleiche Weise können auch mehrere Staff
 contexte in einen großen Score context (Partiturkontext) eingebunden werden.

@seealso

Programmreferenz: @internalsref{Contexts}.

@lilypond[quote,ragged-right]
\include "engraver-example.ily"
\score {
   <<
      \new Staff << \topVoice \\ \botVoice >>
      \new Staff << \pah \\ \hoom >>
   >>
}
@end lilypond

@node Music representation
@section Music representation

Idealerweise ist das Eingabeformat für ein höheres Satzsystem die 
abstrakte Beschreibung des Inhaltes. In diesem Fall wäre das die 
Musik selber. Das stellt uns aber vor ein ziemlich großes Problem, 
denn wie können wir definieren, was Musik wirklich ist? Anstatt darauf 
eine Antwort zu suchen, haben wir die Frage einfach umgedreht. Wir
schreiben ein Programm, das den Notensatz beherrscht und passen das 
Format an, so einfach wie möglich zu sein. Wenn es nicht mehr vereinfacht 
werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser 
Format dient als die formale Definition eines Musiktextes.

Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond, 
darum soll sie einfach zu schreiben sein; z. B. bedeutet

@example
c'4 d'8
@end example

@noindent
eine Viertel c' und eine Achtel d', wie in diesem Beispiel:

@lilypond[quote,fragment]
c'4 d'8
@end lilypond

In kleinem Rahmen ist diese Syntax sehr einfach zu benutzen. In 
größeren Zusammenhängen aber brauchen wir Struktur. Wie sonst kann 
man große Opern oder Symphonien notieren? Diese Struktur wird 
gewährleistet durch sog. music expressions (Musikausdrücke): indem 
kleine Fragmente zu größeren kombiniert werden, kann mehr Komplexität 
ausgedrückt werden. So etwa hier:

@lilypond[quote,verbatim,fragment,relative=1]
c4
@end lilypond

@noindent
Gleichzeitig erklingende Noten werden hinzugefügt, indem man alle in << und >> einschließt.

@c < > is not a music expression,
@c so we use <<>> iso. <> to drive home the point of
@c expressions.  Don't change this back --hwn.
@example
<<c4 d4 e4>>
@end example

@lilypond[quote,fragment,relative=1]
\new Voice { <<c4 d4 e>> }
@end lilypond

@noindent
Um aufeinanderfolgende Noten darzustellen, werden sie in geschweifte Klammern gefasst:

@code{@{@tie{}@dots{}@tie{}@}}

@example
@{ f4 <<c4 d4 e4>> @}
@end example

@lilypond[quote,relative=1,fragment]
{ f4 <<c d e4>> }
@end lilypond

@noindent
Dieses Gebilde ist in sich wieder ein Ausdruck, und kann 
daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben).

@example
<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>
@end example

@lilypond[quote,fragment,relative=2]
\new Voice { << g2 \\ { f4 <<c d e>> } >> }
@end lilypond

Solche geschachtelten Strukturen können sehr gut in einer 
kontextunabhängigen Grammatik beschrieben werden. Der Programmcode 
für den Satz ist auch mit solch einer Grammatik erstellt. Die Syntax 
von LilyPond ist also klar und ohne Zweideutigkeiten definiert.

Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer 
wahrgenommen. Teilweise ist es eine Frage des Geschmackes und auch ein 
Objekt vieler Diskussionen. Auch wenn Geschmacksfragen ihre Berechtigung 
haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond 
spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische 
Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel 
schwieriger. Das kann auch die Zeilenzahl der Programmzeilen zeigen: 
Analysieren und Darstellen nimmt nur etwa 10% des Codes ein:

@node Example applications
@section Example applications

Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des 
Musiksatzes in ein Computerprogramm komprimieren kann. Dieses 
Programm kann nun dank vieler harter Arbeitsstunden benutzt werden, 
um sinnvolle Aufgaben zu erledigen. Die einfachste ist dabei der 
Notendruck.

@lilypond[quote,relative=1,fragment]
\time 2/4 c4 c g'4 g a4 a g2
@end lilypond

@noindent
Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir 
ein Lead Sheet.

@lilypond[quote,ragged-right]
<<
   \chords { c2 c f2 c }
   \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
   \new Lyrics \lyricmode { twin4 kle twin kle lit tle star2 }
>>
@end lilypond

Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das 
nächste Beispiel zeigt einige etwas exotischere Konstruktionen:

@lilypondfile[quote,ragged-right]{screech-boink.ly}

Dieses Beispiel wurde vollständig selbst geschrieben, aber das ist nicht 
nötig. Da der Satz fast vollständig automatisch abläuft, kann er auch 
als eine Ausgabe-Erweiterung für andere Programme dienen, die Musik 
manipulieren. So können etwa ganze Datenbanken musikalischer Fragmente automatisch 
in Notenbilder umgewandelt werden, die dann auf Internetseiten oder 
in Multimediapräsentation Anwendung finden.

Dieses Benutzerhandbuch zeigt eine weiter Möglichkeit: Das Eingabeformat
der Noten ist reiner Text, darum könne sie sehr einfach integriert werden 
in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem 
Fall, Texinfo. Durch ein spezielles Programm werden die Eingabefragmente durch 
Notenbilder in der resultierenden PDF- oder HTML-Datei ersetzt. Dadurch ist
es sehr einfach, Musik und Text zu kombinieren.



@node About this manual
@section About this manual

Das Handbuch ist in folgende Kapitel gegliedert:
@itemize @bullet

@item
@ifhtml
Die 
@end ifhtml
@emph{@ref{Tutorial}}
stellt eine einfache Einführung in den Musiksatz dar. Neulinge sollten hiermit 
beginnen.

@item
@emph{@ref{Putting it all together}}
erklärt generelle Konzepte des LilyPond-Dateiformates. Wenn Sie sich nicht 
sicher sind, wohin ein Befehl gesetzt werden soll, lesen Sie hier nach.

@item
@emph{@ref{Working on LilyPond projects}}
zeigt den wirklichen Einsatz von LilyPond und gibt Hinweise, wie einige 
Probleme vermieden werden können.

@item
@emph{@ref{Tweaking output}}
stellt dar, wie die Standardeinstellungen von LilyPond verändert werden können.

@item
@emph{@ref{Basic notation}}
erklärt alles über die grundlegenden Notationskonstruktionen. Dieses Kapitel 
ist für fast jedes Notationsprojekt  nützlich.

@item
@emph{@ref{Instrument-specific notation}}
erklärt spezifische Schwierigkeiten, die sich bei bestimmten Notationstypen 
ergeben. Dieses Kapitel ist nur in entsprechenden Fällen bestimmter Instrumente 
oder bei Gesang zu konsultieren.

@item
@emph{@ref{Advanced notation}}
erklärt komplizierte oder unübliche Anwendungen nach Notationsgegenstand geordnet.

@item
@emph{@ref{Changing defaults}}
erklärt, wie des Layout getrimmt werden kann.

@item
@emph{@ref{Non-musical notation}}
zeigt alles, was nicht direkt mit den Noten zu tun hat wie Titel, mehrere Sätze oder 
wie man ein MIDI-Instrument auswählt.

@item
@emph{@ref{Spacing issues}}
befasst sich mit globalen Fragen wie der Definition von Papierformaten 
oder wie man Seitenumbrüche definiert.

@item
@emph{@ref{Interfaces for programmers}}
demonstriert die Erstellung von musikalischen Funktionen.


@item
@emph{@rprogram{Running LilyPond}}
zeigt, wie LilyPond und die Hilfsprogramme gestartet werden. Zusätzlich 
wird hier gezeigt, wie Quelldateien von älteren LilyPond-Versionen 
aktualisiert werden können.

@item
@emph{@rprogram{LilyPond-book}}
zeigt die Details der Integration von Noten in Texte wie etwa dieses 
Handbuch.

@item
@emph{@rprogram{Converting from other formats}}
erklärt die Funktionsweise der Konvertierungsprogramme. Diese Programme 
sind im LilyPond-Paket enthalten und können ein ganze Anzahl von Formaten 
in das @code{.ly}-Format umwandeln.

@item
@ifhtml
Die
@end ifhtml
@emph{@ref{Literature list}}
enthält einige wichtige Quellen für alle, die mehr über Notation und 
den Notensatz erfahren wollen.

@item
Das 
@emph{@ref{Scheme tutorial}}
stellt eine kurze Einleitung in die Scheme-Sprache dar, mit dem 
die musikalischen Funktionen gebildet werden.

@item
@emph{@ref{Notation manual tables}}
sind Tabellen, in denen Akkordbezeichnungen, MIDI-Instrumente, 
Farbbezeichnungen und die Zeichen der Feta-Schriftart gesammelt sind.

@item
@emph{@ref{Templates}}
von LilyPond-Stücken. Kopieren Sie einfach hier, fügen Sie in ihre Datei 
ein und schreiben Sie noch die Noten dazu. Das ist alles!

@item
Die
@emph{@ref{Cheat sheet}}
zeigt die wichtigsten LilyPond-Befehle.

@item
Der
@emph{@ref{LilyPond command index}}
listet alle Befehle auf, die mit @code{\} anfangen.

@item
Der 
@emph{@ref{LilyPond index}}
ist ein vollständiger Index.

@end itemize

Wenn Sie etwas Erfahrung gesammelt haben, können Sie das Handbuch als 
Referenz benutzen, denn es hat einen sehr guten Index@footnote{Wenn Sie 
nach etwas suchen und es nicht im Handbuch finden, gilt das als Fehler des 
Handbuches. In diesem Fall geben Sie bitte einen Hinweis!}, aber es ist
auch als
@iftex
eine große HTML-Seite,
@end iftex
@ifhtml
@uref{source/Documentation/user/lilypond.html, eine große Seite},
@end ifhtml
erhältlich, die einfach mit der Suchfunktion des Browsers durchsucht werden kann.
@cindex Suche im Handbuch
@cindex Benutzung des Handbuchs

@c FIXME:
@c add/integrate glossary, put in list above
Wenn Sie auf musikalische Begriffen stoßen, die Ihnen nicht geläufig sind, kann 
vielleicht das Glossar helfen.

@iftex
Hier werden die wichtigsten Begriffe auf englisch erklärt und in eine Reihe 
von Sprachen übersetzt, sodass sie auch auf deutsch gefunden werden. Es ist ein 
eigenes Dokument, das als HTML- oder PDF-Datei geladen werden kann.
@end iftex
@ifnottex
Im @ref{Top,Glossar musikalischer Begriffe,,music-glossary} werden die wichtigsten Begriffe auf 
englisch erklärt und in eine Reihe von Sprachen übersetzt, sodass sie auch auf deutsch 
gefunden werden. Es gibt es auch als PDF.
@end ifnottex
@cindex Dialekt
@cindex Jargon
@cindex Terminologie
@cindex Fremdsprache
@cindex Sprache
@cindex Englische Begriffe

Dieses Handbuch ist ohne eine Reihe anderer Dokumente nicht vollständig. Sie sind
nicht in gedruckter Form erhältlich, aber sollten in dem Dokumentationspaket für Ihr
Betriebssystem enthalten sein:

@itemize @bullet
@item
@iftex
Programmreferenz
@end iftex
@ifnottex
@ref{Top,Programmreferenz,,lilypond-internals}.
@end ifnottex

Die Programmreferenz ist eine Sammlung intensiv verlinkter HTML-Seiten,
die alle Details jeder einzelnen LilyPond-Klasse, jedes Objektes und 
jeder Funktion erklären. Sie wird direkt aus den Satzdefinitionen 
produziert.

So gut wie alle Formatierungsmöglichkeiten, die intern verwendet werden, 
sind auch direkt für den Benutzer zugänglich. Alle Variablen z. B., die
Dicke-Werte, Entfernungen usw. kontrollieren, können in den Eingabe-Dateien 
verändert werden. Es gibt eine riesige Anzahl von Formatierungsoptionen, und 
alle haben einen @q{See also}-Abschnitt, der auf die Dokumentation verweist.
Im HTML-Handbuch haben diese Abschnitte klickbare Links.

Die Programmreferenz ist nur auf englisch erhältlich.


@cindex Schnipsel
@item
@ifnothtml
Verschiedene Quelltextbeispiele.
@end ifnothtml
@ifhtml
@c Works, but link name is not so nice; so write-out macro
@c @inputfileref{input/test,Various input examples}.
@uref{source/input/test/collated-files.html,Verschiedene Quelltextbeispiele}.
@end ifhtml

Diese Dateisammlung zeigt einige Tricks und ist als eine große 
HTML-Datei herunterladbar. Notenbilder und Erklärungen sind enthalten.

@item
@ifnothtml
Die Regressionstests.
@end ifnothtml
@ifhtml
@c Works, but link name is not so nice; so write-out macro
@c @inputfileref{input/regression,The regression tests}.
@uref{source/input/regression/collated-files.html,Die Regressionstests}.
@end ifhtml

Diese Dateisammlung testet jede Notations- und Satzeigenschaft von LilyPond 
in einer besonderen Datei. Die Sammlung ist vor allem da, um die Fehlersuche 
zu vereinfachen, aber sie kann sehr informativ sein, um zu sehen, wie wir 
das Programm entwickeln. Das Format entspricht dem der Tipps-Seite.
@end itemize

Auf allen HTML-Seiten, die Noten eingebettet haben, deren Ausgabe mit LilyPond 
vorgenommen wurde, kann die originale Quelldatei durch einen Klick auf das 
Bild betrachtet werden.

Der Speicherort der Dokumentationsdateien unterscheidet sich evtl. je 
nach Betriebssystem. Manchmal wird hier auf Initialisierungs- oder 
Beispieldateien verwiesen. Das Handbuch nimmt dabei an, dass diese 
Dateien sich relativ zum Quellverzeichnis befinden. Zum Beispiel würde 
der Pfad @file{input/@/test/@/bla@/.ly} etwa auf die Datei 
@file{lilypond@/2.x.y/@/input/@/test/@/bla@/.ly} verweisen. In den 
Binärpaketen für Unix-Plattformen sind Dokumentation und Beispiele 
üblicherweise in einem Verzeichnis wie @file{/usr/@/share/@/doc/@/lilypond/}
gespeichert. Initialisierungsdateien, etwa  @file{scm/@/lily@/.scm}, 
oder @file{ly/@/engraver@/-init@/.ly}, befinden sich normalerweise im 
Verzeichnis @file{/usr/@/share/@/lilypond/}.

@cindex Anpassen der Ausgabe
@cindex Variablen
@cindex Eigenschaften
@cindex properties
@cindex lilypond-internals
@cindex interne Dokumentation
@cindex Scheme
@cindex Erweiterung von LilyPond
@cindex Index

Dieses Handbuch (so wie alle anderen) ist als PDF- oder HTML-Datei von 
LilyPonds Internetseite @uref{http://@/www@/.lilypond@/.org/} herunterladbar.
