----- Original Message ----- From: "Graham Percival" <gra...@percival-music.ca>
To: <lilypond-devel@gnu.org>
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



_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to