2014-05-29 21:16 GMT+02:00 Orm Finnendahl <orm.finnend...@hfmdk-frankfurt.de>: > Hi, > > in the following example, the compound timesignature is only shown on > the top staff. Is there a mechanism to show it in all staffs with the > "2+3/4" without wxplicitely having to restate the compundMeter > statement in each staff? [...]
'compoundMeter' uses \once \override Staff.TimeSignature.stencil = ... to explecitely limit the stemcil-override to current Staff. Otherwise the following code would return wrong output: \score { \relative c' << \new Staff { \compoundMeter #'((3 2 4)) c4 c c c c c4 c c c c } \new Staff { \time 6/8 \repeat unfold 4 { c4. } \time 4/4 c2 c } >> \layout { \context { \Score \remove "Timing_translator" \remove "Default_bar_line_engraver" } \context { \Staff \consists "Timing_translator" \consists "Default_bar_line_engraver" } } } OTOH, it's possible to redefine 'compoundMeter': compoundMeter = #(define-music-function (parser location ctx args) ((string? "Staff") pair?) (let* ((mlen (calculate-compound-measure-length args)) (beat (calculate-compound-base-beat args)) (beatGrouping (calculate-compound-beat-grouping args)) (timesig (cons (ly:moment-main-numerator mlen) (ly:moment-main-denominator mlen)))) #{ \once \override $ctx .TimeSignature.stencil = #(lambda (grob) (grob-interpret-markup grob (format-compound-time args))) \set Timing.timeSignatureFraction = #timesig \set Timing.baseMoment = #beat \set Timing.beatStructure = #beatGrouping \set Timing.beamExceptions = #'() \set Timing.measureLength = #mlen #} )) Now \compoundMeter #'((3 2 4)) is limited to current Staff, whereas \compoundMeter Score #'((3 2 4)) is applied to the whole Score. HTH, Harm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user