| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Horizontal spacing
| 4.5.1 Überblick über horizontale Abstände | ||
| 4.5.2 Eine neuer Bereich mit anderen Abständen | ||
| 4.5.3 Horizontale Abstände verändern | ||
| 4.5.4 Zeilenlänge | ||
| 4.5.5 Proportionale Notation |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Horizontal spacing overview
Die Setzmaschine interpretiert unterschiedliche Notendauern als
dehnbare Abstände (engl. spring) unterschiedlicher Länge. Längere
Dauern erhalten mehr Platz, kürzere weniger. Die kürzeste Dauer
erhält eine feste Breite (die mit shortest-duration-space
im SpacingSpanner-Objekt kontrolliert werden kann). Je
länger die Dauer, umso mehr Platz erhält die Note: wenn ihre
Dauer verdoppelt wird, wird ein bestimmter Platz hinzugefügt
(dessen Breite durch spacing-increment bestimmt werden
kann).
Das folgende Stück beispielsweise enthält Halbe, Viertel und Achtel. Die Achtelnote wird gefolgt von einem Notenkopfabstand (NKA). Die Viertel wird von 2 NKA gefolgt, die Halbe von 3 NKA usw.
c2 c4. c8 c4. c8 c4. c8 c8 c8 c4 c4 c4
Normalerweise ist spacing-increment definiert als 1.2 mal
der Abstand zwischen zwei Notenlinien, was in etwa die Breite eines
Notenkopfes ist. shortest-duration-space ist definiert als
2.0, was bedeutet, dass die kürzeste Note 2.4 Notenlinienabstände
2.0 mal der Wert von spacing-increment) horizontalen
Abstand erhält. Der Abstand wird von der linken Kante des Symbols
errechnet, so dass die kürzeste Note üblicherweise von 1 NKA
Abstand gefolgt wird.
Wenn diese Herangehensweise konsequent angewandt würde, würde eine einzige Zweiunddreißigstel eine Partitur, in der vor allem Achtel und Sechzehntel vorkommen, sehr weit auseinanderdehnen. Die kürzeste Note wäre nun keine Sechzehntel mehr, sondern eine Zweiunddreißigstel, wodurch an jede Note der Wert von 1 NKA hinzugefügt würde. Um das zu vermeiden, ist die kürzeste Dauer für die Platzverteilung nicht die kürzeste Note einer Partitur, sondern die, die am häufigsten vorkommt.
Die Notendauer, die am häufigsten vorkommt, wird auf folgende
Weise bestimmt: in jedem Takt wird die kürzeste Note bestimmt. Die
häufigste kürzeste Note wird dann als Grundlage für die Platzverteilung
der Noten herangezogen, mit der Bedingung, dass diese kürzeste
Note immer ein Achtel oder kürzer sein soll. Die kürzeste Dauer
wird ausgegeben, wenn lilypond mit der Option ‘--verbose’
aufgerufen wird.
Diese Dauern können aber auch angepasst werden. Wenn Sie die Eigenschaft
common-shortest-duration in dem SpacingSpanner setzen,
dann wird hiermit die Grunddauer für die Platzverteilung eingestellt.
Die maximale Dauer für diesen Grundwert (normalerweise eine Achtel)
wird definiert mit base-shortest-duration.
Noten, die noch kürzer sind als die häufigste kürzeste Note, werden durch einen Platz voneinander getrennt, der proportional zu ihrer Dauer in Beziehung zur häufigsten kürzesten Note ist. Wenn also nur ein paar Sechzehntel zu dem obigen Beispiel hinzugefügt werden, würden sie von 1/2 NKA gefolgt werden:
c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
In dem Aufsatz zum automatisierten Notensatz wurde erklärt, dass die
Richtung der Notenhälse die Platzverteilung beeinflusst (siehe
(essay-big-page)Optischer Ausgleich in Abschnitt ‘Optischer Ausgleich’ in Aufsatz). Das wird
kontrolliert durch die stem-spacing-correction-Eigenschaft
in dem NoteSpacing-Objekt. Dieses Objekt wird für jeden
Voice-Kontext erstellt. Das StaffSpacing-Objekt (in
einem Staff-Kontext erstellt) enthält die gleiche Eigenschaft,
um die Verteilung von Hälsen neben Taktlinien zu kontrollieren. In
dem folgenden Beispiel werden diese Einstellungen gezeigt, einmal
mit den Standardwerten und dann mit größeren Werten, damit man sie
besser sieht:
Proportionale Notation ist unterstützt, siehe Proportionale Notation.
Aufsatz über den automatischen Notensatz: (essay-big-page)Optischer Ausgleich in Abschnitt ‘Optischer Ausgleich’ in Aufsatz.
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
Referenz der Interna: (internals)SpacingSpanner in Abschnitt ‘SpacingSpanner’ in Referenz der Interna, (internals)NoteSpacing in Abschnitt ‘NoteSpacing’ in Referenz der Interna, (internals)StaffSpacing in Abschnitt ‘StaffSpacing’ in Referenz der Interna, (internals)NonMusicalPaperColumn in Abschnitt ‘NonMusicalPaperColumn’ in Referenz der Interna.
Es gibt keine sinnvolle Möglichkeit, die horizontale Verteilung der Noten zu unterdrücken. Die folgende Problemumgehung, mit der dehnbare Abstände (padding) eingesetzt werden, kann benutzt werden, um zusätzlichen Platz in eine Partitur einzufügen.
\override Score.NonMusicalPaperColumn.padding = #10 |
Es gibt derzeit keine Möglichkeit, den Platz zu verringern.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof New spacing section
Neue Abschnitte mit unterschiedlichen Notenabstandsparametern
können mit dem Befehl newSpacingSection begonnen werden.
Das ist hilfreich, wenn in verschiedenen Abschnitten die
Verhältnisse von kurzen und langen Noten sehr unterschiedlich
ausfallen.
Im folgenden Beispiel wird durch die neue Taktart ein neuer Abschnitt begonnen, in dem die Sechzehntel weiter außeinander gesetzt werden sollen.
\time 2/4 c4 c8 c c8 c c4 c16[ c c8] c4 \newSpacingSection \time 4/16 c16[ c c8]
Der \newSpacingSection-Befehl erstellt ein neues
SpacingSpanner-Objekt, weshalb auch neue Anpassungen
mit dem \override-Befehl an dieser Stelle eingesetzt
werden können.
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
Referenz der Interna: (internals)SpacingSpanner in Abschnitt ‘SpacingSpanner’ in Referenz der Interna.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Changing horizontal spacing
Die horizontalen Abstände können mit der
base-shortest-duration-Eigenschaft
verändert werden. In den folgenden Beispielen
werden die gleichen Noten eingesetzt, zuerst
ohne die Eigenschaft zu verändern, im zweiten
Beispiel dann mit einem anderen Wert. Größere
Werte für ly:make-moment ergeben dichtere
Noten. ly:make-moment erstellt eine Dauer,
die als Bruch notiert wird, sodass 1 4
eine größere Dauer ist als 1 16.
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
}
|
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
}
}
}
|
Standardmäßig wird die Platzverteilung in Triolen und andern
rhythmischen Aufteilungen nach verschiedenen nicht von der
Dauer abgeleiteten Faktoren (wie Versetzungszeichen,
Schlüsselwechseln usw.) berechnet. Um diese Symbole zu
ignorieren und eine gleichmäßige Verteilung der Noten
zu erzwingen, kann die gleichmäßige Dehnung (engl.
uniform stretching) zu Beginn einer Partitur
mit Score.SpacingSpanner #'uniform-stretching eingeschaltet
werden:
\score { << \new Staff { \tuplet 5/4 { c8 c8 c8 c8 c8 } c8 c8 c8 c8 } \new Staff { c8 c8 c8 c8 \tuplet 5/4 { c8 c8 c8 c8 c8 } } >> \layout { \context { \Score \override SpacingSpanner.uniform-stretching = ##t } } }
Wenn strict-note-spacing eingestellt ist, werden Noten
gesetzt, ohne dass Schlüssel, Taktlinie oder Verzierungsnoten
zusätzlichen Platz erhalten.
\override Score.SpacingSpanner.strict-note-spacing = ##t \new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c32] }
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Line length
Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge
haben, sind indent (Einzug) und line-width
(Zeilenbreite). Sie werden in der \layout-Umgebung
eingestellt. Der erste Befehl bestimmt den Einzug der ersten
Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.
Wenn ragged-right eingestellt ist (als in der
\layout-Umgebung auf den Wert #t gesetzt wurde),
werden die Systeme linksbündig gesetzt und nicht bis zum
rechten Rand hin durchgezogen, sondern den Noten entsprechend
gesetzt. Das ist oftmals nützlich für kleine Notenfragmente
und um zu überprüfen, wie eng die Noten natürlicherweise
gesetzt werden würden. Die normale Einstellung ist unwahr
(#f), aber wenn eine Partitur nur aus einer Zeile besteht,
ist der Standardwert wahr.
Die Option ragged-last verhält sich ähnlich zu ragged-right,
aber wirkt sich nur auf die letzte Zeile eines Stückes aus.
Für diese letzte Zeile gibt es keine Einschränkungen. Das
Resultat erinnert an Textabsätze im Blocksatz, wo die letzte
Zeile des Absatzes mit ihrer natürlichen Länge gesetzt wird.
\layout {
indent = #0
line-width = #150
ragged-last = ##t
}
|
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Proportional notation
LilyPond hat Unterstützung für proportionale Notation. Dabei handelt es sich um eine horizontale Platzverteilung, die jeder Note einen exakt ihrer Dauer entsprechenden Platz zuordnet. Man kann es vergleichen mit der Notenplatzierung auf einem Raster. In einigen Partituren des späten 20. und frühen 21. Jahrhunderts wird dies proportionale Notation benutzt, um sehr komplizierte rhythmische Verhältnisse klarer darzustellen, oder um einen Zeitstrahl oder ähnliche Graphiken direkt in die Partitur zu integrieren.
LilyPond hat Unterstützung für fünf verschiedene Einstellungen der proportionalen Notation, die alle zusammen oder jede für sich benutzt werden können:
proportionalNotationDuration (proportionale Notendauer)
uniform-stretching (gleichmäßige Dehnung)
strict-note-spacing (strenge Notenverteilung)
\remove "Separating_line_group_engraver" (entferne Liniengruppentrennungsengraver)
\override PaperColumn.used = ##t (PapierSpalte benutzt = wahr)
In den Beispielen unten werden diese fünf unterschiedlichen Einstellungen für die proportionale Notation vorgestellt und ihre Wirkungen untereinander illustriert.
Es soll mit diesem 1 Takt langen Beispiel begonnen werden, in welchem die klassischen Abstände und Flattersatz (ragged-right) eingesetzt werden:
\score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } >> }
Die Halbe, mit der der Takt beginnt, braucht weitaus weniger Platz als die Hälfte des Taktes. Gleichermaßen haben die Sechzehntel und die Sechzehntel-Quintolen (oder Zwanzigstel), mit denen der Takt endet, insgesamt weitaus mehr als die Hälfte der Taktbreite.
Im klassischen Notensatz kann dieses Verhalten genau das gewünschte Ergebnis bringen, weil dadurch horizontaler Platz von der Halben weggenommen werden kann und so insgesamt Platz in dem Takt eingespart wird.
Wenn allerdings ein Zeitstrahl oder andere zeitliche ablaufende Graphiken über oder unter dem Takt eingefügt werden soll, braucht man eine Notenplatzierung, die exakt der von ihnen eingenommenen Dauer entspricht. Auf folgende Art wird die proportionale Notation eingeschaltet:
\score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
Die Halbe zu Beginn des Taktes und die schnelleren Noten in der zweiten Takthälfte nehmen jetzt genau den gleichen horizontalen Platz ein. Jetzt könnte man einen Zeitstrahl mit dem Takt synchronisieren.
Die Einstellung von proportionalNotationDuration gehört zum
Score-Kontext. Kontexteinstellungen können an drei verschiedenen
Stellen in der Quelldatei geschrieben werden: in einer \with-Umgebung,
in einer \context-Umgebung oder direkt in den Noten mit dem
\set-Befehl. Alle drei Positionen sind gleichwertig und es hängt
vom Benutzer ab, welche bevorzugt wird.
Die Eigenschaft proportionalNotationDuration braucht ein Argument,
welches die Referenzdauer ist, anhand welcher alle Noten platziert werden.
Hier wird die LilyPond Scheme-Funktion make-moment eingesetzt. Sie
braucht zwei Argumente: einen Zähler und einen Nenner, die einen Bruch einer
Ganzen darstellen. Die Funktion (ly:make-moment 1/20) ergibt also
eine Referenzdauer von einer Zwanzigstel. Genauso gut können etwa die Dauern
(ly:make-moment 1/16), (ly:make-moment 1/8) oder
(ly:make-moment 3/97) eingesetzt werden.
Die richtige Referenzdauer, mit der eine vernünftige Verteilung der Noten proportional möglich ist, muss durch Ausprobieren herausgefunden werden. Dabei sollte man mit einer Dauer beginnen, die der kleinsten Note des Stückes nahekommt. Kleine Referenzdauern lassen die Noten sehr gedehnt erscheinen, größere Referenzdauern zwingen sie dichter zusammen.
\score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/8) } } } \score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/16) } } } \score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/32) } } }
Man muss beachten, dass die Referenzdauer nicht zu groß ist (wie die Achtel in dem Beispiel oben), denn dadurch werden die Noten so dicht gesetzt, dass sich eventuell sogar Notenköpfe von sehr kleinen Notenwerten überschneiden können. Die proportionale Notation nimmt üblicherweise mehr Platz ein als die klassische Platzverteilung. Der rhythmischen Klarheit muss ein eng gesetztes Notenbild geopfert werden.
In Folgenden soll betrachtet werden, wie sich überlappende rhythmische Aufteilungen am besten positioniert werden. Als Referenz wird das erste Beispiel herangezogen, zu welchem ein zweites System mit anderen rhythmischen Werten hinzugefügt wird:
\score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } \new RhythmicStaff { \tuplet 9/8 { c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 } } >> }
Die Platzaufteilung ist schlecht, weil die gleichlangen Noten des
untersten Systems nicht gleichmäßig verteilt sind. Im klassischen
Notensatz kommen komplexe rhythmische Verhältnisse wie dieses sehr
selten vor, sodass der Notensatz nicht in Hinsicht auf sie optimiert
ist. proportionalNotationDuration hilft in
dieser Situation deutlich:
\score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } \new RhythmicStaff { \tuplet 9/8 { c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
Aber bei sehr genauer Betrachtung sind die Noten der zweiten Hälfte
der Nonole doch immer noch eine Spur weiter gesetzt als die Noten
der ersten Hälfte. Um wirklich gleichmäßige Abstände zu erzwingen,
sollte auch noch die gleichmäßige Dehnung (uniform-stretching) angeschaltet werden, die eine Eigenschaft von SpacingSpanner ist:
\score { << \new RhythmicStaff { c'2 c'16 c'16 c'16 c'16 \tuplet 5/4 { c'16 c'16 c'16 c'16 c'16 } } \new RhythmicStaff { \tuplet 9/8 { c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) \override SpacingSpanner.uniform-stretching = ##t } } }
Das Beispiel mit den zwei Systemen ist nun exakt nach den rhythmischen Werten der Noten gesetzt, sodass ein Zeitstrahl oder ähnliches eingefügt werden könnte.
Alle Einstellungen zur proportionalen Notation erwarten,
dass die uniform-stretching-Eigenschaft des
SpacingSpanner-Objekts auf wahr (#t) gesetzt wird. Andernfalls
kann es vorkommen, dass bestimmte Abstände (etwa von
unsichtbaren Noten) nicht richtig gesetzt werden.
Das SpacingSpanner-Objekt ist ein abstraktes Grob, dass sich im
Score-Kontext befindet. Genauso wie die Einstellungen
von proportionalNotationDuration können auch diese
Veränderungen an den drei Stellen in der Quelldatei vorkommen:
in der \with-Umgebung innerhalb von Score, in
einer \context-Umgebung oder direkt im Notentext.
Standardmäßig gibt es nur ein SpacingSpanner pro Score.
Das heißt, dass uniform-stretching für die gesamte Partitur
(d.h. für die Reichweite von Score) entweder an- oder
ausgeschaltet ist. Man kann allerdings in einer Partitur unterschiedliche
Abschnitte mit verschiedenem Platzierungsverhalten definieren.
Hierzu ist der Befehl \newSpacingSection da. Siehe auch Eine neuer Bereich mit anderen Abständen.
Im Folgenden soll gezeigt werden, wie sich der
Separating_line_group_engraver
auswirkt und warum er normalerweise für proportionale Notation ausgeschaltet wird.
In diesem Beispiel wird verdeutlicht, dass vor jeder ersten Note eines Notensystems
immer etwas zusätzlicher Platz gesetzt wird:
\paper { indent = #0 } \new Staff { c'1 \break c'1 }
Der gleiche horizontale zusätzliche Platz wird vor eine Noten gesetzt, wenn sie
einer Taktart, einem Schlüssel oder einer Tonartbezeichnung folgt.
Dieser Platz wird durch Separating_line_group_engraver
eingefügt; wenn wir ihn aus der Partitur entfernen, entfällt
auch dieser zusätzliche Platz:
\paper { indent = #0 } \new Staff \with { \remove "Separating_line_group_engraver" } { c'1 \break c'1 }
Nichtmusikalische Elemente wie Takt- und Tonartangaben, Schlüssel und Versetzungszeichen sind problematisch in proportionaler Notation. Keine dieser Elemente hat eine rhythmische Dauer, aber alle brauchen horizontalen Platz. Das Problem wird auf unterschiedliche Weise gelöst.
Es ist manchmal möglich, Probleme mit Tonarten zu lösen, indem keine benutzt werden. Das ist durchaus eine ernstzunehmende Option, weil die meisten Partituren mit proportionaler Notation für heutige Musik geschrieben werden. Ähnliches gilt für Taktarten, insbesondere, wenn ein Zeitstrahl in die Partitur eingearbeitet werden soll. In den meisten Partituren kommt jedoch irgendeine Taktart vor. Schlüssel und Versetzungszeichen sind noch wichtiger; auf sie kann selten verzichtet werden.
Eine Lösungsmöglichkeit ist es, die strict-note-spacing-Eigenschaft
des SpacingSpanner-Objekts zu benutzen. Zum Vergleich
die beiden Partituren unten:
\new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) c''8 c''8 c''8 \clef alto d'8 d'2 } \new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) \override Score.SpacingSpanner.strict-note-spacing = ##t c''8 c''8 c''8 \clef alto d'8 d'2 }
Bei beiden handelt es sich um proportionale Notation, aber
die Platzverteilung im oberen Beispiel ist zu weit wegen
des Schlüsselwechsels. Die Platzverteilung des zweiten
Beispiels dagegen bleibt rhythmisch korrekt.
strict-note-spacing bewirkt, dass Takt- und
Tonartbezeichnungen, Schlüssel und Versetzungszeichen
keine Rolle bei der Berechnung der Abstände spielen.
Zusätzlich zu den hier vorgestellten Einstellungen gibt es noch eine Reihe von Möglichkeiten, die oft in proportionaler Notation benutzt werden. Dazu gehören:
\override SpacingSpanner.strict-grace-spacing = ##t
tupletFullLength = ##t
\override Beam.breakable = ##t
\override Glissando.breakable = ##t
\override TextSpanner.breakable = ##t
\remove "Forbid_line_break_engraver" in the Voice context
Diese Einstellungen bewirken, dass auch Verzierungsnoten proportional gesetzt werden, dass Klammern von rhythmischen Gruppen bis zu den Anfangs- und Endpunkten ausgedehnt werden und lassen dehnbare Objekte wie Balken und Glissandi auch über Taktstriche hinweg zu.
Notationsreferenz: Eine neuer Bereich mit anderen Abständen.
Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] |
Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.
Andere Sprachen: English, català, español, français, italiano, 日本語.
Über die automatische Sprachauswahl.