lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: markup avec cercle plein (circle fill)


From: Valentin Villenave
Subject: Re: markup avec cercle plein (circle fill)
Date: Sun, 3 May 2020 15:04:08 +0200

On 5/3/20, survoje <address@hidden> wrote:
> %% Essai totalement fictif (non valable musicalement)
> % aménagement ligne de basse accord (MG)

Puisqu’on est dans un StaffGroup, je pense qu’il est possible
d’intervenir dans le StaffGrouper précisément :

%%%%

\layout {
  \context {
    \ChordNames
    \consists Staff_symbol_engraver
    \consists Bar_engraver
    \override StaffSymbol.line-count = 1
    \override StaffSymbol.line-positions =#'(2)
    noChordSymbol = \markup \bold "/"
    \override ChordName.stencil =
    #(lambda (grob)
       (let* ((cause (ly:grob-property grob 'cause))
              (props (ly:prob-immutable-properties cause))
              (rest? (memq 'rest-event (assoc-get 'class props)))
              (stencil (ly:text-interface::print grob))
              (th .25))
         (if rest?
             stencil
             (ly:stencil-translate-axis
              (ly:stencil-scale
               (circle-stencil
                (stencil-whiteout-box stencil 1 360)
                th (- th))
               (- 1 th) (- 1 th))
              (/ th 2) Y))))
  }
  \context {
    \StaffGroup
    \override StaffGrouper.staff-staff-spacing =
    #'((basic-distance . 3)
       (minimum-distance . 0)
       (padding . 0))
  }
}

%%%%

Au demeurant, cette manière de saisir la portée du milieu me semble
pouvoir être également simplifiée, Déjà sans rien changer à
"MonDiato.ly", il y a de fortes chances que le # devant les chiffres
ne soit pas du tout nécessaire. Mais même au-delà, sans avoir vu
exactement comment ça fonctionne, il me semble qu’on pourrait utiliser
une syntaxe de saisie bien plus légère, par exemple comme ceci :

%%%%

\layout {
  \context {
    \FiguredBass
    \consists Staff_symbol_engraver
    \consists Bar_engraver
    \override StaffSymbol.line-count = 1
    \override StaffSymbol.line-positions =#'(-2)
    figuredBassFormatter =
    #(lambda (n ev ctx)
       (if (number? n)
           (number->string n)
           n))
    \override BassFigure.stencil =
    #(lambda (grob)
       (define (lists-equal a b)
         (let lp ((a a) (b b))
           (cond ((null? a) (null? b))
                 ((null? b) #f)
                 (else (and (= (car a) (car b))
                            (lp (cdr a) (cdr b)))))))
       (let* ((text (ly:grob-property grob 'text))
              (stencil (grob-interpret-markup
                        grob
                        (make-sans-markup text)))
              (color (ly:grob-property grob 'color)))
         (if (lists-equal color red)
             (circle-stencil stencil .2 .3)
             stencil)))
  }
}

t= \override FiguredBass.BassFigure.color = #red
p= \override FiguredBass.BassFigure.color = #blue
"g" = \override FiguredBass.BassFigureAlignment.padding = #2
"c" = \override FiguredBass.BassFigureAlignment.padding = #-2
tg={\t\g} pg={\p\g} tc={\t\c} pc={\p\c}

\figures {
  \tg <7> <5> <7> \c <6>
  \pg <8>4. \c <7>8 \g <8>4 \c <6>
  \tg <7>2 \pc <8>8 <8> \tg <7>4
}

%%%%

V.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]