Subject: AssociatedVoice et paroles décalées

From: Radar loukoum <[email-masked]>
Date: Sun, 28 Feb 2021 12:05:04 -0700 (MST)

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

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 28 Feb 2021 20:56:43 +0100

> Espérant avoir été clair, je vous remercie pour votre aide.

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
}

alto = \relative c' {
   e4 f d e
   g1 }

tenor = \relative c' {
   R1
   g }

bass = \relative c {
   R1
   c2 e4 g }

verseA = \lyricmode {
   al -- le --

%{
verseB = \lyricmode {
   _ (a -- men)
}
%}

\score {
   \new ChoirStaff <<
     \new Staff \with {

     } <<
     >>
     >>
     %{
     %}
   >>

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

---

From: Radar loukoum <[email-masked]>
Date: Sun, 28 Feb 2021 13:51:47 -0700 (MST)

Merci beaucoup Jean.

Je vais me pencher sérieusement sur cette bug-liste, mais je crains de ne
pas être suffisamment précis/concis sur la description bug en lui-même
(simple utilisateur non programmeur) ; d'autant plus s'il faut décrire le
problème en anglais !

Encore merci.