Lyrics com partcombine - a solução definitiva

21 views
Skip to first unread message

Jefferson dos Santos Felix

unread,
May 18, 2012, 8:39:17 PM5/18/12
to lilypon...@googlegroups.com
Colegas do Lilypond Brasil, estou trazendo dica interessante para quem já se deparou com o problema de unir \partcombine e o comando \lyricsto
Segundo o manual, de fato tais comandos são incompatíveis.  No entanto, este tipo de combinação é facilmente encontrada em hinos (no formato SA-TB), e diferente do modelo apresentado no manual do lilypond, quase sempre as partes são combinadas, inclusive para melhor escrita das estrofes e para que tudo caiba na página.
Por muito tempo procurei na internet uma solução para tal problema, mas nada que fosse perfeito.
Há alguns dias, encontrei uma solução na internet que resolve parte do problema, ao criarmos uma espécie de Voice oculta:

\new Staff <<
  \partcombine \soprano \alto
  \new Voice = "soprano" { 
    \voiceOne
    \hideNotes
    \shiftOnn
    \transpose c c'
    \soprano 
  }
>> 
\new Lyrics \lyricsto "soprano" \verseOne

O problema é que neste caso as ligaduras da voz "oculta" são exibidas, e bem acima das notas originais, bem como markups, fermatas, sinais de respiração (\breathe) e outras coisas. Também isto acaba por gerar um espaço a mais entre os pentagramas, uma vez que as notas "ocultas" são oitavadas para evitar conflitos com pontuação e outros elementos da nota original.

Após muito estudo, descobri a solução de compatibilidade entre \partcombine e \lyricsto:

\new Staff <<
  \partcombine \soprano \alto
  hiddenBass = \new Voice = "soprano" \with {

    \remove "Breathing_sign_engraver" 

    \remove "Dots_engraver"

    \remove "Dynamic_engraver" 

    \remove "Mark_engraver" 

    \remove "Script_engraver"

    \remove "Text_engraver" 

  } {

    \slurUp

    \hideNotes

    \soprano

  }
>>  
\new Lyrics \lyricsto "soprano" \verseOne

Com isto, a partitura é exibida corretamente (principalmente a colocação dos pontos), sem a necessidade de oitavar a voz oculta, uma vez que a função "\remove" não simplesmente torna o objeto invisível, como faz o atributo #'transparent e a função \hideNotes, mas sim o deixa de processar, o que elimina o problema de colisões com as notas originais.
Utilizo no caso \slurUp para que as ligaduras de frase não apareçam somente nas notas do contralto, o que acontece quando usamos o comando \partcombine.  
Para o baixo, troco o \slurUp por \slurDown. Para que estas ligaduras "extras" funcionem bem, certifique-se de colocar no início das notas do soprano o comando \stemUp e nas notas do baixo o comando \stemDown.
Se mesmo assim, as hastes do soprano insistirem em ficar para baixo, utilize o comando \override Stem #'direction = #up (ou #down, para o baixo) no início da notação do soprano ou baixo

Em anexo coloquei arquivos de modelo e o resultado em png para verificarem.

Bom engraving!
common.ly
hidden_parts.ly
teste.ly
teste.preview.png
Reply all
Reply to author
Forward
0 new messages