Subject: Usage de \startGroup

From: julien <[email-masked]>
Date: Fri, 6 Mar 2020 06:30:26 -0700 (MST)

Bonjour,
J'ai besoin de signaler dans un texte musical la réutilisation d'un thème ou
d'un motif.
Une fois layout adapté, je précise le démarrage du soulignement par 
\startGroup et 
je l'arrête par \stopGroup après la fin du passage. Tout va bien.

J'ai un souci lorsque la fin de l'extrait est après une zone à plusieurs
voix, comme ici :

a'2 \startGroup ^\markup {\teeny \bold {retrograde}} b
    c a |
     <<{b1}\\{ g4. f8 e2 }>>  \stopGroup 
    d4 f e d

Si je place stopGroup, comme ci-dessus, un trait est tracé jusqu'à la fin de
la partition.
A l'intérieur des << >> ou des { } la compilation est bloquée.
Si je le place après la 1e note de la mesure suivante (d4), il y a un temps
de trop.

Où placer stopGroup dans le cas d'une expression à plusieurs voix ?
Merci pour vos éclaircissements.
Cordialement.
Julien

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

---

From: Valentin Villenave <[email-masked]>
Date: Fri, 6 Mar 2020 15:18:11 +0000

> Où placer stopGroup dans le cas d'une expression à plusieurs voix ?

Bonjour,
si je puis me permettre de commencer par un petit conseil : veillez à
poster de préférence des bouts de code prêts-à-compiler, ce qui fait
gagner du temps à tous les gens qui pourraient vous répondre (ou
consulter les archives de la liste dans les années à venir).

Pour vous répondre en détail. \startGroup et \stopGroup s’attachent
toutes les deux après un événement rythmique visible (pas un silence
invisible ou un <>), et uniquement dans la même voix (c’est-à-dire
plus exactement dans le même contexte Voice).

Du coup, vous avez plusieurs possibilités : soit tricher et ramener le
dernier mi dans la voix principale, soit démarrer dès le début en
polyphonie (masquée par \oneVoice) pour pouvoir démarrer le startGroup
dans la même voix où il se terminera plus loin.

Ou bien encore, garder votre construction qui démarre à une voix et se
divise ensuite, mais en vous débrouillant pour que la polyphonie entre
<< et >> passe par exactement le même contexte Voice que celui du
début, par exemple en lui donnant un nom.

L’extrait suivant montre toutes ces stratégies possibles, ainsi qu’un
autre petit hack assez rigolo lorsqu’on connaît bien comment LilyPond
fonctionne : dès qu’il voit passer une construction polyphonique <<
>>, il crée des voix (des contextes Voice) qu’il intitule "1", "2",
etc. Du coup puisque votre crochet doit se terminer sur une note de la
deuxième voix (qu’il va donc numéroter "2"), il suffit ici de dire à
LilyPond de commencer dès le début sa mélodie sur un contexte Voix que
l’on va baptiser "2". Et du coup le \startGroup se retrouve dans le
même contexte où l’on trouvera le \stopGroup plus loin.

%%%

\layout {
  \context {
    \Voice
    \consists "Horizontal_bracket_engraver"
  }
}
\relative {
  a'2 \startGroup ^\markup {\teeny \bold {retrograde}} b
  c a |
  <<{b1*1/2}\\{ g4. f8}>>
  \once \stemDown e2\stopGroup
  d4 f e d
}

\relative {
  <<
    {
      \oneVoice
      a'2\startGroup
      ^\markup {\teeny \bold {retrograde}} b
      c a | \voiceTwo
      g4. f8 e2\stopGroup
    } \\ {
      s1*2\startGroup
      b'1
    }
  d,4 f e d
}

\new Voice = "principale" \relative {
  a'2 \startGroup ^\markup {\teeny \bold {retrograde}} b
  c a |
  <<
    \new Voice = "annexe" {\voiceOne b1*1/2}
    \context Voice = "principale"
    {
      \voiceTwo g4. f8 e2\stopGroup
      \oneVoice
  }>>
  d4 f e d
}

\new Voice = "2" \relative {
  a'2 \startGroup ^\markup {\teeny \bold {retrograde}} b
  c a |
  <<{b1}\\{ g4. f8 e2\stopGroup }>>
  d4 f e d
}

%%%

Cordialement,
V.

---

From: julien <[email-masked]>
Date: Fri, 6 Mar 2020 10:27:20 -0700 (MST)

Merci beaucoup pour cette réponse très complète.
Je suivrai votre conseil pour que les bouts de code soient
prêts à être compilés.

C'est résolu.
Cordialement.
Julien