Le 23/09/2021 à 00:47, Nuno Trocado a écrit :
Perhaps you want the tempo mark to start on
the first note rather than the time signature:
Not really... I'd like to have the tempo mark aligning to the time signature,
but shifting a little horizontally if it collides with a rehearsal mark.
Here is my attempt at automating it.
\version "2.22.1"
\layout {
\context {
\Score
\consists
#(lambda (context)
(let ((tempo #f)
(mark #f))
(make-engraver
(acknowledgers
((metronome-mark-interface engraver grob source-engraver)
(set! tempo grob))
((mark-interface engraver grob source-engraver)
(set! mark grob)))
((stop-translation-timestep engraver)
(if (and tempo mark)
(begin
(ly:grob-set-parent! tempo X mark)
(ly:grob-set-parent! tempo Y mark)
(ly:grob-set-property! tempo
'X-offset
ly:side-position-interface::x-aligned-side)
(ly:grob-set-property! tempo 'Y-offset 0)
(ly:grob-set-property! tempo 'side-axis X)
(ly:grob-set-property! tempo 'padding 0.5)
(ly:grob-set-object! tempo 'side-support-elements
'())
(ly:pointer-group-interface::add-grob tempo
'side-support-elements mark)
(set! tempo #f)
(set! mark #f)))))))
}
}
{
r1
\mark \default
\tempo 4 = 120
\time 3/4
\repeat unfold 4 c''4
r1
\mark \default
\tempo 4 = 120
r1 r1
\mark \default
\tempo 4 = 120
\repeat unfold 4 c''4
r1
\mark \default
\tempo 4 = 120
\repeat unfold 4 c''4
r1
}
Hope that helps,
Jean