On Fri, 2005-13-05 at 12:13 +0200, Alfons Adriaensen wrote:
On Fri, May 13, 2005 at 10:16:41AM +0200, Albert Graef
wrote:
/set <voice> <gate> <freq>
<gain>
...
The disadvantage of this fairly basic scheme is of course that the
client has to dispatch the voices himself.
It's possible to have the best of both worlds and remain close
to midi, something like:
/note_on <chan> <voice> <note> <velocity>
When <voice> is zero, you get the standard midi behaviour:
the synth assigns a voice that is identified by <note> and
destroyed by a /note_off. When <voice> is not zero, it creates
a voice that you need to manage yourself.
I proposed something similar two years ago in a discussion
on plugin interfaces IIRC, and got badly flamed for it...
If by <channel> you mean MIDI style channel number - dear god no. :)
Note numbers are debatable (but frequency is better in most cases), but
channel numbers definitely don't belong in OSC. Maybe an open-ended
string identifier (which could represent a channel, a patch, a certain
synth... whatever)
There's no need to have confusing overloading with <voice> being zero or
non-zero - just make different commands. Have one note on command to
allocate the most appropriate voice (MIDI style), and one to start a
note on a specific voice. In Om I've made seperate commands for global
or voice-specific controls, and it works great.
Ability to control individual voices specifically is one of the things I
love about OSC. Death to MIDI. :)
-DR-