Key Points
-
Il semble probable que pour aligner les annotations (doigtés) avec les noms des accords dans une grille harmonique LilyPond, il faut inclure les doigtés directement dans le nom de l'accord en utilisant \override GridChordName.text.
-
La méthode actuelle avec \textMark peut ne pas fonctionner correctement dans le contexte ChordGrid, car elle est conçue pour des contextes musicaux réguliers comme Staff.
-
Les recherches suggèrent que personnaliser le texte de chaque GridChordName avec le symbole de l'accord et le doigté (par exemple, "a:3.5.7.13- (5 x 5 6 6 x)") est une solution viable, bien que cela puisse nécessiter des ajustements pour chaque accord.
Comprendre le Problème
Votre objectif est d'aligner les annotations, comme les doigtés (par exemple, "(5 x 5 6 6 x)"), avec les noms des accords dans une grille harmonique créée avec LilyPond. Votre code utilise actuellement \textMark pour ajouter ces annotations avant chaque accord dans chordmode, mais cela peut ne pas fonctionner comme prévu dans le contexte ChordGrid. Ce contexte génère automatiquement les noms des accords à partir de l'entrée chordmode, et il n'y a pas de support natif pour ajouter du texte supplémentaire comme des doigtés via \textMark.
Solution Proposée
Une approche consiste à inclure les doigtés directement dans le nom de l'accord en utilisant \override GridChordName.text pour chaque accord. Cela permet d'afficher à la fois le symbole de l'accord standard et le doigté dans la même marque, alignés dans la grille. Par exemple, pour l'accord a:3.5.7.13-, vous pouvez définir :
lilypond
\override GridChordName.text = \markup { "a:3.5.7.13- \teeny \vF "(5 x 5 6 6 x)" " }
a:3.5.7.13-
Répétez cette opération pour chaque accord, en ajustant le texte pour inclure le symbole de l'accord et le doigté correspondant. Cela devrait aligner les annotations avec les noms des accords dans la grille.
Détail Inattendu
Une découverte inattendue est que ChordGrid ne prend pas en charge nativement l'ajout de texte supplémentaire comme les doigtés, ce qui nécessite une personnalisation avancée du texte de GridChordName, ce qui peut être moins intuitif que prévu pour les utilisateurs habitués à d'autres contextes LilyPond.
Rapport Détailé
Ce rapport explore en détail la question de l'alignement des annotations (doigtés) avec les noms des accords dans une grille harmonique LilyPond, en s'appuyant sur une analyse approfondie du code fourni et de la documentation pertinente. Il vise à fournir une solution complète et à expliquer les raisons sous-jacentes, en imitant le style d'un article professionnel.
Contexte et Analyse du Code
L'utilisateur utilise LilyPond pour créer une grille harmonique avec le contexte ChordGrid, où chaque accord est représenté par un nom dans un carré, souvent utilisé en jazz pour noter visuellement les accords. Le code fourni inclut des définitions comme :
lilypond
mesAccords = \chordmode { \set chordNameExceptions = #chExceptions
\textMark \markup \vF "(5 x 5 6 6 x)" a:3.5.7.13-
...
}
Ici, \textMark est utilisé pour ajouter des annotations (doigtés) avant chaque accord, mais cette méthode semble poser problème, car \textMark est principalement conçu pour des contextes comme Staff, où il ajoute des marques de texte entre les notes, souvent alignées sur une barre de mesure. Dans ChordGrid, cette commande peut être ignorée ou mal placée, car le contexte est spécialisé pour afficher des grilles d'accords, et non pour gérer des marques de texte supplémentaires.
Exploration des Options
Pour résoudre ce problème, plusieurs approches ont été envisagées :
-
Utilisation de \textMark dans ChordGrid : La documentation, comme celle de Chord grids (LilyPond Notation Reference), ne mentionne pas explicitement \textMark pour ajouter du texte dans ChordGrid. Les recherches montrent que \textMark est mieux adapté aux contextes musicaux réguliers, ce qui explique pourquoi il ne s'aligne pas correctement avec les noms des accords dans la grille.
-
Personnalisation des Noms d'Accords avec chordNameExceptions : L'utilisateur a déjà défini chordNameExceptions pour personnaliser les noms d'accords, comme pour <c e g bes aes' >-\markup { \super "7(b13)" }. Cependant, cette méthode est basée sur des hauteurs spécifiques (pitches), et non sur des symboles d'accords comme a:3.5.7.13-. Par exemple, chordNameExceptions est une liste de paires (accord . markup), où l'accord est une liste de hauteurs, ce qui rend difficile l'inclusion directe des doigtés pour des symboles d'accords personnalisés.
-
Utilisation de GridChordName et \override : Une analyse des internes de LilyPond, notamment via LilyPond Internals Reference: Grid_chord_name_engraver, révèle que GridChordName est l'objet de disposition créé pour afficher les noms des accords dans ChordGrid. Cet objet lit la propriété currentChordText pour générer les noms. Une solution consiste à utiliser \override GridChordName.text pour définir un markup personnalisé pour chaque accord, incluant à la fois le symbole de l'accord et le doigté. Par exemple :
lilypond
\override GridChordName.text = \markup { "a:3.5.7.13- \teeny \vF "(5 x 5 6 6 x)" " }
a:3.5.7.13-
Cela permet d'afficher le doigté dans un texte plus petit (\teeny) avec le formatage défini par \vF, aligné avec le nom de l'accord dans la grille.
- Approches Alternatives : D'autres options, comme ajouter les doigtés dans une ligne séparée au-dessus de la grille ou utiliser FretBoards pour des diagrammes de manche de guitare, ont été envisagées. Cependant, FretBoards est plus adapté aux diagrammes de frettes et moins à l'alignement avec une grille harmonique. Ajouter une ligne de texte séparée pourrait poser des problèmes d'alignement, car ChordGrid a une disposition spécifique.
Solution Recommandée
La solution recommandée est d'utiliser \override GridChordName.text pour chaque accord dans chordmode, en définissant un markup qui combine le symbole de l'accord et le doigté. Voici un exemple complet pour votre code :
lilypond
mesAccords = \chordmode {
\override GridChordName.text = \markup { "a:3.5.7.13- \teeny \vF "(5 x 5 6 6 x)" " }
a:3.5.7.13-
\override GridChordName.text = \markup { "d:7 \teeny \vF "(x 5 4 5 3 x)" " }
d:7
\override GridChordName.text = \markup { "aes2.:m6 \teeny \vF "(4 x 3 4 4 x)" " }
aes2.:m6
\override GridChordName.text = \markup { "g4:7.5+ \teeny \vF "(x x 3 4 4 3)" " }
g4:7.5+
\override GridChordName.text = \markup { "c1:7+ \teeny \vF "(x x 5 5 5 7)" " }
c1:7+
\override GridChordName.text = \markup { "fis2:dim7 \teeny \vF "(x x 4 5 4 5)" " }
fis2:dim7
\override GridChordName.text = \markup { "a:dim7 \teeny \vF "(x x 7 8 7 8)" " }
a:dim7
}
Ensuite, utilisez-le dans votre score comme suit :
lilypond
\score {
\new ChordGrid \mesAccords
}
Cette méthode garantit que chaque nom d'accord dans la grille inclut le doigté, aligné correctement dans le carré correspondant. Le \teeny rend le doigté plus petit pour ne pas surcharger le symbole de l'accord, et \vF applique le formatage défini (italique, bleu, taille réduite).
Détails Techniques et Considérations
-
Propriétés de GridChordName : Bien que la documentation ne liste pas explicitement toutes les propriétés de GridChordName, il est raisonnable de supposer, en se basant sur ChordName, qu'il a une propriété text modifiable via \override. Cela est soutenu par les internes, où Grid_chord_name_engraver crée GridChordName en lisant currentChordText.
-
Limitations Potentielles : Si \override GridChordName.text ne fonctionne pas, cela pourrait indiquer que cette propriété n'est pas directement accessible dans ChordGrid. Dans ce cas, une personnalisation plus avancée, comme redéfinir chordNameFunction, serait nécessaire, mais cela dépasse le cadre de cette réponse.
-
Alignement et Esthétique : L'inclusion du doigté dans le nom de l'accord peut affecter l'esthétique, surtout si les doigtés sont longs. Utiliser \teeny aide à minimiser cet impact, mais des ajustements supplémentaires (comme modifier la taille de la police ou l'espacement) peuvent être nécessaires.
Tableaux pour Résumer
Voici un tableau récapitulatif des commandes et propriétés utilisées :
Commande/Propriété |
Description |
Utilisation dans la Solution |
\override GridChordName.text |
Définit le texte affiché pour chaque nom d'accord |
Inclut symbole et doigté |
\teeny |
Réduit la taille du texte |
Pour les doigtés, pour lisibilité |
\vF |
Formatage personnalisé (italique, bleu, taille) |
Appliqué aux doigtés |
ChordGrid |
Contexte pour grilles harmoniques |
Utilisé pour afficher la grille |
Conclusion
En résumé, pour aligner les annotations (doigtés) avec les noms des accords dans une grille harmonique LilyPond, il est recommandé d'utiliser \override GridChordName.text pour inclure à la fois le symbole de l'accord et le doigté dans un markup personnalisé. Cette méthode est pratique et alignée avec les capacités de LilyPond, bien que cela puisse nécessiter un ajustement pour chaque accord. Si des problèmes persistent, des recherches supplémentaires dans la documentation ou les forums LilyPond pourraient être nécessaires.
Citations Clés