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-
