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
