lilypond-user
[Top][All Lists]
Advanced

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

Re: hairpin across line breaks is placed too high on the second line


From: Neil Puttock
Subject: Re: hairpin across line breaks is placed too high on the second line
Date: Tue, 27 May 2008 23:04:11 +0100

Hi Patrick,

2008/5/27 Patrick McCarty <address@hidden>:
> On Mon, May 26, 2008 at 10:20 AM, Neil Puttock wrote:
>>
>> A rather inelegant workaround would be to use a callback with
>> 'extra-offset (ugh), like the one detailed in 7.7.2 Difficult tweaks:
>>
>> #(define (my-callback grob)
>>  (let* (
>>         ; have we been split?
>>         (orig (ly:grob-original grob))
>>
>>         ; if yes, get the split pieces (our siblings)
>>         (siblings (if (ly:grob? orig)
>>                     (ly:spanner-broken-into orig) '() )))
>>
>>   (if (and (>= (length siblings) 2)
>>             (eq? (car (last-pair siblings)) grob))
>>     (ly:grob-set-property! grob 'extra-offset '(0 . -1.8)))
>>   ly:hairpin::after-line-breaking))
>>
>> \once \override Hairpin #'after-line-breaking = #my-callback
>
> Hi Neil,
>
> Do you know if this is the only way the 'after-line-breaking property
> can be manually tweaked?

I think so. It's documented as being a dummy property; I can't say
I've seen it used in any other way.

>  There is some text in NR 1.3.1.2 (Dynamics):
>
> ****
>
> Crescendi and decrescendi that cross a line break will be continued on
> the second line. If they end on the first note of a new line, nothing
> will be printed on that line. To change this behavior, use
>
> \override Score.Hairpin #'after-line-breaking = ##t
>
> ****
>
> Is this tweak no longer valid?  I wanted to see if anyone can
> enlighten me about this, so I can decide whether to remove (or keep)
> this information in NR 1.3.1.2.

I'd guess that's a legacy item; it's strange that the context is
specified as Score, since Hairpins work at the Voice context.

I've done a bit of investigating in the source, and I can't see any
way of forcing a broken hairpin for the first note of a new line -
when hairpins are printed, the function consider_suicide () is called,
which decides whether a Hairpin should be printed. It checks for the
special case above, and kills the hairpin, so there's no way of
overriding this behaviour.

As a test, I've commented out the code which performs the
"broken-hairpin-on-first-note-new-line" test and attached the output
below; as you can see, it results in a small hairpin after the break,
which I'd imagine would be the desired effect of the tweak, were it to
work.

So, unless I'm mistaken, I'd say the tweak isn't valid; it certainly
has no effect, even when 'hairpin-to-barline = ##f.

Regards,
Neil

Attachment: test.pdf
Description: Adobe PDF document


reply via email to

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