[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Liaisons entre parenthèses
From: |
Jean-Jacques Gerbaud |
Subject: |
Re: Liaisons entre parenthèses |
Date: |
Tue, 18 Feb 2014 14:48:15 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
Le 18/02/2014 13:31, JMarc a écrit :
Bon c'est pas super élégant et ça ne fontionne que pour 2 notes liées (pas
sur 3 ou plus), mais ça peut dépanner. Il s'agit de l'adaptation du code sus
cité (vous pensez bien que je n'ai pas pu pondre cela à partir de rien ).
A bientôt !
JMarc
\version "2.17.22"
tieBetweenText =
#(define-music-function (parser location leftText rightText) (markup?
markup?)
........
Bonjour à tous,
Je suis curieux et... j'ai le temps !
Dans le texte de référence, je me suis amusé à remplacer "tie" ou "Tie"
par "hairpin" ou "Hairpin"
Et je suis allé un peu plus loin pour voir si on pouvait mettre
plusieurs notes entre parenthèses. Voilà le résultat :
\version "2.17.97"
hairpinBetweenText =
#(define-music-function (parser location leftText rightText)
(markup? markup?)
#{
\once \override Hairpin #'stencil = #(lambda (grob)
(let* ((orig (ly:grob-original grob))
(siblings (if (ly:grob? orig)
(ly:spanner-broken-into orig)
'()))
(hairpin-stencil (ly:stencil-aligned-to
(ly:hairpin::print grob) Y CENTER))
(left-addition (ly:stencil-aligned-to
(grob-interpret-markup grob leftText) Y CENTER))
(right-addition (ly:stencil-aligned-to
(grob-interpret-markup grob rightText) Y CENTER)))
(if (or (null? siblings) (eq? grob (car siblings)))
(set! hairpin-stencil
(ly:stencil-combine-at-edge
left-addition X RIGHT
hairpin-stencil
0)))
(if (or (null? siblings) (eq? grob (car (reverse siblings))))
(set! hairpin-stencil
(ly:stencil-combine-at-edge
hairpin-stencil X RIGHT
right-addition
0.6)))
hairpin-stencil))
#})
parenthesizedHairpin = \hairpinBetweenText \markup \fontsize #3 "( " \markup
\fontsize #3 ")" %adapter fontsize en fonction des goûts
\relative c''{
\once \override Hairpin.extra-offset = #'(-0.4 . 0)
c1~\< c\!
\once \override Hairpin.extra-offset = #'(0.5 . -1)
\parenthesizedHairpin
a1\> b c4 b c a a1\!
%il est possible que le
%0.5 puisse être inclus plus haut dans la définition
\once \override Hairpin.extra-offset = #'(0.5 . -0)
\parenthesizedHairpin
c,1\< c d e\!
}
--
JJG
Linux ? Y a moins bien mais c'est plus cher !
http://www.sky.fm/play/classical
http://www.radiosuisseclassique.ch/fr