Partitura para piano de LilyPond: cambio entre acordes alternos y simultáneos

Tengo una pieza de música para piano que tiene dos partes. En una parte, los acordes se alternan entre las manos, pero no quiero expresar pentagramas precisamente para dejarlo en manos de un jugador. En la segunda parte, las manos juegan juntas. Tengo un problema con respecto a cómo cambiar entre \autochangey explícito. Por favor, mire la pieza a continuación:

\score{
    \new PianoStaff \chordmode {
        \new Staff = "up" {
            \autochange {
                \repeat unfold 4 { c,,8 c' }
            }
            {
                \repeat unfold 4 { c'' d'':m }
            }
            \new Staff = "down" {
                \clef bass
                \repeat unfold 4 { c,,8 d,,:m }
            }
        }
    }
}

ingrese la descripción de la imagen aquí

El primer compás está bien, no hay silencios. Pero las dos segundas barras deben combinarse juntas.

Respuestas (1)

El problema es que \autochangeestá haciendo demasiadas cosas de forma automágica y haciéndolas en el lugar equivocado. Específicamente, está creando dos pentagramas llamados "arriba" y "abajo", pero el pentagrama "abajo" está anidado dentro del primer bloque de su partitura, y luego está creando otro pentagrama llamado "abajo".

Una solución es configurar la estructura de pentagrama de forma PianoStaffexplícita y colocar el \autochangedentro de esa estructura.

En la versión a continuación, el pentagrama "hacia abajo" comienza desde el principio de la partitura, por lo que necesita s1pasar el primer compás.

Tenga en cuenta \contextque es similar a \new, excepto que todos los \contexts con el mismo nombre se refieren al mismo objeto. En efecto, eso significa que puede hacer referencia a los pentagramas "arriba" y "abajo" antes \autochange de haberlos creado.

\score {
    \new PianoStaff <<
        \context Staff = "up" {
            \autochange {
                \chordmode {
                    \repeat unfold 4 { c,,8 c' }
                    \repeat unfold 4 { c'' d'':m }
        } } }
        \context Staff = "down" {
            \chordmode {
                s1
                \repeat unfold 4 { c,,8 d,,:m }
        } }
    >>
}

ingrese la descripción de la imagen aquí

En realidad, la forma en que está estructurada la solución anterior es un poco complicada. Esto podría ser más fácil de entender y ampliar. El autochangecrea los pentagramas "arriba" y "abajo", y luego el contexts les agrega más música. Entonces debe recordar definir valores de ritmo para ambos pentagramas.

\score {
    \new PianoStaff <<
        \autochange {
            \chordmode {
                \repeat unfold 4 { c,,8 c' }
        } }
        \context Staff = "up" {
            s1
            \chordmode {
                \repeat unfold 4 { c''8 d'':m }
        } }
        \context Staff = "down" {
            s1
            \chordmode {
                \repeat unfold 4 { c,,8 d,,:m }
        } }
    >>
}