Werner LEMBERG <w...@gnu.org> writes: >> Using >> >> http://lsr.di.unimi.it/LSR/Item?id=1000 >> >> I wonder how to get the effect for a single note. Ideally, I would >> like to write >> >> \genericSpan <...parameters ...> >> e\startGroup\stopGroup > > With the attached patch (for git master) I get exactly that :-) > > Not sure whether the coding fits lilypond's C++ style, however.
Seriously? C++ has loops, you don't need goto for that. But the semantics are worse. > + // One single-moment bracket is allowed. Abbreviating a horizontal > + // bracket's `START' span-direction with `L' and `STOP' with `R', this > + // means that we can have > + // > + // LLL...LLR > + // > + // or > + // > + // LRRR...RR > + // > + // events attached to a single moment (we don't take care of the order of > + // `L' and `R' events). > + > if (d == STOP) > { > pop_count_++; > - if (pop_count_ > bracket_stack_.size ()) > + if (pop_count_ > bracket_stack_.size () + 1) [...] > \include "ColorSpanDef.ily" > > \new Staff { > \override HorizontalBracket.line-thickness = #0 > \genericSpan #-4 #-2 #-4 #-2 > \colDarkRed \colLightRed #0 #0 ##f ##f > <c' d'>2\startGroup\stopGroup > > c'4\startGroup\startGroup\stopGroup > c'4\startGroup\stopGroup\stopGroup > } > > \layout { > \context { > \Voice > \consists "Horizontal_bracket_engraver" > } > } If the resulting semantics and the allowed and not allowed constructs cannot be described in a reasonably straightforward manner with reasonably straightforward code, we should strive for something more coherent, even if it means a larger effort in coding at the program (rather than the user) level. Try-it-until-it-works features are indistinguishable from bugs and could work differently in future versions. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user