Grille harmonique 100% Lilypond

Hello toutes et tous

je reviens sur un vieux sujet (octobre 2019) concernant les grilles harmoniques.
https://lists.gnu.org/archive/html/lilypond-user-fr/2019-10/msg00109.html

À l'époque j'avais concédé qu'un maximum de 2 accords par mesures correspondait à 99% de mes besoins et Valentin m'avait taillé sur mesure une fonction pour une division d'une case en deux :
https://lists.gnu.org/archive/html/lilypond-user-fr/2019-10/msg00120.html

Dans les faits j'utilise assez fréquemment des divisions en 3 ou en 4

Pour la division en 4 pas de souci, je me suis basé sur la fonction de valentin et j'ai tracé l'autre diagonale. Mais comment faire pour tracer une demi-diagonale ?

Pour l’instant je m'en sort avec des markups codé en dur mais le résultat est moins propre et les variables doivent changer en fonction de la taille de la portée.

Merci d'avance et bon week-end

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

Autre question dans la même rubrique : quand j'utilise la fonction écrite par Valentin suivie d'un \stopStaff celui-ci ne s’exécute pas

si j'enlève le \startStaff de fin (dans la fonction) c'est ok. Du coup je suis obligé de dupliquer la fonction (voir code ci-dessous)

\version "2.22.2"
#(set-global-staff-size 17)

\paper {
#(set-paper-size "a4")
}

"\/" = #(define-music-function
(parser location mus1 mus2) ( ly:music? ly:music? )
#{
\stopStaff
\once \override Staff.StaffSymbol.stencil = $(lambda (grob)
(let* ((staff (ly:staff-symbol::print grob))
(X-ext (ly:stencil-extent staff X))
(Y-ext (ly:stencil-extent staff Y)))
(ly:grob-set-property! grob 'layer -10)
(ly:stencil-add
(make-line-stencil
(ly:staff-symbol-line-thickness grob)
(car X-ext) (car Y-ext) (cdr X-ext) (cdr Y-ext))
staff)))
\startStaff
\once \override ChordName.extra-offset = #'(1 . .5)
$mus1
\once \override ChordName.extra-offset = #'(3 . -3)
$mus2
\stopStaff
\startStaff
#})

"s" = #(define-music-function
(parser location mus1 mus2) ( ly:music? ly:music? )
#{
\stopStaff
\once \override Staff.StaffSymbol.stencil = $(lambda (grob)
(let* ((staff (ly:staff-symbol::print grob))
(X-ext (ly:stencil-extent staff X))
(Y-ext (ly:stencil-extent staff Y)))
(ly:grob-set-property! grob 'layer -10)
(ly:stencil-add
(make-line-stencil
(ly:staff-symbol-line-thickness grob)
(car X-ext) (car Y-ext) (cdr X-ext) (cdr Y-ext))
staff)))
\startStaff
\once \override ChordName.extra-offset = #'(1 . .5)
$mus1
\once \override ChordName.extra-offset = #'(3 . -3)
$mus2
\stopStaff
#})

grilleII = \chordmode {
\override Score.RehearsalMark #'self-alignment-X = #LEFT
\mark \markup "fonction Valentin originale"
\bar "[|:" / d2:m7 g:7 / d2:m7 g:7 / d2:m7 g:7
\set Score.repeatCommands = #'((volta "1.") ) / d2:m7 g:7
\set Score.repeatCommands = #'((volta #f) end-repeat)
\stopStaff s1 \bar "" s \bar "" s \startStaff
\set Score.repeatCommands = #'((volta "2.") ) c1:7+ \bar "||"
\set Score.repeatCommands = #'((volta #f)) \bar "||" \break
\mark \markup \left-column { \pad-around #2 " " "avec fonction Valentin dupliquée" }
\bar "[|:" / d2:m7 g:7 / d2:m7 g:7 / d2:m7 g:7
\set Score.repeatCommands = #'((volta "1.") ) \s d2:m7 g:7
\set Score.repeatCommands = #'((volta #f) end-repeat)
\stopStaff s1 \bar "" s \bar "" s \startStaff
\set Score.repeatCommands = #'((volta "2.") ) c1:7+
\set Score.repeatCommands = #'((volta #f)) \bar ".."
}

\score {
\layout {
indent = 0
ragged-right = ##f
ragged-last = ##f
\context {
\Score
\remove "Volta_engraver"
\omit Clef % Cacher la clef
\omit TimeSignature % cacher la métrique
\omit BarNumber
\override SpacingSpanner.strict-note-spacing = ##t
proportionalNotationDuration = #(ly:make-moment 1/16)
}
}
<<
\new Staff \with {
\remove "Staff_symbol_engraver"
}
\new ChordNames \with {
\override ChordName.extra-offset = #'(10 . -1 )
\override ParenthesesItem.extra-offset = #'(10 . -1 )
\override BarLine.bar-extent = #'(-5 . 5)
\consists "Bar_engraver"
\override StaffSymbol.line-positions = #'( -10 10 )
\consists "Staff_symbol_engraver"
\consists "Percent_repeat_engraver"
\consists "Volta_engraver"
}
\grilleII

}

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

Voici mon brouillon. C'est encore perfectible, mais devrait déjà
être utile. Remarque que dans cette approche, la division est automatique,
il n'y a plus besoin de \/ . Ainsi, il est possible de prendre une
variable en \chordmode normal et de la mettre dans un \new ChordGrid
en même temps que dans d'autres contextes (Staff, TabStaff, etc.).

Cordialement,
Jean

chord-grid.ly (10.1 KB)

···

Le 11/03/2022 à 16:46, Vincent Gay a écrit :

Hello toutes et tous

je reviens sur un vieux sujet (octobre 2019) concernant les grilles harmoniques.
grille harmonique 100% Lilypond (suite)

À l'époque j'avais concédé qu'un maximum de 2 accords par mesures correspondait à 99% de mes besoins et Valentin m'avait taillé sur mesure une fonction pour une division d'une case en deux :
Re: grille harmonique 100% Lilypond (suite)

Dans les faits j'utilise assez fréquemment des divisions en 3 ou en 4

Pour la division en 4 pas de souci, je me suis basé sur la fonction de valentin et j'ai tracé l'autre diagonale. Mais comment faire pour tracer une demi-diagonale ?

Pour l’instant je m'en sort avec des markups codé en dur mais le résultat est moins propre et les variables doivent changer en fonction de la taille de la portée.

Merci d'avance et bon week-end

Magnifique Jean, ça fait longtemps que ce thème revient sur les listes!

Serait-il possible d’avoir les traits de subdivision verticaux horizontaux comme dans le style du Baudoin, comme:

Bon w-e!

JM

···

Le 12 mars 2022 à 03:56, Jean Abou Samra <****@****> a écrit :

<chord-grid.ly>

Magique comme d'hab. Merci grandement. J'ai trouvé où régler la position des accords : nécessaire dans les cases en x avec des noms d'accords longs (genre bes4:5+7.9-11+). Mais peux-tu me dire où l'on peut régler la hauteur des cases ? C'est un peu écrasé (voir ci-dessous) En théorie mais pas en pratique, la manière de représenter les reprises alternatives implique une mise en page spécifique. Mais ça simplifie la vie, ça c'est sûr Allez hop, je vous emmène en ballade

hH9rwSov6fZMHZxN.png

···

Le 12/03/2022 à 03:56, Jean Abou Samra a écrit :

Voici mon brouillon. C'est encore perfectible, mais devrait déjà
être utile.

Remarque que dans cette approche, la division est automatique,
il n'y a plus besoin de / . Ainsi, il est possible de prendre une
variable en \chordmode normal et de la mettre dans un \new ChordGrid

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

J'ai essayé avec \new ChordGrid \with { \override BarLine.bar-extent = #'(-5 . 5) \consists "Bar_engraver" \override StaffSymbol.line-positions = #'( -10 10 ) \consists "Percent_repeat_engraver" } ça fonctionne sauf que le calcul des diagonales de division et le placement des accords sont à revoir. Je vais essayer d'y comprendre quelque chose :confused: Par ailleurs pour utiliser les % de répétition (par ex: \repeat percent 2 { a:m7 d:7 }) j'ai du rajouter \consists "Percent_repeat_engraver" Enfin je trouve que les barres de mesures ne sont pas trop bien alignées. De fait la largeur des cases semble être fonction de la longueur des noms d'accords et de l'épaisseur des barres de mesure. Ça améliore si dans le score je mets un layout comme ça : \layout { indent = 0 \context { \Score \override SpacingSpanner.strict-note-spacing = ##t proportionalNotationDuration = #(ly:make-moment 1/16) } } je met ce layout dans le score sinon ça affecte les autres

Ty2s6cgD7vibedew.png

···

Le 12/03/2022 à 10:42, Vincent Gay a écrit :

J'ai trouvé où régler la position des accords : nécessaire dans les cases en x avec des noms d'accords longs (genre bes4:5+7.9-11+). Mais peux-tu me dire où l'on peut régler la hauteur des cases ? C'est un peu écrasé (voir ci-dessous)

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

Hum... je suppose que c'est au niveau de #(define (chord-square::print grob)...) mais je suis bien incapable de résoudre le problème

···

Le 12/03/2022 à 15:11, Vincent Gay a écrit :

ça fonctionne sauf que le calcul des diagonales de division et le placement des accords sont à revoir. Je vais essayer d'y comprendre quelque chose :confused:

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

Jean m'a envoyé un petit message pour me donner la clef du coup : la valeur à modifier est ligne 89

pour un \override StaffSymbol.line-positions = #'( -10 10 ) dans le layout mettre (height . 10), *à adapter en fonction de la hauteur de case que vous souhaitez**

chord-grid-JAS.ly (8.22 KB)

···

*
Par ailleurs j'ai modifié de quelques pouièmes la position des nom d'accords pour plus de lisibilité des noms longs

entre les lignes 31 et 45 (en gras les valeurs modifiées) :

    \(match chord\-name\-fractions
      \(\(1\)
       \(values &#39;\(\#f \#f \#f \#f\) &#39;\(\(0\.0 \. 0\.0\)\)\)\)
      \(\(1/2 1/2\)
       \(values &#39;\(\#t \#f \#t \#f\) &#39;\(\(\-0\.5 \. 0\.3\) \(0\.5 \. \-0\.3\)\)\)\)
      \(\(1/2 1/4 1/4\)
       \(values &#39;\(\#t \#f \#t \#t\) &#39;\(\(\-0\.5 \. 0\.3\) \(0 \. \*\-0\.6\*\) \(0\.65 \. 0\.0\)\)\)\)
      \(\(1/4 1/4 1/2\)
       \(values &#39;\(\#t \#t \#t \#f\) &#39;\(\(\-0\.65 \. 0\.0\) \(0\.0 \. \*0\.6\*\) \(0\.5 \. \-0\.3\)\)\)\)
      \(\(1/4 1/4 1/4 1/4\)
       \(values &#39;\(\#t \#t \#t \#t\) &#39;\(\(\*\-0\.6\* \. 0\.0\) \(0\.0 \. \*0\.6\*\) \(0\.0 \. \*\-0\.6\*\) \(0\.5 \. 0\.0\)\)\)\)
      \(\(1/4 3/4\)
       \(values &#39;\(\#t \#t \#f \#f\) &#39;\(\(\-0\.65 \. 0\.0\) \(0\.4 \. 0\.0\)\)\)\)
      \(\(3/4 1/4\)
       \(values &#39;\(\#f \#f \#t \#t\) &#39;\(\(\-0\.4 \. \*0\.05\*\) \(0\.65 \. \*0\.05\*\)\)\)\)

Du coup je je mets en pièce jointe mon fichier à inclure selon mes besoins (sachant que j'utilise lilyjazz) et je mets ci-dessous mon \score type

\include "chord-grid-JAS.ly"

\score {
\layout {
indent = 0
\context {
\Score
\override SpacingSpanner.strict-note-spacing = ##t
proportionalNotationDuration = #(ly:make-moment 1/16)
}
\context {
\ChordGrid
\override BarLine.bar-extent = #'(-5 . 5)
\consists "Bar_engraver"
\override StaffSymbol.line-positions = #'( -10 10 )
\consists "Percent_repeat_engraver"
}
}
\new ChordGrid \mus
}

Le 12/03/2022 à 15:32, Vincent Gay a écrit :

Le 12/03/2022 à 15:11, Vincent Gay a écrit :

ça fonctionne sauf que le calcul des diagonales de division et le placement des accords sont à revoir. Je vais essayer d'y comprendre quelque chose :confused:

Hum... je suppose que c'est au niveau de #(define (chord-square::print grob)...) mais je suis bien incapable de résoudre le problème

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

Hello Jacques,

Pour résumer un message privé à Vincent : oui, c'est tout
à fait possible, je m'y attaquerai quand j'aurai un peu de
temps (c'est à dire probablement le week-end) ainsi qu'à
plusieurs autres chantiers sur ce bout de code.

A+
Jean

···

Le 12/03/2022 à 08:31, Jacques Menu a écrit :

Magnifique Jean, ça fait longtemps que ce thème revient sur les listes!

Serait-il possible d’avoir les traits de subdivision verticaux horizontaux comme dans le style du Baudoin, comme:

Bon w-e!

JM

Salut Jean,

Pour résumer un message privé à Vincent : oui, c'est tout
à fait possible, je m'y attaquerai quand j'aurai un peu de
temps (c'est à dire probablement le week-end) ainsi qu'à
plusieurs autres chantiers sur ce bout de code.

Je m’en lèche les babines d’avance… Merci!

JM

Encore un petit truc (quand tu auras le temps :grin:)

Depuis que j'utilise Lilyjazz j'ai une barre de mesure en début de chaque lignes de portée. Dans la mesure ou Les clefs et armures ne sont affichées qu'en début de morceau ça meuble.
dans mon layout (context score) j'ai \override SystemStartBar #'collapse-height = #1 , j'imagine que c'est ça

Si j'inclus chord-grid ça ne fonctionne plus. J'ai bien vu un \override SystemStartBar #'collapse-height = #0 mais dans un context ChorfNames et même si je le supprime cela ne rétabli pas ma barre de mesure initiale

Bonne soirée

···

Le 14/03/2022 à 20:10, Jean Abou Samra a écrit :

Pour résumer un message privé à Vincent : oui, c'est tout
à fait possible, je m'y attaquerai quand j'aurai un peu de
temps

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

C’est sûrement le coup de barre.

···

Le 15 mars 2022 à 20:11, Vincent Gay <****@****> a écrit :

Depuis que j'utilise Lilyjazz j'ai une barre de mesure en début de chaque lignes de portée.

Bonjour tout le monde,

Quelques questions sur ce système de notation pour peaufiner mon truc :

- Que se passe-t-il en cas de silences invisibles (s) ? Dans le Baudoin [*], je vois un grand tiret dans la case, est-ce standard ? Est-ce qu'il arrive que le contour de la case soit complètement supprimé ? Et si une demi-mesure contient un silence ? Quid, d'ailleurs, des silences pas invisibles (r), la même chose que s j'imagine ?

- En privé, Gilles Saucet m'a demandé s'il était possible de faire fonctionner ce code avec des mesures à 3 temps, en donnant l'exemple en pièce jointe. Est-ce que c'est une division standard de la case ?

- Dans le Baudoin (page 31 sqq), il y a des indications sur la notation des basses. C'est important ? Standard ? Même question pour les autres choses sur cette page : breaks, trémolos, descente par demi-tons (sachant que je ne compte pas faire quelque chose d'archi-complet dans un premier temps, juste correct, quitte à ajouter des fonctionnalités plus tard),

- Serait-il approprié que le contexte ChordGrid active systématiquement la notation proportionnelle pour toute la partition ? A priori, la taille des cases devrait être régulière tant qu'elles sont isolées (dès que j'aurais réglé deux-trois soucis dans le code sur ce point), mais pas si elles se trouvent au-desssus d'une portée normale, qui apportera ses demandes d'espacement à elle.

Merci,
Jean

[*] Je l'ai trouvé en ligne ici :
http://jazzpotes2.free.fr/methodes/Baudoin-Jazz%20mode%20d'emploi%20Vol%201.pdf

chord-grid-Pour Jean.png

Hello Jean,

désolé de te répondre aussi tard, pleins de petits ennuis pas très graves mais qui font que je n'ai pas trop la tête à Lilypond.

En préambule je commencerai par rappeler qu'au départ la grille harmonique est surtout un truc griffonné sur un coin de nappe entre musiciens qui connaissent la musique dans tous les sens du terme :slight_smile: Cela n'a donc pas besoin d'être très précis. (IMHO c'est sans doute à cause de ce coté griffonné que les cases sont divisées en diagonales, plus faciles à distinguer des cotés ordinaires)

- En privé, Gilles Saucet m'a demandé s'il était possible de faire fonctionner ce code avec des mesures à 3 temps, en donnant l'exemple en pièce jointe. Est-ce que c'est une division standard de la case ?

Il est assez rare de trouver des morceaux en 3/4 avec plus d'un accord par mesure. Si je devais faire quelque chose (griffonné) cela ressemblerait à ceci :

Mais l'exemple que tu donne fait assez bien l'affaire.

- Que se passe-t-il en cas de silences invisibles (s) ? Dans le Baudoin [*], je vois un grand tiret dans la case, est-ce standard ? Est-ce qu'il arrive que le contour de la case soit complètement supprimé ? Et si une demi-mesure contient un silence ? Quid, d'ailleurs, des silences pas invisibles (r), la même chose que s j'imagine ?

les silences visibles se traduisent par des N.C., tout comme dans un chordChanges ordinaire. Pour ma part j'utilise les silences invisibles d'une mesure complète, combinés avec des \stopStaff, \startStaff et \bar "" pour mes reprises avec alternatives.

voici un exemple :

\version "2.22.2" |||\include "jazzchords.ily" % Si vous utilisez Lilyjazz| |\include

"lilyjazz.ily" % Si vous utilisez Lilyjazz |\include "chord-grid-JAS.ly" % la fonction codée par Jean #(set-global-staff-size 18) grille = \chordmode { \bar "[|:" \repeat percent 2 { c1:7+ } \set Score.repeatCommands = #'((volta "1.") ) d:m7 g:7 \set Score.repeatCommands = #'((volta #f) end-repeat) \break \stopStaff s1 \bar "" s \startStaff \set Score.repeatCommands = #'((volta "2.") ) d2:m7 g:7 c:m7 f:7 \bar "||" \set Score.repeatCommands = #'((volta #f)) } \score { \gridLayout \new ChordGrid \grille } |||

BlvVhbeEFcc0iw7U.png

···

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

Salut Vincent,

Perso je préfère nettement une écriture proportionnelle, comme :

Qu’en penses-tu?

JM

···

Hello Jean,

désolé de te répondre aussi tard, pleins de petits ennuis pas très graves mais qui font que je n'ai pas trop la tête à Lilypond.

En préambule je commencerai par rappeler qu'au départ la grille harmonique est surtout un truc griffonné sur un coin de nappe entre musiciens qui connaissent la musique dans tous les sens du terme :slight_smile: Cela n'a donc pas besoin d'être très précis. (IMHO c'est sans doute à cause de ce coté griffonné que les cases sont divisées en diagonales, plus faciles à distinguer des cotés ordinaires)

  • En privé, Gilles Saucet m'a demandé s'il était possible de faire fonctionner ce code avec des mesures à 3 temps, en donnant l'exemple en pièce jointe. Est-ce que c'est une division standard de la case ?

Il est assez rare de trouver des morceaux en 3/4 avec plus d'un accord par mesure. Si je devais faire quelque chose (griffonné) cela ressemblerait à ceci :

<BlvVhbeEFcc0iw7U.png>

Mais l'exemple que tu donne fait assez bien l'affaire.

  • Que se passe-t-il en cas de silences invisibles (s) ? Dans le Baudoin [*], je vois un grand tiret dans la case, est-ce standard ? Est-ce qu'il arrive que le contour de la case soit complètement supprimé ? Et si une demi-mesure contient un silence ? Quid, d'ailleurs, des silences pas invisibles (r), la même chose que s j'imagine ?

les silences visibles se traduisent par des N.C., tout comme dans un chordChanges ordinaire. Pour ma part j'utilise les silences invisibles d'une mesure complète, combinés avec des \stopStaff, \startStaff et \bar "" pour mes reprises avec alternatives.

voici un exemple :

\version "2.22.2"
\include "jazzchords.ily"    % Si vous utilisez Lilyjazz
\include "lilyjazz.ily"      % Si vous utilisez Lilyjazz
\include "[chord-grid-JAS.ly](http://chord-grid-JAS.ly)" % la fonction codée par Jean
#(set-global-staff-size 18)

grille = \chordmode {
  \bar "[|:" \repeat percent 2 { c1:7+ } 
  \set Score.repeatCommands = #'((volta "1.") )
  d:m7 g:7 \set Score.repeatCommands = #'((volta #f) end-repeat)
  \break
  \stopStaff s1 \bar "" s \startStaff 
  \set Score.repeatCommands = #'((volta "2.") )
  d2:m7 g:7 c:m7 f:7 \bar "||" \set Score.repeatCommands = #'((volta #f))
}

\score {
  \gridLayout
  \new ChordGrid \grille
} 

<pyUCcsuvQLtULKjG.png>

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

Hello Jacques,

La présentation à la ireal pro est très facile à réaliser nativement avec Lilypond. Donc pas de soucis. Mais si tu parles de préférence je trouve que la grille telle que je la pratique (i.e. avec les divisions en diagonales) est beaucoup plus visuelle. Question de goût mais surtout d'habitudes.

Je ne l'ai pas évoqué dans mon message précédent car il n'y a rien de standard mais chacun a son petit truc pour améliorer la précision de la grille. Par exemple rajouter un symbole (< ou >) devant ou après un nom d'accord pour l'anticiper ou le retarder de la valeur d'une croche.

À l'adresse de Jean : autre chose que j'ai oublié, la possibilité de mettre les accords entre parenthèses, même en cas de division de la mesure.

Mais honnêtement les choses me vont très bien telles qu'elles sont aujourd'hui.

···

3 avr. 2022 20:15:19 Jacques Menu <****@****>:

Salut Vincent,

Perso je préfère nettement une écriture proportionnelle, comme :

Merci à tous pour ces précisions.|

Pour info, en m'y remettant un peu, j'ai eu besoin pour faire quelque
chose de plus propre (et pour régler certains problèmes d'espacement)
de toucher au code C++ de LilyPond. Donc, à ce stade, je ne travaille
plus sur un fichier .ily, mais sur un patch à ajouter à LilyPond.
Honnêtement, je n'ai aucune idée du temps qu'il me faudra pour le
terminer, mais c'est désormais l'idée. J'ai déjà soumis deux patchs
préliminaires, qui sont dans le processus de relecture.

Cordialement,
Jean

···

Le 03/04/2022 à 19:45, Vincent Gay a écrit :

Hello Jean,

désolé de te répondre aussi tard, pleins de petits ennuis pas très graves mais qui font que je n'ai pas trop la tête à Lilypond.

En préambule je commencerai par rappeler qu'au départ la grille harmonique est surtout un truc griffonné sur un coin de nappe entre musiciens qui connaissent la musique dans tous les sens du terme :slight_smile: Cela n'a donc pas besoin d'être très précis. (IMHO c'est sans doute à cause de ce coté griffonné que les cases sont divisées en diagonales, plus faciles à distinguer des cotés ordinaires)

- En privé, Gilles Saucet m'a demandé s'il était possible de faire fonctionner ce code avec des mesures à 3 temps, en donnant l'exemple en pièce jointe. Est-ce que c'est une division standard de la case ?

Il est assez rare de trouver des morceaux en 3/4 avec plus d'un accord par mesure. Si je devais faire quelque chose (griffonné) cela ressemblerait à ceci :

Mais l'exemple que tu donne fait assez bien l'affaire.

- Que se passe-t-il en cas de silences invisibles (s) ? Dans le Baudoin [*], je vois un grand tiret dans la case, est-ce standard ? Est-ce qu'il arrive que le contour de la case soit complètement supprimé ? Et si une demi-mesure contient un silence ? Quid, d'ailleurs, des silences pas invisibles (r), la même chose que s j'imagine ?

les silences visibles se traduisent par des N.C., tout comme dans un chordChanges ordinaire. Pour ma part j'utilise les silences invisibles d'une mesure complète, combinés avec des \stopStaff, \startStaff et \bar "" pour mes reprises avec alternatives.

voici un exemple :
>\version "2.22.2" |||\include "jazzchords.ily" % Si vous utilisez Lilyjazz| |\include "lilyjazz.ily" % Si vous utilisez Lilyjazz |\include "chord-grid-JAS.ly" % la fonction codée par Jean #(set-global-staff-size 18) grille = \chordmode { \bar "[|:" \repeat percent 2 { c1:7+ } \set Score.repeatCommands = #'((volta "1.") ) d:m7 g:7 \set Score.repeatCommands = #'((volta #f) end-repeat) \break \stopStaff s1 \bar "" s \startStaff \set Score.repeatCommands = #'((volta "2.") ) d2:m7 g:7 c:m7 f:7 \bar "||" \set Score.repeatCommands = #'((volta #f)) } \score { \gridLayout \new ChordGrid \grille }|||

Bonjour,

(Re)Bonjour Vincent, et tutti,

Encore quelques questions :slight_smile:

1. C'est sans doute une question bête, mais… Se fait-il parfois d'avoir une portée normale et une grille d'accords superposées ? Se peut-il que le contexte ChordGrid ne soit pas seul mais en parallèle avec un autre contexte ?

Je rencontre des difficultés différentes dans les deux cas. S'il est toujours tout seul, je préfère en faire un contexte qui remplace complètement Score. En particulier, cela permettrait d'avoir facilement la notation proportionnelle. Il n'est pas possible à l'heure actuelle d'utiliser un contexte nommé autrement que Score pour le contexte le plus englobant, mais j'ai espoir de changer ça.

Dans le cas où il faut permettre la superposition, c'est la pagaille… Les objets de la portée normale imposent des contraintes d'espacement, ce n'est pas évident d'obtenir un résultat régulier. Par conséquent, j'espère (et crois bien) que la réponse est non, mais je pose la question à tout hasard.

2. À ton avis, vaudrait-il mieux choisir par défaut la division en diagonales ou en carrés pour les cases à quatre « compartiments » ? Et si je fais une commande pour sélectionner l'autre option, comment nommer cette commande ?

Ce sera tout pour ce soir.

Amicalement,
Jean

1. C'est sans doute une question bête, mais… Se fait-il parfois d'avoir une portée normale et une grille d'accords superposées ? Se peut-il que le contexte ChordGrid ne soit pas seul mais en parallèle avec un autre contexte ?

Hello Jean,

Selon mon usage non : Pour être précis elles peuvent être dans un même book ou bookpart mais la grille d'accords est toujours seule dans son score. Voici une organisation typ1que :

theNotes = \relative { } % la musique
theChords = \chordmode { } % les accords au dessus de la portée
theGrid = \chordmode { } % les accords de la grille

\book {
\bookpart {
\score {
<<
\new ChordNames \theChords
\new Staff \theNotes
>>
}
} \bookpart { % facultatif, s'il y a suffisamment de place dans la page pour tout faire tenir cette ligne sera commentée
\score {
\gridLayout
\new ChordGrid \theGrid
} } }

Dans ton courrier du 12/03 tu imaginais que l'on puisse utiliser une même variable chordmode que l'on pourrait utiliser aussi bien en ChordNames qu'en ChordGrid. Du fait de ma présentation des reprises (confère mon précédent message) ce n'est (quasiment) jamais le cas.

2. À ton avis, vaudrait-il mieux choisir par défaut la division en diagonales ou en carrés pour les cases à quatre « compartiments » ?

Personnellement je préfère les diagonales : différenciation immédiate de la case (mesure) et de son contenu. Mais c'est une question de Style.

Et si je fais une commande pour sélectionner l'autre option, comment nommer cette commande ?

En français on parle de médianes et de diagonales. En anglais median and diagonal lines. Donc pourquoi pas medStyle et diagStyle ?

···

Le 13/04/2022 à 23:09, Jean Abou Samra a écrit :

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

Bonjour Vincent,

Encore une petite question !

Dans tes grilles, je vois le code

startRepeatBarType = #"[|:"
endRepeatBarType = #":|]"
doubleRepeatBarType = #":|][|:"

Est-ce que c'est standard pour le jazz ? Cela aurait-il du sens
d'en faire les valeurs par défaut dans le context ChordGrid ?

Pour info, je commence à converger vers un patch à peu près sortable.
Mon patch qui permet de redéfinir Score est passé aujourd'hui. Le
mieux étant l'ennemi du bien (et les examens approchant), j'aimerais poster
la contribution cette semaine, quitte à ne pas tout implémenter (par
exemple chordChanges ou les anticipations) et à en laisser pour plus
tard.

Cordialement,
Jean