Subject: Grilles harmoniques, répétions alternatives et polices

From: Vincent Gay <[email-masked]>
Date: Mon, 3 Oct 2022 11:54:45 +0200

Bonjour,

comment changer de police des testes de reprises alternatives dans un Gridscore ?

avec la commande \set Score.repeatCommands = #'((volta "Ad lib.") ) le texte sort avec la police par défaut de Lily alors que j'utilise LilyJazz

N.B. Dans LilyJazz les polices sont définies ainsi :

\paper {
#(define fonts
(set-global-fonts
#:music "lilyjazz"
#:brace "lilyjazz"
#:roman "lilyjazz-text"
#:sans "lilyjazz-chord"
#:factor (/ staff-height pt 20)
))
}

Merci d'avance

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

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 3 Oct 2022 16:58:04 +0200

Le 03/10/2022 à 11:54, Vincent Gay a écrit :
> avec la commande \set Score.repeatCommands = #'((volta "Ad lib.") ) le 
> texte sort avec la police par défaut de Lily alors que j'utilise LilyJazz
>
>

D'après l'outil pdffonts, ce n'est même pas la police par défaut de
Lily, en tous cas chez moi c'est Noto Sans, apparemment une police
piochée dans le système. Je ne sais pas trop pourquoi, je ne m'y connais
pas bien en polices et je n'ai pas le temps de me plonger dans cette
partie du code de LilyPond dans l'immédiat. En tous cas, ça a l'air de
mieux fonctionner en ajoutant (ne me demande pas pourquoi) :

\layout {
   \context {
     \Score
     \override Score.VoltaBracket.font-encoding = #'latin1
     \override Score.VoltaBracket.font-size = 1
   }
}

Exemple complet :

\version "2.23.13"

\layout {
   \context {
     \Score
     \override Score.VoltaBracket.font-encoding = #'latin1
     \override Score.VoltaBracket.font-size = 1
   }
}

\include "lilyjazz.ily"

\paper { ragged-right = ##f }

\new ChordGrid \chordmode {
   \repeat volta 2 {
     c1 c
     \alternative {
       \volta 1 {
         \once \override Score.VoltaBracket.text = "abcd"
         c c
       }
     }
   }
}

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 3 Oct 2022 17:00:44 +0200

Le 03/10/2022 à 16:58, Jean Abou Samra a écrit :
>> avec la commande \set Score.repeatCommands = #'((volta "Ad lib.") ) 
>> le texte sort avec la police par défaut de Lily alors que j'utilise 
>> LilyJazz
>>
>>

Oups, je suis allé trop vite en déplaçant mes \override dans un \layout.

\version "2.23.13"

\layout {
   \context {
     \ChordGridScore
     \override VoltaBracket.font-encoding = #'latin1
     \override VoltaBracket.font-size = 1
   }
}

\include "lilyjazz.ily"

---

From: Vincent Gay <[email-masked]>
Date: Mon, 3 Oct 2022 17:43:59 +0200

Le 03/10/2022 à 16:58, Jean Abou Samra a écrit :
>  ça a l'air de mieux fonctionner en ajoutant (ne me demande pas 
> pourquoi) : 

ben je te ne le demande pas pourquoi si tu ne sais pas mais comment tu 
as trouvé la solution ? Sorcellerie ?

En tous cas merci.

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 3 Oct 2022 19:13:28 +0200

> as trouvé la solution ? Sorcellerie ?

Je ne crois pas à la sorcellerie :-)

Je le répète, je ne suis pas expert en polices, et il est probable
que ce que je dis ne soit pas juste à 100%, mais voici la manière dont
je comprends ce qui se passe. Pour le rendu du texte à partir d’une
police, avec les innombrables subtilités que cela comporte (espacement,
ligatures, accents et diacritiques, texte de droite à gauche, etc),
LilyPond recourt à une bibliothèque nommée Pango. Par contre, Pango est
faite pour le texte, et pas pour la musique, donc les polices musicales
sont gérées de manière complètement séparée et spécifique à LilyPond.
L'utilisation ou non de Pango dépend de la valeur de font-encoding. Avec
la valeur 'fetaText, LilyPond va chercher dans les polices musicales
(par défaut, la police Feta développée et distribuée avec LilyPond).
Comme le grob VoltaBracket s'affiche normalement avec un chiffre
musical — avec cette forme très caractéristique comme les doigtés,
pas du tout habituelle pour du texte normal —, VoltaBracket.font-encoding
est mis à fetaText par défaut. Or, apparemment, soit LilyJAZZ ne contient
pas les glyphes de lettre dans la partie musicale, soit ils ne sont
pas sous la forme attendue par LilyPond. Toujours est-il que LilyPond
ne les trouve pas. Par contre, avec 'latin1, LilyPond appelle Pango
qui va les chercher comme dans une police textuelle normale, et là
ça marche.

Cordialement,
Jean

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 3 Oct 2022 19:19:23 +0200

Le 03/10/2022 à 19:13, Jean Abou Samra a écrit :
>> ben je te ne le demande pas pourquoi si tu ne sais pas mais comment 
>> tu as trouvé la solution ? Sorcellerie ?
>>
>> En tous cas merci.
>
>
>

Et bien sûr, c'est en se relisant soi-même qu'on comprend. Ce n'est pas 
un bug de LilyJAZZ du tout. Les lettres du côté musical sont bien 
présentes, c'est juste qu'elles sont pour les nuances. Exemple :

\version "2.23.13"

\include "lilyjazz.ily"

{ c'^#(make-dynamic-script "abcdefghijklmnopqrstuvwxyz") }
{ c'^"abcdefghijklmnopqrstuvwxyz" }

Les glyphes qui sont utilisés dans les nuances sont définis (f, p, m, r, 
s, z), les autres non.

Donc tout est normal en fait, il fallait juste le comprendre...