lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AssociatedVoice et paroles décalées


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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]