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

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

Re: raccourcir les bendafter


From: Jean Abou Samra
Subject: Re: raccourcir les bendafter
Date: Sun, 21 Aug 2022 18:26:18 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0



Le 21/08/2022 à 17:27, Vincent Gay a écrit :
Hello lilyponders,

Dans mes partitions le line breaking n'est pas automatique, il est calculé pour respecter des blocs de 4 mesures. Du coup l'astuce indiquée dans la documentation ( La propriété |shortest-duration-space| peut devoir être retouchée pour ajuster l’apparence des chutes ou sauts) ne fonctionne pas. Pourtant j'aimerai raccourcir les bendafter que je trouve particulièrement moches.

Une idées ? Merci d'avance.




Est-ce que quelque chose comme ceci te conviendrait ? J'ai repris
et modifié la fonction qui construit le stencil du bend.


\version "2.23.11"

#(set-object-property! 'maximum-length 'backend-type? number?)

\layout {
  \context {
    \Score
    \override BendAfter.springs-and-rods = #ly:spanner::set-spacing-rods
    \override BendAfter.stencil =
    #(lambda (spanner)
        (define (close  a b)
          (< (abs (- a b)) 0.01))
        (let* ((delta-y (* 0.5 (ly:grob-property spanner 'delta-position)))
               (left-span (ly:spanner-bound spanner LEFT))
               (dots (and (grob::has-interface left-span 'note-head-interface)
                          (ly:grob-object left-span 'dot #f)))
               (right-span (ly:spanner-bound spanner RIGHT))
               (thickness (* (ly:grob-property spanner 'thickness)
                             (ly:staff-symbol-line-thickness spanner)))
               (padding (ly:grob-property spanner 'padding 0.5))
               (common (ly:grob-system spanner))
               (common-y (ly:grob-common-refpoint spanner left-span Y))
               (minimum-length (ly:grob-property spanner 'minimum-length 0.5))                (maximum-length (ly:grob-property spanner 'maximum-length 1.0))
               (left-x (+ padding
                          (max
                           (interval-end (ly:generic-bound-extent
                                          left-span common))
                           (if
                            (and dots
                                 (close
                                  (ly:grob-relative-coordinate dots common-y Y)                                   (ly:grob-relative-coordinate spanner common-y Y)))
                            (interval-end
                             (ly:grob-robust-relative-extent dots common X))
                            (- INFINITY-INT)))))
               ;; FIXME: accidentals
               (right-start (ly:grob-relative-coordinate left-span common X))
               (right-x (min (- (max (interval-start
                                      (ly:generic-bound-extent right-span common))
                                     (+ left-x minimum-length))
                                padding)
                             (+ left-x maximum-length)))
               (self-x (ly:grob-relative-coordinate spanner common X))
               (dx (- right-x left-x)))
          (make-path-stencil
           `(rmoveto
             ,(- left-x self-x) 0
             rcurveto
             ,(/ dx 3) 0
             ,dx ,(* 0.66 delta-y)
             ,dx ,delta-y)
           thickness
           1
           1
           #f)))
  }
}

\paper {
  indent = 0\mm
  ragged-last-bottom = ##t
  ragged-bottom = ##f
  ragged-last = ##f
}

\new Staff \with {
  \magnifyStaff #3/2
}
\relative c'' {
  \override BendAfter.minimum-length = 1
  \override BendAfter.maximum-length = 1.3
  \override BendAfter.padding = 0.5
  \time 2/2 \key d \major
  \partial 2 a4 c8 a \bar "||"
  c4  a4 \bendAfter #-3 r2 | r2 c4 a8 g | a8 g e4 r2  | r4 e a a | \break
  a r r2 | r4 r8 e'~ e2 | \tuplet 3/2 { d8 c a~ } a2 r4 | r4 r8 a\tweak maximum-length 0.8\bendAfter 2 c8 d4.\bendAfter -2 |
  c4.\bendAfter -2
}



Cordialement,
Jean





reply via email to

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