I have a keyboard controller that dynamically assigns notes to different MIDI channels, so that all controllers are therefore polyphonic. This works fine with most hardware sound modules, since they are capable of playing 16 copies of the same sound, and can be quickly set up by giving them Program Changes on all channels. The only way I can use Zebra with this controller is to create 16 instances of it, and explicitly assign each one to a different MIDI channel in the host, which takes a ton of screen real estate. If I want to edit a sound, it's extremely cumbersome, to say the least.
A solution occurs to me. Since my host (and I assume most hosts) allows all MIDI channels to be sent to a single plug-in, Zebra could deal with this by having a single instance of Zebra maintain 16 tables of control values, one for each MIDI channel, and choose which table to fetch from based on the channel each note is received through. The plug-in would still function as it does now, for people who merely use a single channel. It doesn't break anything, but could make Zebra the synth of choice for controllers of this sort.
The particular controller I'm referring to is here:
http://www.hyperkeys.com
but I believe there are other controllers that use the same concept, for per-key controls.
Feature request
-
- KVRer
- 12 posts since 28 Jan, 2011
-
- KVRAF
- 1548 posts since 12 Jan, 2010 from Copenhagen
I would expect that this type of 16 channel controller callup would be an enormous amount of work for the developer to implement. To get it to work now I could see setting up a template once and for all in your host(s) that used 16 instances of Zebra would be the quickest way to get to work with the expanded control of this device.
Still a project that might take a week out of ones life to realize.
Each controller would have to be mapped in each instance...
Great to have that level of control. But also burdensom and time consuming to learn to play it effectively..
Good luck with your project!
Still a project that might take a week out of ones life to realize.
Each controller would have to be mapped in each instance...
Great to have that level of control. But also burdensom and time consuming to learn to play it effectively..
Good luck with your project!
waves break, but somehow it all makes sense.
-
- KVRer
- Topic Starter
- 12 posts since 28 Jan, 2011
I don't know what internal architecture Zebra has, but as a soft synth programmer I can imagine architectures in which the change would be fairly simple: replace each variable that records an incoming control value with an array of 16 values, or replace the whole structure that holds all control values with an array of 16 structures, and then remember the channel number for each note.
The problem at my end isn't so much setting up 16 instances, although it's annoying that they take up so much vertical space in the project. It's that if I want to change sounds, I have to select a new program in 16 different instances. And if I want to play with the sound by varying a parameter, I have to do the same change in 16 instances. That's beyond tedious, it's utterly impractical. So as it stands, I'm not going to bother using Zebra with the Hyperkeys. I'll just settle for the mediocre sounds in my little Roland sound module for now.
The problem at my end isn't so much setting up 16 instances, although it's annoying that they take up so much vertical space in the project. It's that if I want to change sounds, I have to select a new program in 16 different instances. And if I want to play with the sound by varying a parameter, I have to do the same change in 16 instances. That's beyond tedious, it's utterly impractical. So as it stands, I'm not going to bother using Zebra with the Hyperkeys. I'll just settle for the mediocre sounds in my little Roland sound module for now.
-
- KVRAF
- 1548 posts since 12 Jan, 2010 from Copenhagen
Seems clear enough. Sad that you have to use a boring sound module with such a powerful controller though...pderocco wrote:I don't know what internal architecture Zebra has, but as a soft synth programmer I can imagine architectures in which the change would be fairly simple: replace each variable that records an incoming control value with an array of 16 values, or replace the whole structure that holds all control values with an array of 16 structures, and then remember the channel number for each note.
The problem at my end isn't so much setting up 16 instances, although it's annoying that they take up so much vertical space in the project. It's that if I want to change sounds, I have to select a new program in 16 different instances. And if I want to play with the sound by varying a parameter, I have to do the same change in 16 instances. That's beyond tedious, it's utterly impractical. So as it stands, I'm not going to bother using Zebra with the Hyperkeys. I'll just settle for the mediocre sounds in my little Roland sound module for now.
waves break, but somehow it all makes sense.
- KVRAF
- 26983 posts since 3 Feb, 2005 from in the wilds
Can you use the Zebra midi bank which responds to program change to change all 16 presets at once?pderocco wrote:I don't know what internal architecture Zebra has, but as a soft synth programmer I can imagine architectures in which the change would be fairly simple: replace each variable that records an incoming control value with an array of 16 values, or replace the whole structure that holds all control values with an array of 16 structures, and then remember the channel number for each note.
The problem at my end isn't so much setting up 16 instances, although it's annoying that they take up so much vertical space in the project. It's that if I want to change sounds, I have to select a new program in 16 different instances. And if I want to play with the sound by varying a parameter, I have to do the same change in 16 instances. That's beyond tedious, it's utterly impractical. So as it stands, I'm not going to bother using Zebra with the Hyperkeys. I'll just settle for the mediocre sounds in my little Roland sound module for now.
