I would love to see MIDI specific units in the ER-301. I think that would be the best possible use case for this module I’m designing.
The units I can see be useful/necessary from the beginning are
- Voice gate (channel assignable, voice # assignable)
- Voice pitch (")
- Voice velocity (")
- MIDI CC (channel assignable)
The biggest question that needs to be answered, in my opinion, is what is going to be responsible for polyphonic voice allocation? This will determine the implementation of the “Voice” units.
1.) If the voice allocation is done on the 301, the Transit (my module) doesn’t need to have a setting for a voice limit, it simply has to pass through note on/off messages. Then the ER-301 can keep track of how many voices have been assigned to a MIDI channel, and allocate/steal voices accordingly.
2.) If the voice allocation is done on the Transit, then the user will have to rely on the implementation of one of the methods we’ve discussed previously in this thread, i.e., CC, program change, or SysEx web interface control over max voices per channel, which would have to correspond to whatever is currently loaded in the ER-301.
I think that the first implementation is preferable (easy for me to say, I know ) as it would allow for custom units, and quicksaves to be loaded, and have polyphonic voice allocation happen dynamically based on what is loaded in the ER-301, rather than having to keep track of how many voices exist per channel in each custom unit/chain/quicksave, etc.
Though, if it were to end up being that the voice allocation responsibilities fall upon the Transit, I think that a MIDI CC reserved, per channel, or possibly a Program Change message, for voice limit, would make more sense than a SysEx web interface, as this would allow for people to load up sequences in hardware sequencers, or projects in a DAW, and set the voice limit for that channel within the project, and have it change upon beginning playback.
Of course I could be missing something obvious, but that’s my 2¢.