Implementing MIDI controllers for all parameters
2008-06-02 by korgpolyex800
I am about to get serious about writing the code that implements MIDI controllers for all of the Poly 800 parameters. The controllers would edit the current sound parameters and would require "writing" to a specific patch in order to make the current sound permanent in one of the 64 patches. Some of the controllers will be set up specifically according to a well known controller. VCF, resonance, portamento time, etc all have assigned controllers. I will write the code so that those specific MIDI controllers work for those well known controllers. Now, given that there are about 50 to 60 original parameters to edit and another 64 potentially in extended parameters, I think it makes sense for us to just assume that we'll be dealing with about 128 different controllers. Also, the parameters are kind of set up in blocks of eight. And furthermore, global mode uses up to 64 different parameters too. So I was thinking about assigning controller 22 to be a parameter bank select. Controller 22 would use a range of values from 0-16 (anything above 16 would be ignored). Then Controllers 23 to 31 would be parameter controllers for parameter 0 through 7. For example, set Controller 22 to 4 would select the EG1 parameters for editing. Then, you would edit attack, decay, bp, slope, sustain and release by using controllers 23-29 (30 and 31 would not be active because the EG parameter bank only has six parameters to edit). So 23 would edit the attack through to 29 would edit release. If you want to edit EG2 parameters you would send controller 22 with a value of 5. Then use controllers 23-29 to edit EG2 parameters. Once again, 23 would control attack through 29 would control release. Using this model, we can use nine knobs on a controller to edit all of the parameter "banks". The banks would be 0-7 for the original parameters, 8-15 for extended parameters and 16 for global parameters. So just about any MIDI controller that has nine assignable knobs could edit all of the parameters in the Poly. Hmm, maybe I should just leave out the global parameters. What does everyone think of that method? Mike.