Chords playback on by default!?! I hope not for old scores...

• Jul 17, 2020 - 14:43

I read that chord playback will be on by default, but I can turn it off.

I have in the past used chord symbols for analytical purposes. Will old scores, so made, now start playing back chords unasked!?!?!! That'll kill em.


We went back and forth on this quite a bit and I put out several calls for comments and feedback. The consensus was this was best. It’s certainly possible that it could be revisited yet again. But it’s also complicated because there was no file format version number change, so even differentiating old from new requires hacks.

So again I will welcome comments on this topic, and if the consensus changes, someone is welcome to resurrect and update my previous PR. I’m ambivalent on this myself which is why I want to be diligent about getting community consensus.

In reply to by Marc Sabatella

Why is destruction of playback of extant scores acceptable? This is intensely disturbing to me. Doesn't matter what I do, others will say that my scores are broken. Not to mention other people's scores. I suppose I could write a tool that finds all my scores that have chord symbols --- no, that's no use, I can't fix the mscx without breaking ms 3.4, let alone many scores still in MS2. This is a breaking change. I expected better.

In reply to by [DELETED] 1831606

It's only "destruction of playback" if in your particular use case it creates a problem. For a lot of old scores - lead sheets, other cases that are consistent with how chord symbols are normally used - it's an incredible improvement. So that's why I had put out calls for comments several times over the last few months trying to get feedback on which case people were more concerned about. The almost unanimous consensus was it was best to enable it by default. The only objections were about what sound to use - scores using choral, wind, or stringed instrument sounds were kind of weird. So we changed the default to piano regardless of the original sound in response to that and again with pretty much universal consensus this was the right thing.

So we simply did what users requested - this is the "better" I think anyone should reasonable hope for. But again, it's never to late to reconsider. If a new consensus emerges, I'm totally fine with seeing this change again.

But for record - no, there is nothing to worry about regarding 3.4. Updating the scores to turn off the playback will in no way whatsoever impact older versions. They will ignore the setting and not play back the chord symbols no matter what you do.

In reply to by [DELETED] 1831606

Well, it's only terrible if, once again, a new consensus fails to emerge that this should be changed. Maybe it will. I'd focus your effort on that, find some of those threads from weeks / months ago and weigh in there, see if the other who responded agree.

Anyhow, you don't need to find chord symbols at all. It should be completely sufficient to just turn off the style setting. In theory, this is as simple as creating an MSS file with just that line (plus the necessary XML syntactic sugar) and running a script that calls MuseScore form the command line, something like "mscore -S nochordplayback.MSS foo.mscz -o foo_new.mscz".

Assuming that works, the urgency of this to me is reduced somewhat. I said I was ambivalent and I mean it - I'm not opposed to changing it again, because I do understand your use case and the reasons it imposes this hardship. But I'm also aware of the converse argument and the huge missed opportunity for people using chord symbols in more of their "natural" setting where the playback would actually be beneficial. I'm still completely willing to convinced that the ship for your use case, times the number of people likely to be adversely affect, is greater than the same for use case the current behavior was designed to favor.

In reply to by [DELETED] 1831606

It’s the file you get when you use Format / Save Style. So turn off the style setting in one score, save the MSS file, edit by hand to remove all the other irrelevant style settings you aren’t trying to change, and save it. The format is standard XML, should be pretty self-explanatory.

Meanwhile I’m dusting off the PR I had made a while back to force it off for old scores. So if a new consensus does in fact emerge, we’ll be ready to implement it.

In reply to by [DELETED] 1831606

Probably for the MuseScore 2 scores, explicitly adding the same line to the MSCX might be an easier fix, no more than a half hour's work for 20 scores.

Meanwhile, I did try updating my PR to automatically disable chord symbol playback for older scores, but it still fails a bunch of tests that weren't expecting this, and there's quite a bit of grunt work involved in updating the tests (pretty much the same thing that you're facing otherwise).

I don't know how long we will plan to sit on this RC before doing the real release, but I assume we have the weekend at least to mull it over. As I see it, the two choices boil down to:

1) we do nothing; you have a half hour of grunt work in store, as do others in a similar position, but those who are using chord symbols in lead sheets or other contexts in which the playback will actually sound good will rejoice

2) we do the grunt work of updating our tests and then we merge my PR; we save you and those in a similar position from having to do the same, but then all the others using chord symbols in lead sheets etc. won't get the playback by default, some will never discover it, others will then have to the same grunt work to enable it

I'm personally still not especially convinced yet. Did we do anything like this when we first added articulation or ornament playback? Single note dynamics playback? I think older scores picked up all those changes automatically, and if so, I'm sure there were also cases here and there where the results ended up not being good some particular scores. But overall it was well-received.

In reply to by Marc Sabatella

Where does the new <Style> go in the MSCX? It's a lot of coding to try to patch the scores, re-zip them and preserve their dates, etc., and make it work, not to talk about uploading them and proving that they didn't break, assuming they don't, when re-uploaded much later. Automatic addition of accompanimental chordal piano to my scores is highly undesirable. I suspect others will be very surprised, too. Well, at least the pandemic provides infinite at-home time ...

I guess I should upgrade my score-listing tools to provide a new column as to whether the score has chords and has or hasn't been protected against them.

In reply to by [DELETED] 1831606

When you open the MSCX file, you'll see the whole style section towards the top of the file. It will list a whole bunch of settings, just add that one line about harmonyPlay.

Again, I get that for some handful of scores, chord symbol playback won't be desired. But it seems equally clear that for very many more, it will be extremely beneficial. I don't see any good win/win solution here. Someone is inconvenienced no matter how you slice it. And as I said, when we put this up for discussion, it was virtually unanimous in favor of what we are doing.

None of which is to say this can't still change, but at this point, I still don't see any sort of new consensus evolving.

In reply to by [DELETED] 1831606

Right, but I was talking about just the MuseScore 2 scores. For the MuseScore 3 scores, the approach I mentioned earlier is instant and automatic.

No doubt I have a handful of score that will sound slightly worse because of adult playback of chord symbols (e.g., if I implemented my own playback). But I also have hundreds that I know will be vastly improved, because right now they are just lead sheets or simple rhythm charts. And that is the normal use case for chord symbols, so I expect the vast majority of users will be thrilled to suddenly hear chords play with no extra steps required on their part. So as I keep saying, it's a tradeoff. I honestly don't know how to judge what the right one is, but there is no denying that a lot of users are going to be very happy that their chord symbols play back by default. The question is how many will be unhappy, and how unhappy will they be. As I keep saying, when the subject has come up, it's been virtually unanimous, so I'm still inclined to think the current tradeoff is best, but I acknowledge it's by no means objectively certain.

In reply to by [DELETED] 1831606

:-) The algorithms aren't especially "smart", but they are logical, and usually produce decent voice leading (not because they try to do so, but because they aim for a particular register).

The default sound for now at least is always piano, but you can change it like any other sound, in the Mixer. Just expand the channel strip for the instrument in question and select the chord symbol sub-channel.

In reply to by Marc Sabatella

I changed it to PanFlute (my beloved Panflötenorgel), and the result sounds like a crudely, but acceptably, realized continuo. Pretty impressively accurately, "but you'd better analyze the chords flawlessly!"

Still have to look at every one of the 55 and decide what to do. Now you say if I write a score from 3.5, the 3.4 on the site can read and render it correctly, minus the chords?

In reply to by [DELETED] 1831606

Yes, if you write the score in 3.5, a 3.4 system (including for now) will have no trouble, it just won't play them. If you actually edit and save the score in 3.4, you'll lose any customization you made to the chord symbol playback properties.

So, the one thing to look out for is this: if you load a score into 3.5, turn off Play for chord symbols (individually or as style setting), save, then load into 3.4, all is well so far, it won't play of course because 3.4 can't play chord symbols anyhow. But if you then make further edits and save in .4, then load back into 3.5, you'll find the Play property/style customization you made is now lost, and they will play in 3.5, again.

BTW, if you're curious and want to see what is going on, try selecting the chords, right-clicking one, and choosing Realize Chord Symbols to see the actual voicing.

You'll see the default algorithm basically just creates a plain vanilla close position voicing, with a bass note plus the full chord inverted to sit in the octave from C4 to B4. So, incredibly simplistic, but surprisingly effective most of the time. After all, keeping everything within that same octave means no voice moves more than a step to two, so voice leading can't be too bad.

But if you want to see how to break it, try something like Fm-G, or Ab7-G7. You'll really wish it had either voiced the Ab7 higher or the G7 lower, because you end up hitting that floor of C4 at an inopportune time. This results in a Ab-B in the top voice that is hard to swallow. Somehow, other places where you might think the same thing would be a problem don't sound as bad. Dmi7-G7 and D7-G7 both miss the C-B resolution in the bottom voice, but I personally can live with that.

We do actually have some special cases where we do lookahead to decide how to voice one chord based on the next. This comes into play only for the "jazz" interpretation, I think, where we decide whether to add 9 or b9 to dominant seventh based on the resolution, that kind of thing. In theory, we could probably special case chords whose lower note would be C and voice them higher if the next chord has B as the top note.

Oh, one other thing you may enjoy playing with: the "Voicing" property. The default is the close position voicing with all notes present. You might find you prefer forcing to four notes, so seventh chords mixed with triads don't sound more dense. The root will be double with the bass note for triads, and be omitted from the upper portion for seventh chords so it's only in the bass. It also spreads the notes into an open voices, basically taking the default voicing and dropping the middle note an octave (the "drop 2" technique you can also specify directly) in the same dropdown).

In reply to by Marc Sabatella

This is tremendously interesting and important, and should be someplace better than a forum thread. I've been exploring and tabulating my 55 scores with chords or romans (which confuse it a bit), and finding that many are abandoned or experimental efforts that never made it to completion or the site. Maybe 20-25 scores have to be adjusted, not 50, to keep the site images 4-5 compatible workable without unpaid pianists.

In reply to by Jojo-Schmitz

The bit about how compatibility works is probably best saved until we have decided for certain how it will be. The bit about the voicings is maybe a bit technical for the Handbook but could definitely be worth some sort of separate article. There's actually quite a lot more that could be said about what the "jazz" interpretation actually does, for example.

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