On Tue, Dec 04, 2007 at 01:32:08PM +0100, Jan Jockusch wrote: > Both drivers do not implement inner states of the controller. I feel > that you need many CCs to control any useful application and the device > should be able to "shift" the wheels into several different CCs to get > the most out of it. The device can even notify on the current state by > lighting LEDs under the buttons, so it should be quite nice. > > I agree with the view that a driver should only pass information through > and not do too much interpretation, so state keeping and translating one > CC into another might better be done by a user space MIDI translator.
What you're talking about is not really "inner state" of the controller because the controller has no inner state (some do, some are programmable and can genuinely have different states which send different CCs, but I don't think the DM2 falls into this category) but rather is state specific to the application. For the Xponent I implemented (within mixxx) one particular state change, such that the wheels were only touch sensitive when a particular button was toggled. For some other application I might have wanted that button to do something completely different, so it feels natural to me that all such interpretations of "state" are within the application, not the driver or even a userland intermediary. The only reason I can think of to have a separate translator, if it were capable of intercepting a certain event which would switch the device over to (easiest) a different MIDI channel or (more difficult) a different set of CCs, would be to make it possible to control more than one application at a time from a single controller. Whether anyone would want to do that is another matter! > Regarding this, I have another question to all you MIDI equipment experts: > > - Is there any standard MIDI message to tell a device to turn lights on > or off? I know there are several device specific MIDI messages but, > again, I don't want to stray too far from the usual "way to do it". MIDI was designed for music. Any other application is inherently non-standard. In fact an awful lot of music use is non-standard too! The spec didn't define much, and many de facto standards are only de facto within a particular manufacturer, as I found to my chagrin when I tried after years of Yamaha use to integrate a Roland synth into my setup... Anyway. A logical way to do it would be to use Note On to switch a light on, and Note Off to switch it off. Some controllers use CCs but I think Notes are the right meme for something that is inherently either on or off. Of course, if your LEDs are variable brightness, or if you have say a VU meter which you want to offer as a single control rather than individual LEDs, a CC would be right. Unless your controller does soft-thru (ie retransmits what it receives) that you can't disable, transmit on the same MIDI channel that the controller sends. This makes it analogous to how synths work. If your LEDs are associated with buttons, using the same key number that the button sends would make life easiest. Otherwise, just pick numbers with some kind of logic to them according to the LEDs' relative positions or functions. Ben ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ Mixxx-devel mailing list Mixxx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mixxx-devel