Defina voces de acordes personalizadas en lilypond

Lo que me gustaría hacer es definir voces de acordes específicas y personalizadas en lilypond, y poder adjuntarles duraciones de notas, a lo largo de las líneas de

voicing = < g a c e a > % dom7, with 7th in bass 
\new Staff {
    % play the whole chord for two quarters, then a half
    \voicing4 \voicing4 \voicing2 
}

Sin embargo, este enfoque básico no funciona: no puede adjuntar las duraciones de las notas a las variables.

Estoy tratando de evitar tener que escribir todas las notas para todas las instancias de uso de los acordes.

¿Hay alguna manera de lograr este fin?

Respuestas (1)

Por supuesto, puede escribir

< g a c e a >4 q q2

Si desea mezclar diferentes acordes, esto no es factible. Con la restricción de necesitar siempre una duración, puedes escribir algo como

makevoicing = #(definir-esquema-función (ubicación del analizador m) (ly:music?)
                  (definir-función-musical (ubicación del analizador d) (ly:duration?)
                    (mapa-algo-de-musica
                      (lambda (m)
                        (y (ly:duration? (ly:music-property m 'duration))
                             (empezar
                                (set! (ly:music-property m 'duration) d)
                                metro)))
                      (ly:music-deep-copy m))))

voicing = \makevoicing < gacea > % dom7, con 7º en bajo

\personal nuevo {
       % toque todo el acorde durante dos cuartos, luego la mitad
      \voicing4 \voicing4 \voicing2
}

Si bien es posible que la duración sea predeterminada, aún debe escribir \voicing\defaultpara obtener el valor predeterminado, lo que anula la idea de tener un valor predeterminado para ahorrar tipeo.

Puede combinar esto con la notación "q", que sirve bien a mis propósitos.