Grilles harmoniques, répétions alternatives et polices

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/](https://myrealbook.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

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

···

Le 03/10/2022 à 11:54, Vincent Gay a écrit :

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

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"

\paper { ragged-right = ##f }

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

···

Le 03/10/2022 à 16:58, Jean Abou Samra a écrit :

Le 03/10/2022 à 11:54, Vincent Gay a écrit :

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

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
}
}

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.

···

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) :

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

Je ne crois pas à la sorcellerie :slight_smile:

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

···

Le 03/10/2022 à 17:43, Vincent Gay a écrit :

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.

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...

···

Le 03/10/2022 à 19:13, Jean Abou Samra a écrit :

Le 03/10/2022 à 17:43, Vincent Gay a écrit :

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.

Je ne crois pas à la sorcellerie :slight_smile:

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.