lilypond-user
[Top][All Lists]
Advanced

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

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply twe


From: Thomas Morley
Subject: Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")
Date: Fri, 1 Jan 2016 23:29:19 +0100

2016-01-01 22:30 GMT+01:00 David Kastrup <address@hidden>:
> Kieren MacMillan <address@hidden> writes:
>
>> Hi David,
>>
>>> To me it would appear that in this case by far the lion's share of the
>>> work is digging through reference books (incidentally, I don't have any
>>> of those), devising a good plan for the desired behavior, checking with
>>> the current behavior, figuring out where the differences are,
>>> cross-checking with other line spanners, abstracting useful
>>> commonalities and differences and only ultimately touching the code.
>>
>> If OttavaBracket simply supported line-spanner-interface (as per my
>> feature request in a previous email), and I submitted a reasonable set
>> of defaults and syntactic sugar — based on the many reference books
>> (which, incidentally, I *do* have) — we’d satisfy 99.5% of the
>> OttavaBracket needs of 99.5% of the Lilypond user base.
>>
>> Getting that done in a short amount of time seems like a far better
>> idea (to me) than spending multiple hours cross-checking other
>> spanners, etc., and possibly not rolling out such useful features in
>> the foreseeable future.
>>
>> It’s funny: I have been taken to task more than one time on this list
>> for defining too large and vague a feature/request. Now an incredibly
>> focused and well-defined task (“make OttavaBracket support
>> line-spanner-interface”) is apparently too small and/or specific?
>
> It is trivial to let OttavaBracket contain line-spanner-interface which
> is just a label for a set of properties.  What those properties do
> depends on actual code, however.  It's common that different grobs react
> somewhat differently (or not at all) to particular properties.
>
> So it's quite trivial to complete the "well-defined" task without doing
> anything remotely useful.
>
> --
> David Kastrup

Hi Kieren,

to illustrate: Even without having put line-spanner-interface into
OttavaBracket in any kind, you can set the relevant properties and you
can read out the values elsewhere. But nothing else happens, see:

{
  \override Staff.OttavaBracket.after-line-breaking =
    #(lambda (grob)
      (display-scheme-music (ly:grob-property grob 'bound-details)))

  \override Staff.OttavaBracket.bound-details =
    #`((left . ((Y . 0)
                (attach-dir . ,LEFT)
                (padding . 0)
                (stencil-align-dir-y . ,CENTER)))
       (right . ((Y . 5)
                 (padding . 0)
                 (attach-dir . ,RIGHT)
                 (text . "xxxxxxxxxxxxxx"))))
  \ottava #-1
  c'1 d'
}


Explicitely including line-spanner-interface will make no difference.
What's needed is that the stencil-procedure reads those settings and
does something useful with them.

Now we're back to what is this "something"?

As a wild and untested guess: I want to test whether I can extend
ly:line-spanner::print to have bracket-angles, determined by
'bracket-flare and 'edge-height.
Though, even with success, it would be a scheme-hack, nothing we would
want to see in the source.
More: the properties 'shorten-pair (if kept) and
'bound-details.left/right.X and 'bound-details.left/right.padding
conflict in a certain way. Needs to be resolved.

I'll give it a try next days.

Cheers,
  Harm



reply via email to

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