Subject: [LilyPond] Texte attaché à un nom d'accord chiffré

From: EricC via LilyPond <[email-masked]>
Date: Tue, 11 Mar 2025 10:21:44 +0000

Version 2.24.4

Bonjour, j'essai de placé un court texte avec un accord chiffré. Je peux contourné en attachant le texte à une note mais ce n'est pas mon but. Voici ce que je cherche à faire :
CMaj7
x 3 5 4 5 x Ce texte représente le doigté du CMaj7 à la 3e case de la guitare. Éventuellement je pourrais créer une variable contenant le nom de l'accord avec son texte.

J'ai cherché dans le manuel et je n'ai rien trouvé. Merci pour votre aide. Ah, je suis débutant...

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/1).

Pour créer un nouveau sujet, écrivez à [[email-masked]](mailto:[email-masked]) ou visitez la [page d'accueil de lilypond.community](https://lilypond.community).

---

From: Sébastien Richard via LilyPond <[email-masked]>
Date: Tue, 11 Mar 2025 10:25:08 +0000

Bonjour,

Bienvenue sur lilypond community

Afin de vous aider efficacement, merci de fournir un exemple minimaliste de votre problème

Belle journée à vous

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/2).

---

From: EricC via LilyPond <[email-masked]>
Date: Tue, 11 Mar 2025 10:53:07 +0000

Merci de m'accepter dans votre communauté.

L'image représente le résultat final. Le texte en bleu est ajouté sur la note qui correspond à la position de l'accord. Voici l'extrait du code des notes :
b4.^"0 2 2 0 0 x" b8~ b e g4
fis4^"5 7 5 6 7 x" e^"5 7 5 6 5 x" a8 a4 a8
g4^"x 5 7 7 8 x" fis2^"x 5 7 7 7 x" d4
fis4^"x 3 5 3 7 x" e^"x 3 5 5 5 x" e8 e4 e8
e4^"3 x 4 4 5 x" d2^"3 x 2 4 3 x" g,4

Étant donné que ce texte défini l'accord, j'aimerais pouvoir le coder avec les accords. Voici l'extrait du code des accords :
e1:m
a4:3.5.13 a2.:7
d4:sus4 d2.
c4:sus11+ c2.
g4:maj5.13 g2.:6

J'ai essayé ceci mais ca ne fonctionne pas.
e1:m^"0 2 2 0 0 x"
...

Le but ultime sera d'associer le nom de l'accord avec son texte qui le défini dans une variable et je pourrai ainsi me construire une banque d'accords prédéfinis.

![IMG_1251|690x99](upload://yqIPqfZ61zIfMsZcXIaQBMqHlq5.jpeg)

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/3).

---

From: Sébastien Richard via LilyPond <[email-masked]>
Date: Tue, 11 Mar 2025 11:12:01 +0000

A titre personnel, je ne pourrais pas vous aider 

Par contre je me rends compte que je me suis mal exprimé : pourriez vous nous fournir le fichier .ly avec votre exemple minimaliste ?

Cela permet aux contributeurs de travailler sur un exemple commun :grin:

En attendant, n'hésiter pas à consulter le [ LilyPond Snippet Repository](https://lsr.di.unimi.it/), peut être y trouverez vous des pistes de réflexions

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/4).

---

From: EricC via LilyPond <[email-masked]>
Date: Tue, 11 Mar 2025 11:15:51 +0000

D'accord je vais regarder comment présenter ce code d'une façon minimaliste.
Merci.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/5).

---

From: EricC via LilyPond <[email-masked]>
Date: Tue, 11 Mar 2025 13:09:26 +0000

Voici donc un extrait du code.

\version "2.24.4"
indent = 0
melodie = \relative c' {
    b'4.^"0 2 2 0 0 x" b8~ b e g4
    fis4^"5 7 5 6 7 x" e^"5 7 5 6 5 x" a8 a4 a8	
    g4^"x 5 7 7 8 x" fis2^"x 5 7 7 7 x" d4
    fis4^"x 3 5 3 7 x" e^"x 3 5 5 5 x" e8 e4 e8	
} 

mesAccords = \chordmode { 
    e1:m
    a4:3.5.13 a2.:7
    d4:sus4 d2.
    c4:sus11+ c2.
}
  
\score {
   <<
    \new ChordNames \mesAccords
    \new Staff \melodie
    \layout { 
       \override TextScript.font-size = -2
       \override TextScript.color = #blue
       \override TextScript.X-offset = #-2
       \textLengthOn
    }
}

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/6).

---

From: Michel Guénard via LilyPond <[email-masked]>
Date: Wed, 12 Mar 2025 11:13:14 +0000

Réponse fournie par l'IA
pas VéRIFIé QUE CELA RESOUD VOTRE QUESTION

* Il semble probable que pour obtenir le résultat souhaité dans LilyPond avec les accords et leurs définitions, vous devez corriger les symboles d'accords dans mesAccords pour qu'ils correspondent à la progression d'accords de votre image (Em, A13, A7, D sus4, D, C add#11, C, G Maj7#13, G6), et ajuster les durées pour qu'elles s'alignent avec la mélodie.

* Assurez-vous d'utiliser la notation standard de LilyPond pour les accords, comme e:m pour Em, a:13 pour A13, et c:maj add #11 pour C add#11. Pour G Maj7#13, vous pourriez utiliser g:maj7 add f, bien que cela puisse nécessiter une personnalisation, car ce n'est pas une notation standard.

* Une information inattendue : les onglets de guitare dans votre code (0 2 2 0 0 x, etc.) semblent ne pas correspondre toujours aux accords définis, ce qui peut causer des incohérences visuelles.

Correction des symboles d'accords :

* Remplacez a4:3.5.13 a2.:7 par a:13 a:7 et c4:sus11+ c2. par c:maj add #11 c. Ajoutez les accords manquants (d:sus4, d, g:maj7 add f, g:6) pour atteindre les neuf accords de l'image.

* Exemple corrigé pour mesAccords : \chordmode { e4:m a4:13 a4:7 d4:sus4 d4 c4:maj add #11 c4 g4:maj7 add f g4:6 }, en supposant une durée de noire pour chaque accord, mais ajustez selon la durée de la mélodie.

Ajustement des durées :

* La mélodie semble s'étendre sur quatre mesures de 4/4, soit 16 temps. Avec neuf accords, vous devrez répartir les durées (par exemple, certains accords sur une noire, d'autres sur une blanche) pour couvrir les 16 temps, ce qui peut nécessiter un essai et erreur pour aligner avec la mélodie.

Création d'une banque d'accords :

* Pour associer chaque nom d'accord avec sa définition, définissez des variables Scheme, comme em_chord = \chordmode { e:m }, a13_chord = \chordmode { a:13 }, etc. Cela vous permettra de construire une banque d'accords prédéfinis pour réutilisation.

---

Note détaillée

Cette section explore en profondeur les ajustements nécessaires pour que le code LilyPond/Scheme produise le résultat souhaité, en tenant compte des accords fournis (e1:m, a4:3.5.13 a2.:7, d4:sus4 d2., c4:sus11+ c2., g4:maj5.13 g2.:6) et de la progression d'accords de l'image (Em, A13, A7, D sus4, D, C add#11, C, G Maj7#13, G6). Nous analyserons les notations, les durées, et la création d'une banque d'accords, avec des exemples et des considérations techniques.

Analyse des accords et de la progression

Le code initial de mesAccords contient quatre accords avec des notations non standard, comme a4:3.5.13, qui semble tenter de définir les intervalles de l'accord (3e, 5e, 13e) mais n'est pas conforme à la syntaxe LilyPond. L'image, en revanche, montre une progression de neuf accords, ce qui indique que le code est incomplet ou mal aligné. Les accords de l'image incluent des extensions complexes comme A13, G Maj7#13, et C add#11, nécessitant une notation précise.

* Notations standard dans LilyPond : Selon la documentation de LilyPond ([LilyPond Chord Notation](https://lilypond.org/doc/v2.24/Documentation/notation/chord-notation)), les accords sont notés avec la racine suivie d'un symbole de qualité (ex. e:m pour E mineur, a:13 pour A13). Pour des accords avec des notes ajoutées, comme C add#11, on utilise c:maj add #11. Cependant, G Maj7#13 pose problème, car la 13e dièse (E# pour G, équivalent à F) peut être ambiguë et nécessite une définition explicite, comme g:maj7 add f.

* Durées et alignement avec la mélodie : La mélodie, analysée dans le code, s'étend sur quatre mesures de 4/4 (16 temps), avec des durées variées (croches, noires, blanches). Les accords doivent couvrir ces 16 temps, mais avec neuf accords, cela implique des durées variables (par exemple, certaines noires, d'autres blanches). Le code initial a des durées comme e1:m (blanche entière, 4 temps) et a4:3.5.13 a2.:7 (noire puis blanche pointée, total 3 temps), ce qui ne correspond pas à neuf accords sur 16 temps.

Correction des symboles d'accords

Pour aligner mesAccords avec l'image, corrigeons les notations :

* e1:m → e:m (E mineur, durée à ajuster).

* a4:3.5.13 a2.:7 → a:13 a:7 (A13 puis A7, durées à préciser, ex. a4:13 a4:7 pour deux noires).

* d4:sus4 d2. → Correct, mais ajouter le D suivant (d4 d2. pour D sus4 puis D, ajuster durées).

* c4:sus11+ c2. → c:maj add #11 c (C add#11 puis C, ajuster durées).

* Ajouter les accords manquants : d:sus4, d, g:maj7 add f, g:6, pour atteindre neuf accords.

Exemple corrigé :

lilypond

```
mesAccords = \chordmode {
    e4:m a4:13 a4:7 d4:sus4 d4 c4:maj add #11 c4 g4:maj7 add f g4:6
}
```

Cela suppose neuf noires (9 temps sur 16, à ajuster pour couvrir 16 temps, par exemple en allongeant certains accords).

Ajustement des durées

Pour couvrir 16 temps sur quatre mesures, une distribution possible est :

* Certains accords sur une noire (1 temps), d'autres sur une blanche (2 temps), ou une blanche pointée (3 temps).

* Exemple : e2:m a4:13 a4:7 d2:sus4 d4 c2:maj add #11 c4 g2:maj7 add f g4:6, totalisant 16 temps (2+1+1+2+1+2+1+2+1=16).

Création d'une banque d'accords prédéfinis

Pour associer chaque nom d'accord avec sa définition, utilisez des variables Scheme dans LilyPond. Cela permet de construire une banque d'accords réutilisables :

* Définir chaque accord comme une variable, par exemple :

scheme

```
#(define em_chord \chordmode { e:m })
#(define a13_chord \chordmode { a:13 })
#(define a7_chord \chordmode { a:7 })
#(define d_sus4_chord \chordmode { d:sus4 })
#(define d_chord \chordmode { d })
#(define c_add11_chord \chordmode { c:maj add #11 })
#(define c_chord \chordmode { c })
#(define g_maj7_sharp13_chord \chordmode { g:maj7 add f })
#(define g6_chord \chordmode { g:6 })
```

* Utiliser ces variables dans mesAccords :

lilypond

```
mesAccords = \chordmode {
  \em_chord \a13_chord \a7_chord \d_sus4_chord \d_chord \c_add11_chord \c_chord \g_maj7_sharp13_chord \g6_chord
}
```

* Ajouter des durées pour chaque appel, comme \em_chord4 pour une noire, ou définir les durées dans les variables elles-mêmes.

Considérations sur les onglets de guitare

Les onglets de guitare (0 2 2 0 0 x, etc.) dans la mélodie semblent être des annotations pour les positions de doigts, mais ils ne correspondent pas toujours aux accords définis (par exemple, 0 2 2 0 0 x pour Em ne correspond pas à la tablature standard d'Em). Cela peut être une source d'incohérence visuelle, et il peut être nécessaire de vérifier ou corriger ces annotations pour qu'elles s'alignent avec les accords.

Tableau récapitulatif des accords

|Accord|Notation LilyPond|Durée suggérée|Remarque|
| --- | --- | --- | --- |
|Em|e:m|2 temps|Accord mineur standard|
|A13|a:13|1 temps|Accord dominant étendu|
|A7|a:7|1 temps|Accord dominant septième|
|D sus4|d:sus4|2 temps|Accord suspendu|
|D|d|1 temps|Accord majeur standard|
|C add#11|c:maj add #11|2 temps|Accord avec note ajoutée|
|C|c|1 temps|Accord majeur standard|
|G Maj7#13|g:maj7 add f|2 temps|Approximation, non standard|
|G6|g:6|1 temps|Accord majeur avec 6e ajoutée|

Conclusion

Pour obtenir le résultat souhaité, ajustez mesAccords avec les notations correctes et les durées appropriées pour couvrir 16 temps sur quatre mesures, et utilisez des variables Scheme pour créer une banque d'accords prédéfinis. Vérifiez les onglets de guitare pour éviter les incohérences. Cela devrait aligner le code avec l'image fournie, bien que des ajustements manuels puissent être nécessaires pour la synchronisation exacte.

---

Key Citations

* [LilyPond Chord Notation 10-word description](https://lilypond.org/doc/v2.24/Documentation/notation/chord-notation)

* [Guitar Em Chord 10-word description](https://www.onlineguitarbooks.com/em-chord/)

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/7).

---

From: EricC via LilyPond <[email-masked]>
Date: Thu, 13 Mar 2025 21:18:33 +0000

Merci pour toutes ces informations, j’en ai pour un bout à tout assimiler. Deux choses à préciser que j’aurais du mentionner :

1. Le doigté des accords (texte en bleu) peut paraître non conforme, c’est parce qu’en fait je joue en "Chord Melody” et c’est pour cela que je tient à pouvoir annoter les accords. Alors juste une grille harmonique avec les annotations de doigté me suffirait pour jouer le morceau.
2. La notation des accords qui peut également sembler bizarre c’est parce que j’utilise la fonction chExceptions = #(append (sequential-music-to-chord-exceptions chExceptionMusic #t) ignatzekExceptions) afin d’obtenir les noms d'accord correct. J’ai enlevé cette portion de code afin de présenter ici un exemple minimaliste.

Malheureusement je cherche toujours la façon d’ajouter un texte à un nom d’accord. Ce serait formidable de pourvoir avoir des annotations dans les case dune grille harmonique.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/8).

---

From: EricC via LilyPond <[email-masked]>
Date: Fri, 14 Mar 2025 21:58:42 +0000

J’ai finalement trouvé comment attacher le texte à un accord chiffré, c’est avec la fonction textMark.

Voici un extrait de code :

\version "2.24.4"

melodie = \relative c' { g''2 fis }
mesAccords = \chordmode {
\textMark \markup \italic \fontsize #-2 \with-color #blue "x 5 7 7 8 x"d2:sus4
\textMark \markup \italic \fontsize #-2 \with-color #blue "x 5 7 7 7 x"d
}
\score {
<<
\new ChordNames \mesAccords
\new Staff \melodie
}

![Capture d’écran, le 2025-03-14 à 17.55.09|228x129](upload://3J3812tfBttVnr9KThdjeJNR4QA.png)

C’est un gros pas de fait. Maintenant reste à trouver comment affecter le tout à une variable. Quand je mentionne le tout je veux dire le nom de l’accord avec son annotation et son formatage. Ceci donc : \textMark \markup \italic \fontsize #-2 \with-color #blue "x 5 7 7 8 x"d2:sus4.

Si je sépare l’annotation du nom de l’accord cela fonction mais les deux ensemble dans une même variable ça ne marche pas. Probablement ma syntaxe qui n’est pas bonne. Si quelqu’un a une idée, je suis preneur. Merci.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/9).

---

From: EricC via LilyPond <[email-masked]>
Date: Sat, 15 Mar 2025 18:25:34 +0000

Merci beaucoup Ben ça fonctionne très bien.

Est-ce faisable de retirer l'argument de la chaine qui est attribuée à la variable ? J'essai ceci mais ça ne fonctionne pas.

...
DIIsusIV = \chordmode { \textMark \markup \italic \fontsize #-2 \with-color #blue  } 

mesAccordsC = \chordmode { \DIIsusIV "x 5 7 7 8 x" d2:sus4 }
...

La raison pour laquelle je n'utilise pas fretboard est que le but de tout ça est de pouvoir produire une grille harmonique avec les annotations. 

Merci

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/11).

---

From: EricC via LilyPond <[email-masked]>
Date: Mon, 17 Mar 2025 13:00:31 +0000

Très intéressant cette fonction de définir une nouvelle commande. On y voit toute la puissance de Lilypond. 

Je produit la grille avec \new ChordGrid \mesAccords et textMark me permet d'annoter mes accords. Ça donne ceci :
![Capture d’écran, le 2025-03-16 à 23.32.23|690x162](upload://oUFx4wtc5UMDg9AQnComTr4e5lk.png)

Je débute avec Lilypond et la production de grille harmonique, que je ne connaissais pas, est une révélation pour moi. Auparavant je produisais un semblant de grille avec un tableur. Le résultat était quand même bien mais c’était du travail en double. Ça donnait ceci :
![Capture d’écran, le 2025-03-17 à 08.50.37|690x69](upload://lrMA6yqCFfiiMa9weySP74Y5TUM.png)

Les diagrammes de fret c’est bien mais ça encombre la partition et à moins de s’en tenir aux accords prédéfinis ça devient lourd à définir de nouveaux doigtés. Vu que je joue principalement en chord melody et que ma mémoire n’est pas très fiable, j’ai besoin de ces annotations de doigtés. En fait si vous jouez les accords avec les annotations de doigtés, vous jouez pratiquement la mélodie aussi. C’est plus facile pour moi de me souvenir des accords que la mélodie.

Vous dites "Si c'est par script sur le fichier .ly, ne serait-ce pas plus simple de ne les mettre qu'en commentaire?" Ce sont deux fonctions que je ne connais pas du tout.

Merci pour votre aide.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/13).

---

From: Ben via LilyPond <[email-masked]>
Date: Mon, 17 Mar 2025 13:31:16 +0000

Oui, et les fonctions schemes permettent aussi une intégration encore plus poussée, mais en raison du manque de documentation, c'est assez difficile à manipuler. 

Je n'avais pas compris que vous génériez la grille directement avec lilypond, d'où ma question sur script et commentaire. 

Mais du coup, pourquoi pas une écriture de ce genre, et peut-être même qu'il existe des paramètres pour réduire la taille des fretboards:

\version "2.25.18"

Accords = \chordmode { c1 d1:m e1:7 f1:7+ }

\new ChordGrid
<<
  \Accords
    \new FretBoards \Accords

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/14).

---

From: EricC via LilyPond <[email-masked]>
Date: Mon, 17 Mar 2025 15:30:34 +0000

Effectivement que ça donne un beau rendu. Je pourrais même rassembler tous les diagramme dans le haut ou le bas de la partition. Mais j'en reviens au fait que c'est ardu de configurer des nouveaux diagrammes. Et comme plus de 50% des accords que j'utilise sont modifiés, ça va me prendre un temps fou.

Déjà que je trouve très bizarre la façon dont Lily rend les noms d'accords. Exemple : Lily considère <c e g d'> comme étant un C9 alors que ce n'est pas du tout le cas, c'est un Cadd9. Il faut faire une gymnastique afin d'obtenir le Cadd9. Autre exemple, prenons un C13b9. Lily s'entête à rendre C7b913. Encore une gymnastique afin d'obtenir Cb913. Et encore là, impossible de lui faire écrire C13b9. Tous ceci toutefois considérant mes connaissance limitée de Lily. Mais je ne trouve pas normal que l'on doive faire des gymnastiques afin d'obtenir des noms d'accords convenables.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/15).

---

From: xavier via LilyPond <[email-masked]>
Date: Mon, 17 Mar 2025 18:50:51 +0000

[quote="EricC, post:15, topic:5873"]
Déjà que je trouve très bizarre la façon dont Lily rend les noms d'accords. Exemple : Lily considère <c e g d'> comme étant un C9 alors que ce n'est pas du tout le cas, c'est un Cadd9.
[/quote]

Bonjour,

Je ne suis pas un spécialiste de la notation des accords, mais vous semblez ne pas utiliser [le modèle de chiffrages d’accord de Klaus Ignatzek](https://lilypond.org/doc/v2.24/Documentation/notation/displaying-chords.fr.html#customizing-chord-names) (par défaut dans LilyPond), mais [un système de nommage inspiré par Harald Banter](https://lilypond.org/doc/v2.24/Documentation/notation/chord-name-chart.fr.html) qu'on retrouve dans le morceau choisi [« Noms d’accords alternatifs »](https://lilypond.org/doc/v2.24/Documentation/snippets/chords#chords-chord-names-alternative).

Cordialement,
Xavier

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/16).

---

From: EricC via LilyPond <[email-masked]>
Date: Mon, 17 Mar 2025 19:25:48 +0000

Bonjour Xavier,

Voici ce que j'utilise. Je suis obligé de me construire une banque au fur et à mesure des besoins.

...

chExceptionMusic = {
  <c e g b d'>1-\markup { \super "maj9" }
  <c e g a d'>1-\markup { \super "6(add9)" }
  <c e ges>-\markup { \super "(5-)" }                 % d:5-
  <c ees ges beses>-\markup { \super "dim7"}
  <c ees ges bes>-\markup { m\super "7 b5"}
  %+++ 7 +++
  <c ees g b>-\markup { m\super "Maj7" }	  % d:m7+
  
  %+++ 9 +++
  <c e g d'>-\markup { \super "add9" }	          % c1:3.5.9
  <c ees g d'>-\markup { m\super "add9" }	  % c:m3.5.9
  <c f g d'>-\markup { \super "sus4(add9)" }	  % c:5.9sus4
  
  %+++ 11 +++
  <c ees g f'>-\markup { \super "add11"}		  % c:m3.5.11
  <c f g fis'>-\markup { \super "add#11" }	          % c:sus11+
  <c ees ges f'>-\markup { m\super "11(b5)" }    %c:m3.5.11.5-
  
  %+++ 13+++
  <c e g d' aes' >-\markup { \super "add9(b13)" }  % c:3.5.9.13-
}

% Convert music to list and prepend to existing exceptions.
chExceptions = #(append (sequential-music-to-chord-exceptions chExceptionMusic #t) ignatzekExceptions)

...

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/texte-attache-a-un-nom-daccord-chiffre/5873/17).