Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
Hi Harm,

Now that my custom ottavation function isn’t overriding the stencil, how do I adjust all of the parameters I had set in the “bound-details” version (e.g., X, Y, padding, right-broken.X, etc.)?

Thanks,
Kieren.

p.s. My original function was simply extended from the example in the [current] docs:
<http://www.lilypond.org/doc/v2.19/Documentation/notation/displaying-pitches#ottava-brackets>
Perhaps that should be changed, if it’s not the recommended method?
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Thomas Morley-2
2015-12-31 3:23 GMT+01:00 Kieren MacMillan <[hidden email]>:

> Hi Harm,
>
> Now that my custom ottavation function isn’t overriding the stencil, how do I adjust all of the parameters I had set in the “bound-details” version (e.g., X, Y, padding, right-broken.X, etc.)?
>
> Thanks,
> Kieren.
>
> p.s. My original function was simply extended from the example in the [current] docs:
> <http://www.lilypond.org/doc/v2.19/Documentation/notation/displaying-pitches#ottava-brackets>
> Perhaps that should be changed, if it’s not the recommended method?

Hi Kieren,

I made some fundamental research about spanners with line-interface
and those with additional line-spanner-interface.
Code, pdf, log attached. Their behaviour is inconsistent, to say the least.

Regarding default OttavaBracket:
It doesn't have line-spanner-interface, i.e. the following properties
are basically _not_ supported (but may be by another interface, p.e.
thickness):
    bound-details
    extra-dy
    gap
    left-bound-info
    note-columns
    right-bound-info
    simple-Y
    thickness
    to-barline

If you switch the stencil to ly:line-spanner::print you basically
loose access to (again, some of them may be supported by other
interfaces, like minimum-length, didn't test this, though):
    edge-height
    bracket-flare
    shorten-pair
    minimum-length
but you would be able to use the ones from line-spanner-interface.

Right now this is a one-or-the-other.

(Ofcourse a property-setting may not take any effect, if the
stencil-procedure doesn't use it. Though, this is always true.)


It is discussable whether OttavaBracket should behave more like other
spanners with line-spanner-interface. I guess the main reason why
OttavaBracket is done as it is, was to have edge-height and
bracket-flare user-settable.
Though, this may be possible even if the stencil-procedure would
listen to the properties from line-spanner-interface.

This would mean to rewrite the stencil, ofcourse. C++ work, which I
can't do myself.


Maybe more later.

Cheers,
  Harm

P.S.: Up to now I found it impossible to override certain properties
of the first part of a broken OttavaBracket, like the length of the
line.
Hairpin has the 'broken-bound-padding at least, but none of the
others, if I'm not mistaken.

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user

spanner-test-01.pdf (86K) Download Attachment
spanner-test-01.log (1K) Download Attachment
spanner-test-01.ly (8K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
Hi Harm,

Thank you so much for doing all this! Very informative and helpful.

> I made some fundamental research about spanners with line-interface
> and those with additional line-spanner-interface.
> Code, pdf, log attached. Their behaviour is inconsistent, to say the least.

=(

> Regarding default OttavaBracket:
> It doesn't have line-spanner-interface […]
> It is discussable whether OttavaBracket should behave more like other
> spanners with line-spanner-interface. I guess the main reason why
> OttavaBracket is done as it is, was to have edge-height and
> bracket-flare user-settable.
> Though, this may be possible even if the stencil-procedure would
> listen to the properties from line-spanner-interface.
>
> This would mean to rewrite the stencil, ofcourse. C++ work, which I
> can't do myself.

David K: Here, I believe, is a perfect example of a well-defined task that I would be happy to sponsor.

It’s worth at least 50 Euro to me.
  - if it’s an easier fix than that, I’m happy for my money to go to whatever cause seems appropriate;
  - if it’s a harder fix than that, perhaps I can get some co-sponsors.

Thoughts?

> P.S.: Up to now I found it impossible to override certain properties
> of the first part of a broken OttavaBracket, like the length of the line.
> Hairpin has the 'broken-bound-padding at least, but none of the
> others, if I'm not mistaken.

And my limited testing with \alterBroken seems to suggest that not all bits are user-settable (e.g., I still can’t seem to set the broken text without overriding the stencil).

Thanks,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Thomas Morley-2
2016-01-01 17:38 GMT+01:00 Kieren MacMillan <[hidden email]>:

>> P.S.: Up to now I found it impossible to override certain properties
>> of the first part of a broken OttavaBracket, like the length of the line.
>> Hairpin has the 'broken-bound-padding at least, but none of the
>> others, if I'm not mistaken.
>
> And my limited testing with \alterBroken seems to suggest that not all bits are user-settable (e.g., I still can’t seem to set the broken text without overriding the stencil).

Well, broken text isn't that hard:

\version "2.19.32"

foo =
\override Staff.OttavaBracket.after-line-breaking =
  #(lambda (grob)
     (let* ((orig (ly:grob-original grob))
            (siblings (if (ly:grob? orig)
                          (ly:spanner-broken-into orig)
                          '())))
      (if (> (length siblings) 1)
          (for-each
            (lambda (sib) (ly:grob-set-property! sib 'text ""))
            (cdr siblings)))))

mus =
\relative a {
  \foo
  \ottava #-2
  a2 b
  \break
  a b
  %\ottava #0
}

\new StaffGroup
<<
  \new Staff \mus
  \new Staff \repeat unfold 2 R1
>>

Cheers,
  Harm

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

David Nalesnik


On Fri, Jan 1, 2016 at 11:55 AM, Thomas Morley <[hidden email]> wrote:
2016-01-01 17:38 GMT+01:00 Kieren MacMillan <[hidden email]>:
>
> And my limited testing with \alterBroken seems to suggest that not all bits are user-settable (e.g., I still can’t seem to set the broken text without overriding the stencil).

Well, broken text isn't that hard:

\version "2.19.32"

foo =
\override Staff.OttavaBracket.after-line-breaking =
  #(lambda (grob)
     (let* ((orig (ly:grob-original grob))
            (siblings (if (ly:grob? orig)
                          (ly:spanner-broken-into orig)
                          '())))
      (if (> (length siblings) 1)
          (for-each
            (lambda (sib) (ly:grob-set-property! sib 'text ""))
            (cdr siblings)))))

mus =
\relative a {
  \foo
  \ottava #-2
  a2 b
  \break
  a b
  %\ottava #0
}

\new StaffGroup
<<
  \new Staff \mus
  \new Staff \repeat unfold 2 R1
>>


Strange that

\alterBroken text #'(() "") Staff.OttavaBracket

doesn't have an effect here (substitute this line for the call of \foo above).

David 


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

David Kastrup
In reply to this post by Kieren MacMillan
Kieren MacMillan <[hidden email]> writes:

> Hi Harm,
>
> Thank you so much for doing all this! Very informative and helpful.
>
>> I made some fundamental research about spanners with line-interface
>> and those with additional line-spanner-interface.
>> Code, pdf, log attached. Their behaviour is inconsistent, to say the least.
>
> =(
>
>> Regarding default OttavaBracket:
>> It doesn't have line-spanner-interface […]
>> It is discussable whether OttavaBracket should behave more like other
>> spanners with line-spanner-interface. I guess the main reason why
>> OttavaBracket is done as it is, was to have edge-height and
>> bracket-flare user-settable.
>> Though, this may be possible even if the stencil-procedure would
>> listen to the properties from line-spanner-interface.
>>
>> This would mean to rewrite the stencil, ofcourse. C++ work, which I
>> can't do myself.
>
> David K: Here, I believe, is a perfect example of a well-defined task
> that I would be happy to sponsor.

"particular" is not the same as "well-defined".  I can't even figure out
what this is supposed to be about.

--
David Kastrup

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Thomas Morley-2
2016-01-01 19:23 GMT+01:00 David Kastrup <[hidden email]>:

> Kieren MacMillan <[hidden email]> writes:
>
>> Hi Harm,
>>
>> Thank you so much for doing all this! Very informative and helpful.
>>
>>> I made some fundamental research about spanners with line-interface
>>> and those with additional line-spanner-interface.
>>> Code, pdf, log attached. Their behaviour is inconsistent, to say the least.
>>
>> =(
>>
>>> Regarding default OttavaBracket:
>>> It doesn't have line-spanner-interface […]
>>> It is discussable whether OttavaBracket should behave more like other
>>> spanners with line-spanner-interface. I guess the main reason why
>>> OttavaBracket is done as it is, was to have edge-height and
>>> bracket-flare user-settable.
>>> Though, this may be possible even if the stencil-procedure would
>>> listen to the properties from line-spanner-interface.
>>>
>>> This would mean to rewrite the stencil, ofcourse. C++ work, which I
>>> can't do myself.
>>
>> David K: Here, I believe, is a perfect example of a well-defined task
>> that I would be happy to sponsor.
>
> "particular" is not the same as "well-defined".  I can't even figure out
> what this is supposed to be about.
>
> --
> David Kastrup

True.
I posted my findings, else I wrote "discussable ..."

So, let's start discussion.

In the end the general question "How should OttavaBracket behave?"
should be answered detailed.
Part of it:
Which properties should be user-settable?
How should a (maybe broken) OttavaBracket behave at (line-)start/end.
Maybe crossing items like TimeSignature, BarLine, KeySignature etc.,
when broken.

Only some questions, there may be others waiting to be answered.

Cheers,
  Harm

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

David Kastrup
Thomas Morley <[hidden email]> writes:

> True.
> I posted my findings, else I wrote "discussable ..."
>
> So, let's start discussion.
>
> In the end the general question "How should OttavaBracket behave?"
> should be answered detailed.
> Part of it:
> Which properties should be user-settable?
> How should a (maybe broken) OttavaBracket behave at (line-)start/end.
> Maybe crossing items like TimeSignature, BarLine, KeySignature etc.,
> when broken.
>
> Only some questions, there may be others waiting to be answered.

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.
C++ or not, that seems likely to be the smallest part of the problem.

--
David Kastrup

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
In reply to this post by David Kastrup
Hi David,

> "particular" is not the same as "well-defined”.
> I can't even figure out what this is supposed to be about.

Feature Request: OttavaBracket should support line-spanner-interface.

Does that satisfy your definition of "well-defined”?

Thanks,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
In reply to this post by David Kastrup
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?

Regards,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
In reply to this post by Thomas Morley-2
Hi Harm,

> I posted my findings, else I wrote "discussable ..."
>
> So, let's start discussion.
>
> In the end the general question "How should OttavaBracket behave?"
> should be answered detailed.
> Part of it:
> Which properties should be user-settable?
> How should a (maybe broken) OttavaBracket behave at (line-)start/end.
> Maybe crossing items like TimeSignature, BarLine, KeySignature etc.,
> when broken.
>
> Only some questions, there may be others waiting to be answered.

I’m totally happy to discuss this at length; and that kind of detailed discussion should, of course, be had.

But is it really that difficult to simply add line-spanner-interface to the set of interfaces supported by OttavaBracket, and then fine-tune the parameters/behaviour post-hoc? If so, please explain why.

Regards,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
In reply to this post by David Nalesnik
Hi David N,

> Strange that
> \alterBroken text #'(() "") Staff.OttavaBracket
> doesn't have an effect here (substitute this line for the call of \foo above).

Exactly. This discovery (which I made some days ago) further added to my frustration about not being able to predict what is or is not likely to work in Lilypond.

Cheers,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
In reply to this post by Thomas Morley-2
Hi Harm,

> broken text isn't that hard

Thanks!

Through a combination of \translate, \with-dimensions, #’before- and #’after-line-breaking, and your help, I'm getting close to recreating without line-spanner-interface the OttavaBracket defaults that I had before [by overriding #’stencil]; see snippet, below.

Best regards,
Kieren.

%%%  SNIPPET BEGINS
\version "2.19.32"

#(set-global-staff-size 18)

\paper {
  #(define fonts
    (make-pango-font-tree "Crimson Text"
                          "Myriad Pro"
                          "Courier Prime"
                          (/ staff-height pt 20)))
  ragged-right = ##f
}

\layout {
  \context {
    \Score
    \override OttavaBracket.padding = #1
  }
}

#(define eightva
 #{
   %% messing around with \with-dimensions,
   %% because OttavaBracket has no details.stencil-align-dir-y
   \markup
       \translate #'(-0.375 . 0) \with-dimensions #'(1 . 3.625) #'(3 . 0)
       \italic \concat { "8" \raise #0.5 { \hspace #0.25 "va" } }
 #})
#(define eightva-par
 #{
   \markup
       \translate #'(-0.75 . 0) \with-dimensions #'(0 . 4.75) #'(0 . 2.8)
       \concat { "(" \hspace #-0.125 \italic { "8" \raise #0.5 { \hspace #0.125 "va" } } \hspace #0.1 ")" }
 #})
octU = {
  \once \override Staff.OttavaBracket.font-shape = #'roman
  \once \override Staff.OttavaBracket.before-line-breaking =
      #(lambda (grob) (ly:grob-set-property! grob 'text eightva))
  \override Staff.OttavaBracket.after-line-breaking =
   #(lambda (grob)
      (let* ((orig (ly:grob-original grob))
             (siblings (if (ly:grob? orig)
                           (ly:spanner-broken-into orig)
                           '())))
       (if (> (length siblings) 1)
           (for-each
             (lambda (sib) (ly:grob-set-property! sib 'text eightva-par))
             (cdr siblings)))))
  \ottava #1
}

{
  \octU c'''4 4 4 4 \break 4 4 4 4
}
%%%  SNIPPET ENDS
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

David Kastrup
In reply to this post by Kieren MacMillan
Kieren MacMillan <[hidden email]> 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

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Thomas Morley-2
In reply to this post by Kieren MacMillan
2016-01-01 22:20 GMT+01:00 Kieren MacMillan <[hidden email]>:

> Hi David N,
>
>> Strange that
>> \alterBroken text #'(() "") Staff.OttavaBracket
>> doesn't have an effect here (substitute this line for the call of \foo above).
>
> Exactly. This discovery (which I made some days ago) further added to my frustration about not being able to predict what is or is not likely to work in Lilypond.
>
> Cheers,
> Kieren.


\alterBroken is a tool meant to facilitate addressing and tweaking
parts and properties of spanners. You may call it syntactic sugar ;)
It needs investigation why it fails with OttavaBracket.text

Nevertheless, the  basic route of my coding is covered by

Extending 2.8 Difficult tweaks
http://www.lilypond.org/doc/v2.19/Documentation/extending-big-page#difficult-tweaks

and it works.


Cheers,
  Harm

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Thomas Morley-2
In reply to this post by David Kastrup
2016-01-01 22:30 GMT+01:00 David Kastrup <[hidden email]>:

> Kieren MacMillan <[hidden email]> 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

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

David Kastrup
Thomas Morley <[hidden email]> writes:

> 2016-01-01 22:30 GMT+01:00 David Kastrup <[hidden email]>:
>> Kieren MacMillan <[hidden email]> writes:
>>
>>> Hi David,
>>
>> 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.
>
> 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:

Ok, I've not been entirely correct here: when an engraver has an
acknowledger or end_acknowledger listening on line-spanner-interface,
adding the interface to OttavaBracket will cause OttavaBracket to start
triggering the respective acknowledgers.

In this case, however, I don't see any engravers acknowledging
line-spanner-interface.  So indeed at the current point of time, adding
line-spanner-interface to OttavaBracket should not make any difference.

--
David Kastrup

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Thomas Morley-2
In reply to this post by Kieren MacMillan
2016-01-01 22:13 GMT+01:00 Kieren MacMillan <[hidden email]>:
> 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),

Don't have any as well

>> 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,

For cross-checking visual appearance with other line spanners the
attached pdf to my mail here
http://lists.gnu.org/archive/html/lilypond-user/2016-01/msg00005.html
could give a starting point.

>> abstracting useful
>> commonalities and differences and only ultimately touching the code.

I general: sounds like a plan.

>
> 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?

In general, even a feature-request which is well-defined and short
worded may involve a lot more then expected. ;)

Cheers,
  Harm

_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
In reply to this post by David Kastrup
Hi David

> it's quite trivial to complete the "well-defined” task
> without doing anything remotely useful.

Well, at least I’ve answered the charge that I didn’t give a well-defined task.

Cheers,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Adjusting OttavaBracket parameters (was "Re: can't seem to apply tweaks on tweaks")

Kieren MacMillan
In reply to this post by Thomas Morley-2
Hi Harm,

> \alterBroken is a tool meant to facilitate addressing and tweaking
> parts and properties of spanners. You may call it syntactic sugar ;)
> It needs investigation why it fails with OttavaBracket.text

And, my [admittedly non-exhaustive] testing has just shown, OttavaBracket.shorten-pair.
(When this score is out the door, I’ll do a test file to see which OttavaBracket properties *are* adjustable via \alterBroken.)

> Nevertheless, the  basic route of my coding
> […] it works.

That is greatly appreciated, as it gets me a little closer to being able to complete my current engraving and send it off to the performers who are waiting patiently for it.

Thanks,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: [hidden email]


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
12