[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dessiner la ronde comme une tête de blanche
From: |
Olivier Miakinen |
Subject: |
Re: Dessiner la ronde comme une tête de blanche |
Date: |
Thu, 13 Oct 2016 22:35:39 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
Le 13/10/2016 10:21, Pierre Perol-Schneider m'a répondu :
> Un premier essai :
Essai transformé. :-)
> [...]
>
> %% Changer les rondes :
> \override NoteHead.stencil =
> #(lambda (grob)
> (let ((duration (ly:grob-property grob 'duration-log)))
> (case duration
> ((0) (grob-interpret-markup grob (markup #:musicglyph
> "noteheads.s1")))
> (else (ly:note-head::print grob)))))
> \override Rest.stencil =
> #(lambda (grob)
> (let ((duration (ly:grob-property grob 'duration-log)))
> (case duration
> ((0)(ly:stencil-scale (ly:rest::print grob) 0.8 1)) ;; <=
> réduction à 80%
> ((1)(ly:stencil-scale (ly:rest::print grob) 0.8 1)) ;; <=
> réduction à 80%
> (else (ly:rest::print grob)))))
>
> [...]
Tu es génial. Du coup, j'ai joué à l'apprenti sorcier en mélangeant les
deux pour réduire à 90 % la largeur des notes carrées :
\override NoteHead.stencil =
#(lambda (grob)
(let ((duration (ly:grob-property grob 'duration-log)))
(case duration
((0) (grob-interpret-markup grob (markup #:musicglyph
"noteheads.s1")))
((-1)(ly:stencil-scale (ly:note-head::print grob) 0.9 1))
(else (ly:note-head::print grob)))))
Et ça marche !
(bon, on ne dira pas qu'au début je me suis planté en laissant
ly:rest::print au lieu de ly:note-head::print... LilyPond a mouliné
pendant un long moment avant de s'arrêter avec un message d'erreur)
Sinon, comment dire... eh bien encore merci Pierre !