Articulation native control: is it worthy to sacrifice a bit?

• Jan 13, 2020 - 08:38

It has been a big pain that users cannot control the gate time ("time stretch") and velocity magnification of articulations natively. Forum posts, such as this, has been coming up to complain about the inappropriate default values, which users cannot change without a plugin, named Articulation and Ornamentation Control.

The good news is, I find a way to realize native controls. But unfortunately, it isn't without problems.

To understand that, we need to look into instruments.xml in the source code. We can see that there're global values of the gate time and velocity magnification defined for each articulation to which they apply. However, they're overwritten for some instruments, like marching percussion. So, the default values of gate time and velocity magnification depend on the instrument.

However, for technical reasons, the code doesn't currently support default values in the inspector depending on staff/part properties such as the instrument, not without risky overhauls. This can be avoided if the default values for all instruments are the same. So, I searched through the entire instruments.xml, and found only very few instruments have overriding values. Except for those instruments which only have overriding values for none-articulation notes (<Articulation> without a name), which won't be affected by native controls for real articulations, the rest are no more than four marching percussion instruments, which all have 130% velocity magnification for sforzandos and 500% for marcatos, different from the default of 150% and 120%, respectively.

After I came across this, I realize it probably isn't a very big sacrifice if we unify the default values but allow users to easily change them in the inspector. What do you think? Do you believe the different default values are a big deal which cannot be given up? Or do you believe it's worth it to add native controls, even with this drawback?


Changing the default values per staff would be of tremendous value (of course, keep in mind that scores snapshot the values). Changing the default gate times of articulations per score would be useful, too. Currently I do that by editing XML (yes, there are scores in which the composer's staccato dots sound much better at 750 than 500). The inspector is for note attributes, not staff attributes. Staff properties (which manages transpositions, for instance) might be a better place. Are you aware that flutes and pianos (of all kinds) have non-1000 gate times due to an abandoned MS experiment which gives slurs life and meaning?

In reply to by [DELETED] 1831606

Thanks for the reply!

You're right that in some places staccatos are better to have 75% gate time, but chances are I also want 50% in some other places on the same staff. I'm not sure what the odds are, though. But here's a realistic situation: I want invisible staccatos to have 75% gate time but visible ones have 50%, where invisible ones are used for simulating live performance sound effect.

I'm aware that they have non-100% gate times, but haven't heard of "an abandoned MS experiment". Do you mean they shouldn't be non-100%? And I'm also curious why flutes have non-100% but oboes, clarinets, bassoons, and other wind instruments have 100%.

In reply to by Howard-C

I don't think I saw this when it was posted; I would have answered it. Pianos of all types and flutes of all types are at 950 per-mille. Apparently, the (irresponsible) idea was to release it into the wild and see what happens (i.e., it was an experiment). Fortunately, the gate times get snapshotted into the score, without which "fixing" this would break every single carefully-phrased score.

The idea of the experiment (I was not present for it) was to make all instruments not-1000‰, and make slurs "work" in all to raise it to 1000 (as with flutes and pianos today). This is all very heavy-handed stuff. As you can read in , there are several incompatible policies in place, and making coherently phrased music implies understanding (and working with) them all.

If any steps are ever taken to change this, not breaking existent scores (in spite of the snapshotting) should be the #1 consideration.

It goes without saying that different historic and interpretation styles might require more or less connection between notes, and "one size" does not "fit all."

In reply to by [DELETED] 1831606

I agree with notes not having 1000‰ gate time if not covered in slurs, but if this is a better default, why wouldn't we apply this to old scores? Any manual adjustments will have already been recorded so these won't be affected, but notes which retain their default values can play along with the new default which is better.

In reply to by [DELETED] 1831606

I've already changed tremolo layout for 3.5, it is safe to say that more than 90% of the tremolos you've used in your scores will be changed in 3.5, default placement or not (which makes this case even "worse"). Are all of the users going to switch products because of this? I think those who follow update details will just reset tremolos and be willing to see the default layout be improved. Aren't you one of these people (us) who follow the updates? And if the updates are exactly what you expect to work properly on most scores, why complain about them? :-)

Note that I'm not really defending this behaviour, it's just that this is what MuseScore currently does with articulation gate time controls. If we're to record all of these values regardless of being default or not, the file size will sure expand by some times and it can potentially also degrade performance while working on large scores. I'm not really convinced of changing this behaviour in this particular aspect and bringing about these defects.

In reply to by Howard-C

Changing layout is sometimes a major pain (ms2->ms3), in spite of the fact that what ms3 does is so much better that there's almost no case for compatibility. I think I can live with tremolos moved a bit -- I don't think I've actually ever used one (if you really mean "tremolo"). But a change that is going to affect the performance of every note in every instrument, including external midi devices, in every one of my scores is not a tremolo, but an earthquake.

Gate time and time stretch are not the same thing.

  • Gate time: how long a note lasts compared to its written duration (e.g. 50%).

  • Time stretch: how quickly to play a segment compared to the written tempo (e.g. 0.5x speed).

Notice that gate time and time stretch are actually almost the inverse of each other, in that a note played at 2x speed will last for half its normal time, but this ignores the effect on other notes in the score.

  • Gate time: only affects a single note or chord.

  • Time stretch: tempo change affects all simultaneous notes for all instruments. Also causes subsequent notes to arrive sooner or later than they would otherwise have done (but their tempo is unchanged).

In reply to by shoogle

I'm not a native English speaker so I'm not sensitive to the difference, when I first read "time stretch" I imagined it having the actual meaning of "gate time". I guess most users comprehend the "time stretch" option in this way when looking into the Articulation inspector section, since this makes sense for non-fermata articulations and the other way doesn't, which was probably why fermata got separated from other articulations in the first place. So our choices are really just two, either removing this option or making it mean "gate time" (so the name should also be "gate time").

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