|
From: | Jean Abou Samra |
Subject: | Re: AssociatedVoice et paroles décalées |
Date: | Sun, 28 Feb 2021 20:56:43 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 |
Le 28/02/2021 à 20:05, Radar loukoum a écrit :
Bonsoir à tous, Je cherche à utiliser la commande AssociatedVoice pour gérer les décalages de paroles sur une ligne unique : \version "2.20.0" \language "english" \layout { ragged-right = ##f } soprano = \relative c'' { c d4. d8 c4 e1 } alto = \relative c' { e4 f d e g1 } tenor = \relative c' { R1 g } bass = \relative c { R1 c2 e4 g } verseA = \lyricmode { al -- le -- \set associatedVoice = "soprano" lu -- \unset associatedVoice \markup \italic \smaller { (lu) } -- ia %commande inopérante \set associatedVoice = "bass" Oh (a -- men) } verseB = \lyricmode { _ (a -- men) } \score { \new ChoirStaff << \new Staff \with { instrumentName = \markup \center-column { "S." "A." }} <<\new Voice = "soprano" { \voiceOne \soprano } \new Voice = "alto" { \voiceTwo \alto } >> \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER } \lyricsto "alto" \verseA \new Staff = "tb" \with { instrumentName = \markup \center-column { "T." "B." } } << \clef bass \new Voice = "tenor" { \voiceOne \tenor } \new Voice = "bass" { \voiceTwo \bass } >> \new Lyrics \with { alignAboveContext = "tb" }\lyricsto "bass" \verseB >> \layout { \context { \Lyrics \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #1.5 } } } Dans cet exemple, je cherche à intégrer les décalages de paroles sur la voix d'alto (verseA), ce que j'ai fait sans problème pour la première mesure avec le décalage au soprane (OK, ce n'est pas très heureux mais c'est juste pour l'exemple). En revanche, pour la deuxième mesure, le \set associatedVoice = "bass" ne fonctionne pas, ce qui paraît logique car la Voice "bass" est définie pour un contexte de portée différent. Du coup, j'ai ajouté des paroles pour les basses (verseB) mais elles sont de fait décalées vers le bas au regard de ma ligne de paroles alto. Du coup, y aurait-il une syntaxe de commande me permettant d'appeler cette voix "bass" sur ma voix "alto" en utilisant associatedVoice (ce qui, dans mon exemple, me permettrait d'aligner le (a - men) sur ma ligne de paroles alto) ? Espérant avoir été clair, je vous remercie pour votre aide. Bien à vous tous, Thierry
Bonjour, Pour moi, cela semble clairement un bug. Le contexte Lyrics se situe entre les deux contextes Staff (avec en plus un staff-affinity = #CENTER), donc il ne devrait pas en principe y avoir de différence de comportement entre des \set associatedVoice qui redirigent vers des voix selon qu'elles soient plus haut ou plus bas. Il doit se produire un hiatus dans la séquence d'itération des événements. En effet, le problème disparaît si le contexte Lyrics est placé après la musique dans le code, même en le positionnant au même endroit sur la page avec alignAboveContext. Vous pouvez donc utiliser cette solution de contournement : \version "2.23.1" \layout { ragged-right = ##f } soprano = \relative c'' { c d4. d8 c4 e1 } alto = \relative c' { e4 f d e g1 } tenor = \relative c' { R1 g } bass = \relative c { R1 c2 e4 g } verseA = \lyricmode { al -- le -- \set associatedVoice = "soprano" lu -- \unset associatedVoice \markup \italic \smaller { (lu) } -- ia \set associatedVoice = "bass" Oh (a -- men) } %{ verseB = \lyricmode { _ (a -- men) } %} \score { \new ChoirStaff << \new Staff \with { instrumentName = \markup \center-column { "S." "A." } } << \new Voice = "soprano" { \voiceOne \soprano } \new Voice = "alto" { \voiceTwo \alto } >> \new Staff = "tb" \with { instrumentName = \markup \center-column { "T." "B." } } << \clef bass \new Voice = "tenor" { \voiceOne \tenor } \new Voice = "bass" { \voiceTwo \bass } >> \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER alignAboveContext = "tb" } \lyricsto "alto" \verseA %{ \new Lyrics \with { alignAboveContext = "tb" }\lyricsto "bass" \verseB %} >> \layout { \context { \Lyrics \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #1.5 } } } Par ailleurs, vous seriez aimable de signaler le bug à la liste bug-lilypond avec un exemple minimaliste (voir http://lilypond.org/contact.fr.html). Bien cordialement, Jean
[Prev in Thread] | Current Thread | [Next in Thread] |