keyswitches
I wonder if it would be possible to use keyswitches to chose a sequencer step. I don't mean forward and backward with keys 22 and 23, but e.g. C-1 correspond to the first sequencer step, C#-1 to the 2nd and so on. This to be able to control the organ inside of MuseScore 4x, which does not do Program change messages (but can do with some effort key switches)
Thanks.
Hi. It is certanly possible, however there are not enough keys in the lower register to cover all the steps of the sequencer. Would triggering multiple key-switching notes (like a chord) be acceptable in MuseScore? We can do then a "binary encoding" to cover all 32 steps of the sequencer, which will require only 5 keys (for 31 steps, 6 actually for 32).
Hi. MuseScore's vst (midi) implementation is very limited: only note on/off and velocity (and a couple of cc: pedal and let ring if i remember correctly). The workaround is simply adding a (hidden) staff with a 'keyswitch' note (c-1 being lowest) to activate some sound in a vst. We can certainly add a chord instead of just a note (but i am not sure how this works internally in MuseScore) On the other hand, if we could only use notes 0 to 21 (and 22/23 for forward/backward), this would already be great.
Hi. I made (for my personal use) a MuseScore usable build: https://github.com/diedeno/aeolus_plugin/tree/0.9.99-002-saveload Changes:
- midi notes 12 (C0) to 33 (A1), i.e. 22 possibilities, can be used to control the sequencer
- midi notes 34 (A#1) and 35(B1) for step forward/backward
- modified middle C = C4 (like in Musescore Studio) instead of C3
- added possibility to save,load and reset sequencer (preset) config.
- modified cc7: swell to use cc11 instead. (MuseScore does not use cc7, but i have already a custom build that uses cc11 for this) I did not do a PR, since i doubt you would want to have these changes in your code (e.g. hardcoded keyswitches...) Hope that's OK with you. (if you want, i can rename it to something else - without removing you copyright of course)
Hi, thanks for this. I am not sure this is the best universal solution, but of course it's totaly fine to keep a fork if it works for you.
A few comments though:
- Key switches are read from the config file. It would be best to keep it this way to provide most flexibility.
- I would expand on the
"sequencer"config clause perhaps by adding an option to map programs to keys. Something like:
"sequencer": {
"backward_key": 34,
"forward_key": 35,
"steps": 24,
"step_keys": {
"0": 12,
"1": 13,
...
}
}
This will allow configuring the sequencer by providing a custom organ_config.json file.
- C3 vs C4 I'd also put in the organ config (can be a UI global setting, but I doubt people change this often)
- Same for swell CC7/11, perhaps in here:
"swell": true,
"swell_cc": 11,
Or just let it react to both CC7 and CC11 if the devision is a swell box.
- Regarding saving/loading the sequencer state: normally a DAW lets you do this kind of things, but perhaps useful when running standalone or cross-DAWs, so this can be a useful feature on its own.
The best of course would be for MuseScore to control the stops and the sequencer via MIDI, but since they are pushing for their own instruments via MuseHub I doubt they are going to do anything about this.