Rehearsal mark at beginning of system should stay within margins

• Jun 5, 2015 - 17:14
Reported version
S5 - Suggestion

As mentioned at

MuseScore positions certain things relative to the beginnings of measures, which makes sense. But with rehearsal marks, the specific way that MuseScore relates them to barlines leads to the following result if the rehearsal mark is at the beginning of a line:
The volta included in the picture is correctly positioned by default, and could be a model for the positioning of the rehearsal mark.

Here is a manually created example of correct positioning for the rehearsal mark in this circumstance (though the number of staff spaces of horizontal offset depends on the key signature):


"Correct" is subjective. I much prefer the current layout to your proposed example.
Also, unlike the case with voltas, which are always positioned automatically with no user control over the defaults (except vertically), rehearsal mark normally respond to text style settings. And the default text style for rehearsal marks is centered. I'm not really comfortable with the idea of MuseScore deliberately ignoring the text style. We do it to override lyric alignment because there are pretty universal rules for when to center versus when to right align.
That said, a style option to control whether rehearsal marks align to the barline or some other point in a measure could make sense.

But my point is that in this circumstance the rehearsal mark does not align to the barline. Let me see if I can make this clearer. Here are new versions of those two images. In the first, "barlines" are assumed to be to the left of the clef and key signature. If that's the case, then the volta is nowhere near the barline and the whole measure rests are not centered within their measures:
In the second, "barlines" are assumed to be where the whole measure rest and the beginning of the volta strongly imply them to be, and we're simulating what it would be like if rehearsal marks were centered over barlines even in the first measures of systems:
What I said before about horizontal offset was strictly in reference to creating that image. I would think that what would need to change in MuseScore's code would be simply a slight tweak to how rehearsal marks determine where barlines are, and it would have no effect on their position relative to barlines occurring anywhere except at the beginning of systems.

Again, rehearsal marks and voltas are different.

For rehearsal marks, there is a text style that determines the horizontal placement relative to the barline - the *actual* barline, which for the first measure of a system is all the way to the left, not some arbitrary point after the clef / key / time signature. This is just as true for the first measure of a system as for key / time signature changes mid-system - rehearsal marks align to barlines, period.

Voltas are not placed relative to barlines at all. Not for the first measure of a system, not for other measures. They are always placed after the clef / key / time signature. This just happens to be close to the barline if there is not a key or time signature in the measure. But the same placement algorithm is used in all cases - the volta starts after any initial clef / key / time signature.

Again, it is true that *perhaps* some people mght wish to override the placement of rehearsal marks to not be over the barline in the special case of first measure of a system. I prefer it over the barline in these cases as it is more visible. But if you have different preferences, you can simply adjust the position manually.

As I said, some day, it might be nice to add a style option to automatically change from barline attachment to "after the clef / key / time signature" attachment in the special case of first measure of a system only (presumably, you don't want that for mid-system key / time signature changes).

For that matter, we could also consider changing the algorithm for voltas to actually start at the barline rather than after clef / key / time signature - and in this case, we'd definitely want to make the exception for the first measure of a system.

I frequently place rehearsal marks at the beginning of systems since they often denote new sections (which are best placed in new systems). Through my experience, I am inclined to believe that the positioning of a rehearsal mark over a systemic barline is the exception rather than the norm. I would even argue the default behavior is objectively incorrect.

The default positioning of a system header rehearsal mark will always collide with the measure number without manual intervention. There is no "perhaps" - people will want to override this. Their solutions are to either hide the measure number (inadvisable; rehearsal marks supplement, not replace measure numbers), move the mark up (requires a lot of vertical space) or move it to the right (which is what I always end up doing). The manual offset is less than satisfactory because a relayout may push the marked measure to the middle of a system, at which point it should no longer have an offset.

Perhaps we are taking Gould too literally. She specifies rehearsal marks should be "centered ... or flush-left with the barline" (p. 484-485). However, look at the examples on the following pages - the rehearsal marks are not centered over the systemic barline, and they are indeed offset to be closer to the actual music: 463, 489, 513, 571, 580, 604, 618, 619, 625, 635, and probably others (some are offset to the left in favor of the tempo marking, but still well after the barline). My experience with other published scores is consistent with this.

(Note that the example on page 517 is actually a measure number: 33 pages at ~5 measures/page = 165.)

I don't think there is any way to allow measure numbers and rehearsal marks to coexist over the systemic barlines satisfactorily. Therefore, I propose that we change the default behavior as per Zack's suggestion, even before considering a style option.

My own experience is that if I leave the rehearsal marks where they are presently situated and they are at the beginning of a stave (where I usually format them to be), they are cut off when I print. I always have to move the,

I would prefer Zack's solution.

I'd rather look at published music from respected editors. The music I am most familiar with left aligns to the beginning of the system, to make them clearly visible at a glance. That's why I consider the current system far superior to any proposed alternative.

The first music publisher that came to my mind was Boosey and Hawkes, and when I went to IMSLP the first several of their scores I clicked on all positioned rehearsal marks at the beginning of systems as I'm requesting MuseScore 2 to.


I have an idea for a compromise. What if we went ahead and implemented the suggested layout if the horizontal alignment is set to centered (the default) or left, but if horizontal alignment is set to right aligned, we do what most jazz charts actually do: right align to the barline in most cases, but *left* align to the barline at beginning of systems.

That is, we'd see this by default in scores created from scratch or from most classical templates:


But this for the lead sheet and some other templates:


I like this solution - this seems like a valid interpretation of the mark's alignment property: change the position relative to an anchor. For consistency, we might want to consider left-align to work similarly to right-align (left-aligning at mid-system barlines).

The only significant issue I can think of is discoverability - this alternative functionality is relatively hidden, so if a user wants to use it, they will have to just "know" where to look. If they don't, they'll turn to the documentation/Google/forums, or assume it doesn't exist.

However, that only manifests itself if the user desires the alternative, or the default functionality is inadmissible for some reason.

(Also note that currently, while probably seldom used, it is possible to have multi-lined rehearsal marks, so this setting will also alter alignment within the text itself.)

A solution for avoiding colision between rehearsal marks and bar numbers could be to change "Measure number mode" to "always hide in measure properties. The problem here is that when creating parts any change made in measure properties is not honored. (I consider it a bug). Another solution would be to control showing (or not) bar numbers in text style for Rehearsal marks.

In the first image in comment #9, it looks to me like the rehearsal mark is actually positioned further to the right than it should be. Is that the genuine result of code changes, or just an imperfect mockup? Other than that, and CombatCube's points, that looks like a great solution to me. (Nice job on the second half of the solution, as well—I hadn't even realized that rehearsal marks could be entirely outside of the margins when using the jazz templates!)

Which rehearsl mark looks off to you? Both seem to be where they should be to me. The first is just after the time signature, the second centered over the barline. No?

Why should it be center align over that point? None of the examples you posted do that - they generally have the rehearsal letter *after* the header. In fact, it really didn't take many tries for me to find examples where the rehearsal letters are over the system barline as i have said they probably should be. Really, it's all over the map, which is starting to bring me back to thinking all this special casing is not so great of an idea, but I'm not quite giving up on it yet.

?? Of the examples I posted (including Sibelius and MuseScore 1 screenshots, Bartok concerto, Holst suite, and Vaughan Williams hymns), only the Holst had rehearsal marks entirely after the "header."

sibelius.png mus1.png bartok p1.png hymns score p9.png

On the flip side, I've genuinely never seen music with rehearsal marks even the slightest bit into the left margin. Could you post examples of that?

Notwithstanding small quibbles, I think your solution is pretty good, and definitely preferable to the current positioning.

With respect to mtuliosax's comment, I argue that a rehearsal mark should not hide a measure number by default, since the measure number serves as a different kind of anchor. A system with several measures (perhaps if it has lots of long notes) will be hard to navigate given a number if its leading measure number is replaced by a rehearsal mark, since the closest numerical reference points will be in the systems before and after.

For example, if one part makes it convenient to say "at measure 54", and this lies in the system of another part that has a leading rehearsal mark, that player may have to count more than a system's worth of measures to locate it.

Hmm, thought I posted a response but I'm not seeing it.

When I spoke of the posted examples, I meant the real published examples from IMSLP. If you really look at the score and the parts for those pieces, you'll see even those three aren't totally consistent, but for the most part, the rehearsal marks at the beginnings of systems do appear *after* the clef / key / time signature. And if you look beyond those three scores, it's very easy to find examples where they center over the system barline, or are left algined to it. Looking beyond the world of orchetral scores but also to jazz arrangements, pop song sheet music, and other genres of music, you see more of a tendency toward aligning to system barlines, but again, it's all over the map really.

So again, I'm not opposed to finding a set of defaults and special case behavior that works "well enough", but if you're thinking there is just one correct answer, even a cursory examination of the literature should convince you this just isn't so.

One possibility not mentioned, BTW< is that we special case based on whether there is a measure number. A rehearsal letter aligned with the system barline conflicts with a measure number *only* if there is in fact a measure number on that measure. A great percentage of charts that use rehearsal letters do *not* include measure numbers. And of those that do, many suppress them in measures that also include rehearsal letters. We could conceivably check for a measure number and avoid the system barline only if a measure number if present. Again, that's not the "correct" answer - there is no "correct" here, just lots of different subjective decisions made by different editors. But it sovles the "problem" at hand.

There certainly is variation among the traditionally typeset examples—so, though your image of a solution looked not quite like I'd expect, I don't think there's anything wrong with it, and I would be very happy to see it implemented. I'd call it "well enough."

But being on top of measure numbers is only one issue with the current system—the bigger issue is what xavierjazz said in comment #5: "My own experience is that if I leave the rehearsal marks where they are presently situated and they are at the beginning of a stave (where I usually format them to be), they are cut off when I print."

Well, that only happens with certain combinations of alignments and offsets and rehearsal mark sizes, and again, I really don't like the idea of MuseScore deliberately ignoring your text style settings and doing what it thinks is best rather than what you actually told it to do. But I *would* like to make it possible for certain common combinations of alignments and offsets and rehearsal mark sizes to look decent out of the box, which is why I proposed the compromise I did. It should produce expected results with a minimum amount of special handling (read: ignoring your style settings and doing what it thinks is best instead) in the most common use cases.

I have implemented it and it seems to work fine, the big question is how to handle backwards compatibility. After all, existing scores will likely have adjustments made to put things where you want them, now those will based on the wrong default position. So probably I would need to convert the offsets to be based on the new default position,. Tricky, but should be possible.

I do not exactly argue that rehearsal mark should hide measure by default. Indeed I think it is a good idea to have the ability of hiding the number if someone prefers, in properties dialog box. . For me it' s far better hiding the numbers than checking and adjusting marks located at begining of line for every single part.

I do not exactly argue that rehearsal mark should hide measure by default. Indeed I think it is a good idea to have the ability of hiding the number if someone prefers, in properties dialog box. . For me it' s far better hiding the numbers than checking and adjusting marks located at begining of line for every single part.

Right, I'm not suggesting we automatically suppress meausre numebrs if a rehearsal letter is present. I did say that this what many editors do, and that if the user chooses to do so, we *could* detect this and move the rehearsal mark to the system barline even in the centered or left-aligned cases. Again, there is no right and wrong about it, just different possible compromises.

BTW, turns out the compatibiltiy is not an issue because user offsets are stored relative to the position of the note they are attached to, not relative to the default position of the rehearsal mark itself. Very convenient for us here. I had forgotten that this was often the case, but now I remember this was decided upon for pretty much this exact reason - so changes to the defaults later would not affect exiasting manual adjustments.

A little more fine tuning and I should have a PR ready.

Here is the vtest showing results for centered and right aligned rehearsal marks:

There is a -1.0sp horizontal offset built in to the text properties for the right aligned marks to account for the frame border, so the frame itself (rather than the text) is right aligned to the barline. This is what I'd propose using as the default Rehearsal Mark text style for the jazz templates. This type of arrangement is commonly used to avoid chord symbols. Don, how does this seem to you?