Hi Dan, up to now we provide only RehearsalMark taking arbitrary text with the possibility to align it to the value taken from 'break-align-symbols. The other grobs supporting break-alignable-interface are BarNumber and MetronomeMark, even less convenient to take arbitrary text. So users have no chance to avoid using RehearsalMark for this purpose. This leads frequently to the need to combine RehearsalMarks, print them differently on top and bottom of a system or print them differently before and after a line-break. Although this is pretty often requested, we don't provide any functionality to do so. Consequently users write their own workarounds. A quick search results: http://lsr.di.unimi.it/LSR/Item?id=202 http://lsr.di.unimi.it/LSR/Item?id=575 http://lsr.di.unimi.it/LSR/Item?id=735 http://lsr.di.unimi.it/LSR/Item?id=736 http://lsr.di.unimi.it/LSR/Item?id=976 http://lsr.di.unimi.it/LSR/Item?id=977 http://lilypond.1069038.n5.nabble.com/Nice-workaround-for-simultaneous-rehearsal-marks-thanks-Neil-td3086.html
Some of them are really ugly, imho. My current patch tries to tackle a subset of these requests: line-breaking rehearsal marks. There's some fall-back, if the function is applied mid-line, though. On 2019/12/12 01:29:27, Dan Eble wrote:
Harm,
With respect, I'm far from convinced that this is a good idea, but I will continue to think about it. Thoughts so far:
* The user provides music for the appearance of the mark at the beginning or end of a line, but can he control what happens in the middle? They seem to stack vertically. What if the user would prefer them to be side by side?
Thus the NR reads: "Although some defaults are given, it makes litte sense to use this function at the middle of a line." Actually a function to combine RehearsalMarks mid-line would be better for this use case. Although I've spent some thoughts in this direction I've not found a nice user-interface for it yet.
* The regression tests cover only line breaks. The unbroken appearance is not covered.
True, I didn't cover this case, because it's discouraged in NR
* I am concerned about the complexity of this function as it deals with mark sequence numbers. I'm skeptical that it's a fair trade for what it offers.
As long as default rehearsal mark and specific rehearsal mark are allowed as input for the function, one needs to care about context-property reheasalMark otherwise subsequent calls of \mark \default would appear to be out of order. So this is a requirement.
* I struggle with the semantics of using one event and grob to do double duty, e.g. as both a fermata and a rehearsal mark. One of my stale experiments is a performer that inserts rehearsal marks into MIDI files. I don't relish the thought of trying to extract a MIDI-compatible rehearsal letter/number from such a mishmash.
I do understand this concern. Though, until we provide other grob(s) to take arbitrary, break-alignable text, what should users do differently, then use one of the mentioned work-arounds or this patch? Imho, this patch's user-interface is preferable compared with the others. (Ok, it's my patch, so I'm convinced ofcourse lol) Otoh, I wouldn't object to postpone this patch for a while until you could revive your own patches. Nevertheless, for (pseudo code): { b1 \whateverMark #1 c' \whateverMark "second time go to coda" d' \whateverMark "go to mark 1" \break \whateverMark "coda" e' } you'd need either some functionality to print "go to mark 1" and "coda" where they belong. Or different grobs taking those texts. Can't think of another method. https://codereview.appspot.com/577180043/