Subject: Grilles harmoniques, nouvelle version

From: Jean Abou Samra <[email-masked]>
Date: Wed, 8 Jun 2022 00:17:02 +0200

Bonjour Vincent, bonjour tout le monde,

La fondue Lily m'a redonné de l'énergie pour continuer mon travail sur
les grilles d'accords. J'ai créé de nouvelles binaires de test pour
Linux avec la dernière mouture, disponibles ici :

http://abou-samra.fr/lilypond-2.23.10-linux-x86_64.tar.gz

Je t'invite à les tester comme tu sais très bien le faire. Par rapport à
la dernière fois, j'ai réglé des problèmes liés aux silences invisibles
ainsi que d'autres liés aux \stopStaff, harmonisé les épaisseurs de ligne,
évité que les diagonales ne dépassent du cadre, et fait quelques
ajustements mineurs. (Cela ne se voit pas dans les binaires, mais j'ai
aussi rajouté la documentation, ce qui nous rapproche d'une contribution
aboutie.)

Pour l'instant, je n'ai pas implémenté les anticipations. Est-ce que tu
t'es fixé sur un style de notation ? ;-)

Cordialement,
Jean

---

From: Vincent Gay <[email-masked]>
Date: Wed, 8 Jun 2022 11:00:58 +0000 (UTC)

> t'es fixé sur un style de notation ? ;-)
Je teste ça dès que j'ai un moment. Pour l'anticipation ce qui le conviendrait le mieux, mais je sais que ça pose problème, c'est la portée rythmique optionnelle juste dessus.

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 8 Jun 2022 13:54:24 +0200

> Je teste ça dès que j'ai un moment. Pour l'anticipation ce qui le conviendrait le mieux, mais je sais que ça pose problème, c'est la portée rythmique optionnelle juste dessus.

En fait, avec cette nouvelle version, c'est tout à fait faisable.
À ton avis, c'est suffisamment standard pour qu'il vaille
la peine de l'intégrer à LilyPond, ou bien il suffirait de
mettre la définition dans un fichier inclus ?

---

From: Vincent Gay <[email-masked]>
Date: Wed, 8 Jun 2022 14:52:41 +0200

> En fait, avec cette nouvelle version, c'est tout à fait faisable.
Ah ! Ça c'est une bonne nouvelle parce qu'en plus je trouve ça esthétique.

> mettre la définition dans un fichier inclus ?

Je ne sais pas trop répondre à ta question
1) c'est franco français
2) le succès de Ireal Pro <https://www.irealpro.com/> habitue
malheureusement les gens à quelque chose de moche et d'incomplet (voire
nuisible).
3) par contre on peut rêver pour une fois que belle et bonne solution
ait le succès qu'elle mérite.

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

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 8 Jun 2022 14:54:56 +0200

Le 08/06/2022 à 14:52, Vincent Gay a écrit :
> malheureusement les gens à quelque chose de moche et d'incomplet
> (voire nuisible).

Je crois qu'on ne s'est pas compris. Il est clair dans mon esprit que je
vais (bientôt, espérons) soumettre ChordGrid comme patch. Je parlais
juste spécifiquement de ta manière de noter les anticipations avec une
portée supplémentaire en \improvisationOn.

Cela dit, je regarder ça de manière un peu plus approfondie. Il se peut
que ce soit en fait facile.

---

From: nicolas lehembre <[email-masked]>
Date: Wed, 08 Jun 2022 16:56:13 +0200

Bonjour, pourrais je avoir un exemple du rendu s'il vous plaît ?
Nicolas

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 8 Jun 2022 18:04:14 +0200

> Bonjour, pourrais je avoir un exemple du rendu s'il vous plaît ?

Bonjour Nicolas,

Je joins une archive avec tous les tests de régression liés à ChordGrid,
en .ly et en .pdf. Cela donne un aperçu de tout ce qui est pris en charge.

Cordialement,
Jean

---

From: Nicolas Lehembre <[email-masked]>
Date: Wed, 8 Jun 2022 22:35:53 +0200

merci beaucoup !

N

Le 8/06/22 à 18:04, Jean Abou Samra a écrit :
> Je joins une archive avec tous les tests de régression liés à
> ChordGrid, en .ly et en .pdf. Cela donne un aperçu de tout ce qui est
> pris en charge.
>
> Cordialement,
> Jean
>

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 8 Jun 2022 23:06:51 +0200

> Ah ! Ça c'est une bonne nouvelle parce qu'en plus je trouve ça esthétique.

Déjà, avec l'implémentation actuelle, on peut faire :

\version "2.23.10"

accords = \chordmode {
   g2:7+ bes4:m7 ees:7
   \repeat percent 2 {
     a2:m7 b2:7.11+
   }
   e4:m7 e4:m7/d a4:7/cis c4:m7
}

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

\defineBarLine "|-|" #'("|" "|" "|")

\new ChordGridScore \with {
   measureBarType = "|-|"
   \remove System_start_delimiter_engraver
}
<<
   \new RhythmicStaff \with {
     \improvisationOn
     \override StaffSymbol.line-count = 0
     \remove Time_signature_engraver
     \remove Bar_engraver
   }
   { c2 4 8 8~ 2 4. 8~ 2 4 8 8~ 2 4. 8 }
   \new ChordGrid { \bar "|-|" \accords }

Ça a le mérite de fonctionner. Par contre, il faut écrire
le rythme séparément, puisque les anticipations perturberaient
la division des cases. Il faut que je réfléchisse à une manière
de les détecter et de les ignorer. C'est aussi un peu dommage
d'avoir à jongler avec les barres de mesure. Encore une fois,
je vais essayer de voir ce que je peux faire à ce niveau-là.

Cordialement,
Jean

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 17:56:15 +0200

premier test avec Lilyjazz (code ci-dessous)

Mes remarques/questions en vrac

  * malgré rehearsalMarkFormatter = #format-mark-box-letters dans le
    \layout du context \Score il faut que je mette \set
    Score.rehearsalMarkFormatter = #format-mark-box-letters dans mon
    code sinon ça ne marche pas. Pourquoi ?
  * malgré startRepeatType = #"[|:"   endRepeatType = #":|]"
    et doubleRepeatType = #":|][|:" dans le \layout du context \Score ma
    barre de reprise n'a pas de crochet. Pourquoi ? Si je tente un \set
    Score.endRepeatType = #":|]" Lily me jette avec l'avertissement
    :vérification du type de propriété pour « endRepeatType »
    (translation-type?) non trouvée Probable faute de frappe
  * peut-on régler le positionnement des accords dans leur cellules ? Je
    trouve les accords B♭m7 es A7/C♯ trop hauts et l'accord Em7/D trop
    bas (particulièrement avec LilyJazz).
      o Si j'essaie de réduire la taille de la police par \override
        ChordName.font-size = #-1 pour leur donner plus d'espace ça ne
        marche pas. Ce serait de toute manière une mauvaise solution
        pour le cas général mais pourrait convenir pour un nom d'accord
        particulièrement long.
      o Si je diminue le global staff size la hauteur des cases diminue
        en même temps. Logique mais dommage :(
  * Je trouve la taille des parenthèses trop petite. Je tente de les
    modifier sans succès avec \override ParenthesesItem.font-size (
    Erreur : chemin erroné d'accès à la propriété de « grob » \override
    ParenthesesItem.font-size = #2 ). BTW la page
    https://lilypond.org/doc/v2.23/Documentation/internals/parenthesesitem
    n'existe pas !

Voilou ! C'est tout pour l'instant
Le code
%----------------------
\version "2.23.10"
#(set-global-staff-size 18)
\include "jazzchords.ily"
\include "lilyjazz.ily"

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

\layout {
   \context {
     \Score
     startRepeatBarType = #"[|:"
     endRepeatBarType = #":|]"
     doubleRepeatBarType = #":|][|:"
     rehearsalMarkFormatter = #format-mark-box-letters
   }
   \context {
     \ChordNames
     \override ChordNames.ParenthesesItem.font-size = #2
   }}

accords = \chordmode {
   \bar "[|:" \mark #1
   \set Score.rehearsalMarkFormatter = #format-mark-box-letters
   %\override ParenthesesItem.font-size = #2
  \override ChordName.font-size = #-1
   \repeat volta 2 {
     g2:7+ bes4:m7 ees:7
     \repeat percent 2 {
       \parenthesize a2:m7 b2:7.11+
     }
     e4:m7 e4:m7/d a4:7/cis c4:m7 }
}

\score {
   <<
   \override ChordName.font-size = #-1
}
%-------------------------

---

From: Nicolas Lehembre <[email-masked]>
Date: Thu, 9 Jun 2022 21:07:47 +0200

c'est VRAIMENT beaucoup mieux que Ireal pro, super boulot !!

Nicolas

Le 9/06/22 à 17:56, Vincent Gay a écrit :
>     et doubleRepeatType = #":|][|:" dans le \layout du context \Score
>     ma barre de reprise n'a pas de crochet. Pourquoi ? Si je tente un
>     \set Score.endRepeatType = #":|]" Lily me jette avec
>     l'avertissement :vérification du type de propriété pour
>     « endRepeatType » (translation-type?) non trouvée Probable faute
>     de frappe
>   * peut-on régler le positionnement des accords dans leur cellules ?
>     Je trouve les accords B♭m7 es A7/C♯ trop hauts et l'accord Em7/D
>     trop bas (particulièrement avec LilyJazz).
>         pour le cas général mais pourrait convenir pour un nom
>         d'accord particulièrement long.
>       o Si je diminue le global staff size la hauteur des cases
>         diminue en même temps. Logique mais dommage :(
>     Erreur : chemin erroné d'accès à la propriété de « grob »
>     \override ParenthesesItem.font-size = #2 ). BTW la page

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 9 Jun 2022 20:44:12 +0200

Bonsoir Vincent,

>     code sinon ça ne marche pas. Pourquoi ?

C'est un problème entre la chaise et le clavier :-) Mais il est
naturel puisque j'ai oublié de mentionner ce détail.

Les grilles d'accord sont en notation proportionnelle. Pour cette raison,
elles ne peuvent pas utiliser le contexte Score normal, qui a une
notation non-proportionnelle. Au lieu de vivre dans un Score,
ChordGrid vit dans un ChordGridScore, qui est un contexte semblable
à Score mais avec notation proportionnelle (et aussi sans numéros de
mesure). Par conséquent, pour les rehearsalMarkFormatter et autres, il
faut se placer dans \context { \ChordGridScore ... } et non pas dans
\context { \Score ... }.

Et pourquoi ça marche avec \set Score.rehearsalMarkFormatter ? Parce
que ChordGridScore contient la commande \alias Score, ce qui fait
qu'un contexte ChordGridScore accepte toutes les commandes conçues
au départ pour Score, comme les \set Score.xxx ou
\override Score.Xxx.xxx.

>   * malgré startRepeatType = #"[|:"   endRepeatType = #":|]" et
>      doubleRepeatType = #":|][|:" dans le \layout du context \Score ma
>     barre de reprise n'a pas de crochet. Pourquoi ? Si je tente un

D'une part, il faut le mettre dans \context { \ChordGridScore ... }
comme expliqué juste au-dessus. D'autre part, il y a eu une
harmonisation dans les noms des propriétés en 2.23 pour éviter
que les gens ne se cassent la tête à se rappeler s'il faut
mettre ...Type ou ...BarType. Toutes les propriétés de cette
famille s'appellent maintenant ...BarType (par exemple endRepeatBarType).
Avec convert-ly, la mise à jour se fait en 10 secondes.

>     trop bas (particulièrement avec LilyJazz).

C'est possible. Je joins le bout de documentation que j'ai écrit,
qui contient un snippet montrant comment le faire. (C'est en anglais,
mais tu peux juste copier le snippet si tu ne comprends pas.)

Par ailleurs, si tu me donnes les valeurs que tu mets dans
measure-division-chord-placement-alist, j'en ferai les nouvelles
valeurs par défaut. Bien sûr, il faut que tu les ajustes avec
la police par défaut ; pour LilyJAZZ, il faudrait que tu mettes
le \override ChordSquare.measure-division-chord-placement-alist
dans le fichier lilyjazz.ily.

>         d'accord particulièrement long.

Je ne saisis pas la dernière phrase. En quel sens serait-ce
une mauvaise solution ?

Les noms des accords à l'intérieur des grilles d'accord sont
relativement différents des noms d'accords normaux, donc je
leur ai créé un grob à part, qui s'appelle GridChordName
au lieu de ChordName. Tu peux faire
\override GridChordName.font-size = #-1

>         diminue en même temps. Logique mais dommage :(

Oh, pourquoi dommage ? J'avais bien pris soin d'ajouter des
tests pour être sûr que ça marche…

>   * Je trouve la taille des parenthèses trop petite.
>

Oui, c'est un problème connu. Elles ne s'ajustent pas très
bien. Il faut souvent les ajuster manuellement.

>   * Je tente de les modifier sans succès avec \override
>     ParenthesesItem.font-size ( Erreur : chemin erroné d'accès à la
>     propriété de « grob » \override ParenthesesItem.font-size = #2 ).
>     BTW la page

C'est normal. En 2.23, ton dévoué serviteur s'est arrangé
pour que \parenthesize puisse désormais s'appliquer à des
bandeaux (spanners) et non plus uniquement à des objets
ponctuels (items). Voilà le genre de chose qu'on peut maintenant
faire alors que cela ne marche pas en 2.22 :

\version "2.23.9"

{
   c'1\parenthesize \< \parenthesize ~ \parenthesize \startTrillSpan
   c'1\!\stopTrillSpan
}

Ce changement a eu une conséquence malheureuse : alors qu'auparavant
les parenthèses étaient toujours un objet ponctuel (item), elles
peuvent maintenant être étendues (spanner). Le nom ParenthesesItem
n'avait plus de sens. J'ai dû renommer l'objet en simplement Parentheses.

Ici encore, convert-ly fait la modification pour toi en 10 secondes.

Merci pour tous tes retours !

Cordialement,
Jean

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 21:28:58 +0200

> Ici encore, convert-ly fait la modification pour toi en 10 secondes.

Nop. C'est la première chose que j'ai faite quand j'ai vu qu'il y avait
des trucs qui ne fonctionnaient pas comme je voulais.

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 9 Jun 2022 21:48:01 +0200

Le 09/06/2022 à 21:28, Vincent Gay a écrit :
> Nop. C'est la première chose que j'ai faite quand j'ai vu qu'il y
> avait des trucs qui ne fonctionnaient pas comme je voulais.

Pour moi, ça fonctionne. Qu'est-ce que tu vois dans l'onglet «
Changements » ?

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 22:30:31 +0200

> tests pour être sûr que ça marche…

C'eut été une manière simple d'aérer des cases trop remplies. Mais c'est
pas grave.

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 22:31:38 +0200

Pfff... J'ai du oublier de cliquer sur OK. Bizarrement quand j'appelle
la fonction avec le menu Frescobaldi tout apparaît en grisé et seul le
bouton exécuter à nouveau est actif. J'ai donc pensé que cliquer dessus
faisait le job mais il fallait aussi cliquer sur OK.

Donc ceci fonctionne. Par contre le copié collé de

\new ChordGrid \with {
\override ChordSquare.measure-division-lines-alist =
#’(((1) . ())
((1/3 1/3 1/3) . ((-1 -0.4 0 1) (0 -1 1 0.4))))
\override ChordSquare.measure-division-chord-placement-alist =
#’(((1) . ((0 . 0)))
((1/3 1/3 1/3) . ((-0.7 . 0.5) (0 . 0) (0.7 . -0.5))))
}

me donne l'erreur suivante

Traitement de « /tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly »

Analyse...

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:53:2: Erreur : GUILE a
signalé une erreur pour l'expression débutant ici

#

’(((1) . ())

Unbound variable: #{\x2019;}#

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:53:3: Erreur : syntax
error, unexpected EVENT_IDENTIFIER

#’

(((1) . ())

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:53:9: Erreur : syntax
error, unexpected '.'

#’(((1)

. ())

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:3: Erreur : syntax
error, unexpected FRACTION

((

1/3 1/3 1/3) . ((-1 -0.4 0 1) (0 -1 1 0.4))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:24: Erreur : syntax
error, unexpected REAL

((1/3 1/3 1/3) . ((-1 -

0.4 0 1) (0 -1 1 0.4))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:28: Erreur : ceci
n'est pas une durée

((1/3 1/3 1/3) . ((-1 -0.4

0 1) (0 -1 1 0.4))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:34: Erreur : ceci
n'est pas une durée

((1/3 1/3 1/3) . ((-1 -0.4 0 1) (

0 -1 1 0.4))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:41: Erreur : syntax
error, unexpected REAL

((1/3 1/3 1/3) . ((-1 -0.4 0 1) (0 -1 1

0.4))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:56:2: Erreur : GUILE a
signalé une erreur pour l'expression débutant ici

#

’(((1) . ((0 . 0)))

Unbound variable: #{\x2019;}#

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:56:9: Erreur : syntax
error, unexpected '.'

#’(((1)

. ((0 . 0)))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:56:13: Erreur : ceci
n'est pas une durée

#’(((1) . ((

0 . 0)))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:56:17: Erreur : ceci
n'est pas une durée

#’(((1) . ((0 .

0)))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:3: Erreur : syntax
error, unexpected FRACTION

((

1/3 1/3 1/3) . ((-0.7 . 0.5) (0 . 0) (0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:21: Erreur : syntax
error, unexpected REAL

((1/3 1/3 1/3) . ((-

0.7 . 0.5) (0 . 0) (0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:33: Erreur : ceci
n'est pas une durée

((1/3 1/3 1/3) . ((-0.7 . 0.5) (

0 . 0) (0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:37: Erreur : ceci
n'est pas une durée

((1/3 1/3 1/3) . ((-0.7 . 0.5) (0 .

0) (0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:41: Erreur : syntax
error, unexpected REAL

((1/3 1/3 1/3) . ((-0.7 . 0.5) (0 . 0) (

0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:58:1: Erreur : syntax
error, unexpected '}'

}

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:53:3: Avertissement :
SlurEvent non attaché

#’

(((1) . ())

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:53:11: Avertissement :
SlurEvent non attaché

#’(((1) .

())

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:14: Avertissement :
SlurEvent non attaché

((1/3 1/3 1/3

) . ((-1 -0.4 0 1) (0 -1 1 0.4))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:18: Avertissement :
SlurEvent non attaché

((1/3 1/3 1/3) .

((-1 -0.4 0 1) (0 -1 1 0.4))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:54:44: Avertissement :
SlurEvent non attaché

((1/3 1/3 1/3) . ((-1 -0.4 0 1) (0 -1 1 0.4

))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:56:3: Avertissement :
SlurEvent non attaché

#’

(((1) . ((0 . 0)))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:56:11: Avertissement :
SlurEvent non attaché

#’(((1) .

((0 . 0)))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:14: Avertissement :
SlurEvent non attaché

((1/3 1/3 1/3

) . ((-0.7 . 0.5) (0 . 0) (0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:18: Avertissement :
SlurEvent non attaché

((1/3 1/3 1/3) .

((-0.7 . 0.5) (0 . 0) (0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:30: Avertissement :
SlurEvent non attaché

((1/3 1/3 1/3) . ((-0.7 . 0.5

) (0 . 0) (0.7 . -0.5))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:57:51: Avertissement :
SlurEvent non attaché

((1/3 1/3 1/3) . ((-0.7 . 0.5) (0 . 0) (0.7 . -0.5

))))

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:67:3: Erreur : Fichier
principal non fini

%}

/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:38:1: Erreur : suite à
des erreurs répétées, l'expression musicale sera ignorée

erreur fatale : erreur sur les fichiers
"/tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly"

Arrêté avec le code de retour 1.

Mon code :

\new ChordGridScore \with {
   measureBarType = "|-|"
   \remove System_start_delimiter_engraver
}
<<
   \new RhythmicStaff \with {
     \improvisationOn
     \override StaffSymbol.line-count = 0
     \remove Time_signature_engraver
     \remove Bar_engraver
   }
   { c2 4 8 8~ 2 4. 8~ 2 4 8 8~ 2 4. 8 }
\new ChordGrid \with {
\override ChordSquare.measure-division-lines-alist =
#’(((1) . ())
((1/3 1/3 1/3) . ((-1 -0.4 0 1) (0 -1 1 0.4))))
\override ChordSquare.measure-division-chord-placement-alist =
#’(((1) . ((0 . 0)))
((1/3 1/3 1/3) . ((-0.7 . 0.5) (0 . 0) (0.7 . -0.5))))
}
   { \bar "|-|" \accords }

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 9 Jun 2022 22:37:16 +0200

Le 09/06/2022 à 22:31, Vincent Gay a écrit :
> bouton exécuter à nouveau est actif. J'ai donc pensé que cliquer
> dessus faisait le job mais il fallait aussi cliquer sur OK.
>
> /tmp/frescobaldi-tvis_hje/tmpclxvhmrq/document.ly:53:2: Erreur : GUILE
> a signalé une erreur pour l'expression débutant ici
>
> #
>
> ’(((1) . ())
>

Ah, c'est un problème de la documentation PDF, qui en train
d'être réglé en ce moment même par
https://gitlab.com/lilypond/lilypond/-/merge_requests/1398. Les
apostrophes « ' » s'affichent comme des apostrophes typographiques
« ’ », ce qui n'est pas de la syntaxe Scheme valide. Essaie
de les remplacer par des apostrophes normales.

Par ailleurs, il te manque un morceau du code, par exemple
le \defineBarLine.

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 22:39:58 +0200

Le 08/06/2022 à 14:54, Jean Abou Samra a écrit :
> Je crois qu'on ne s'est pas compris. Il est clair dans mon esprit que
> je vais (bientôt, espérons) soumettre ChordGrid comme patch. Je
> parlais juste spécifiquement de ta manière de noter les anticipations
> avec une portée supplémentaire en \improvisationOn.
OK je n'avais effectivement pas compris. Donc la réponse est non, ce
n'est pas du tout standard. Dans la vraie vie les musiciens que j'ai vu
pratiquer ces grilles savent quand et comment anticiper les accords en
fonction du style et de la mélodie. Il se trouve que je travaille bien
plus souvent avec des musiciens amateurs (voire débutant) qu'avec des
professionnels. Donc cette portée supplémentaire n'est qu'une adaptation
à ChordGrid de ce que l'on trouve fréquemment au dessus (ou en dessous)
d'une portée ordinaire dans les Realbooks ou assimilés.

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

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 9 Jun 2022 22:40:35 +0200

Le 09/06/2022 à 22:30, Vincent Gay a écrit :
> C'eut été une manière simple d'aérer des cases trop remplies. Mais
> c'est pas grave.

Et le \override GridChordName.font-size ne te plaît pas ? Moi, en tous
cas, ça me paraît plus logique que #(global-set-staff-size ...) change
la taille des cases. (D'ailleurs, en l'état, ce serait compliqué à
implémenter.)

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 22:47:06 +0200

> la taille des cases. (D'ailleurs, en l'état, ce serait compliqué à

Si, si, ça va le faire. Mais en ce moment je me concentre sur le
placement des accords et avec ma petite cervelle ça va doucement

Après correction de l'apostrophe j'en suis à

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/2)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/2)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/2)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/2 1/2)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-chord-placement-alist for
measure division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-lines-alist for measure
division (1/2 1/4 1/4)

Avertissement : no entry in measure-division-lines-alist for measure
division (1/4 1/4 1/4 1/4)

Avertissement : no entry in measure-division-lines-alist for measure
division (1/2 1/2)

Cela veut dire que je dois faire un override pour tous les cas de figure
? Où puis-je trouver les valeurs par défaut actuelles ?

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 9 Jun 2022 22:52:05 +0200

Le 09/06/2022 à 22:47, Vincent Gay a écrit :
>> Et le \override GridChordName.font-size ne te plaît pas ? Moi, en
>> tous cas, ça me paraît plus logique que #(global-set-staff-size ...)
>> change la taille des cases. (D'ailleurs, en l'état, ce serait
>> compliqué à implémenter.)
>
> Cela veut dire que je dois faire un override pour tous les cas de figure ?

Eh oui, la propriété contient toutes les configurations.

> Où puis-je trouver les valeurs par défaut actuelles ?

Les voici. À terme, ce sera dans la référence des propriétés internes
(le manuel « Internals »).

measure-division-lines-alist :

  #'(((1) . ())
     ((1/2 1/2) . ((-1 -1 1 1)))
     ((1/2 1/4 1/4) . ((-1 -1 1 1) (0 0 1 -1)))
     ((1/4 1/4 1/2) . ((-1 -1 1 1) (-1 1 0 0)))
     ((1/4 1/4 1/4 1/4) . ((-1 -1 1 1) (-1 1 1 -1)))
     ((1/4 3/4) . ((-1 -1 0 0) (-1 1 0 0)))
     ((3/4 1/4) . ((0 0 1 -1) (0 0 1 1))))

measure-division-chord-placement-alist :

  #'(((1) . ((0 . 0)))
     ((1/2 1/2) . ((-0.4 . 0.4) (0.4 . -0.4)))
     ((1/2 1/4 1/4) . ((-0.4 . 0.4) (0 . -0.55) (0.63 . 0)))
     ((1/4 1/4 1/2) . ((-0.63 . 0) (0 . 0.6) (0.4 . -0.4)))
     ((1/4 1/4 1/4 1/4) . ((-0.63 . 0) (0 . 0.6) (0 . -0.55) (0.63 . 0)))
     ((1/4 3/4) . ((-0.63 . 0) (0.38 . 0)))
     ((3/4 1/4) . ((-0.38 . 0) (0.63 . 0))))

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 23:28:44 +0200

Test de répétition avec alternatives. Nickel...

Sauf que ça laisse apparaître un petit truc bizarre... Le Δ symbolisant
l'accord M7 dans mon jazzchords.ily n'est pas tracé dans la bonne police
ni au bon endroit. À comparer en dessous avec un ChordNames

Mon code :

\version "2.23.10"

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

\layout {
   \context {
     \Score
   }
   \context {
     \ChordGridScore

accords = \chordmode {
   \bar "[|:"
   \repeat unfold 3 { c1:7+ } \set Score.repeatCommands = #'((volta
"1.") ) d2:m7 g:7 \break
   \set Score.repeatCommands = #'((volta #f)  end-repeat)
   \stopStaff
   s1*3 \startStaff \set Score.repeatCommands = #'((volta "2.") ) f1:7+
   \set Score.repeatCommands = #'((volta #f))
   \bar ".."
}

\new ChordGridScore \with {
   measureBarType = "|-|"
   \remove System_start_delimiter_engraver
}
<< \new ChordGrid { \bar "|-|" \accords } >>

\new Score {
   <<
   \new ChordNames \chordmode { c1:7+ }
   \new Staff { c''1}
   >>
}

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 23:53:35 +0200

Résultat :

\with {
\override ChordSquare.measure-division-chord-placement-alist =
#'(((1) . ((0 . 0)))
     ((1/2 1/2) . ((-0.4 . 0.4) (0.4 . -0.4)))
     ((1/2 1/4 1/4) . ((-0.4 . 0.4) (0 . -0.65) (0.63 . 0)))
     ((1/4 1/4 1/2) . ((-0.63 . 0) (0 . 0.65) (0.4 . -0.4)))
     ((1/4 1/4 1/4 1/4) . ((-0.63 . 0) (0 . 0.7) (0 . -0.65) (0.63 . 0)))
     ((1/4 3/4) . ((-0.63 . 0) (0.38 . 0)))
     ((3/4 1/4) . ((-0.38 . 0) (0.63 . 0))))
}

Ça ne bouge que de 0.05

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 9 Jun 2022 23:54:22 +0200

Le 09/06/2022 à 23:28, Vincent Gay a écrit :
> Sauf que ça laisse apparaître un petit truc bizarre... Le Δ
> symbolisant l'accord M7 dans mon jazzchords.ily n'est pas tracé dans
> la bonne police ni au bon endroit. À comparer en dessous avec un
> ChordNames

Pour moi, l'accord s'affiche avec M7 au lieu du triangle. Qu'est-ce que
tu as dans ton jazzchords.ily ? Je parie qu'il y a quelque chose comme

\layout {
   \context {
     \ChordNames
     \override ChordName.truc = machin
   }
}

dans quoi il faut rajouter

\context {
   \ChordGrid
   \override GridChordName.truc = machin
}

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 9 Jun 2022 23:57:45 +0200

> \override ChordSquare.measure-division-chord-placement-alist =

OK, merci, j'intègre ça.

---

From: Vincent Gay <[email-masked]>
Date: Thu, 9 Jun 2022 21:58:41 +0000 (UTC)

>   \override GridChordName.truc = machin
Yep, nickel

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 10 Jun 2022 00:00:53 +0200

Le 09/06/2022 à 23:54, Jean Abou Samra a écrit :
> Pour moi, l'accord s'affiche avec M7 au lieu du triangle. Qu'est-ce
> que tu as dans ton jazzchords.ily ? Je parie qu'il y a quelque chose
> comme
>
> \layout {
>   \context {
>     \ChordNames

Au fait, j'anticipe un souci potentiel : cela rendra ton fichier
jazzchords.ily incompatible avec 2.22, puisque le contexte ChordGrid n'y
est pas défini. Il est possible d'y remédier avec cette syntaxe :

\layout {
   $(if (ly:version? >= '(2 23 10))
        #{
           \context {
             \ChordGrid
             \override GridChordName.color = red
           }
        #})
}

Cela ajoute le bloc \context si et seulement si la version de LilyPond
en train d'être exécutée est supérieure à 2.23.10.

---

From: Vincent Gay <[email-masked]>
Date: Fri, 10 Jun 2022 09:30:50 +0200

Petit soucis avec les barres de mesures en début de lignes :

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

\layout {
   \context {
     \ChordGridScore

accords = \chordmode {
   \bar "[|:"
   \repeat volta 2 { \repeat unfold 3 c1:7+ c2:m7 f:7 } \break
    \repeat unfold 3 bes1:7+ bes2:m7 es:7 \break \bar "||"
    \repeat unfold 4 as1:7+
   \bar ".."
}

Il faut donc rajouter :
\defineBarLine "||-|" #'("||" "|" "|")
\defineBarLine ":|]-|" #'(":|]" "|" "|")

et modifier accords ainsi :
accords = \chordmode {
   \bar "[|:"
   \repeat volta 2 { \repeat unfold 3 c1:7+ c2:m7 f:7 } \break \bar ":|]-|"
    \repeat unfold 3 bes1:7+ bes2:m7 es:7 \break \bar "||-|"
    \repeat unfold 4 as1:7+
   \bar ".."
}

Quand on le sait c'est pas un souci mais si les choses restent en
l'état  il faudra bien l'expliquer.

---

From: Vincent Gay <[email-masked]>
Date: Fri, 10 Jun 2022 09:59:59 +0200

On peut faire des trucs avec 😁

\version "2.23.10"

\paper {
   indent = 0
   ragged-right = ##f
     system-system-spacing = #'((basic-distance . 0)
                              (minimum-distance . 0)
                              (padding . 0))
}

accords = \chordmode {
c1 g
\once \override Score.RehearsalMark.extra-offset = #'(0 . -30)
  \mark \markup \concat { \fontsize #4 "⭯ " \raise #0.5  "Quartes -
Quintes" \fontsize #4 " ⭮" }
d a \break
f \stopStaff s s \startStaff e \break
bes \stopStaff s s \startStaff b \break
es as des2 cis fis1
\once \override Score.RehearsalMark #'direction = #DOWN

}

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 10 Jun 2022 22:56:55 +0200

> << \new ChordGrid { \bar "|-|" \accords } >>

Pas mal, bravo ! Je n'y aurais jamais pensé. Après, c'est un choix de
le présenter comme carré ou bien c'était juste pratique ? Car
on peut aussi le présenter en cercle, peut-être plus logique :

\version "2.22.2"

#(use-modules (ice-9 match))
#(define-markup-command (in-circle layout props small-radius
large-radius mkups)
    (number? number? markup-list?)
    #:properties ((thickness 0.1)
                  (start 0)
                  (towards-outer-factor 1/2))
    (apply ly:stencil-add
           (make-circle-stencil small-radius thickness #f)
           (make-circle-stencil large-radius thickness #f)
           (let* ((n (length mkups))
                  (increment (/ 360 n)))
             (map
              (lambda (i txt)
                 (match-let*
                       ((ang (+ start (* -1 i increment)))
                       ((x-start . y-start) (ly:directed ang small-radius))
                       ((x-end . y-end) (ly:directed ang large-radius)))
                (ly:stencil-add
                 (make-line-stencil thickness x-start y-start x-end y-end)
                 (ly:stencil-translate
                  (centered-stencil
                    (interpret-markup layout props txt))
                   (ly:directed (+ ang (* 1/2 increment))
                                (interval-index (cons small-radius
large-radius)
                                                (1- (* 2
towards-outer-factor))))))))
              (iota n)
              mkups))))

\markup \general-align #X #LEFT \overlay {
   % Facultatif
   \override #'((thickness . 0.2)
                (start . 75)
                (towards-outer-factor . 0.55))
   \in-circle #10 #20 {
     C
     G
     D
     A
     E
     B
     \concat { F \sharp }
     \concat { D \flat / C \sharp }
     \concat { A \flat }
     \concat { E \flat }
     \concat { B \flat }
     F
   }
   \general-align #X #CENTER
   \general-align #Y #CENTER
   \override #'(baseline-skip . 5)
   \column {
     \line { \fontsize #4 "⭯" \raise #0.5  "Quartes" }
     \line { \fontsize #4 "⭮" Quintes }
   }
}

---

From: Vincent Gay <[email-masked]>
Date: Sat, 11 Jun 2022 09:09:07 +0200

Le 10/06/2022 à 22:56, Jean Abou Samra a écrit :
> Après, c'est un choix de

Magnifique. Mais qui à part toi (et tes confrères développeurs) peut
faire ça ?

---

From: Jean Abou Samra <[email-masked]>
Date: Sat, 11 Jun 2022 15:44:52 +0200

> Magnifique. Mais qui à part toi (et tes confrères développeurs) peut

Sur la liste anglophone, quelques uns tout de même. Et puis, sans rien y
connaître à Scheme, on peut toujours construire à la main la figure à
coups de \draw-circle, \draw-line, \rotate et \general-align :-)

---

From: Jean Abou Samra <[email-masked]>
Date: Tue, 14 Jun 2022 00:19:37 +0200

Hello,

Voici la… combientième mouture, déjà ? L'archive est toujours ici :

Le principal ajustement est que je me suis débarassé du problème des
\defineBarLine en déplaçant juste le System_start_delimiter_engraver au
niveau de ChordGrid. C'est relativement inélégant, mais faire autrement
représente un travail conséquent.

J'ai aussi mis à jour le placement par défaut des accords avec ce que tu
(Vincent) m'as fourni.

Par ailleurs, j'ai commencé à bosser sur les anticipations. Mon idée
actuelle serait de les détecter et de les « corriger » (en déplaçant
l'accord sur le temps s'il est à contretemps). Néanmoins, le patch étant
déjà suffisamment imposant comme cela, je préfère en faire un autre
patch. Pour l'instant, je me concentre sur ce qui est déjà implémenté.

Est-ce qu'il reste quelque chose à voir ? De mon point de vue, c'est à
peu près prêt à partir en relecture.

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Wed, 15 Jun 2022 21:49:10 +0200

> peu près prêt à partir en relecture.

Allez, je me suis décidé à soumettre le patch.

https://gitlab.com/lilypond/lilypond/-/merge_requests/1412

On peut toujours ajuster pendant la phase de relecture (c'est même plus
ou moins le but).

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 20 Jun 2022 08:03:30 +0200

Le 15/06/2022 à 21:49, Jean Abou Samra a écrit :
>> Est-ce qu'il reste quelque chose à voir ? De mon point de vue, c'est
>> à peu près prêt à partir en relecture.
>
> On peut toujours ajuster pendant la phase de relecture (c'est même
> plus ou moins le but).

Voilà, le patch a terminé son chemin dans le processus de relecture et
est maintenant fusionné. En clair, il apparaîtra dans la prochaine
version instable.

Merci beaucoup à Vincent et aux autres qui m'ont fait leurs retours,
rien n'aurait été possible sans cela.

Santé !

Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 26 Jun 2022 17:55:56 +0200

> est maintenant fusionné. En clair, il apparaîtra dans la prochaine

… Version instable qui vient d'être publiée. Les téléchargements sont
toujours ici :

https://lilypond.org/development.fr.html

Et la documentation de ChordGrid est par ici :

https://lilypond.org/doc/v2.23/Documentation/notation/displaying-chords.html#chord-grids

(Étant très récente, elle n'est pas encore traduite.)

Cordialement,
Jean

---

From: Vincent Gay <[email-masked]>
Date: Sun, 26 Jun 2022 19:47:54 +0200

> (Étant très récente, elle n'est pas encore traduite.)

Bravo Jean et merci. Désolé de ne pas avoir testé récemment... il se
trouve que j'ai choppé le covid et que ça m'a mis un peu à plat. Je
commence à remonter la pente.

Suggestion concernant le snippet avec un silence invisible : le lier
avec \stopStaff  \startStaf dans le cadre d'une répétition avec alternatives

---

From: Jacques Menu <[email-masked]>
Date: Sun, 26 Jun 2022 21:49:45 +0200

Salut Jean,

Pourrais-tu ajouter cette autre possibilité de présentation, dans laquelle la lecture se fait linérairement de gauche à droite?

Merci si tu peux!

JM

> Le 26 juin 2022 à 19:47, Vincent Gay <[email-masked]> a écrit :
> 
>> … Version instable qui vient d'être publiée. Les téléchargements sont toujours ici :
>> 
> Bravo Jean et merci. Désolé de ne pas avoir testé récemment... il se trouve que j'ai choppé le covid et que ça m'a mis un peu à plat. Je commence à remonter la pente.
> 
> Suggestion concernant le snippet avec un silence invisible : le lier avec \stopStaff  \startStaf dans le cadre d'une répétition avec alternatives
> 
> 
> -- 
> Vincent Gay
> https://myrealbook.vintherine.org/ <https://myrealbook.vintherine.org/> - http://photos.vintherine.org/ <http://photos.vintherine.org/>

---

From: Jacques Menu <[email-masked]>
Date: Sun, 26 Jun 2022 21:52:52 +0200

Par exemple avec un \linearChordsGridStyle.

> Le 26 juin 2022 à 21:49, Jacques Menu <[email-masked]> a écrit :
> 
> Salut Jean,
> 
>> Le 26 juin 2022 à 19:47, Vincent Gay <[email-masked] <mailto:[email-masked]>> a écrit :
>> 
>>> https://lilypond.org/development.fr.html <https://lilypond.org/development.fr.html>
>>>

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 26 Jun 2022 21:59:54 +0200

Bonjour Jacques,

Le 26/06/2022 à 21:49, Jacques Menu a écrit :
> Salut Jean,
>
> Pourrais-tu ajouter cette autre possibilité de présentation, dans
> laquelle la lecture se fait linérairement de gauche à droite?

Rien d'impossible :

\version "2.23.10"

\new Score \with {
   proportionalNotationDuration = #(ly:make-moment 1)
   \override SpacingSpanner.spacing-increment = 5
}
\new ChordNames \with {
   \consists Bar_engraver
   \consists Staff_symbol_engraver
   \omit StaffSymbol
   \override StaffSymbol.line-positions = #'(-4 7)
}
\chordmode { c2:11- d4:m7 e:9+ }

Est-ce que cela répond à ta question ?

Amicalement,
Jean

---

From: Jacques Menu <[email-masked]>
Date: Sun, 26 Jun 2022 22:27:30 +0200

Il faut que j’attende la 2.23.10 pour Mac M1 pour te dire.

Peux-tu poster le résultat?

Merci!

JM

> Le 26 juin 2022 à 21:59, Jean Abou Samra <[email-masked]> a écrit :
> 
> Bonjour Jacques,
> 
>

---

From: Vincent Gay <[email-masked]>
Date: Sun, 26 Jun 2022 23:06:18 +0200

> Il faut que j’attende la 2.23.10 pour Mac M1 pour te dire.

Nop, ça marche parfaitement avec une 2.22 (voire antérieure), c'est
juste la reprise d'un snippet que tu trouveras dans la doc

---

From: Jacques Menu <[email-masked]>
Date: Mon, 27 Jun 2022 06:26:02 +0200

Oups, oublié de préciser que je souhaitais bénéficier de la disposition à 4 mesures par ligne que permet le travail récent de Jean.

JM

> Le 26 juin 2022 à 23:06, Vincent Gay <[email-masked]> a écrit :
> 
> Nop, ça marche parfaitement avec une 2.22 (voire antérieure), c'est juste la reprise d'un snippet que tu trouveras dans la doc
> 
> -- 
> Vincent Gay

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 27 Jun 2022 08:57:13 +0200

> juste la reprise d'un snippet que tu trouveras dans la doc

Effectivement, j'ai juste mis le \version "2.23.10" parce que je viens
de réinstaller ma machine et je n'ai pas encore pris le temps
d'installer mes 101 versions de LilyPond. Aucun souci en 2.22. Et je ne
savais même pas que c'était dans la doc ! On le voit sur
https://lilypond.org/doc/v2.23/Documentation/notation/displaying-chords
(sous le titre « Chiffrages et barres de mesure »). La principale
différence avec ce que j'ai posté est que le mien affiche aussi une
barre de mesure (en fait un SystemStartBar) au tout début. J'ai aussi
activé la notation proportionnelle et écarté l'espacement.

> Oups, oublié de préciser que je souhaitais bénéficier de la disposition à 4 mesures par ligne que permet le travail récent de Jean.

J'ai abandonné en cours de route le principe de faire ça
automatiquement. Ce sont juste des bêtes \break insérés dans le code.

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 27 Jun 2022 09:02:41 +0200

> commence à remonter la pente.

J'espère que ça n'a pas été trop rude. Bon rétablissement.

> avec \stopStaff  \startStaf dans le cadre d'une répétition avec

Tu fais bien de me le demander. En réalité, avec la dernière version de ce
code, il y a une syntaxe qui permet de se passer des silences invisibles,
\stopStaff et \startStaff. Elle est similaire à la syntaxe pour créer
une ossia.

\version "2.23.10"

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

\layout {
   \context {
     \ChordGridScore
     \remove Volta_engraver
     \remove Staff_collecting_engraver
   }
   \context {
     \ChordGrid
     \consists Volta_engraver
     \consists Staff_collecting_engraver
   }
}

\new ChordGrid \chordmode {
   \repeat volta 2 {
     c1 c1 c1
     <<
       \alternative {
         \volta 1 { c1 }
       }
       \new ChordGrid {
         \alternative {
           \volta 2 { c1 }
         }
       }
     >>
   }
}

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 27 Jun 2022 09:14:41 +0200

> Il faut que j’attende la 2.23.10 pour Mac M1 pour te dire.

Au fait, j'ai oublié de revenir sur un point : les binaires officielles
de la version 2.23.10 fonctionnent sous M1 ! C'est juste qu'elles ne
sont pas compilées pour le M1 mais pour Intel, donc à l'exécution,
l'ordinateur traduit à la volée le code machine Intel en code machine
M1. Le jour où nous aurons des binaires natives pour M1, LilyPond sera
peut-être un peu plus rapide sur ce processeur, c'est tout. En
attendant, elle fonctionne très bien.

Cordialement,
Jean

---

From: Jacques Menu <[email-masked]>
Date: Mon, 27 Jun 2022 10:33:03 +0200

> Le 27 juin 2022 à 08:57, Jean Abou Samra <[email-masked]> a écrit :
> 
> 
> 
> Effectivement, j'ai juste mis le \version "2.23.10" parce que je viens de réinstaller ma machine et je n'ai pas encore pris le temps d'installer mes 101 versions de LilyPond. Aucun souci en 2.22. Et je ne savais même pas que c'était dans la doc ! On le voit sur
> (sous le titre « Chiffrages et barres de mesure »). La principale différence avec ce que j'ai posté est que le mien affiche aussi une barre de mesure (en fait un SystemStartBar) au tout début. J'ai aussi activé la notation proportionnelle et écarté l'espacement.
> 
> 
> J'ai abandonné en cours de route le principe de faire ça automatiquement. Ce sont juste des bêtes \break insérés dans le code.
> 

Okkkkkkkkkkè!

---

From: Jacques Menu <[email-masked]>
Date: Mon, 27 Jun 2022 10:33:56 +0200

Bien reçu, merci!

JM

> Le 27 juin 2022 à 09:14, Jean Abou Samra <[email-masked]> a écrit :
> 
> 
> 
> Au fait, j'ai oublié de revenir sur un point : les binaires officielles de la version 2.23.10 fonctionnent sous M1 ! C'est juste qu'elles ne sont pas compilées pour le M1 mais pour Intel, donc à l'exécution, l'ordinateur traduit à la volée le code machine Intel en code machine M1. Le jour où nous aurons des binaires natives pour M1, LilyPond sera peut-être un peu plus rapide sur ce processeur, c'est tout. En attendant, elle fonctionne très bien.
> 
> Cordialement,
> Jean
>