|
From: Rui N. C. <rn...@rn...> - 2004-06-27 19:13:51
|
Hi Vladimir, > > Now that the internals of midi input device and midi input ports are > almost done, i'm beginning to think that it might make sense to > consolidate the following LSCP commands: > SET CHANNEL MIDI_INPUT_DEVICE <sampler-channel> <midi-device-id> > SET CHANNEL MIDI_INPUT_PORT <sampler-channel> <midi-input-port> > SET CHANNEL MIDI_INPUT_CHANNEL <sampler-channel> <midi-input-chan> > into a single command: > SET CHANNEL MIDI_INPUT <sampler-channel> <midi-device-id> > <midi-input-port> <midi-input-chan> > You probably know and already expect that my opinion would go otherwise. That is, I'm all for a new consolidated command, but I think that keeping the separated commands is a good thing. Again, compability is my main reason why, if not flexibility. > > I think this makes more sense especially if we ever want to have > multiple midi inputs connected to the same sampler channel. > For now i'll assume that only a single input can be connected to a given > channel, but i'd like to consolidate these 3 commands into 1 because i > think it will make the protocol more consistent. > MIDI_PORT object ID is not unique in the system, the same ID can exist > on different MIDI_INPUT_DEVICEs. That's why in other commands that use > <midi-port> we MUST specify <device-id> as well. For example: GET > MIDI_INPUT_PORT INFO <device-id> <midi-port>. > I think consolidating those 3 into 1 will also eliminate some issues > such as order of those 3 commands, exception handing associated with > that, etc, etc. It will make spec smaller too, something we haven't been > able to do in a while :) > I don't mind having a fat spec. OTOH I do realize that by using the non-consolidated commands, one has to follow some order, that's trivial. You cannot set a device attribute without knowing which one to set. That's why SET CHANNEL MIDI_INPUT_DEVICE should be issued before the SET CHANNEL MIDI_INPUT_PORT and SET CHANNEL MIDI_INPUT_CHANNEL, in this order respectively. IIUC a MIDI input device exposes one or more ports. Each port presents the usual 16 MIDI logical channels. Furthermore, it's pretty usual to have only ONE MIDI channel mapped to ONE sampler channel, although this must not be a fundamental design limitation. OTOH, having ONE sampler channel listening on only ONE MIDI channel it's just usual but mustn't be the rule. For that reason, if one wishes to change just the MIDI channel on which a sampler channel is being triggered, he/she must not have to reissue the respective MIDI port, or even the MIDI input device identifier. The currently assigned ones to the intended sampler channel shall be assumed. > Please comment! I'll implement a single command unless i get bad > feedback. > As I said, you can go and implement it, but I really don't see the point why you have to. I'll rather help you implementing the individual (non-consolidated) commands, if that makes you happy, although not happier ;) Hey, and what about that good old SET CHANNEL MIDI_INPUT_TYPE ? Yeah, don't wanna be a PITA :) but we can keep it too in the very same fashion I've made with it's audio counterpart. Of course, you can leave it to me, once again. Cheers. -- rncbc aka Rui Nuno Capela rn...@rn... |