Customizable Playback Expression (?)
With the addition of the piano roll in musescore 3.0, I see potential for a lot more playback options for those who'd like such things in the future. As of right now, this gives us the opportunity to change note attack/duration/velocity on a per note basis. If you can consider that we can do this much already, having an engine that can do things that we teach it to for us automatically based on certain conditions seems like a truly viable option, considering it wouldn't directly affect playback, but the hidden properties of notes behind the playback (to my knowledge). Kind of like how the auto-placement engine seems to work (affects the score once, not continuously like most playback modifications would seem to).
The way I imagine it functioning is that the engine checks for certain conditions present (determined through something like a new menu that the user can add to and modify) and is able to set certain properties or options automatically based on the context given (and undo them if a condition is taken away). Kind of like how users can add and import soundfonts, maybe one could add conditions. For the conditions/options themselves a list of options such as ones that appear in the inspector seem most suitable. (Assuming blank/none for no conditions and a specified item for a condition)
Types of Options
- Note Attack and Release [Already there with piano roll]
- Midi Channel [Partially There with staff text options]
- Velocity [Already there with piano roll]
- Swing settings? (Maybe it could apply in the context of double-timing)
- Time Stretch
Conditions of automatic Options
- Note Type (Quarter, eighth, half, whole, etc)
- Actual note duration (How long a note lasts [based on seconds or milliseconds ?]) (ex: less than x, or over x)
- Dynamics
- Instrument(s)
- Presence of other specific articulations/ ornaments
- Text Cues (Already mostly there with staff text)
I could see this being useful if users could share/ import conditions via specific text files or something to do things like common text cues, styles, and more maybe. I like how soundfonts can be default or saved to the score, so a similar thing here may also be useful as far as enabling and disabling such things.
Also the ability to add/ remove midi channels (as children) would allow even more freedom using this sort of thing depending on the context.
The thing is, though... well... I'm not a programmer and this sounds like a massive amount of coding (espacially for a notation software) so I don't really expect something like this, while at the same I hope I can inspire something somewhat similar once bugs with the current iteration of musescore have been squished. Great job on musescore 3, too! I'd been waiting for it for years (especially automatic placement) and some of the other features were released earlier in 2.x so 👏👏👏 kudos for that. Not only did it live up to our expectations, but it surpassed.