Subject: Texte d'octaviation d'une clef

From: Jean Abou Samra <[email-masked]>
Date: Mon, 27 Jan 2020 20:41:40 +0100 (CET)

Bonjour,

Je souhaite changer l'indication "8" d'une clef octaviée en "8vb". Le code suivant compile, mais le \override n'est d'aucun effet. Où est mon erreur ?

{
\once \override Staff.ClefModifier.text = "8vb"
\clef "bass_8"
c1
}

Merci pour votre aide et cordialement,

Jean Abou Samra

---

From: Valentin Villenave <[email-masked]>
Date: Mon, 27 Jan 2020 20:27:46 +0000

On 1/27/20, Jean Abou Samra <[email-masked]> wrote:
> Je souhaite changer l'indication "8" d'une clef octaviée en "8vb". Le code
> suivant compile, mais le \override n'est d'aucun effet. Où est mon erreur ?

Ce n’est pas une erreur, c’est LilyPond qui est bizarrement codé sur
ce point précis :
https://lists.gnu.org/archive/html/bug-lilypond/2018-08/msg00028.html

Le premier message de cette discussion donne une astuce pour y
parvenir malgré cela.

V.

---

From: NOreply <[email-masked]>
Date: Mon, 27 Jan 2020 13:28:08 -0700 (MST)

Effectivement, le code ci-dessous devrait fonctionner, mais ce n'est pas le
cas et ça semble être un bug:
http://lilypond.1069038.n5.nabble.com/override-ClefModifier-text-has-no-effect-td215566.html

%%%%%%%%%%%%%
\version "2.18.2"
{ 
   \override Staff.ClefModifier.stencil = #ly:text-interface::print
 \override Staff.ClefModifier.text = \markup {"8vb"}

\clef "bass_8"
c1
} 

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 30 Jan 2020 20:07:54 +0100 (CET)

Bonjour,

Merci pour vos deux réponses, ce code fonctionne effectivement :

{

\override Staff.ClefModifier.before-line-breaking =

#(lambda (grob)

(ly:grob-set-property! grob 'text "8va"))

\clef "treble^8"

R1

}

Mais… pour mettre « 8ba » _en dessous_ de la clé ?

Merci,

Jean Abou Samra

---

From: Xavier Scheuer <[email-masked]>
Date: Thu, 30 Jan 2020 20:32:37 +0100

Bonjour,

En utilisant "_" (au lieu de "^") pour mettre en dessous.

{
  \override Staff.ClefModifier.before-line-breaking =
  #(lambda (grob)
    (ly:grob-set-property! grob 'text "8ba"))
  \clef "treble_8"
  R1
}

À noter : la solution de Pierre en modifiant la propriété "stencil" plutôt
que "before-line-breaking", je ne sais pas si cela apporte des avantages.

{
  \once \override Staff.ClefModifier.stencil =
    #(lambda (grob) (grob-interpret-markup grob #{ \markup "8ba" #}))
  \clef "treble_8"
  R1
}

https://lists.gnu.org/archive/html/lilypond-user/2019-02/msg00510.html

Cordialement,
Xavier

-- 
Xavier Scheuer <[email-masked]>

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 30 Jan 2020 21:19:12 +0100 (CET)

Le 30 janvier 2020 à 20:32, Xavier Scheuer <[email-masked]> a écrit :

Bonjour,

Argh, c'était absolument évident !

Merci pour votre patience, et bonne soirée.

Jean Abou Samra

PS : Je ne peux pas tester dans l'immédiat mais modifier le stencil écrase normalement tout ce qui existe, alors qu'il est possible que l'astuce du before-line-breaking prenne en compte d'autres propriétés. Mais cela est ici marginal.