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

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

Re: \mark, encadrement et positionnement conditionnel


From: Jean Abou Samra
Subject: Re: \mark, encadrement et positionnement conditionnel
Date: Fri, 29 Sep 2023 13:03:30 +0200
User-agent: Evolution 3.48.4 (3.48.4-1.fc38)

Le vendredi 29 septembre 2023 à 03:55 +0000, Frédéric Moinard a écrit :
>  
> Réponse en message personnel pour ne pas encombrer la liste avec une image.


Comme ça, ça devrait le faire :


\version "2.24.2"

#(use-modules (ice-9 match))
#(define-markup-command (handwriting-box layout props arg) (markup?)
   #:properties ((thickness 0.3)
                 (padding 0.5)
                 (width 0.2))
   (match-let* ((stil (interpret-markup layout props arg))
                ((start-X . end-X) (interval-widen (ly:stencil-extent stil X) 
padding))
                ((start-Y . end-Y) (interval-widen (ly:stencil-extent stil Y) 
padding))
                (width (* width (- end-Y start-Y)))
                (Y-point (lambda (x)
                           (+ start-Y (* x (- end-Y start-Y))))))
     (ly:stencil-add
      stil
      (make-path-stencil
       `(moveto ,start-X ,start-Y
                lineto ,end-X ,start-Y
                curveto ,(+ end-X width) ,(Y-point 1/3)
                        ,(+ end-X width) ,(Y-point 2/3)
                        ,end-X ,end-Y
                lineto ,start-X ,end-Y
                curveto ,(- start-X width) ,(Y-point 2/3)
                        ,(- start-X width) ,(Y-point 1/3)
                        ,start-X ,start-Y)
       thickness 1 1 #f))))

%% \markup \handwriting-box "foo"

\layout {
  \set Score.rehearsalMarkFormatter = #format-mark-barnumbers
  \override Score.RehearsalMark.stencil =
  #(grob-transformer
    'stencil
    (lambda (grob orig)
      (grob-interpret-markup
       grob
       #{
         \markup
         %% ajuster les paramètres
         \override #'((thickness . 0.4)
                      (padding . 0.4)
                      (width . 0.2))
         \handwriting-box \stencil #orig
       #})))
  \override Score.RehearsalMark.break-align-symbols = #'(left-edge staff-bar 
key-signature clef)
}


myMark =
#(define-music-function (label) ((index-or-markup?))
   #{
     \once \omit Score.BarNumber
     #(if label #{ \mark #label #} #{ \mark \default #})
   #})


{
  c'1 \break
  \myMark \default
  c'1
  \myMark \default
  c'1
}


Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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