Verzierungen bei Akkorden verschieben

Begonnen von Manuela, Donnerstag, 25. November 2021, 23:01

« vorheriges - nächstes »

Manuela

Hi, ich möchte die Platzierung der Verzierung vor den Akkord verschieben, sodass er vor der oberen Note steht. Standardmäßig wird er unterhalb geschrieben.

Gibt es eine elegantere Lösungsmöglichkeit als die folgende?

\version "2.22.0"

\relative c' {
  \voiceTwo
  < g' d >4\mordent s s %% default
  \override Script.X-offset = #-1.5
  \override Script.Y-offset = #-1
  < g d >4\mordent
}
Danke für eure Hilfe
viele Grüße
-- Manuela

harm6

Ein erster Gedanke:


\version "2.22.0"

firstShot = {
  \override Script.X-offset = #ly:side-position-interface::x-aligned-side
  \override Script.direction = #LEFT
  \override Script.padding = 0.5
  \override Script.Y-offset =
    #(lambda (grob)
      (let ((nhd (ly:grob-parent grob X)))
        (if (grob::has-interface nhd 'note-head-interface)
            (/ (ly:grob-property nhd 'staff-position) 2)
            (ly:error
              "Script at left side needs NoteHead as parent, got ~a" nhd))))
                 
               
}

%% mordent at left side needs to be set *in-chord*
{
  \once \firstShot
  < g'\mordent d' >4
  \once \firstShot
  < g' d'\mordent >4
  \once \firstShot
  <g'\mordent >
 
  %% defaults
  < g'\mordent d' >4
  < g' d'\mordent >4
  < g' d' >4\mordent
}


Geht aber wahrscheinlich irgendwo krachen, mußt Du halt testen.


Gruß,
  Harm

Manuela

Danke Harm!

Wo sollte es krachen? Ich sehe das nicht, selbst wenn, ist es auch nicht tragisch  :)
Danke für eure Hilfe
viele Grüße
-- Manuela