Subject: Re: Grilles harmoniques, nouvelle version

From: Vincent Gay <[email-masked]>
Date: Sun, 17 Jul 2022 17:12:07 +0200

Le 27/06/2022 à 09:02, Jean Abou Samra a écrit :
>
>> Suggestion concernant le snippet avec un silence invisible : le lier 
>> avec \stopStaff  \startStaf dans le cadre d'une répétition avec 
>> alternatives

Bonjour Jean,

je viens de m'apercevoir que je n'avais jamais testé cette option qui me 
paraît pourtant très intéressante. Ce que je fais donc présentement.

questions :
- pourquoi la 2ème alternative se termine-t-elle par une barre de 
reprise, et surtout pourquoi je ne peux changer cette barre sans que 
cela ne change également la première ?
- Pourquoi un stopStaff est-il nécessaire à la fin de la seconde 
alternative (sinon cases vides). Cela n'est pas nécessaire dans une 
portée d'ossia ?
- À part pour ce cas particulier à quoi sert ChordGridScore ?

Mon test :

Mon code :
\version "2.23.10"
\include "jazzchords.ily"
\include "lilyjazz.ily"

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

\layout {
   \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 }
         }
      \stopStaff  }
     >>
   }
   \break
   % \bar "||" % ne fonctionne pas -> affecte les 2 alternatives
   \repeat unfold 4 {  c1:7  }

}

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

---

From: Vincent Gay <[email-masked]>
Date: Mon, 18 Jul 2022 09:57:20 +0200

> cela ne change également la première ?

J'ai essayé d'enlever Bar_engraver à ChordGridScore et de le mettre à 
ChordGrid ou à Staff, sans succès

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

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 18 Jul 2022 13:55:15 +0200

Le 17/07/2022 à 17:12, Vincent Gay a écrit :
> je viens de m'apercevoir que je n'avais jamais testé cette option qui 
> me paraît pourtant très intéressante. Ce que je fais donc présentement.
>
> questions :

C'est un problème de l'approche qui consiste à mettre l'alternative comme
une portée parallèle. En règle générale, les barres de mesure sont 
synchronisées
à travers l'ensemble des portées, comme tu peux le voir sur l'exemple

\version "2.23.10"

<<
   \new Staff { c'1 \bar "||" }
   \new Staff { c'1 }

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

\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  }

}

En fait, le \enablePolymeter est juste un raccourci pour le fait de
déplacer le Timing_translator.

> alternative (sinon cases vides). Cela n'est pas nécessaire dans une 

Là, je ne vois pas la raison à première vue, et je n'ai pas
cherché bien longtemps. Je suis assez occupé voire épuisé en ce
moment à cause de régressions de LilyPond qui prennent beaucoup de
temps à régler. Si tu le veux bien, rappelle-le moi dans deux
semaines environ.

> - À part pour ce cas particulier à quoi sert ChordGridScore ?

Tu veux dire, à quoi sert le fait d'avoir le contexte ChordGrid
dans un ChordGridScore au lieu qu'il soit simplement au plus
haut niveau comme il l'était dans mon brouillon initial ?
C'est ce qui permet ta notation des anticipations. C'est
aussi plus simple pour des raisons techniques, je ne rentrerai
pas dans les détails.

Bonne semaine !

Jean