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

Reply via email to