\override en global

Bonjour tout le monde,

Je saisis une partition "tablature guitare" en représentant les vignettes d'accords par un markup fret-diagram et dont je modifie l'apparence à l'aide de \override #'(fret-diagram-details.

Comme le montre l'ECM joint, je répète la partie fret-diagram-details à chaque markup (à chaque vignette).

Comment faire pour avoir cette partie fret-diagram-details en "global", une fois pour toute en début de partition ? et ainsi alléger ma saisie...

Merci encore une fois pour le coup de main !

Gérard

ps : j'essaie au maximum de consulter la doc et LSR mais pas trouvé...

ECM-pou-override.ly (2.58 KB)

Bonjour

Ceci répond à ta demande,
ou bien je n'ai pas compris ?

%--------------------------
\version "2.23.4"
accordDoM = \markup {
\override #'(fret-diagram-details . (
(number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(xo-font-magnification . 0.4)
(xo-padding . 0.3)
(barre-type . straight))) {
\fret-diagram-verbose #'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)

(barre 5 1 3))
}
}

accordDsimpleM = \markup {
{
\fret-diagram-verbose #'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)
(barre 5 1 3))
}
}

}
melodie = {
c'1^\markup\accordDoM
c'1^\markup\accordDoM
c'1^\markup\accordDsimpleM
}
%-----------------------------------------

cordialement

···

Martial Rameaux

Merci Martial !

Pas tout à fait... L'idée c'est cela, mais je ne voudrais avoir que la partie fret-diagram-details dans accord... et le fret-diagram-verbose est dans le markup à l'endroit concerné. Quelque chose qui ressemblerait à :

\version "2.23.4"

mavignette = \markup {
\override #'(fret-diagram-details . (
(number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(xo-font-magnification . 0.4)
(xo-padding . 0.3)
(barre-type . straight)))}

melodie = { c'1^\markup {
{
\fret-diagram-verbose #'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)
(barre 5 1 3))
}
}

où l'accord représenté sur c'1 aurait les paramètres de mavignette...

Je ne m'étonne plus de rien, que sais que Lilypond peut le faire :slight_smile:

Merci encore.

Gérard

···

Le 16/11/2022 à 10:53, Martial R a écrit :

Bonjour

Ceci répond à ta demande,
ou bien je n'ai pas compris ?

%--------------------------
\version "2.23.4"
accordDoM = \markup {
\override #'(fret-diagram-details . (
(number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(xo-font-magnification . 0.4)
(xo-padding . 0.3)
(barre-type . straight))) {
\fret-diagram-verbose #'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)

(barre 5 1 3))
}
}

accordDsimpleM = \markup {
{
\fret-diagram-verbose #'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)
(barre 5 1 3))
}
}

}
melodie = {
c'1^\markup\accordDoM
c'1^\markup\accordDoM
c'1^\markup\accordDsimpleM
}
%-----------------------------------------

cordialement

Le mer. 16 nov. 2022 à 10:01, Gerard <****@****> a écrit :

Bonjour tout le monde,

Je saisis une partition "tablature guitare" en représentant les
vignettes d'accords par un markup fret-diagram et dont je modifie
l'apparence à l'aide de \override #'(fret-diagram-details.

Comme le montre l'ECM joint, je répète la partie fret-diagram-details à
chaque markup (à chaque vignette).

Comment faire pour avoir cette partie fret-diagram-details en "global",
une fois pour toute en début de partition ? et ainsi alléger ma saisie...

Merci encore une fois pour le coup de main !

Gérard

ps : j'essaie au maximum de consulter la doc et LSR mais pas trouvé...

--

Martial Rameaux

Bonjour Martial,

Essaie comme ceci :

\version "2.23.81"

\markup mavignette =
\markup
\override #'(fret-diagram-details
. ((number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(xo-font-magnification . 0.4)
(xo-padding . 0.3)
(barre-type . straight)))
\fret-diagram-verbose \etc

{
c'1^\markup \mavignette
#'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)
(barre 5 1 3))
}

mavignette utilise le petit mot magique \etc pour « couper »
la définition de la variable et en faire une fonction qui
attend l'argument restant (celui de \fret-diagram-verbose).
Comme on veut que ce soit une fonction pour markups, il faut
mettre \markup avant mavignette pour signaler que mavignette
est définie dans le monde des markups.

Il y a un mini-exemple dans la documentation à la fin de
cette section (ajouté en 2.23) :

https://lilypond.org/doc/v2.23/Documentation/notation/formatting-text.fr.html#text-markup-introduction

Cordialement,
Jean

···

Le 16/11/2022 à 10:01, Gerard a écrit :

Bonjour tout le monde,

Je saisis une partition "tablature guitare" en représentant les vignettes d'accords par un markup fret-diagram et dont je modifie l'apparence à l'aide de \override #'(fret-diagram-details.

Comme le montre l'ECM joint, je répète la partie fret-diagram-details à chaque markup (à chaque vignette).

Comment faire pour avoir cette partie fret-diagram-details en "global", une fois pour toute en début de partition ? et ainsi alléger ma saisie...

Merci encore une fois pour le coup de main !

Gérard

ps : j'essaie au maximum de consulter la doc et LSR mais pas trouvé...

Merci Jean !

Magique effectivement ! J'aurai jamais cherché dans la doc de markup.... comme quoi...

À ce que je devine, c'est puissant ce truc ! Ça devrait servir à l'occasion !

Gérard

···

Le 16/11/2022 à 13:52, Jean Abou Samra a écrit :

Bonjour Martial,

Essaie comme ceci :

\version "2.23.81"

\markup mavignette =
\markup
\override #'(fret-diagram-details
. ((number-type . arabic)
(dot-label-font-mag . 0.9)
(finger-code . in-dot)
(fret-label-font-mag . 0.6)
(fret-label-vertical-offset . 0)
(label-dir . -1)
(mute-string . "M")
(xo-font-magnification . 0.4)
(xo-padding . 0.3)
(barre-type . straight)))
\fret-diagram-verbose \etc

{
c'1^\markup \mavignette
#'((mute 6)
(place-fret 5 3 1)
(place-fret 4 5 2)
(place-fret 3 5 3)
(place-fret 2 5 4)
(place-fret 1 3 1)
(barre 5 1 3))
}

mavignette utilise le petit mot magique \etc pour « couper »
la définition de la variable et en faire une fonction qui
attend l'argument restant (celui de \fret-diagram-verbose).
Comme on veut que ce soit une fonction pour markups, il faut
mettre \markup avant mavignette pour signaler que mavignette
est définie dans le monde des markups.

Il y a un mini-exemple dans la documentation à la fin de
cette section (ajouté en 2.23) :

https://lilypond.org/doc/v2.23/Documentation/notation/formatting-text.fr.html#text-markup-introduction

Cordialement,
Jean