Feature Request: Improved alignment of objects in a score

• Jul 27, 2020 - 07:56

Proposal 1: add object alignment capabilities such as 'align left/right/centre//top/middle/bottom' and possibly 'distribute horizontally/vertically'.

Use examples:
(a) multiple stave/system texts on one staff line. Rather than selecting each object individually and setting the height relative to the staff, user can ctrl+click to select multiple objects (with some way of designating the 'key' object), and then 'align bottom' so all selected objects are now at the same height above the staff.
(b) repositioning rests on other instruments in a cadenza measure. In 4/4, instrument A has a long cadenza which requires extended bar duration. The other instruments have a quarter note on beat 1 and an eighth note on beat 4.5, and the rests in between should reflect the 4/4 time signature (2x quarter rest and 1x eighth rest). The required rests are visible, with the others made invisible. Change the spacing of rests in one instrument, then select all the rests and choose 'align vertically'. The position of all other rests in the bar align vertically to the key rests.
(c) adding repeat bar counts above one-measure repeats. To assist beginner/intermediate instrumentalists with counting, I've added numbers above a series of one-measure repeats. I could select the number and the measure repeat and click 'align centre', so the numbers are always aligned over the centre of the measure repeat symbol.

Proposal 2: centre alignment (vertical/horizontal) relative to staff/staves.

Use examples:
(d) similar to (b) above, but the other instruments have a whole rest during the cadenza measure. Select the whole rest (with other rests invisible), and choose 'centre in measure'. The whole rest automatically centres between the barlines, and it stays centred when the bar is stretched or compressed (rather than staying fixed at x=5sp or whatever).
(e) set objects between a grand staff to the vertical centre. Select dynamics (or cres./dim./etc.) between the grand staff which apply to both staves, and choose 'align vertical centre'. Then, if the spacing between the grand staff increases or decreases, the objects remain centred. (If the vertical height is set at 4sp below the top staff, then when the spacing decreases, the object is too close to the bottom staff.)


Comments

Here's also an example of hairpin misalignment. Both hairpins are set at y = -1.5 sp, but the decrescendo looks lower than the crescendo. To align them, I need to set the decrescendo to y = -2.0 sp. On the one hand, maybe this is a separate issue that needs to be worked out, but on the other hand, it's an example of where "align object middle" would come in handy.

Attachment Size
hairpin alignment.jpg 10.02 KB

In reply to by tjdickinson

It's hard ti diagnose from pictures - actual scores are far better - but I suspect autoplace is telling you -1.5 simply isn't high enough for one of them. But here, just setting them both to the desired height will align them. FWIW, this happens automatically if there are (visible) dynamics there also.

In reply to by Marc Sabatella

Indeed, that's almost certainly what's happened (the autoplace thing). I can, of course, go through and look for instances of misalignment and modify them manually (which can be a bit cumbersome, and it can be easy to miss one someplace). The problem is when a measure gets bumped to another system: if my default is -1.5sp, but I've changed an object to -2sp to align with another displaced object, then it stays at -2sp if it (or the other object) gets bumped to another system. Thus, it would be more efficient if it could automatically detect similar objects on the same staff of the same system and adjust the placement to align to the displaced object. (This happens successfully with lyrics, for example: if there's one note below the staff, the entire line of lyrics is displaced down to keep them aligned without colliding with the note, and as measures get shifted between systems, the lyric vertical placement changes automatically.)

In reply to by tjdickinson

Right, because the rules for lyric alignment are very clear, and we follow them by default. We do the same for pedal lines, and as of 3.5, we provide the ability to do this for chord symbols, but also to set limits on the alignment.

For hairpins, we do some automatic alignment, like for a hairpin and a start or end dynamic, but not for two successive hairpins in a row. That's because, as far as we could tell when implementing the hairpin alignment, there really is no uniform rule to apply there. But this is sort of thing being looked at now for MuseScore 4.

So to me, that's what this comes down to - getting a really clear understanding of what actually should be aligned by default, so you don't have to resort to manual adjustment so often.

But in the cases where you do, it does seem to me that whether there is a new "align selected objects" command or whether you just the existing Y offset facility to achieve the same goal, you'll have the exact same issue where that alignment won't make sense if the layout changes and the objects aren't on the same system anymore. That's why it's better to figure out what should be aligned automatically, and just make sure we do that.

In reply to by Marc Sabatella

Gould's advice comes in three parts:
a) When a sequence of changing dynamics involves hairpins, keep such markings on the same horizontal plane whenever possible.
b) In performance material, for clarity it is important to keep dynamics as close as possible to the notes to which they refer. A hairpin may slope to follow the contour of the pitches, so that it visibly relates to its beginning and ending dynamics (where these are present)
c) A sequence of dynamics at different vertical positions should be avoided as the dynamics will appear unconnected and be difficult to follow.

b) is somewhat at odds with a) and c) but I think the main point is that there should not be step changes in the vertical positioning where there are sequences of dynamics and hairpins close together. b) really only comes into play only where there are "outlier" notes that force dynamics further away from the stave than is comfortable for notes that lie within the stave.

I think the same horizontal alignment case might possible be dealt with by introducing a concept of "nearness" for dynamics and hairpins. Thy could be made to align with the one furthest from the stave provided they are "near" enough. Possibly a default definition of "near" could be with less than a full measure between markings.

I believe it should already be possible to do this, just use the Inspector to set the same Y offset. It's possible there is some particular case where this might not work as expected; if so, it would help to attach a score and a description of exactly what you are trying to align.

The rests are automatically centered if you enter them as full measure rests rather than whole rests (Ctrl+Shift+Delete, for example). But a way to center text would indeed by useful, and is being discussed. I would encourage you to submit an official suggestion to the issue tracker for this. Similarly for the "center vertically within grand staff" - it's a good idea, you should be sure to make a specific Suggestion for that in the issue tracker. BTW, when you do that, best to keep them limited to one suggestion per issue, that's important to our tracking, so we can close issues as they are implemented.

In reply to by Marc Sabatella

Thanks, again, for your excellent feedback! I'll create an issue in the issue tracker with the suggestion.

As for the rest, yes, as you say, that works. However, when I have an extended bar duration (for a cadenza, for example), I don't want or need the other instruments to show 15 beats of rest. If I clear what's in the bar, for the instrument, it shows the value of rests equivalent to the bar duration (which makes sense, of course). So the workaround is to make the 'extra' (beyond the normal bar duration) rests invisible, and then manually centre the whole rest in the middle of the bar.

In reply to by tjdickinson

No, the full measure rest technique works regardless of the length of the bar. Assuming you have nothing but rests in the bar in that voice, just select the bar and hit Ctrl+Shift+Delete. Any voice that is nothing but rests will be replaced by a single centered full measure rest.

Do you still have an unanswered question? Please log in first to post your question.