2016-01-01 22:30 GMT+01:00 David Kastrup <d...@gnu.org>: > Kieren MacMillan <kieren_macmil...@sympatico.ca> 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 lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user