Punkte bei punktierten Noten verschieben

Zur Navigation springen Zur Suche springen

Für die Anordnung der Punkte bei punktierten Noten ist der Dot_column_engraver zuständig. Dieser wird üblicherweise einem Staff zugeordnet.

Mit dem folgenden Code kann man die Punkte entweder an den Noten der Einzelstimmen ausrichten oder nach Bedarf mittels Scheme-Funktion verschieben. Der Deutlichkeit halber werden die Punkte zum Teil rot eingefärbt.

Lilypond-Code

\version "2.20.0"
\language "deutsch"

\paper {
  ragged-right = ##t
  ragged-bottom = ##t
}

bassii = \relative c, {
  \clef bass
  \time 6/4
  \voiceTwo
  e1.
}

bassi = \relative c {
  < h e >4. q q2.
}

movedots =
#(define-music-function (amount dots)
   (number? integer?)
   #{
     \once \override Staff.DotColumn.after-line-breaking =
     #(lambda (grob)
        (for-each
         (lambda (grob) (ly:grob-translate-axis! grob amount X))
         (take (ly:grob-array->list (ly:grob-object grob 'dots)) dots)))
   #}
   )


\new Staff
\relative c' {
  \override Score.RehearsalMark.self-alignment-X = #-1
  \mark \markup \left-column
    { "Notenpunkte mittel Musikfunktion verschieben""\movedots x-shift anzahl" }
  \override Staff.Dots.color = #red
  < c e g h >1.
  \textLengthOn
  \movedots #2 #4
  q2.-\markup "\movedots #2 #4"
  \movedots #4 #2
  q4.-\markup "\movedots #4 #2"
}

\score {
  \new Staff
  <<
    \override Score.RehearsalMark.self-alignment-X = #-1
    \mark "Standardeinstellung"
    \new Voice \bassi
    \new Voice \bassii
  >>
}

\score {
  \new Staff
  <<
    \override Score.RehearsalMark.self-alignment-X = #-1
    \mark \markup \left-column
    { "Dot_column_engraver""den einzelnen Stimmen zugeordnet" }
    \new Voice \bassi
    \new Voice \bassii
  >>
  \layout {
    \context {
      \Staff
      \remove "Dot_column_engraver"
    }
    \context {
      \Voice
      \consists "Dot_column_engraver"
    }
  }
}

Graphische Ausgabe