¿Forma correcta de ocultar/suprimir el símbolo de sustainOff?

En Lilypond, estoy grabando un trozo de música de piano que usa el Ped. símbolo, pero no utiliza el correspondiente * para finalizar el pedaleo.

Aquí hay un fragmento de código que obtiene el resultado visual correcto:

\version "2.18.2"
upper = \relative c'' {
  \clef treble
  a4 b c d
}
lower = \relative c {
  \clef bass
  a2 c
}
pedal = {
 s4\sustainOn s s s\sustainOff 
}
\score {
  \new PianoStaff <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
    \new Dynamics = "pedal" \with {
      pedalSustainStrings = #'("Ped." "*Ped." "")
    } \pedal
  >>
  \layout { }
}

Ped pero no *

Tenga en cuenta el #'("Ped." "*Ped." "")bit.

Pero eso también produce una advertencia:

warning: SustainPedal has empty extent and non-empty stencil.

Tengo 7 páginas de música con pedaleo cada 2-3 compases. No voy a llegar al final con tantas advertencias apareciendo cada vez. ¿Hay alguna forma mejor/más correcta de suprimir ese símbolo?

¿Por qué no puedes simplemente ignorar las advertencias? Son solo advertencias , después de todo: indican que algo podría estar mal, pero aquí está claramente su intención. Si teme verse inundado con las advertencias, ejecute Lilypond con el interruptor de comando -l ERROR.
Un puñado no sería un problema, pero docenas harán que sea más difícil desplazarse por la ventana de registro de Frescobaldi, lo que haría que mi vida fuera un poco más difícil mientras trabajaba en esta pieza. Además, Lilypond está tan cerca de la programación que mi aversión a las advertencias del compilador se activa. :)

Respuestas (3)

Si desea que se suelte el pedal de sostenido, pero que no se muestre un símbolo:
en lugar de escribir \sustainOff, use \hide\sustainOff.

NB: no necesitará esa \with ...declaración

EDITAR
Usar \omites probablemente mejor que \hide.

Esto se debe a que \omitno imprime nada en absoluto, mientras que \hideefectivamente imprime un símbolo invisible y, en consecuencia, realiza alteraciones de espaciado que serían necesarias como si el símbolo fuera visible.

Lo toqué un poco más e hice algunas suposiciones descabelladas junto con mi conocimiento del Esquema, e intenté:

pedalSustainStrings = #'("Ped." "*Ped." #f)

Es decir, a #fpara "falso" en lugar de la cadena de longitud cero "". Parece que todavía produce el resultado visual que quiero, sin que se emitan advertencias. Sin embargo, no tengo idea de si este es el comportamiento esperado de Lilypond.

Esta no es una respuesta al OP, sino una respuesta a un comentario que es demasiado grande para publicar allí.

Si se encuentra en una situación en la que necesita suprimir varias advertencias que sabe que no son importantes pero que ofuscan otras advertencias y errores, puede utilizar esta función.

% ly:expect-warning only works to suppress once.  This function allows
% you to specify the number of times a warning appears.
#(define ly:expect-warning-times (lambda args
   (for-each (lambda _ (apply ly:expect-warning (cdr args)))
         (iota (car args)))))

#(ly:expect-warning-times 33 "omitting tuplet bracket")