On 4 févr. 2013, at 16:01, Kieren MacMillan <kieren_macmil...@sympatico.ca> wrote:
> Hello all! > > A few weeks ago, in response to Mike Solomon's call for features and bugs, I > posted a request: > >>> 2. Allowing a text markup (especially a MetronomeMark) to have a "minimum >>> measure length". This would avoid collisions, particularly where there are >>> lots of multi-measure rests (e.g., orchestral parts). > > His response was: > >> #2 is doable via a hack. Minimum lengths can only work if you use spanners, >> but you can hijack the tempo print function for a text spanner (and suppress >> the line afterwards) and then create a scheme engraver for text spanner that >> uses whatever as the left bound and the next bar line's non-musical paper >> column as the right bound. Or you could just use the existing engraver and >> use the last note in the measure as a bound, although this will potentially >> create uneven spacing in a measure. >> >> You'll have to manually put this TextSpanner in the topmost context and/or >> use ly:side-position-interface::move-to-extremal-staff (I'd recommend the >> former, as the latter is powerful but falls in the category of LilyPond >> black magic). Make sure to use springs and rods and set a minimum-length - >> there's an example in the docs with a hairpin or glissando or something >> spanner-y that does this. > > Is there anyone out there who can work on this with me? I've got some money > to put towards the implementation. > > Thanks! > Kieren. Should get you started OK: \version "2.17.8" #(define my-text "Allegro con fuoco ma non troppo") \new Staff << { \override TextSpanner.bound-details.left.text = #my-text \override TextSpanner.font-shape = #'normal \override TextSpanner.font-size = #1 \override TextSpanner.springs-and-rods = #ly:spanner::set-spacing-rods \override TextSpanner.minimum-length = #(lambda (grob) (interval-length (ly:stencil-extent (grob-interpret-markup grob my-text) X))) s1*7/8\startTextSpan s1*1/8\stopTextSpan s1*7/8\startTextSpan s1*1/8\stopTextSpan } { R1 | R1 | } >> Cheers, MS _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel