Subject: Le repeat unfold ne répète pas les stanza

From: Ben <[email-masked]>
Date: Fri, 24 Mar 2023 16:22:36 +0100

Bonjour, 

Dans cet exemple, j'aurais trouvé logique que le stanza soit répété, j'imagine que c'est un bug?

\version "2.25.1"

\relative c' { c4 d e f }
\addlyrics { 
\lyricmode { 
  \repeat unfold 2 {\set stanza = "1." Cou -- cou } 
} 
}

Au plaisir, 

Ben

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 29 Mar 2023 22:02:39 +0200

Bonjour,

Désolé pour la réponse tardive. Je ne crois pas que ce soit un bug, car `\set` règle une propriété, et la deuxième fois que la propriété est réglée, elle garde la même valeur, donc en fait, du point de vue de LilyPond, rien ne change. Essayez avec :

```
\version "2.25.2"

  \repeat unfold 2 {
    \set stanza = "1."
    Cou --
    \set stanza = ""
    cou
  } 
} 
}
```

Cordialement,

Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 29 Mar 2023 22:11:17 +0200

> \relative c' { c4 d e f }

Bon, c'est vrai qu'il y a quand même quelque chose de surprenant dans le fait qu'écrire en entier la répétition (avec deux fois le `\set`, donc) rajoute la stanza, donc j'ai quand même fini par ouvrir une page de bug, https://gitlab.com/lilypond/lilypond/-/issues/6559

---

From: Ben <[email-masked]>
Date: Wed, 29 Mar 2023 22:12:49 +0200

Bonsoir,

Merci pour la réponse même tardive!

C'est vrai que \repeat n'est pas sensé répéter la modification d'une propriété, et que comme ce cas n'arrive pas souvent, autant y aller sans \repeat ou avec la solution que vous proposez. 

Au plaisir, 

Ben

> Le 29 mars 2023 à 22:02, Jean Abou Samra <[email-masked]> a écrit :
> 
> Désolé pour la réponse tardive. Je ne crois pas que ce soit un bug, car \set règle une propriété, et la deuxième fois que la propriété est réglée, elle garde la même valeur, donc en fait, du point de vue de LilyPond, rien ne change. Essayez avec :
> 
> \version "2.25.2"
>

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 29 Mar 2023 22:27:11 +0200

Bonsoir,

Je ne sais pas si je me suis bien fait comprendre : `\repeat` répète bien la modification des propriétés, comme on peut le voir sur l'exemple

```
\version "2.25.2"

\repeat unfold 2 {
  \set doubleSlurs = ##t
  <c' c''>4( q)
  \set doubleSlurs = ##f
  q( q)
}
```

Par contre, ce qu'il y a de différent ici entre `\repeat unfold` et la forme développée, c'est que la valeur de la propriété est identique dans les deux cas. J'ai bien dit identique, pas égale. C'est la différence entre

```
\version "2.25.2"

{ c' c' }
\addlyrics {
  \set stanza = "1."
  aah
  \set stanza = "1."
  aah
}
```

et

```
\version "2.25.2"

stanzaText = "1."

{ c' c' }
\addlyrics {
  \set stanza = \stanzaText
  aah
  \set stanza = \stanzaText
  aah
}
```

Dans le second cas, c'est vraiment la même chaîne de caractères, dans le premier ce sont deux chaînes égales.

C'est un peu perturbant d'avoir cette différence, d'où la page de bug.

Cordialement,

Jean

---

From: Ben <[email-masked]>
Date: Wed, 29 Mar 2023 22:36:46 +0200

En effet, j'avais mal interprété. 

Pour parler plus langage machine; dans le premier cas l'adresse des chaînes est différente, dans le second, c'est la même adresse.

C'est clair, merci. 

Au plaisir, 

Ben

> Le 29 mars 2023 à 22:27, Jean Abou Samra <[email-masked]> a écrit :
> 
> Je ne sais pas si je me suis bien fait comprendre : \repeat répète bien la modification des propriétés, comme on peut le voir sur l'exemple
> 
> \version "2.25.2"
> 
> \repeat unfold 2 {
>   \set doubleSlurs = ##t
>   <c' c''>4( q)
>   \set doubleSlurs = ##f
>   q( q)
> }
> Par contre, ce qu'il y a de différent ici entre \repeat unfold et la forme développée, c'est que la valeur de la propriété est identique dans les deux cas. J'ai bien dit identique, pas égale. C'est la différence entre
> 
> \version "2.25.2"
> 
> { c' c' }
> \addlyrics {
>   \set stanza = "1."
>   aah
>   \set stanza = "1."
>   aah
> }
> et
> 
> \version "2.25.2"
> 
> stanzaText = "1."
> 
> { c' c' }
> \addlyrics {