X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fde%2Fessay%2Fengraving.itely;h=fbc27ef8fe2c5f5e7c29c6118b919aafdfb11adf;hb=058370efc7e9710f149d0f444328bb1fcd7bdec1;hp=050b8a008e6d1e027fbeffff9706949667c02a5c;hpb=dd38fd45aaa0e79b9653b37350544763d6159a8e;p=lilypond.git diff --git a/Documentation/de/essay/engraving.itely b/Documentation/de/essay/engraving.itely index 050b8a008e..fbc27ef8fe 100644 --- a/Documentation/de/essay/engraving.itely +++ b/Documentation/de/essay/engraving.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 64feeff58e5ce3397de87188a08ac99f7ef8e37b + Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94 When revising a translation, copy the HEAD committish of the @@ -9,7 +9,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.13.4" +@c \version "2.19.2" @c Translators: Till Paala @@ -70,7 +70,7 @@ Henle Nr. 666, @copyright{}2000: Die Noten sind identisch und stammen aus der ersten Solosuite für Violoncello von J. S. Bach, aber ihre Erscheinung ist sehr unterschiedlich, insbesondere wenn man sie ausdruckt und aus einigem -Abstand betrachtet. +Abstand betrachtet. @ifnottex (Die PDF-Version dieses Handbuchs hat hochauflösende Abbildungen, die sich zum Drucken eignen.) @@ -83,14 +83,14 @@ die neuere Edition kalt und mechanisch erscheint. Es ist schwer, sofort die Unterschiede zur neueren Edition auszumachen. Alles sieht sauber und fein aus, möglicherweise sogar @qq{besser}, -weil es eher komputerkonform und einheitlich wirkt. Das hat uns +weil es eher computerkonform und einheitlich wirkt. Das hat uns tatsächlich für eine ganze Weile beschäftigt. Wir wollten die Computernotation verbessern, aber wir mussten erst verstehen, was eigentlich falsch mit ihr war. Die Antwort findet sich in der präzisen, mathematischen Gleichheit der neueren Edition. Suchen Sie die Taktstriche in der Mitte jeder -Zeiel: im handgestochenen Satz hat die Position dieser Taktstriche +Zeile: im handgestochenen Satz hat die Position dieser Taktstriche sozusagen natürliche Variation, während die neuere Version sie fast immer perfekt in die Mitte setzt. Das zeigen diese vereinfachten Diagramme des Seitenlayouts vom handgestochenen (links) und @@ -148,7 +148,7 @@ Henle no. 666, @copyright{}2000: @cindex Gravur, Notensatz @cindex Plattendruck, Noten -Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser +Die Kunst des Notensatzes wird auch als Notenstich bezeichnet. Dieser Begriff stammt aus dem traditionellen Notendruck@footnote{Frühe europäische Drucker versuchten sich an verschiedenen Techniken wie handgeschnitzten Holzblöcken, beweglichen Lettern und @@ -160,12 +160,12 @@ Qualitätsabstriche zu erstellen. So wurden der Notenstich mit der Hand bis ins 20. Jahrhundert zum Standard für alle gedruckten Noten, ausgenommen einige Hymnale und Liederbücher, wo der Letterdruck durch seine Einfachheit und Kostenersparnis -gerechtfertigt war.}. Noch bis vor etwa 20 -Jahren wurden Noten erstellt, indem man sie in eine Zink- oder Zinnplatte +gerechtfertigt war.}. Noch bis vor etwa 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 den 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 +versehen, so dass sie in den 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. Die Kunst des Notenstechens war eine sehr spezialisierte Handwerkskunst, für die ein Handwerker etwa fünf @@ -182,7 +182,7 @@ beherrschen. @end ifnottex @end quotation -LilyPond wurd von den handgestochenen traditionellen Noten +LilyPond wurde von den handgestochenen traditionellen Noten inspiriert, die in der ersten Hälfte des 20. Jahrhunderts von europäischen Notenverlagen herausgegeben wurden (insbesondere Bärenreiter, Duhem, Durand, Hofmeister, Peters und Scott). Sie @@ -192,26 +192,26 @@ darüber gelernt, was einen gut gesetzten Musikdruck ausmacht und welche Aspekte des handgestochenen Notensatzes wir in LilyPond imitieren wollten. -@c Heutzutage wird fast alle gedruckte Musik von Computern erstellt. Das +@c Heutzutage wird fast alle gedruckte Musik von Computern erstellt. Das @c hat einige deutliche Vorteile: Drucke sind billiger als die gravierten @c Platten und der Computersatz kann per E-Mail verschickt werden. Leider @c hat der intensive Einsatz des Computers die graphische Qualität -@c des Notensatzes vermindert. Mit dem Computer erstellte Noten sehen +@c des Notensatzes vermindert. Mit dem Computer erstellte Noten sehen @c langweilig und mechanisch aus, was es erschwert, von ihnen zu spielen. @menu -* Notenschriftarten:: -* Optischer Ausgleich:: -* Hilfslinien:: -* Optische Größen:: -* Warum der große Aufwand?:: +* Notenschriftarten:: +* Optischer Ausgleich:: +* Hilfslinien:: +* Optische Größen:: +* Warum der große Aufwand?:: @end menu @node Notenschriftarten @unnumberedsubsec Notenschriftarten @translationof Music fonts -Die Abbildung unten illustriert den Unterschied zwischen +Die Abbildung unten illustriert den Unterschied zwischen traditionellem Notensatz und einem typischen Computersatz. Das linke Bild zeigt ein eingescanntes b-Vorzeichen einer handgestochenen Bärenreiter-Edition, das rechte Bild @@ -219,7 +219,7 @@ hingegen ein Symbol aus einer 2000 herausgegebenen Edition der selben Noten. Obwohl beide Bilder mit der gleichen Tintenfarbe gedruckt sind, wird die frühere Version dunkler: die Notenlinien sind dicker und das Bärenreiter-b hat ein rundliches, -beihnahe sinnliches Aussehen. Der rechte Scan hingegen hat +beinahe sinnliches Aussehen. Der rechte Scan hingegen hat dünnere Linien und eine gerade Form mit scharfen Ecken und Kanten. @multitable @columnfractions .25 .25 .25 .25 @@ -265,7 +265,7 @@ Als wir uns entschlossen hatten, ein Programm zu schreiben, das die Typographie des Notensatzes beherrscht, gab es keine freien Musikschriftarten, die unserem geplanten eleganten Notenbild passen würden. Unbeirrt schufen wir eine Schriftart und dazu einen -Coputerfont mit den musikalischen Symbolen, wobei wir uns an den +Computerfont mit den musikalischen Symbolen, wobei wir uns an den schönen Musikdrucken der handgestochenen Noten orientierten. Ohne diese Erfahrung hätten wir nie verstanden, wie hässlich die Schriftarten waren, die wir zuerst bewunderten. @@ -288,7 +288,7 @@ wodurch sie einfacher zu lesen sind. Feine Enden, wie etwa die Seiten der Viertelpause, sollten nicht als scharfe Spitzen enden, sondern etwas abgerundet. Das liegt daran, dass scharfe Enden der Stempel sehr fragil sind und sich schnell durch die Verwendung -abnutzen. Zusammengefasst muss die Schärze der Schriftart sehr +abnutzen. Zusammengefasst muss die Schwärze der Schriftart sehr vorsichtig mit der Schwärze von Notenlinien, Balken und Bögen abgeglichen werden, um ein starkes, aber doch ausgewogenes Gesamtbild zu ergeben. @@ -322,7 +322,7 @@ spricht Sie mehr an? } music = { - c'4 e''4 e'4 b'4 | + c'4 e''4 e'4 b'4 \stemDown b'8[ e'' a' e''] \stemNeutral @@ -334,9 +334,9 @@ 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 + \override NoteSpacing.stem-spacing-correction = #0.0 + \override NoteSpacing.same-direction-correction = #0.0 + \override StaffSpacing.stem-spacing-correction = #0.0 } } } @@ -362,7 +362,7 @@ music = { \layout { \context { \Staff - \override NoteSpacing #'stem-spacing-correction = #0.6 + \override NoteSpacing.stem-spacing-correction = #0.6 } } } @@ -380,9 +380,9 @@ 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 untere Beispiel ist mit dieser -Korrektur gesetzt. Im oberen Beispiel hingegen bilden sich +Abstände fordert, und das alles auch noch in Abhängigkeit von der +vertikalen Position der Noten. Das untere Beispiel ist mit dieser +Korrektur gesetzt. Im oberen Beispiel hingegen bilden sich für das Auge bei unten/oben-Folgen Notenklumpen. Ein Notenstechermeister hätte die Notenaufteilung angepasst, sodass die angenehm zu lesen ist. @@ -402,10 +402,10 @@ erhält, damit sie nicht gedrängt wirkt. Ein Hals nach unten würde diesen Ausg Hilfslinien stellen eine typographische Herausforderung dar: sie machen es schwerer, die Notensymbole dicht anzuordnen und sie müssen klar genug sein, dass sich die Tonhöhe mit einem schnellen Blick -erkennen lässt. Im Beispeil unten können wir sehen, dass +erkennen lässt. Im Beispiel unten können wir sehen, dass Hilfslinien dicker als normale Notenlinien sein sollten und dass ein gelernter Notenstecher eine Hilfslinie verkürzt, um dichteres -Platzzieren von Versetzungszeichen zu erlauben. Wir haben diese +Platzieren von Versetzungszeichen zu erlauben. Wir haben diese Eigenschaft in den Notensatz von LilyPond eingebaut. @multitable @columnfractions .25 .25 .25 .25 @@ -471,7 +471,7 @@ vorige erscheint: @noindent Bei kleineren Größen benutzt LilyPond proportional dickere -Notenlinien, sodass das Notenbild immernoch gut zu lesen ist. +Notenlinien, sodass das Notenbild immer noch gut zu lesen ist. @ignore Dadurch können auch Notensysteme unterschiedlicher Größe @@ -487,11 +487,12 @@ global = { \key c \minor } -\new Score << - \new Staff \with { +\score { + << + \new Staff \with { fontSize = #-4 - \override StaffSymbol #'staff-space = #(magstep -4) - \override StaffSymbol #'thickness = #(magstep -3) + \override StaffSymbol.staff-space = #(magstep -4) + \override StaffSymbol.thickness = #(magstep -3) } \relative c' { \global @@ -500,30 +501,34 @@ global = { g8.(^> b16 c ees) g8-.^> r r R2. } - \new PianoStaff << - \set PianoStaff.instrumentName = #"Piano" - \new Staff \relative c' { - \global - s2. - s4. s8 r8 r16 - 4.^> 8 r r - } - \new Staff \relative c { - \global - \clef "bass" - << { - \once \override DynamicText #'X-offset = #-3 + \new PianoStaff << + \set PianoStaff.instrumentName = #"Piano" + \new Staff \relative c' { + \global + s2. + s4. s8 r8 r16 + 4.^> 8 r r + } + \new Staff \relative c { + \global + \clef "bass" + << + { + \once \override DynamicText.X-offset = #-3 2.~->^\f 4.~ 8 } \\ { 2.~ 4.~ 8 - } >> - r8 r16 16 - 4.-> 8 r r - } + } + >> + r8 r16 16 + 4.-> 8 r r + } + >> >> >> +} @end lilypond @end ignore @@ -532,9 +537,9 @@ global = { @unnumberedsubsec Warum der große Aufwand? @translationof Why work so hard? -Musiker sind üblicherweise zu sehr damit beschäftigt, die Musik aufzuführen, -als dass sie das Aussehen der Noten studieren könnten; darum mag diese -Beschäftigung mit typographischen Details akademisch wirken. +Musiker sind üblicherweise zu sehr damit beschäftigt, die Musik aufzuführen, +als dass sie das Aussehen der Noten studieren könnten; darum mag diese +Beschäftigung mit typographischen Details akademisch wirken. Das ist sie aber nicht. Notenmaterial ist Aufführungsmaterial: alles muss unternommen werden, damit der Musiker die Aufführung besser bewältigt, und alles, das unklar oder unangenehm ist, @@ -543,9 +548,9 @@ ist eine Hindernis. Der dichtere Eindruck, den die dickeren Notenlinien und schwereren Notationssymbole schaffen, eignet sich 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, so dass man +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, so dass man nicht so oft blättern muss. Dies sind die Anforderungen der Typographie: Das Layout sollte @@ -553,18 +558,18 @@ schön sein -- nicht nur aus Selbstzweck, sondern vor allem um dem Leser zu helfen. Für Aufführungsmaterial ist das umso wichtiger, denn Musiker haben eine begrenzte Aufnahmefähigkeit. Je weniger Mühe nötig ist, die Noten zu erfassen, desto mehr Zeit bleibt für -die Gestaltung der eigentlichen Musik. Das heißt: Gute +die Gestaltung der eigentlichen Musik. Das heißt: Gute Typographie führt zu besseren Aufführungen! -Die Beispiele haben gezeigt, dass der Notensatz eine subtile und -komplexe Kunst ist und gute Ergebnisse nur mit viel Erfahrung +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 +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 +darauf abgestimmt, einen Ausdruck zu erzielen, der der Qualität +der alten Editionen entspricht, die wir so gerne betrachten und aus denen wir gerne spielen. @@ -584,7 +589,7 @@ Vergleichen mit echten Notendrucken. @menu * Schönheitswettbewerb:: * Verbessern durch Benchmarking:: -* Alles richtig machen:: +* Alles richtig machen:: @end menu @node Schönheitswettbewerb @@ -597,12 +602,12 @@ den folgenden Bogen ausgewählt werden? @lilypond \relative c { - \clef bass - \once \override Slur #'positions = #'(1.5 . 1) - e8[( f] g[ a b d,)] r4 - \once \override Slur #'positions = #'(2 . 3) - e8[( f] g[ a b d,)] r4 - e8[( f] g[ a b d,)] r4 + \clef bass + \once \override Slur.positions = #'(1.5 . 1) + e8[( f] g[ a b d,)] r4 + \once \override Slur.positions = #'(2 . 3) + e8[( f] g[ a b d,)] r4 + e8[( f] g[ a b d,)] r4 } @end lilypond @@ -640,9 +645,9 @@ Notenköpfe angeschnitten wird: @lilypond \relative c { - \clef bass - \once \override Slur #'positions = #'(1.5 . 1) - e8[(_"15.39" f] g[ a b d,)] r4 + \clef bass + \once \override Slur.positions = #'(1.5 . 1) + e8[(_"15.39" f] g[ a b d,)] r4 } @end lilypond @@ -654,9 +659,9 @@ Insgesamt also 13.08 Punkte: @lilypond \relative c { - \clef bass - \once \override Slur #'positions = #'(2 . 3) - e8[(_"13.08" f] g[ a b d,)] r4 + \clef bass + \once \override Slur.positions = #'(2 . 3) + e8[(_"13.08" f] g[ a b d,)] r4 } @end lilypond @@ -666,8 +671,8 @@ der drei Varianten, sodass LilyPond ihn auswählt: @lilypond \relative c { - \clef bass - e8[(_"12.04" f] g[ a b d,)] r4 + \clef bass + e8[(_"12.04" f] g[ a b d,)] r4 } @end lilypond @@ -686,7 +691,7 @@ Die Ausgabe von LilyPond hat sich schrittweise mit der Zeit verbessert, und sie verbessert sich weiter, indem sie immer wieder mit handgestochenen Noten verglichen wird. -Hier als Beispiel eine Zeile eines Benchmark-Stückes aus einer +Hier als Beispiel eine Zeile eines Benchmark-Stückes aus einer handgestochenen Notenedition (Bärenreiter BA320): @iftex @@ -730,10 +735,10 @@ den Formatierungsdetails: @noindent (Es gibt auch zwei fehlende Notenköpfe, verschiedene editorische -Anweisungen, die fehler und eine falsche Tonhöhe!) +Anweisungen, die Fehler und eine falsche Tonhöhe!) Indem die Layoutregeln und das Design der Schriftarten angepasst -wurde, hat sich die Ausgabe sehr starkt verbessert. Vergleichen +wurde, hat sich die Ausgabe sehr stark verbessert. Vergleichen Sie das gleiche Referenzbeispiel und die Ausgabe der aktuellen LilyPond-Version (@version{}): @@ -750,17 +755,21 @@ LilyPond-Version (@version{}): \key d \minor \time 3/4 \mergeDifferentlyDottedOn - << {\slurDashed d8.-\flageolet( e16) e4.-\trill( d16 e)} - \\ {d4_2 a2} + << + { \slurDashed d8.-\flageolet( e16) e4.-\trill( d16 e) } + \\ + { d4_2 a2 } >> \slurDashed 4. e8( d c) \slurSolid - bes g' f e16( f g_1 a_2 bes_3 d,_2) + bes8 g' f e16( f g_1 a_2 bes_3 d,_2) \slurDashed cis4.-\trill b8_3( a g) - << {\slurDashed d'8.( e16) e4.-\trill( d16 e)} - \\ {4 a2} + << + { \slurDashed d'8.( e16) e4.-\trill( d16 e) } + \\ + { 4 a2 } >> } @end lilypond @@ -822,7 +831,7 @@ Version von LilyPond: @end ifnottex @lilypond[staffsize=19.5,line-width=14\cm] -global = {\key g \minor} +global = { \key g \minor } partI = \relative c' { \voiceOne @@ -835,10 +844,12 @@ partII = \relative c' { d4 r4 r8 d'16 c bes8 c16 d ees8 d c ees a, r r4 } + partIII = \relative c' { \voiceOne r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a } + partIV = \relative c { \voiceTwo d4 r r2 @@ -852,7 +863,8 @@ partIV = \relative c { \set Score.currentBarNumber = #28 \bar "" \new PianoStaff << - \new Staff = "RH" << + \new Staff = "RH" + << \global \new Voice = "voiceI" { \partI } \new Voice = "voiceII" { \partII } @@ -873,7 +885,7 @@ partIV = \relative c { } \context { \PianoStaff - \override StaffGrouper #'between-staff-spacing #'padding = #1 + \override StaffGrouper.staff-staff-spacing.padding = #1 } } } @@ -896,17 +908,20 @@ nicht an, sodass die Noten sehr schwer lesbar werden, wenn die untere und obere Stimme zeitweise ausgetauscht werden: @lilypond -collide = \once \override NoteColumn #'force-hshift = #0 -\new Score << - \new Voice = "sample" \relative c''{ - \key g \minor - << - {\voiceOne g4 \collide g4} - \new Voice {\voiceTwo bes \collide bes} - >> - } - \new Lyrics \lyricsto "sample" \lyricmode { "good " " bad" } ->> +collide = \once \override NoteColumn.force-hshift = #0 + +\score { + << + \new Voice = "sample" \relative c''{ + \key g \minor + << + { \voiceOne g4 \collide g4 } + \new Voice { \voiceTwo bes \collide bes } + >> + } + \new Lyrics \lyricsto "sample" { "good " " bad" } + >> +} @end lilypond @item Finale positioniert alle Pausen an einer festen Position auf @@ -979,7 +994,7 @@ geplant. @translationof Building software Dieser Abschnitt beschreibt einige der Entscheidungen, -die wir während des Programierens für das Design von LilyPond +die wir während des Programmierens für das Design von LilyPond getroffen haben. @menu @@ -995,17 +1010,17 @@ getroffen haben. @cindex Syntax @cindex rekursive Strukturen -Idealerweise ist das Eingabeformat für ein komplexes 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 +Idealerweise ist das Eingabeformat für ein komplexes 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 machen das -Format so einfach wie möglich. Wenn es nicht mehr vereinfacht -werden kann, haben wir per Definition nur noch den reinen Inhalt. Unser +schreiben ein Programm, das den Notensatz beherrscht und machen das +Format so einfach wie möglich. 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, +Die Syntax ist gleichzeitig die Benutzerschnittstelle bei LilyPond, darum soll sie einfach zu schreiben sein; z. B. bedeutet @example @@ -1071,18 +1086,18 @@ daher mit einem anderen Ausdruck kombiniert werden (hier mit einer Halben), wobe \new Voice { << g2 \\ { f4 <> } >> } @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 +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 +Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer wahrgenommen. Teilweise sind sie eine Frage des Geschmackes und werden viel -diskutiert. 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: +diskutiert. 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: Während wir die Strukturen von LilyPond entwickelten, machten wir einige Entscheidungen, die sich von anderen Programmen unterscheiden. @@ -1090,16 +1105,16 @@ Nehmen wir etwa die hierarchische Natur der Musiknotation: @lilypond[quote,fragment] << -\new Staff \relative c'' { - \key g \major - \time 3/4 - d4 g,8 a b c d4 g, g -} -\new Staff \relative c' { - \clef "bass" - \key g \major - 2 a4 b2. -} + \new Staff \relative c'' { + \key g \major + \time 3/4 + d4 g,8 a b c d4 g, g + } + \new Staff \relative c' { + \clef "bass" + \key g \major + 2 a4 b2. + } >> @end lilypond @@ -1139,20 +1154,20 @@ Beispiel heranzieht: \new Voice = "I" \relative c''' { \time 3/4 \voiceOne - \times 6/7 {g8 g g g g g g} + \tuplet 7/6 { g8 g g g g g g } \oneVoice r4 r4\fermata } \new Voice = "II" \relative c' { \voiceTwo c4 - \times 4/5 { + \tuplet 5/4 { 8 f g \change Staff = "LH" \oneVoice \stemUp g,( c} r4 - \override Stem #'cross-staff = ##t - \override Stem #'length = #12 + \override Stem.cross-staff = ##t + \override Stem.length = #12 ) r\fermata } >> @@ -1188,7 +1203,7 @@ möglich zu gestalten. @cindex Plugin Während des Notensatzprozesses entscheidet sich, wo -Symbole platziert werden. Das kann aber nur gelingen, +Symbole platziert werden. Das kann aber nur gelingen, wenn vorher entschieden wird, @emph{welche} Symbole gesetzt werden sollen, also welche Art von Notation benutzt werden soll. @@ -1201,7 +1216,7 @@ die Notenköpfe, das Fünfliniensystem) nicht verändert haben, 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 ungeheuer komplexem Kontrapunkt +reicht von monophonen Melodien bis zu ungeheuer komplexem Kontrapunkt für großes Orchester. Wie bekommen wir dieses vielköpfige Monster zu fassen und in die @@ -1214,7 +1229,7 @@ werden. Derartige Plugins werden @code{engraver} genannt, analog zu den Notenstechern (engl. engraver), die musikalische Ideen in graphische Symbole übersetzen. -Im nächsten Beispiel wird gezeigt, wie mit dem Plugin für die Notenköpfe, +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] @@ -1247,7 +1262,7 @@ dem @code{Note_heads_engraver} (@qq{Notenkopfstecher}) der Satz begonnen wird. @end lilypond @noindent -Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher}) +Dann fügt ein @code{Staff_symbol_engraver} (@qq{Notensystemstecher}) die Notenlinien hinzu. @lilypond[quote,ragged-right] @@ -1279,7 +1294,7 @@ die Notenlinien hinzu. @end lilypond @noindent -Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert +Der @code{Clef_engraver} (@qq{Notenschlüsselstecher}) definiert eine Referenzstelle für das System. @lilypond[quote,ragged-right] @@ -1338,11 +1353,11 @@ Der @code{Stem_engraver} (@qq{Halsstecher}) schließlich fügt @end lilypond @noindent -Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt, -der vorkommt. Jedes Mal, wenn ein Notenkopf erscheint (oder mehrere bei -einem Akkord), wird ein Hals-Objekt erstellt und an den -Kopf geheftet. Wenn wir dann noch Engraver für Balken, Bögen, -Akzente, Versetzungszeichen, Taktstriche, Taktangaben und Tonartbezeichnungen +Dem @code{Stem_engraver} wird jeder Notenkopf mitgeteilt, +der vorkommt. Jedes Mal, wenn ein Notenkopf erscheint (oder mehrere bei +einem Akkord), wird ein Hals-Objekt erstellt und an den +Kopf geheftet. Wenn wir dann noch Engraver für Balken, Bögen, +Akzente, Versetzungszeichen, Taktstriche, Taktangaben und Tonartbezeichnungen hinzufügen, erhalten wir eine vollständige Notation. @@ -1356,7 +1371,7 @@ hinzufügen, erhalten wir eine vollständige Notation. @cindex Notensatz, Mehrstimmigkeit @cindex Kontexte -Dieses System funktioniert gut für monophone Musik, aber wie geht +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] @@ -1403,49 +1418,55 @@ als unzureichend heraus: @itemize @bullet @item Wenn LilyPond Fehler macht, muss der Benutzer die -Einstellungen ändern können. Er muss also Zugang zur -Formatierungsmaschinerie haben. Deshalb können die Regeln und -Einstellungen nicht beim Kompilieren des Programms festgelegt +Einstellungen ändern können. Er muss also Zugang zur +Formatierungsmaschinerie haben. Deshalb können die Regeln und +Einstellungen nicht beim Kompilieren des Programms festgelegt werden, sondern sie müssen zugänglich sein, während das Programm aktiv ist. @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 +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 +@item Schließlich verfeinern wir unseren Formatierungsalgorithmus immer weiter, also müssen die Regeln auch flexibel sein. Die -Sprache C++ zwingt zu einer bestimmten Gruppierungsmethode, +Sprache C++ zwingt zu einer bestimmten Gruppierungsmethode, die nicht den Regeln für den Notensatz entspricht. @end itemize @cindex Scheme-Programmiersprache -Diese Probleme wurden angegangen, indem ein Übersetzer für +Diese Probleme wurden angegangen, indem ein Übersetzer für die Programmiersprache Scheme integriert wurde und Teile -von LilyPond in Scheme neu geschrieben wurden. Die derzeitige -Formatierungsarchitektur ist um die Notation von graphischen +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. +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 +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 c' { - \stemDown 4_>-\arpeggio - \override Arpeggio #'direction = #RIGHT - \stemUp 4^>-\arpeggio +\score { + \relative c' { + \stemDown 4_>-\arpeggio + \override Arpeggio.direction = #RIGHT + \stemUp 4^>-\arpeggio + } + \layout { + \context { + \Score + \override SpacingSpanner.spacing-increment = #3 + \hide TimeSignature + } + } } @end lilypond @@ -1469,12 +1490,12 @@ fragment = { << \new Staff \fragment \new Staff \with { - \override Beam #'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) + \override Beam.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 >> @@ -1508,12 +1529,12 @@ die Notenköpfe gezeichnet werden, während des Ausschnitts verändert. \set autoBeaming = ##f \time 2/4 4 - \once \override NoteHead #'stencil = #note-head::brew-ez-stencil - \once \override NoteHead #'font-size = #-7 - \once \override NoteHead #'font-family = #'sans - \once \override NoteHead #'font-series = #'bold + \once \override NoteHead.stencil = #note-head::brew-ez-stencil + \once \override NoteHead.font-size = #-7 + \once \override NoteHead.font-family = #'sans + \once \override NoteHead.font-series = #'bold 4 - \once \override NoteHead #'style = #'cross + \once \override NoteHead.style = #'cross 4 \applyOutput #'Voice #mc-squared 4 @@ -1532,10 +1553,10 @@ die Notenköpfe gezeichnet werden, während des Ausschnitts verändert. @cindex einfaches Beispiel @cindex Beispiel, einfach -Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des -Musiksatzes in ein Computerprogramm gießen kann. Dieses -Programm kann nun dank vieler harter Arbeitsstunden benutzt werden, -um sinnvolle Aufgaben zu erledigen. Die einfachste ist dabei der +Wir haben LilyPond als einen Versuch geschrieben, wie man die Kunst des +Musiksatzes in ein Computerprogramm gießen 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] @@ -1546,7 +1567,7 @@ Notendruck. @end lilypond @noindent -Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir +Indem wir Akkordsymbole und einen Text hinzufügen, erhalten wir ein Liedblatt. @lilypond[quote,ragged-right] @@ -1561,7 +1582,7 @@ ein Liedblatt. >> @end lilypond -Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das +Mehrstimmige Notation und Klaviermusik kann auch gesetzt werden. Das nächste Beispiel zeigt einige etwas exotischere Konstruktionen: @lilypond[quote,line-width=15.9\cm] @@ -1577,7 +1598,7 @@ nächste Beispiel zeigt einige etwas exotischere Konstruktionen: \time 4/8 \key c \minor << { - \revert Stem #'direction + \revert Stem.direction \change Staff = down \set subdivideBeams = ##t g16.[ @@ -1594,7 +1615,7 @@ nächste Beispiel zeigt einige etwas exotischere Konstruktionen: \set followVoice = ##t c'''32([ b''16 a''16 gis''16 g''32)] } \\ { - s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d''] + s4 \tuplet 3/2 { d'16[ f' g'] } as'32[ b''32 e'' d''] } \\ { s4 \autoBeamOff d''8.. f''32 } \\ { @@ -1606,45 +1627,42 @@ nächste Beispiel zeigt einige etwas exotischere Konstruktionen: \clef bass \key c \minor \set subdivideBeams = ##f - \override Stem #'french-beaming = ##t - \override Beam #'beam-thickness = #0.3 - \override Stem #'thickness = #4.0 + \override Stem.french-beaming = ##t + \override Beam.beam-thickness = #0.3 + \override Stem.thickness = #4.0 g'16[ b16 fis16 g16] << \makeClusters { as16 } \\ { - \override Staff.Arpeggio #'arpeggio-direction =#down + \override Staff.Arpeggio.arpeggio-direction =#down 4\arpeggio } >> } >> \midi { - \context { - \Score - tempoWholesPerMinute = #(ly:make-moment 60 8) - } + \tempo 8 = 60 } \layout { \context { \Staff - \consists Horizontal_bracket_engraver + \consists "Horizontal_bracket_engraver" } } } @end lilypond -Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht -die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft, +Die obenstehenden Beispiele wurde manuell erstellt, aber das ist nicht +die einzige Möglichkeit. Da der Satz fast vollständig automatisch abläuft, kann er auch von anderen Programmen angesteuert werden, die Musik oder Noten -verarbeiten. So können etwa ganze Datenbanken musikalischer Fragmente automatisch -in Notenbilder umgewandelt werden, die dann auf Internetseiten oder +verarbeiten. So können etwa ganze Datenbanken musikalischer Fragmente automatisch +in Notenbilder umgewandelt werden, die dann auf Internetseiten oder in Multimediapräsentation Anwendung finden. -Dieser Aufsatz zeigt eine weitere Möglichkeit: Die Noten werden als +Dieser Aufsatz zeigt eine weitere Möglichkeit: Die Noten werden als reiner Text eingegeben und können darum sehr einfach integriert werden -in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem +in andere textbasierte Formate wie etwa @LaTeX{}, HTML oder, wie in diesem Fall, Texinfo. Mithilfe des Programmes @command{lilypond-book}, das in LilyPond inbegriffen ist, werden die Fragmente mit Notenbildern ersetzt und in die produzierte PDF- oder HTML-Datei @@ -1738,9 +1756,9 @@ partI = \relative c' { fis8 d' ees g, fis4 g r8 a16 bes c8 bes16 a d8 r r4 r2 r8 d16 ees f8 ees16 d - ees4 ~ ees16 d c bes a4 r8 ees'16 d + ees4 ~ 16 d c bes a4 r8 ees'16 d c8 d16 ees d8 e16 fis g8 fis16 g a4 ~ - a8 d, g f ees d c bes + 8 d, g f ees d c bes a2 g\fermata \bar "|." } @@ -1749,7 +1767,7 @@ partII = \relative c' { d4 r4 r8 d'16 c bes8 c16 d ees8 d c ees a, r r4 r8 fis16 g a8 g16 fis g2 ~ - g2 r8 d' ees g, + 2 r8 d' ees g, fis4 g r8 a16 bes c8 bes16 a bes4. 8 r r 4 d2 @@ -1757,7 +1775,7 @@ partII = \relative c' { partIII = \relative c' { \voiceOne r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a - bes2 ~ bes8 b16 a g8 a16 b + bes2 ~ 8 b16 a g8 a16 b c4 r r2 R1 r8 d ees g, fis4 g @@ -1768,7 +1786,7 @@ partIV = \relative c { d4 r r2 r8 d ees g, fis4 a d,8 d'16 c bes8 c16 d ees2 ~ - ees8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a + 8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a d,8 d'16 c bes8 c16 d ees8 c a fis' g f ees d c bes a g c a d d, g2\fermata @@ -1802,7 +1820,7 @@ partIV = \relative c { } \context { \PianoStaff - \override StaffGrouper #'between-staff-spacing #'padding = #1 + \override StaffGrouper.staff-staff-spacing.padding = #1 } } }