lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: simultaneous rehersal marks, tempo indication, and text marks


From: Phil Holmes
Subject: Re: simultaneous rehersal marks, tempo indication, and text marks
Date: Mon, 27 Feb 2012 14:29:44 -0000

----- Original Message ----- From: "Graham Percival" <address@hidden>
To: <address@hidden>
Sent: Monday, February 27, 2012 1:48 PM
Subject: simultaneous rehersal marks, tempo indication, and text marks


At the moment, we can't have text and rehearsal marks at the same
place, i.e.

\relative c' {
 c1
 \mark \default
 \mark "play violently"
 d
}

This can be faked by using a \tempo mark:

\relative c' {
 c1
 \mark \default
 \tempo "play violently"
 d
}

But if you want to display an actual tempo marking at the same
place, you need to resort to silly hacks like grace notes,
invisible notes, or defining a text mark involving both the
rehearsal letter and the actual text you want to show.

What would be involved in making a clean solution for this?  I
imagine that a separate TextMark engraver (just like the
RehearsalMark engraver and MetronomeMark engravers) would do the
trick, but that's a bunch of icky C++ code.  Is there any way to
use scheme to create a new engraver that behaves like an existing
engraver (i.e. TextMark), but has its own data (so it doesn't
merge the rehearsal mark event with the "text mark" event?)

- Graham

How about this: (slight variation on a snippet from the LSR:

\score {
 \relative c'
 <<
   \new Staff {
     <<
       \new Voice \with {
         \consists Mark_engraver
         \consists "Staff_collecting_engraver"
       }
{ c4 d e f \mark \default c4 d e f }
       \new Voice \with {
         \consists Mark_engraver
         \consists "Staff_collecting_engraver"
       }
       { s4 s s s
\mark \markup { "Play violently" } s4 s s s }
     >>
   }
 >>
 \layout {
   \context {
     \Score
     \remove "Mark_engraver"
     \remove "Staff_collecting_engraver"
   }
 }
}


--
Phil Holmes





reply via email to

[Prev in Thread] Current Thread [Next in Thread]