lilypond-user
[Top][All Lists]
Advanced

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

Re: lengthening broken ties


From: David Nalesnik
Subject: Re: lengthening broken ties
Date: Tue, 3 Feb 2015 12:43:45 -0600

Hi Werner,

On Tue, Feb 3, 2015 at 7:40 AM, Werner LEMBERG <address@hidden> wrote:

Folks,


I'm trying to work around an old problem of broken ties in tightly
setted music: They can degenerate to a dot, having no horizontal
extensions anymore.  Following the example in section `Difficult
tweaks' of the notation reference (with slight changes to change the
property for all siblings but the first one), I tried this:

  #(define (set-minimum-length grob)
     (let* ((orig (ly:grob-original grob))
            (siblings (if (ly:grob? orig)
                          (ly:spanner-broken-into orig)
                          '())))
       (if (and (> (length siblings) 1)
           (not (eq? (car siblings) grob)))
         (ly:grob-set-property! grob 'minimum-length 20))))

  \paper {
    indent = 0
    line-width = 50\mm
    ragged-right = #f
  }

  {
    \override Tie.after-line-breaking = #set-minimum-length
    c''1 ~ \break
    c''1
  }

However, this has no effect.  I guess this is because because the
`after-line-breaking' callback is invoked too late in the formatting
process.

Yes, it appears that 'minimum-length is consulted before line breaking happens, in the callback  for ly:spanner::set-spacing-rods (in lily/spanner.cc).  Spacing rods are created provisionally for broken pieces which might occur later.


Is there a possibility to make this work?

Don't know.  In any case, I think the goal should be to make this work with an override of 'minimum-length, rather than setting 'minimum-length though 'after-line-breaking.  Then this would work with \alterBroken, which would eliminate the need to write your own "difficult tweak."

I don't know if this is related, but here is a clear bug I discovered when experimenting with your snippet:

 \paper {
  line-width = 50\mm
}

{
  \override Tie.minimum-length = #40
  c''2 ~ c'' ~ \break
  c''2 ~ c''
}

The music goes right off the side of the page.

Hope this is useful--

David

reply via email to

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