lilypond-user
[Top][All Lists]
Advanced

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

Re: Default length of laissezvibrer ties


From: Nick Payne
Subject: Re: Default length of laissezvibrer ties
Date: Fri, 09 Mar 2012 11:01:52 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2

On 08/03/12 09:09, Thomas Morley wrote:
Hi Nick,

2012/3/7 Janek Warchoł<address@hidden>:
On Wed, Mar 7, 2012 at 8:35 AM, Nick Payne<address@hidden>  wrote:
The default length of laissezvibrer ties in Lilypond is extremely short
compared to those I see in commercially published scores. Here's the
Lilypond output (default and tweaked) compared to the LV ties in scores from
three different publishers:
\version "2.15.32"

\version "2.15.32"

xLV = #(define-music-function (parser location further) (number?) #{
    \once \override LaissezVibrerTie  #'X-extent = #'(0 . 0)
    \once \override LaissezVibrerTie  #'details #'note-head-gap = #(/ further
-2)
    \once \override LaissezVibrerTie  #'extra-offset = #(cons (/ further 2)
0)
#})

\relative c' {
    c4\laissezVibrer s s s
    \xLV #3 c4\laissezVibrer s s s
}
I'd make it halfway between current length and your longer version.
Keep in mind that it can be used for "let ring" indications in guitar
music (unless i'm mistaken), and that can be a pretty dense music.

cheers,
Janek
as a workaround (instead of tweaking every LaissezVibrerTie one by
one) I come up with:

\version "2.14.2"

#(define factor 2)

#(define (enlarged-extent-laissez-vibrer::print grob)
   (let* ((stil (laissez-vibrer::print grob))
          (stil-ext (ly:stencil-extent stil X))
          (stil-length (interval-length stil-ext))
          (new-stil-length (* stil-length factor))
          (scale-factor (/ new-stil-length stil-length))
          (new-stil (ly:stencil-scale stil scale-factor 1))
          (new-stil-ext (ly:stencil-extent new-stil X))
          (x-corr (- (car stil-ext) (car new-stil-ext))))
   (ly:stencil-translate-axis
      new-stil
      x-corr
      X)))

#(assoc-set! (assoc-ref all-grob-descriptions 'LaissezVibrerTie)
'stencil enlarged-extent-laissez-vibrer::print)

\relative c' {
         <c e g c>\laissezVibrer
}

You may want to play around with the value of "factor" to find sth
that fits your needs.
Works with 2.15.31, too.

Thanks. I gave it a try. The one shortcoming I've found is that the ends of LV ties on a chord containing a second no longer align. It also increases the weight of the LV ties relative to ordinary ties and slurs:

\version "2.15.32"

#(define factor 2)

#(define (enlarged-extent-laissez-vibrer::print grob)
  (let* ((stil (laissez-vibrer::print grob))
         (stil-ext (ly:stencil-extent stil X))
         (stil-length (interval-length stil-ext))
         (new-stil-length (* stil-length factor))
         (scale-factor (/ new-stil-length stil-length))
         (new-stil (ly:stencil-scale stil scale-factor 1))
         (new-stil-ext (ly:stencil-extent new-stil X))
         (x-corr (- (car stil-ext) (car new-stil-ext))))
  (ly:stencil-translate-axis
     new-stil
     x-corr
     X)))

#(assoc-set! (assoc-ref all-grob-descriptions 'LaissezVibrerTie)
'stencil enlarged-extent-laissez-vibrer::print)

\relative c' {
<c e g c>\laissezVibrer s s s <d c f,>\laissezVibrer s s s
}

Attachment: with_tweak.png
Description: PNG image

Attachment: without_tweak.png
Description: PNG image


reply via email to

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