Add MIDI actions from the UI

• Feb 24, 2020 - 21:55


I've tried looking around for ways to have MuseScore send MIDI events: initially the main motivation was to drive the KeySwitch based SFZ files in Virtual Playing Orchestra, but since they currently work using notes outside of the range of the instrument to control (e.g., C2 for a violins section), and that's someting that would be problematic to do in MuseScore (would need ugly hidden notes in the score, I guess?), I wanted to refactor the SFZ files slightly to react on some custom Midi CC instead, which AFAICT is possible. In order to take advantage of that, though, I need to be able to send these CC from MuseScore in the first place.

I searched the forums, and found a few discussions about that leading to MIDI actions. Unfortunately, it looks like by default no MIDI action is available in the stave properties, and the only way to add some is to manually edit the instruments.xml file to include named directives, with CC numbers and values to send. This seems needlessly convoluted, though, especially for what, at least from outside, looks like a "simple" requirement: in my case, I think it would basically require me to copy the existing instruments.xml to some other location, manually edit the XML file, add more or less the same snippet to all the instruments I use (as I'd very likely use the same CC number in all SFZ files, with a limited range of values) , and then force MuseScore to use that file. From how I see it, there are many disadvantages in doing that, the main being that, "forking" the instruments.xml file, I'd lose any fix or improvement that could come out of future MuseScore updates; adding a secondary instruments.xml file wouldn't be an option, I guess, since I'd need these MIDI actions to work on the existing instruments, not add new instruments altogether.

As such, my suggestion as a new feature would be the ability to add new MIDI actions directly from the UI, in order to possibly decouple it from the instruments in the first place. In fact, I see why they currently belong to each instrument in the current instruments.xml (I guess for more context-specific actions?), but thinking about it there really isn't a need to have this strict association between the two: I can create, e.g., an action called "Send CC3 64", or one called "Oboe vibrato", but then which staff I use it on really is up to me.

Please let me know if that makes any sense. In case what I'm looking for is indeed already possible one way or another, I'd love to hear that too, as while I could find some related discussion in the forum, apparently there's no item in the documentation on this aspect.


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