Pares inigualables para ligaduras y ligaduras de LilyPond

En LilyPond, se espera que las ligaduras y las ligaduras aparezcan en pares emparejados. Sigo encontrando situaciones en las que un empate o un insulto no coinciden. Por ejemplo:

  • Como se demuestra en el MWE a continuación, es posible tener una nota ligada que entre en una coda (o repetición o alguna otra forma de salto musical), pero en LilyPond la ~forma de ligadura no se puede agregar a la primera nota en la coda porque está separada de su nota inicial por saltos de línea y notas adicionales
    • De hecho, me sorprende que las redirecciones musicales como coda y segno no sean entornos como la \repeat volta n {} \alternative{{}{}}configuración, pero eso no está ni aquí ni allá, simplemente lo menciono en caso de que me equivoque y en realidad hay un entorno para la notación y el salto de coda y segno.
  • Con frecuencia utilizo una compilación de lilypond-book para producir solo uno o dos compases para incluir en un documento, y es posible que desee que se inicie implícitamente una ligadura o una ligadura, pero solo me importa presentar la barra en cuestión después de la ligadura o la ligadura. calificación.

Sé que LilyPond está diseñado más para la composición tipográfica que para comprender el flujo, pero ¿puedo obligar a LilyPond a imprimir una ligadura o una ligadura sin tener en mente una nota original?

    \version "2.18.2"
    {
      \relative c'' \repeat unfold 2 {
          c4 c c c~
        }
        
        % Set coda sign as rehearsal mark and adjust size if needed
        \once \override Score.RehearsalMark.font-size = #4
        \mark \markup { \musicglyph #"scripts.coda" }
        \relative c'' \repeat unfold 2 {
          c4 c c c
        }
    
       \break
    
       \once \override Score.RehearsalMark.extra-offset = #'( -4.5 . 0 )
    
       \once \override Score.RehearsalMark.font-size = #5
       \mark \markup { \musicglyph #"scripts.coda" }
    
       % The coda
       \relative c'' \repeat unfold 5 {
          ~c4 c c c
        }
        \bar"|."
    }

ejemplo de partitura con coda y empates

Para lograr que este MWE se compile con éxito, todo lo que se necesita es eliminar el ~frente del último c4en el entorno de despliegue final.

A partir de v2.23 \repeat segnoexiste, consulte: 1.4.1 Repeticiones largas: estructura de repetición de Segno

Respuestas (2)

Resulta que Lilypond tiene un comando para agregar notas ligadas que pueden no coincidir debido a codas o signos repetidos:

Si sigue la nota atada que de otro modo no se puede conectar con el iniciador de ataduras con el comando \repeatTie, la atadura aparece en el lugar correcto.

Pensé que habría una solución de estilo de entorno más general, así que aunque esto funciona para las ligaduras, aún no he encontrado una solución equivalente para las ligaduras.

Me tomó un tiempo darme cuenta de que \repeatTietiene que seguir, no preceder, la nota que desea conectar.

\version "2.18.2"
{
  \relative c'' \repeat unfold 2 {
      c4 c c c~
    }

    % Set coda sign as rehearsal mark and adjust size if needed
    \once \override Score.RehearsalMark.font-size = #4
    \mark \markup { \musicglyph #"scripts.coda" }
    \relative c'' \repeat unfold 2 {
      c4 c c c
    }

   \break

   \once \override Score.RehearsalMark.extra-offset = #'( -4.5 . 0 )

   \once \override Score.RehearsalMark.font-size = #5
   \mark \markup { \musicglyph #"scripts.coda" }

   % The coda
   \relative c'' \repeat unfold 5 {
      c4\repeatTie c c c
    }
    \bar"|."
}

El problema aquí es \repeat unfold 2 { ... }después del primer signo de coda.

Eso no contiene una ~para "empate de inicio". Cuando se expande, Lilypond ha terminado de componer su última nota, sin corbata.

Entonces, en lo siguiente ~c4, ~no tiene nada a lo que apegarse.

Una solución es simplemente eliminar \repeat unfold 2y colocar el ~lugar donde pertenece:

\relative c'' { c4 c c c | c c c c~ }

   \break
   ...
   % The coda
   \relative c'' \repeat unfold 5 {
      c4 c c c
    }

Si realmente desea mantener la \repeat unfoldconstrucción, puede hacer un pasaje paralelo que consista solo en descansos espaciadores y comenzar la unión desde adentro:

    \mark \markup { \musicglyph #"scripts.coda" }
    \relative c'' {
        << \repeat unfold 2 { c4 c c c }
           { s4*7 s4~ }
        >>
    }

   \break
    ...
   % The coda
   \relative c'' \repeat unfold 5 {
      c4 c c c
    }
    \bar"|."

Esto funciona porque se "fusiona" con las ~notas después\repeat unfold de que se haya expandido. Por cierto, esta también es una buena manera de adjuntar diferentes marcas dinámicas, etc., a diferentes repeticiones de la música en un archivo \repeat unfold.

No estoy seguro de estar siguiendo esto completamente. Mi situación real no usa repeat, pero sí usa otros comandos de creación de melodías específicos de instrumentos para diseños de partituras y partes, por lo que he intentado comenzar con la primera solución que describe. Como usted describe, lilypond no ha escrito una corbata cuando lo hace en su última nota. A mi entender, ese es todo el problema. La nota ligada que necesito "vincular" está en medio de un bloque de notas, no está al final de la línea. Desafortunadamente, los espaciadores dan espacio no deseado y la ligadura simplemente se agrega al lado equivocado de la nota deseada.
Si publica un ejemplo que muestre su problema real , es posible que obtenga una mejor respuesta. Para ser honesto, encontré que su pregunta original era difícil de entender, y la forma en que se relaciona con el libro de Lilypond no estaba del todo clara. La pregunta básica parecía ser "¿por qué no funciona el empate en la coda (que comienza en el segundo sistema)?" que es lo que respondí. Lo siento si esa no era la pregunta que realmente querías hacer.