Hello Mixxx developers,

after having contributed a tiny little PowerPC / OGG patch to Mixxx 
(worth about 1 bit changed in the executable), I'm now after something 
bigger.

I've just received my Mixman DM2 (a lowcost USB controller which has a 
MIDI based driver for Windows and almost nothing for Linux) and am in 
the process of writing a Linux kernel driver for it, because there are 
several shortcomings in the existing drivers.

My main criticism is that MIDI based drivers obviously cannot make full 
use of the two wheel controls (which are more like mouse axes), for 
instance to scroll through the title list, to roll through the songs and 
to nudge songs.

I'd like to change that, but I need some advice on the interfacing layer 
with Mixxx.

The plan is as follows: I write a driver for the DM2 which opens a MIDI 
channel (quite the usual method, as I gather). Through this MIDI 
channel, I can transmit keypresses and controls like volume, fader, etc. 
Up to that point, it's trivial and should work with no problem.

For the turntables, I will transmit keypresses of varying velocity (the 
velocity will encode how much the wheel has moved during that period). 
I'll use a different key for clockwise and counter-clockwise motion.

When the wheel spins very fast, the MIDI channel will see many very 
strong keypresses. When it spins slowly, there will still be many 
keypresses (to get enough time resolution), but they'll have low 
velocity values. When you nudge quickly, then let go of the wheel, 
there'll be a couple of keypresses, first with higher, then with lower 
velocity.

This scheme matches up neatly with the way the DM2 transmits its data 
(differences in position for the two wheels), and I think the "pulsed 
keypress" scheme can work in many situations where you cannot use linear 
MIDI controls.

Now for my catalog of questions:

- Is this idea any good? (meaning: am I missing a better idea someone 
else thought of already?)

- Can this be integrated into Mixxx (by having a MIDI key run the cursor 
down or up in the playlist, and two more keys load the song into the 
left or right turntable; by having a MIDI key advance a track by a 
certain amount depending on the velocity, etc.)?

- Can I add the MIDI key event handlers myself (I confess I haven't 
studied the source code for MIDI handlers yet)?

If there's anyone interested in sharing details about the DM2, I 
appreciate every bit of help I can get. The driver will be GPLed, of 
course, so anyone can join in. I think the DM2's a fun small piece of 
hardware which can be put to good use. But something has to be done 
about those wheel controls...


Thanks in advance for your help,

Ján Jockusch


-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to