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

[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



reply via email to

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