MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
When playing back through the Fluid Sequencer (for MS Basic/sound fonts), I'd like to be able to override the default sustained durations etc. for various articulations without having to recompile the software.
Problem to be solved
Currently the articulation profiles for the various instrument families are baked in at compile time, and while it's relatively easy to change them and recompile, for an average user this seems an unnecessary step (given compiling the source code requires quite a lengthy setup process).
In particular the default duration for non-legato "standard" notes is 99% for many instrument families (strings/winds etc.), which isn't really enough to give the impression of non-legato playback except when the notes are very very long. 95% works better for notes of a more typical length.
Prior art
In MS 3.6 this could be done by editing the .mscx files.
Additional context
DEFAULT_ARTICULATION_PROFILES is defined for each instrument family as pointing to a compiled-in "QFile" resource address, e.g. ":/mpe/general_string_articulations_profile.json", so the only way of modifying the profiles is to modify the json file in the source and recompile.
You can even use the articulation profile editor (under DevTools | MPE) for this, but again, it appears there's no way to request the profiles to be used unless you overwrite the existing json files and recompile.
Note that these profiles have no effect currently when using Muse Sounds (even when using the "classic phrasing" sound flag). This is because in musesamplersequencer.cpp (line 379 in latest source as of writing) it sends the nominal duration, rather the actual duration. Changing this actually allows use of articulation fine-tuning via Muse Sounds, nicely distinguishing legato and non-legato playback, as per https://musescore.com/user/7209246/scores/20014687/s/vjgpvP
Checklist
[X] This request follows the guidelines for reporting issues
[X] I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests
Your idea
When playing back through the Fluid Sequencer (for MS Basic/sound fonts), I'd like to be able to override the default sustained durations etc. for various articulations without having to recompile the software.
Problem to be solved
Currently the articulation profiles for the various instrument families are baked in at compile time, and while it's relatively easy to change them and recompile, for an average user this seems an unnecessary step (given compiling the source code requires quite a lengthy setup process).
In particular the default duration for non-legato "standard" notes is 99% for many instrument families (strings/winds etc.), which isn't really enough to give the impression of non-legato playback except when the notes are very very long. 95% works better for notes of a more typical length.
Prior art
In MS 3.6 this could be done by editing the .mscx files.
Additional context
DEFAULT_ARTICULATION_PROFILES is defined for each instrument family as pointing to a compiled-in "QFile" resource address, e.g. ":/mpe/general_string_articulations_profile.json", so the only way of modifying the profiles is to modify the json file in the source and recompile. You can even use the articulation profile editor (under DevTools | MPE) for this, but again, it appears there's no way to request the profiles to be used unless you overwrite the existing json files and recompile.
Example of a score where I've changed the durations for "standard" vs "legato" to give desired playback: https://musescore.com/user/7209246/scores/20010427/s/8UPdf3
Note that these profiles have no effect currently when using Muse Sounds (even when using the "classic phrasing" sound flag). This is because in musesamplersequencer.cpp (line 379 in latest source as of writing) it sends the nominal duration, rather the actual duration. Changing this actually allows use of articulation fine-tuning via Muse Sounds, nicely distinguishing legato and non-legato playback, as per https://musescore.com/user/7209246/scores/20014687/s/vjgpvP
Checklist