lilypond-user
[Top][All Lists]
Advanced

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

Re: old school style of parenthesised ties or slurs possible ?.


From: Thomas Morley
Subject: Re: old school style of parenthesised ties or slurs possible ?.
Date: Mon, 23 Sep 2019 22:59:29 +0200

Am Mo., 23. Sept. 2019 um 18:56 Uhr schrieb Eby Mani via lilypond-user
<address@hidden>:
>
>
> examples, the ties float within the parenthesis, slightly above the notes. 
> Lillypond ties almost touch both notes.
>
> eby
> On Monday, 23 September, 2019, 9:03:58 AM IST, Andrew Bernard 
> <address@hidden> wrote:
>
>
> Provide an example picture.
>
> Andrew
>
> On Mon., 23 Sep. 2019, 12:36 pm Eby Mani via lilypond-user, <address@hidden> 
> wrote:
>
> Is there a snippet for "2.18.2" to add old school style of parenthesised ties 
> or slurs as found on old 19th century editions ?.
>
> Thanks,
> eby

How about below?
After http://lsr.di.unimi.it/LSR/Item?id=771

\version "2.18.2"

#(define (parenthesize-bow shorten-padding-y)
  (lambda (grob)
   (let* ((cps (ly:grob-property grob 'control-points))
          ;; `val´ shortens the Tie at left and right side
          (val (car shorten-padding-y))
          ;; `pad´ is the amount of padding betnween Tie and the
          ;; text-brackets
          (pad (cadr shorten-padding-y))
          ;; `y´ moves the entire Tie
          (y (last shorten-padding-y))
          (new-cps
            (map
              coord-translate
              cps
              (list
                (cons val y)(cons val y)(cons (- val) y)(cons (- val) y))))
          (basic-props (ly:grob-basic-properties grob))
          (stil-proc (assoc-get 'stencil basic-props))
          ;; compensate font-size of Tie
          ;; mmh, hard-coded :(
          (font-size
            (if (grob::has-interface grob 'tie-interface)
                0 -6)))
   (ly:grob-set-property! grob 'control-points new-cps)
   (ly:grob-set-property! grob 'stencil
     (ly:stencil-add
       (stil-proc grob)
       (ly:stencil-translate
         (centered-stencil
           (grob-interpret-markup grob #{ \markup \fontsize #font-size "(" #}))
         (coord-translate (car new-cps) `(,(- pad) . 0)))
       (ly:stencil-translate
         (centered-stencil
           (grob-interpret-markup grob #{ \markup \fontsize #font-size ")" #}))
         (coord-translate (last new-cps) `(,pad . 0))))))))

parBow =
#(define-music-function (parser location shorten-padding-y bow mus)
  (list? string? ly:music?)
#{
   \once \override $bow . after-line-breaking =
     #(parenthesize-bow shorten-padding-y)
   $mus
#})


\relative c' {
  \parBow #'(0.2 0.2 0) Tie
  b1~ b
  \parBow #'(0.2 0.2 0.5) Tie
  b'1~ b
  \parBow #'(0.2 0.2 -0.3) Slur
  b,( f')
  \parBow #'(0.2 0.2 -0.3) PhrasingSlur
  f\( b,\)

  \parBow #'(0.2 0.2 0) Tie
  b1~ \break b
}


Cheers,
  Harm



reply via email to

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