[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lilypond-user
Subject:    Re: hairpin across line breaks is placed too high on the second line
From:       "Neil Puttock" <n.puttock () gmail ! com>
Date:       2008-05-27 22:04:11
Message-ID: 7ca3d5a30805271504w5e9362c9nfb64d7c2bb175d91 () mail ! gmail ! com
[Download RAW message or body]


Hi Patrick,

2008/5/27 Patrick McCarty <pnorcks@gmail.com>:
> 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

["test.pdf" (application/pdf)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic