Posicionamiento de las notas de adorno con espacio flotante

Al establecer la propiedad strict-grace-spacing hacemos que las columnas musicales para las notas de adorno sean ‘flotantes’, es decir, desacopladas de las notas que no son de adorno: primero se aplica el espaciado de las notas normales, y luego se ponen las columnas musicales de las notas de adorno a la izquierda de las columnas musicales de las notas principales.

Sin embargo, a causa del bug número 6876, las alteraciones accidentales se ignoran si esta propiedad está establecida. Este fragmento de código ofrece una solución para este problema.

Otro desafortunado efecto colateral de esta propiedad es que LilyPond no comprueba si hay espacio horizontal suficiente para las notas de adorno (este problema recibe seguimiento como bug número 2630). Tenemos que asegurarnos de que ha espacio suficiente, por ejemplo, por medio del uso de \newSpacingSection junto con un valor adecuado para la duración base-shortest-duration del objeto gráfico SpacingSpanner.

shiftedGrace =
#(define-music-function (offset music) (number? ly:music?)
   #{
     \override NoteHead.X-offset = #(- offset 0.85)
     \override Stem.X-offset = #offset
     \grace { $music }
     \revert NoteHead.X-offset
     \revert Stem.X-offset
   #})

\relative c'' <<
  { g4 \shiftedGrace #-1.3 a32 \shiftedGrace #-0.5 { bes c d } es4 }
  { f,32 e d c f e d c f4 }
>>

\layout {
  \context {
    \Score
    \override SpacingSpanner.strict-grace-spacing = ##t
  }
}
[image of music]

LilyPond snippets v2.25.33 (development-branch).