Subject: \enablePolymeter effets de bord

From: Vincent Gay <[email-masked]>
Date: Tue, 26 Jul 2022 16:51:19 +0200

Sur le conseil de Jean (voir ci-dessous) j'ai mis \enablePolymeter dans 
mon layout. Victime collatérale, la portée DevNull qui me sert à 
formater toutes les parties. Plus exactement il n'est plus possible de 
définir les barres de mesures à ce niveau (ben oui, ça se comprend !)

voici un exemple

\version "2.23.10"
\include "lilyjazz.ily"

\layout { \enablePolymeter }

<<
   \new Devnull { s1*4 \bar ".." }
   \new Staff { \repeat unfold 4 { g'1 } }

résultat :

si je supprime le layout tout rentre dans l'ordre

J'ai essayé de le déplacer dans un bookpart voire un score, lily refuse
>
> Analyse...
>
> /tmp/frescobaldi-r3tdbpe_/tmpmkohmj4r/ReprisesAlternatives.ly:16:5: 
> Erreur : \paper est nécessaire pour définir les paramètres de la page
>
> \layout {
>

Merci d'avance pour toute solution

Un exemple complet
\version "2.23.10"

\book {
   \bookpart {
     <<
       \new Devnull { s1*4 \bar ".." }
       \new Staff { \repeat unfold 4 { g'1 } }
     >>
   }
   \bookpart {
     \layout {
       \enablePolymeter
       \context {
         \ChordGridScore
         \remove Volta_engraver
         \remove Staff_collecting_engraver
         startRepeatBarType = #"[|:"
         endRepeatBarType = #":|]"
         doubleRepeatBarType = #":|][|:"
         rehearsalMarkFormatter = #format-mark-box-letters
       }
       \context {
         \ChordGrid
         \consists Volta_engraver
         \consists Staff_collecting_engraver
       }
     }
     \new ChordGrid
     \chordmode {
       \bar "[|:"
       \repeat volta 2 {
         \repeat unfold 3 {  c1:7  }
         <<
           \alternative {
             \volta 1 { c1:7 }
           }
           \new ChordGrid {
             \alternative {
               \volta 2 { c1:7 \bar "||" }
             }
             \stopStaff  }
         >>
       }
       \break
       \repeat unfold 4 {  c1:7  }
} } }

Le 18/07/2022 à 13:55, Jean Abou Samra a écrit :

> Pour les rendre indépendantes, ce n'est pas le Bar_engraver qu'il faut
> déplacer, car le Bar_engraver est juste chargé de créer les barres
> de mesure, et comme il y a bien une barre de mesure pour chaque ligne
> de grille d'accords, il est déjà au niveau ChordGrid et pas ChordGridScore.
> Le graveur qui s'occupe de synchroniser les barres de mesure entre les
> portées est le Timing_translator. Tu peux donc t'en sortir avec un
> \remove Timing_translator dans le \context { \ChordGridScore ... }
> et \consists Timing_translator dans \context { \ChordGrid ... }.
> Il y a aussi l'astuce qui consiste à remarquer que rendre les portées
> indépendantes au niveau de la synchronisation temporelle, c'est aussi
> ce que l'on fait pour une partition polymétrique, et en 2.23.10, il
> y a une commande toute prête qui fait cela, \enablePolymeter. Ce qui
> donne :
>
>
> \version "2.23.10"
>
>
> \paper {
>    ragged-right = ##f
>    indent = 0
> }
>
> \layout {
>    \enablePolymeter
>    \context {
>      \ChordGridScore
>      \remove Volta_engraver
>      \remove Staff_collecting_engraver
>      startRepeatBarType = #"[|:"
>      endRepeatBarType = #":|]"
>      doubleRepeatBarType = #":|][|:"
>      rehearsalMarkFormatter = #format-mark-box-letters
>    }
>    \context {
>      \ChordGrid
>      \consists Volta_engraver
>      \consists Staff_collecting_engraver
>    }
> }

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

---

From: Jean Abou Samra <[email-masked]>
Date: Tue, 26 Jul 2022 17:19:22 +0200

> Le 26 juil. 2022 à 16:52, Vincent Gay <[email-masked]> a écrit :
> 
>  Sur le conseil de Jean (voir ci-dessous) j'ai mis \enablePolymeter dans mon layout. Victime collatérale, la portée DevNull qui me sert à formater toutes les parties. Plus exactement il n'est plus possible de définir les barres de mesures à ce niveau (ben oui, ça se comprend !)

Effectivement, ça se comprend, puisque c’est toute l’idée de \enablePolymeter… Bon, autre idée : et si tu remplaçais ton \bar "||" par

\once \override BarLine.glyph-left = "||"

Cela devrait te permettre de te passer de \enablePolymeter.

>> /tmp/frescobaldi-r3tdbpe_/tmpmkohmj4r/ReprisesAlternatives.ly:16:5: Erreur : \paper est nécessaire pour définir les paramètres de la page
>> \layout {
> 
> https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

---

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

Le 26/07/2022 à 17:19, Jean Abou Samra a écrit :
> Effectivement, ça se comprend, puisque c’est toute l’idée de 
> \enablePolymeter… Bon, autre idée : et si tu remplaçais ton \bar "||" par
>

Nop, ça ne marche pas.

2 solutions, soit mettre les barres de mesures dans chaque portées soit 
revenir à mes stopstaff / startstaff

Mais pourquoi ne puis-je pas mettre le layout uniquement dans le 
bookpart qui en a besoin ?

---

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

Je n'avais pas fais attention aux commentaire de Lily. Les voici :

> Avertissement : vérification du type de propriété pour « glyph-left » 
> (backend-type?) non trouvée Probable faute de frappe
>
> Avertissement : affectation ignorée
>

Le code (est-ce là qu'il fallait le mettre ? )

\version "2.23.10"
\include "jazzchords.ily"
\include "lilyjazz.ily"

\paper {
   ragged-right = ##f
   indent = 0
}

\layout {
   %\enablePolymeter
   \context {
     \ChordGridScore
     \remove Volta_engraver

\new ChordGrid \chordmode {
   \bar "[|:"
   \repeat volta 2 {
    \repeat unfold 3 {  c1:7  }
     <<
       \alternative {
         \volta 1 { c1:7 }
       }
       \new ChordGrid {
         \alternative {
           \volta 2 { c1:7 \once \override BarLine.glyph-left = "||" }
         }
      \stopStaff  }
     >>
   }
   \break
   \repeat unfold 4 {  c1:7  }

}

---

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

> Le 26 juil. 2022 à 17:58, Vincent Gay <[email-masked]> a écrit :
> 

Oups, glyph-left c’est du 2.23.11. Mets juste glyph en 2.23.10.

Il se peut aussi qu’il faille en fait faire

\overrideProperty Barline.glyph "||"

Pour le placement des layout, je n’ai pas trop compris le problème, tu aurais un exemple minimal ?

---

From: Vincent Gay <[email-masked]>
Date: Tue, 26 Jul 2022 18:46:42 +0200

> Oups, glyph-left c’est du 2.23.11. Mets juste glyph en 2.23.10.
Nop, sans effet (ni erreur)

> \overrideProperty Barline.glyph "||"

Nop
>
> /tmp/frescobaldi-r3tdbpe_/tmpv38mjmqm/ReprisesAlternatives.ly:38:62: 
> Erreur : chemin d'accès au « grob » erroné : (Barline glyph)
>
> \volta 2 { c1:7 \overrideProperty Barline.glyph "||
>
> " }
>

> Pour le placement des layout, je n’ai pas trop compris le problème, tu aurais un exemple minimal ?
Dans le 1er mail, avant la citation de ton message

Mais au fait t'es en vacance et en famille, y'a pas le feu au lac

---

From: Jean Abou Samra <[email-masked]>
Date: Tue, 26 Jul 2022 22:28:06 +0200

> Le 26 juil. 2022 à 19:12, Vincent Gay <[email-masked]> a écrit :
> 
> 
>> /tmp/frescobaldi-r3tdbpe_/tmpv38mjmqm/ReprisesAlternatives.ly:38:62: Erreur : chemin d'accès au « grob » erroné : (Barline glyph)

Peut-être

\overrideProperty ChordGrid.BarLine.glyph "||"

?

> Dans le 1er mail, avant la citation de ton message

Ah, désolé. Pour le \book et le \bookpart c’est normal, par contre tu as vraiment une erreur avec un layout dans le \score ? C’est la même ?

---

From: Jean Abou Samra <[email-masked]>
Date: Tue, 26 Jul 2022 22:50:04 +0200

>> \volta 2 { c1:7 \overrideProperty Barline.glyph "||

Pfff, c’est juste BarLine avec un L majuscule.

---

From: Vincent Gay <[email-masked]>
Date: Tue, 26 Jul 2022 23:07:09 +0200

Le 26/07/2022 à 22:28, Jean Abou Samra a écrit :
> Ah, désolé. Pour le \book et le \bookpart c’est normal, par contre tu 
> as vraiment une erreur avec un layout dans le \score ? C’est la même ?

Si, c'est bon. J'avais sans doute fait une erreur tout à l'heure en 
essayant. Donc voilà la bonne solution, merci.