Halslänge im Balken (mit Sonderkopf)

Begonnen von kilgore, Samstag, 2. Mai 2020, 09:07

« vorheriges - nächstes »

kilgore

Hallo an alle!

Lange nicht vorbeigeschaut, ich hoffe es geht allen trotz den Umständen gut!

Ich bin wieder am arbeiten mit Lilypond und bin auf ein mir bisher unbekanntes Problem gestoßen. Ich habe ein custom NoteHead und möchte, dass der Hals mit dem Kopf in Verbindung ist.

Leider kann ich mit Stem.length hier nichts bewirken.

Auch Stem.details.beamed-lengths bringt nur das gegenteiliges Ergebniss (Hals und Balken nach oben)

Gibt es einen Weg, der Hals leicht nach unten zu verlängern damit mein Sonderkopf nicht in der Luft schwebt?


\version "2.20.0"

sonderKopf = { \once \override NoteHead.stencil = #ly:text-interface::print
  \once \override NoteHead.text = \markup { "◓" }
  \once \override NoteHead.extra-offset = #'( 0.2 . -.6 )
}

\relative c' {
  f4\p^\markup \italic "snare off"\harmonic r16 f8.\harmonic r8
   f8\harmonic
   \sonderKopf
   %\once \override Stem.details.beamed-lengths = #'(8)
   %\once \override Stem.length = #8
   f8. f16\harmonic
}


Danke im voraus!
kilgore

Schneider

Hallo kilgore,

\version "2.20.0"

sonderKopf = {
  \once \override NoteHead.stencil = #ly:text-interface::print
  \once \override NoteHead.text = \markup { "◓" }
  \once \override NoteHead.extra-offset = #'( 0.2 . -.6 )
}

\relative c' {
  f4\p^\markup \italic "snare off"\harmonic r16 f8.\harmonic r8
   f8\harmonic
   \sonderKopf
   %\once \override Stem.details.beamed-lengths = #'(8)
   %\once \override Stem.length = #8
   \tweak stem-attachment #'(1.1 . -.7)
   f8. f16\harmonic
}


Gruß,
Pierre

kilgore


harm6

Hallo kil,

wie Pierre schon zeigt ist stem-attachment anzupassen.
Anstatt feste Werte zu setzen ziehe ich es jedoch vor sie zu berechnen. Auch würde ich den neuen stencil etwas anders einführen, um den extra-offset zu sparen:


\version "2.20.0"

sonderKopf = {
  \override NoteHead.stencil =
   #(lambda (grob)
     (let* ((nc (ly:grob-parent grob X))
            (stem (ly:grob-object nc 'stem))
            (stem-thick (ly:grob-property stem 'thickness))
            (line-thick (ly:staff-symbol-line-thickness grob)))

       ;; Set calculated x/y-values for stem-attachment
       ;; For x we use the full stencil-extent in X-direction (represented by 1)
       ;; and take Stem.thickness into account
       (ly:grob-set-property! grob 'stem-attachment
         (cons (- 1 (* line-thick stem-thick)) 0))
       
       ;; We return an Y-centered new stencil
       (ly:stencil-aligned-to (grob-interpret-markup grob "◓") Y CENTER)))
}


\relative c' {
  f4\p^\markup \italic "snare off"\harmonic r16 f8.\harmonic r8
   f8\harmonic
   \once \sonderKopf
   f8. f16\harmonic
}

{
  \autoBeamOff
  \sonderKopf
  f'1 f''
  f'2 f''
  f'4 f''
  f'8 f''
  f'16 f''
  f'32 f''
  f'64 f''
}


Ob bei veränderter (global/layout-)staff-size weitere Anpassungen nötig sind habe ich nicht getestet.

Man kann natürlich Halbe und Viertel nicht unterscheiden. Auch ragen die Fähnchen mitunter in den neuen Notenkopf, akzeptabel?


Gruß,
  Harm

kilgore

Danke Harm! Das probiere ich jetzt am WE aus. Natürlich viel besser wenn man nicht jeden Kopf extra anpassen muss...