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

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

Re: slurs entre crochets


From: Daniel Bernair
Subject: Re: slurs entre crochets
Date: Wed, 25 Mar 2015 16:14:22 +0100

J'avais posé la question pour tout un système. cela pourrait aider ?
%{
Je ne trouve pas comment programmer
l’impression d’un crochet de début de sélection
et celui de fin à travers un système.
%}

#(define-markup-command (flip layout props myGrob)
 (markup?)
   (interpret-markup layout props
     (markup #:concat (#:null #:scale (cons -1 1) #:line (myGrob)))))

#(define-markup-command (crochet layout props myBracketHeight) (number?)
 (interpret-markup layout props
   (markup #:line (#:with-dimensions (cons -1 0) (cons 0 2)
     (#:path 0.25
       (list (list (quote moveto) 0 1.5)
       (list (quote lineto) -2 1.5)
       (list (quote lineto) -2 (* myBracketHeight -1))
       (list (quote lineto) 0 (* myBracketHeight -1))))))))

global = {
 \key b\minor
 \time 3/4
 \mark\markup\box "M"
}

\score {
 <<
   \new Voice = "Bariton" {
     \global
     \clef F
     <>^\markup\crochet #28
     r4 r c'
     c'-\tweak X-offset #1
     ^\markup\flip\crochet #30 c' s
   }
   \new Lyrics \lyricsto "Bariton" {
     I
   }
   \new Lyrics \lyricsto "Bariton" {
     \markup\italic So
   }
   \new PianoStaff <<
     \new Staff {
       \global
       g''4.( a''8) fis''4-. fis'' fis'' s
     }
     \new Staff {
       \global
       \clef F
       << { r4 <c' d'> q c' c' s } \\ { a2. d } >>
     }
   >>
 >>
 \layout {
   \context {
     \Score
     \omit TimeSignature
   }
 }
}

Amicalement,
Daniel Bernair

-----Message d'origine----- From: ÉditionsIN NOMINE
Sent: Wednesday, March 25, 2015 9:12 AM
To: Seventies
Cc: address@hidden
Subject: Re: slurs entre crochets

Merci Jean-François pour cette réponse rapide !
J'ai trituré un peu le code, mais sans trop savoir ce que je faisais.
Résultat, j'obtiens, en remplaçant Hairpin par Slur (tu vois le niveau
du gars !), un joli objet bougeable lais non paramétrable. Il faudrait
qu'un crac trouve le moyen d'accrocher les crochets aux positions a et
b du Slur.

En attendant, je fais une manipe à la mano, bien bourrin :

bouge = #(define-music-function
   (parser location a-b)
   (pair?)
 #{
   \once \override Voice.TextScript.extra-offset = $a-b
 #})

slur = #(define-music-function
   (parser location a-b)
   (pair?)
 #{
   \once \override Slur.positions = $a-b
 #})

\score {
 \relative c''{

\bouge #'(-0.5 . -1.5) \slur #'(3 . 5.5) c16^"[" (d e f g a \bouge
#'(0.8 . -1.5)  b^"]") c d e f g a }}

Merci encore et à bientôt !
JMarc

Le Tue, 24 Mar 2015 11:40:37 -0700 (MST),
Seventies <address@hidden> a écrit :

J'ai retrouvé ceci sur les soufflets entre parenthèses, entre
crochets, ...

% Mettre un soufflet entre parenthèses (ou tout autre signe)

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))
   #})

% utilisation :
parenthesizedHairpin = \hairpinBetweenText \markup "(" \markup ")"
bracketedHairpin = \hairpinBetweenText \markup "[" \markup "]"
shortenedHairpin = \hairpinBetweenText \markup " " \markup " "

\parenthesizedHairpin
c16\< d e f g a b c d e f g a\!
% ne vaut que pour le soufflet suivant la note concernée


Je n'ai pas encore essayé en remplaçant le stencil hairpin par slur,
ça devrait fonctionner.
Si j'ai un moment ce soir, je teste, car c'est parfois bien utile.

Cordialement,

Jean-François




--
View this message in context:
http://lilypond-french-users.1298960.n2.nabble.com/slurs-entre-crochets-tp7582592p7582598.html
Sent from the LilyPond French Users mailing list archive at
Nabble.com.

_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr



--
Jean-Marc LEGRAND
Éditions IN NOMINE

_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr



reply via email to

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