Bulk feature requests (text alignment, soft propagation, background erasure, harmonics ambivalence)

Hi everyone!

After recently having finished a long piece featuring multiple instances of non-native notation in Dorico that you would have to mock up yourself, there are some features that I believe would make life easier for many of us, described below.

Of course, while having better tools to make it easier to mock up not yet implemented features is very good, if the features that you wish to mock up could also be built into Dorico it would be even better. But considering that music notation is constantly evolving and there will probably be a virtually infinite amount of edge cases in the future, I’d argue that it’s virtually impossible for any engraving software team to implement all the possible features that anyone would ever need, hence the need for some improvements in this area to fill in for when Dorico’s native functionality has not caught up yet. This is especially applicable for 1 and 2.


1. More staff and system text alignment options

If you could make your system or staff text objects automatically snap to the following positions:

  • Centered/left aligned/right aligned over the middle of the current bar
  • Centered/left aligned/right aligned over the barline at the beginning of the current bar
  • Centered/left aligned/right aligned over the barline at the end of the current bar

Then it would allow you to do the following:

  • Center symbols over the bar, e.g. G.P.s, custom numberings and indications
  • An additional set of rehearsal marks (e.g. composer’s original plus editorial) centered over the barline without having to manually put it at the rhythmic position of the beginning of the bar and then manually adjust it to be centered over the barline for every layout
  • Mock up l.v.s across barlines without having to manually adjust the horizontal position for every layout
    etc …

2. Copy a property value to all layouts without propagating it (soft propagation?)

Because of how propagating works, you can’t set a certain property value as a default for every layout and then make exceptions from that default on selected layouts. Instead, when a property is propagated, changing it in one layout changes it everywhere.

This feature request especially has the following use cases in mind:

  • Hide an object in all layouts except one. Especially useful if you use an instrument in all layouts as a cue staff and only want to show certain instructions for that particular player in its dedicated layout. As of now, because of how propagating works, you can’t simply propagate the Hide property and then deactivate it at selected layouts, since deactivating a propagated property deactivates it everywhere. Instead, you have to go through each layout and manually toggle the Hide switch.
  • Setting a good starting point position offset for an object in all layouts and then manually adjust it in selected layouts if needed. As of now, this can’t be done without first manually setting the offset in all layouts one by one, since propagating the offset makes the adjustments in one layout to affect all layouts.

3. Having erase background available as a key command

While I realize that this might be more difficult to implement than what meets the eye considering that the background erasure appears to be a different method depending on whether it is a dynamic, a playing technique or a line (or possibly something else I have forgotten or am unaware of), it would absolutely come in very handy. Personally, I think I would let it stew as the most recently used Jump Bar command and bulk erase every background that needs to be so in one dedicated background erasure round layout by layout.


4. Automatic “small notes” above ambivalent artificial harmonics

Since there is only one type of notehead for artificial harmonics, this causes quarter notes and half notes to look identical, and there are situations where you need to differentiate between these, like described on p. 418 in Behind Bars by Elaine Gould:

Doing this by hand is quite tedious and especially so if your score is filled with these situations, so if this could be done automatically, I believe this would be a very welcome time saver for many users.


Lastly, I’m not sure whether it’s recommended to do these as one single topic or many separate topics. I chose to do it this way because 1 and
2 are somewhat interconnected. However, if a moderator sees this and believes this should be branched into separate topics, feel free to do so!

Thanks for an otherwise fantastic software!

5 Likes

You can record a script for that and invoke that script via Jump Bar.

Thanks for your suggestion. That is in fact what I have already done, but it has some drawbacks:

  1. You need separate commands depending on whether it is a dynamic instruction, playing technique or a line (and possibly others that I have forgotten or don’t know about yet).
  2. Even if your script calls all these commands one after another to cover all these situations, your selection can’t contain more than one kind of these for the background to be erased for all your selected objects, so you have to divide it up into separate selections between dynamics, playing techniques, lines etc. for all the backgrounds to be erased.

I do understand the issue but as you can’t filter for these different things at once, doesn’t that mean you have to manually select them one by one anyway which then again allows to manually trigger that script after each selection? Not ideal but as long as there is no multiple filter not as bad?

Ideally, I’d actually not want to mindlessly select all background erasable objects within a passage and erase their backgrounds at once, since the erasure does undesirable stuff to the spacing, so I’d actually rather like to hand-pick my objects that I deem are in need of this, and that process would be much less error prone if I only had to do it once and care about whether the objects collide with stuff rather than do it thrice and also care about what they are semantically from Dorico’s point of view.

Playing Techniques for G.P. work well, sitting on the rest.

Or you could create a Line that has no line, with text in the middle of it. (You have to use a dashed line with a 0 dash length, not a 0pt line, as 0pt lines show as lines on PDFs.)

2 Likes

Yes, I am aware of a few workarounds that let you center text over a bar under certain circumstances, but you’ve got to agree that using a line to get text and then hide the actual line borders on insanity.:exploding_head:

How about:

text alignment

1 Like

In the end it doesn’t matter a great deal, but I at least would recommend posting a separate thread for each idea: it means the content is closely bound to the title, and makes it easy for us to follow forum links and share them etc.

Don’t worry about editing this post, but in future, if you have 3 separate ideas, feel free to post 3 threads.

2 Likes

I tried @benwiggy 's method and find it fast and workable (you can always alt/option-click to copy an instance to another place and edit it.

text alignment2

EDIT: you have to create the special line only once to reuse it then.

Also this works well for me (if I need multiline text with styles etc)
text alignment

EDIT: this is not by dragging in Engrave Mode, and it stays put

But I concur this would be easier.

Well, it certainly works well in certain circumstances. However:


(Yes, I’m exaggerating to make a point.)

Yes, this certainly gets the job done and adapts itself to the notation so it is always visually centered over the bar. But it’s limited to text without any options for line breaks or formatting.

Ah, ok - I understand. You’re right: in these cases there is no automatic solution (or maybe the gurus know something?)

1 Like

Chord Symbols!!! I can’t imagine there’s ever a situation where someone actually wants the chord symbol to collide with a barline, so this really should be the default behavior, not something we have to go set every time there’s a symbol near the end of the bar. Obviously this is an issue if you have chords set to show between staves of a grand staff instrument, but it’s also an issue for anyone who writes big band arrangements as 1st Tenor Sax. and 2nd Trumpet are probably the two chairs that most often get chord symbols.

The user is always going to want to avoid that collision above, so this should really be automatic, not something we have to waste time switching to Engrave to fix.

2 Likes

Ah, thanks for filling in the knowledge gap! :+1:

I, as well as others, have actually requested a global background erasure toggle before. I can definitely see why many would benefit from setting this as the global behavior, but not necessarily as the default behavior, since the background erasure comes with a bit of extra padding, which in turn affects the spacing. And as far as I know, the erasure padding is always rectangular, so if you’re in a tight situation where you would benefit from the “text rectangles” overlapping a bit, attempting this with background erasure enabled could potentially cause the objects to partially erase each other.