Subject: 2.23 Repeat Segno et rehearsalmark toujours pas possible

From: Vincent Gay <[email-masked]>
Date: Mon, 25 Jul 2022 22:12:21 +0200

J'avais cru comprendre que les nouvelles répétition de la 2.23 
résolvaient les conflits avec les rehearsalmarks. Ah ben non :

\version "2.23.10"

\paper { indent = 0 ragged-last = ##t }

\relative c'' {
   g1 \mark \default
   \repeat segno 2 {
     g g
     \alternative {
       \volta 1 { g \break }
       \volta 2 \volta #'() {
         \section
         \sectionLabel "Coda"
       }
     }
   }
   g
   \bar ".."
}

> Traitement de « /tmp/frescobaldi-r3tdbpe_/tmplc4e6iw4/RepeatSegno.ly »
>
> Analyse...
>
> Interprétation en cours de la musique...
>
> /tmp/frescobaldi-r3tdbpe_/tmplc4e6iw4/RepeatSegno.ly:7:6: 
> Avertissement : conflit avec l'événement : « rehearsal-mark-event »
>
> g1
>
> \mark \default
>
> /tmp/frescobaldi-r3tdbpe_/tmplc4e6iw4/RepeatSegno.ly:8:3: 
> Avertissement : rejet d'un événement : « segno-mark-event »
>
> \repeat segno 2 {
>
Grosse déception, d'autant plus que je m'étais battu toute une journée 
(avec l'aide de Jean comme d'hab) pour obtenir ce que je voulais.
Du coup retour à polymark

Du reste 2ème mauvaise nouvelle : en 2.22 on pouvait faire fonctionner 
ensembles un \mark et des \polymark, ce n'est plus possible en 2.23

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/  -http://photos.vintherine.org/

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 25 Jul 2022 22:31:36 +0200

> Le 25 juil. 2022 à 22:12, Vincent Gay <[email-masked]> a écrit :
> 
>  J'avais cru comprendre que les nouvelles répétition de la 2.23 résolvaient les conflits avec les rehearsalmarks. Ah ben non :
> 
> \version "2.23.10"
> 
>> /tmp/frescobaldi-r3tdbpe_/tmplc4e6iw4/RepeatSegno.ly:7:6: Avertissement : conflit avec l'événement : « rehearsal-mark-event »
>> g1
>> \mark \default
>> /tmp/frescobaldi-r3tdbpe_/tmplc4e6iw4/RepeatSegno.ly:8:3: Avertissement : rejet d'un événement : « segno-mark-event »
>> \repeat segno 2 {
> Grosse déception, d'autant plus que je m'étais battu toute une journée (avec l'aide de Jean comme d'hab) pour obtenir ce que je voulais.

Je suis désolé si je t’ai donné cette impression. Si je me souviens bien, il n’y a pas de problème pour superposer un mark au DS al coda ou au Coda, mais c’est effectivement refusé en même temps que le signe segno ou le To coda.

> Du reste 2ème mauvaise nouvelle : en 2.22 on pouvait faire fonctionner ensembles un \mark et des \polymark, ce n'est plus possible en 2.23

Tiens, curieux. Il y a une erreur autre que simplement « conflit avec l’événement… » ?

> https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

---

From: Vincent Gay <[email-masked]>
Date: Tue, 26 Jul 2022 08:34:17 +0200

Le 25/07/2022 à 22:31, Jean Abou Samra a écrit :
> Je suis désolé si je t’ai donné cette impression. Si je me souviens 
> bien, il n’y a pas de problème pour superposer un mark au DS al coda 
> ou au Coda, mais c’est effectivement refusé en même temps que le signe 
> segno ou le To coda.

En fait les choses n'ont jamais été présentées précisément mais c'est 
comme ça que je les avais comprises.

Par exemple quand tu dis :
> Il y a eu des discussions entre développeurs à ce sujet, et pour tout 
> dire j'ai soumis un patch qui aurait permis d'utiliser plusieurs \mark 
> au même moment, mais on n'était pas tous d'accord sur le fait que ce 
> soit la meilleure solution. Ce qui est une vraie question étant donné 
> que LilyPond essaie de fournir des commandes sémantiques (= What You 
> See Is What You Mean = j'utilise une commande dont le nom correspond à 
> ce que je veux faire), et RehearsalMark est prévu pour les repères qui 
> permettent aux musiciens de désigner un endroit dans la partition 
> facilement pendant les répétitions.
J'ai du mal à comprendre pourquoi \repeat Segno utilise un 
RehearsalMark. D'autant plus que les Segni sont très souvent situés à 
proximité d'un repère. Il faudrait à minima pouvoir donner un markup en 
argument et utiliser les valeurs par défaut en l'absence. Quelque chose 
du genre :
\repeat segno 2  ((markup1)(markup2)) {
     \alternative {
         \volta 1 (markup) { }
         \volta 2 (markup) { }
         \section
         \sectionLabel \markup
     }
}
Et interagir avec des overrides ou des tweaks pour la direction et 
l'alignement
Au fait, curiosité : derrière le volta 2 il y a \volta #'(). Quel usage 
peut-on en avoir ?

Pour revenir à ma mauvaise compréhension du fonctionnement des nouvelles 
répétition même Arnold Thesaurus (l'auteur de Polymark) semble aller 
dans le même sens :
> Many use cases of my poly-mark-engraver are now fulfilled by new 
> standard functionality in LILYPOND, e. g. \sectionLabel, \segnoMark, 
> \codaMark, \fine, \jump.

Anyway... le gros intérêt de \repeat segno est (imho) de pouvoir gérer 
correctement le midi. Comme je n'utilise pas cette fonctionnalité (*) un 
polymark me convient parfaitement. C'est juste que si quelqu'un lit mon 
code c'est plus difficile à comprendre.

(*) à propos du midi je devrais l'utiliser d'avantage pour vérifier ma 
saisie mais je n'ai pas besoin que les répétitions soient développées.

>> Du reste 2ème mauvaise nouvelle : en 2.22 on pouvait faire 
>> fonctionner ensembles un \mark et des \polymark, ce n'est plus 
>> possible en 2.23
oui, \mark ne tient plus compte d'un éventuel markup (ex: \mark \markup 
Intro] et convertit tout en repères A,B,C... Mais bon c'est pas grave, 
je n'utilise plus que \polymark et ça va bien.

Voilou, bonnes vacances

---

From: Jean Abou Samra <[email-masked]>
Date: Tue, 26 Jul 2022 12:56:32 +0200

> Le 26 juil. 2022 à 08:34, Vincent Gay <[email-masked]> a écrit :
> 
> 
> En fait les choses n'ont jamais été présentées précisément mais c'est comme ça que je les avais comprises. 
> 
>> Il y a eu des discussions entre développeurs à ce sujet, et pour tout dire j'ai soumis un patch qui aurait permis d'utiliser plusieurs \mark au même moment, mais on n'était pas tous d'accord sur le fait que ce soit la meilleure solution. Ce qui est une vraie question étant donné que LilyPond essaie de fournir des commandes sémantiques (= What You See Is What You Mean = j'utilise une commande dont le nom correspond à ce que je veux faire), et RehearsalMark est prévu pour les repères qui permettent aux musiciens de désigner un endroit dans la partition facilement pendant les répétitions. 
> J'ai du mal à comprendre pourquoi \repeat Segno utilise un RehearsalMark.

En fait, ce ne sont pas des RehearsalMarks, le signe segno et le signe coda (que tu remplaces par To Coda) sont respectivement un SegnoMark et un CodaMark, tandis que le DS al Fine est un JumpScript et le Coda, un SectionLabel. Par contre, on ne peut avoir que l’un des grobs SegnoMark, CodaMark et RehearsalMark à la fois. D’ailleurs, moi non plus, je ne comprends pas pourquoi cela a été fait comme ça. Il faudra que je pose la question.

Au fait, est-ce que tu peux t’en sortir avec un \sectionLabel au lieu de \mark ?

> D'autant plus que les Segni sont très souvent situés à proximité d'un repère. Il faudrait à minima pouvoir donner un markup en argument et utiliser les valeurs par défaut en l'absence. Quelque chose du genre :
> Et interagir avec des overrides ou des tweaks pour la direction et l'alignement
> Au fait, curiosité : derrière le volta 2 il y a \volta #'(). Quel usage peut-on en avoir ?

Il sert à supprimer cette partie si les répétitions sont expansées avec \unfoldRepeats (commande qui sert principalement au MIDI, mais peut s’utiliser en sortie graphique aussi). Si tu ne te sers pas de \unfoldRepeats, tu peux t’en passer.

> Pour revenir à ma mauvaise compréhension du fonctionnement des nouvelles répétition même Arnold Thesaurus (l'auteur de Polymark) semble aller dans le même sens :
>> Many use cases of my poly-mark-engraver are now fulfilled by new standard functionality in LILYPOND, e. g. \sectionLabel, \segnoMark, \codaMark, \fine, \jump.
> 
> Anyway... le gros intérêt de \repeat segno est (imho) de pouvoir gérer correctement le midi. Comme je n'utilise pas cette fonctionnalité (*) un polymark me convient parfaitement. C'est juste que si quelqu'un lit mon code c'est plus difficile à comprendre.
> 
> (*) à propos du midi je devrais l'utiliser d'avantage pour vérifier ma saisie mais je n'ai pas besoin que les répétitions soient développées.
> 
> oui, \mark ne tient plus compte d'un éventuel markup (ex: \mark \markup Intro] et convertit tout en repères A,B,C... Mais bon c'est pas grave, je n'utilise plus que \polymark et ça va bien.
> 

D’accord, je vois ce que c’est. Je m’en occuperai à mon retour.