Recently, Arturia took a survey of user preferences for controlling softsynths. I'd like to offer a suggestion that I forgot to include in my original response.
Doepfer has proposed an elegant solution for controlling softsynths with their Pocket Dial hardware controller. You may read about it at
http://www.doepfer.de/pd_tec_e.htm. Their idea is to use MIDI Continuous Controller #96 (decimal) / 60 (Hex) and #97/61, but change the function of the third data byte. Normally, the third byte contains the vaule for the target CC.
For example, the CC message:
B0 07 09
means "set Continuous Controller 7 [volume] to a value of 9."
Similiarly, the CC message:
B0 60 09
means "set Continuous Controller 96 (decimal) to a value of 9."
Doepfer's idea is to re-assign the third byte to the target CC number.
B0 60 09
would now mean "increment CC 9 by 1."
B0 61 09
would now mean "decrement CC 9 by 1."
CC's #96 and #97 (decimal) were chosen simply because the MIDI spec calls these Increment/Decrement controllers, but it's an arbitrary choice. There's nothing special about 96 and 97.
Of course, this scheme works only if the rotary encoders are programmed to send data this way, and if the receiving softsynth is programmed to respond in kind.
Presently, Doepfer's Pocket Dial and a couple softsynths by Linplug are the only one's to co-adopt this convention. The effecient thing about it is that the softsynth does not have to transmit CC values to the hardware in order to stay in sync. The hardware simply sends a string of increment or decrement messages to the softsynth's respective controller number. You always get jump-free editing because the hardware is truly sending relative (not absolute) values.
I have no connection with Doepfer or Linplug. I believe their proposed standard is elegant. I hope Arturia will consider it in future software or hardware planning.
Bart Garratt