Subject: Changement de clés dans une portée à huit lignes

From: Bernard Meylan <[email-masked]>
Date: Thu, 29 Jun 2023 18:31:40 +0200

Bonjour à tout le monde!

Je suis en plein dans les Toccatas de Merulo avec une main gauche écrite 
sur une portée à huit lignes. Le problème est qu'il y a un changement de 
clés au cours de la pièce: les clés de fa4 et ut6 montent en fa5 et ut7.

Dans le code ci-dessous, j'ai trouvé comment faire monter ces 2 clés à 
leur nouvelle position, mais pas comment diminuer leur corps lorsqu'on 
fait un saut de ligne et qu'elles doivent être plus petites à la fin de 
la ligne précédente.

\version "2.24.1"

monteclefs = { \override Clef.stencil = #
               (lambda (grob)(grob-interpret-markup grob
                                                    #{ \markup\combine
                                                       \musicglyph "clefs.C"
                                                       \translate #'(-3 
. -2)
                                                       \raise #'(-3 . -2)
                                                       \musicglyph "clefs.F"
                                                    #}))
               \set Staff.clefPosition = #5
               \set Staff.middleCPosition = #5
               \set Staff.middleCClefPosition = #5
}

\new Staff \with {
   \override StaffSymbol.line-count = #8
   \override KeySignature.flat-positions = #'((-7 . 6))
   \override KeyCancellation.flat-positions = #'((-7 . 6))
   % presumably sharps are also printed in both octaves
   \override KeySignature.sharp-positions = #'((-6 . 7))
   \override KeyCancellation.sharp-positions = #'((-6 . 7))

   \override Clef.stencil = #
   (lambda (grob)(grob-interpret-markup grob
   #{ \markup\combine
     \musicglyph "clefs.C"
     \translate #'(-3 . -2)
     \musicglyph "clefs.F"
    #}))
     clefPosition = #3
     middleCPosition = #3
     middleCClefPosition = #3
}

{
   \key d\minor
   \repeat unfold 4 {f4 bes,} \break
   \monteclefs
   \repeat unfold 4 {f4 bes,}
}

Une idée?

Cordialement.

Bernard

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 29 Jun 2023 18:43:24 +0200

> fait un saut de ligne et qu'elles doivent être plus petites à la fin de 

Bonjour,

Est-ce que c'est mieux ainsi ?

```
\version "2.24.1"

monteclefs = {

\new Staff \with {

  \override Clef.stencil =
  #(lambda (grob)
     (let* ((change? (and (ly:grob-property grob 'non-default)
                          (not (eqv? RIGHT (ly:item-break-dir grob)))
                          (not (ly:grob-property grob 'full-size-change #f))))
            (c-glyph (if change? "clefs.C_change" "clefs.C"))
            (f-glyph (if change? "clefs.F_change" "clefs.F")))
     (grob-interpret-markup
      grob
      #{
        \markup\combine
        \musicglyph #c-glyph
        \translate #'(-3 . -2)
        \musicglyph #f-glyph
      #})))
  clefPosition = #3
  middleCPosition = #3
  middleCClefPosition = #3
}

{
  \key d \minor
  \repeat unfold 4 { f4 bes, }
  \break
  \monteclefs
  \repeat unfold 4 { f4 bes, }
}
```

Cordialement,

Jean