[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.
- markup avec cercle plein (circle fill), Gerard, 2020/05/03
- Re: markup avec cercle plein (circle fill), Valentin Villenave, 2020/05/03
- Re: markup avec cercle plein (circle fill), survoje, 2020/05/03
- Re: markup avec cercle plein (circle fill), Valentin Villenave, 2020/05/03
- Re: markup avec cercle plein (circle fill), survoje, 2020/05/03
- Re: markup avec cercle plein (circle fill),
Valentin Villenave <=
- Re: markup avec cercle plein (circle fill), survoje, 2020/05/03
- Re: markup avec cercle plein (circle fill), Valentin Villenave, 2020/05/03
- Re: markup avec cercle plein (circle fill), Gerard, 2020/05/04