Chord symbol playback: better defaults

• Mar 22, 2020 - 16:20
Reported version
3.x-dev
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
active
Regression
Yes
Workaround
Yes
Project

Chord symbols playing back by default makes existing scores sound different after that feature vs. before it.

Possible workarounds (and solutions):

  • Disable the "Play" property for chord symbols in Inspector (by default, maybe only for old scores, not for ones created with the new MuseScore version)
  • Mute the 'harmony' channel in Mixer (by default)
  • Disable Preferences > Note Input > Play chord symbols (by default)
  • Make the above "Play chord symbols" a per score setting

Comments

Actually, they don't play back "by default", you need to turn on a Edit / Preferences / Note Input / Play Harmony. But I'd personally rather that not be needed - I'm not comfortable with a given score playing back differently on different systems for no good obvious reason. On the other hand, I do agree existing scores should not have their playback affected.

So to me, the solution is to eliminate the preference (or at least have it default to true, maybe hide it in Advanced to make people less likely to mess with it), but have the style setting default to false. At least for existing scores. New scores could arguably get it set to true, although there is no "clean" way to make a style default differ for old vs new scores (without a format version change, anyhow). There are, however, some hacky solutions I would not object to.

Muting the harmony channel is an interesting thought. This channel is managed automatically, created on the fly when chord symbols are present. Right now I can't think of a good way to get the effect of muting for existing scores, not for new scores. Unless, hmm, maybe we modify instruments.xml to add some new global tag to control the muting of the harmony channel? So existing scores would lack that tag, new scores would get it. Yes, maybe that's the best solution.

BTW, the style setting for play harmony is currently not exposed in Format / Style / Chord Symbols, but should be. Right now it's only controlled by "Set as style" in the Inspector.

Title Chord symbol playback: chord symbols play back by default Chord symbol playback: better defaults

Title was misleading, they are actually off by default (and I agree they should stay that way at least for existing scores).

Well, the global setting may be off by default, but there is none for the scores themselves, so no way to leave it off for existing scores, but on for new ones.

Exactly. That’s why I like your channel idea. If you could add a line to instruments.xml. If we can add a global tag muting the channel by default, that would solve the implementation issue. Then it would be a matter of how to make it easy to discover how to enable it. Maybe add new “Piano (with chord symbol playback)” instruments that explicitly enable it? Certainly the jazz templates could enable it by default. Not sure, will be good to get user feedback during a beta.

instruments.xml is only ever used for new scores, so won't help changing the default for old ones

Unless we change the default for old ones at the same time that is, make sure that entry in instruments.xml enables it for new ones and change all the templates we want chord symbol playback for by default.

Sound is another issue, for a vocal staff with chord symbols I certainly don't want 'choir aahs' singing the chord, but either piano or guitar or maybe organ, depending on genre. Piano being the save bet I guess.
Yet another is rhythm, would be nice to have the chords play as per 'rhythmic slash notation'

Right, I think misspoke in my previous response. It's actually that instruments.xml should enable the chord symbol channel, but "default" it would be muted. So only scores created with the new instruments.xml would have it enabled by default. That then solves the problem of how to expose this - we don't need to. Not sure what I was thinking this morning, I knew the idea originally made more sense than what was coming out.

And yes, choosing an appropriate playback sound for this channel came up in chat, and this is actually the perfect way to address that too. What if, the chord symbol channel was muted by default as far as the code is concerned, but there were global tags in the instruments.xml that both unmuted it and set the sound for that channel to a reasonable default (eg, piano or guitar)? Like:

<chordSymbolChannel>
<mute>0</mute>
<program>0</program>
</chordSymbolChannel>

or something like that, where mute defaults to 1, and like articulations, you can override this on an instrument basis, so guitar instruments could be set to default the sound to themselves.