[Top][All Lists]
[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
test.pdf
Description: Adobe PDF document