Hi Jan, I've hosted your driver on the Mixxx site and added a link to it on our hardware compatibility page:
http://mixxx.sourceforge.net/misc/dm2-jan-0.0.tgz http://mixxx.sourceforge.net/wiki/index.php/Hardware_Compatibility Next thing on the list is what to do with the driver - Are you prepared to push this upstream to the kernel? I (and probably others on the list) can point you in the right direction if need be. Thanks, Albert On Fri, 2007-12-07 at 17:04 +0100, Jan Jockusch wrote: > Hi André, and hello to all other list members, > > I had a little coding rave last night and decided to implement (almost) > everything I wished for. See attached file, which contains a new version > of a driver for the DM2. The driver compiles with only two small > warnings, because I was too lazy to parse incoming MIDI messages. I may > need a hint on the MIDI workings anyway, but I'll ask about that later. > > (Ben, your good advice about using a library came just a bit too late. > You're right again, but I had the code base finished already. I'm > thinking of factoring out the state handling stuff so that it can be > used in a library.) > > > patch < usbdm2_wheels_jj20071206.patch > > > > patching file usbdm2.c > > Hunk #2 FAILED at 547. > > Hunk #3 FAILED at 577. > > Hunk #4 FAILED at 619. > > Hunk #5 succeeded at 1075 (offset 8 lines). > > 3 out of 5 hunks FAILED -- saving rejects to file usbdm2.c.rej > > > > war grad zu faul das zu fixen. schick mir doch das file :) > > > Keine Ahnung, was ich da wieder gemacht habe... Sorry, André... > > But I stopped working on your version anyway when I began designing the > data structures for my over-engineered stateful stuff. Lots of binary > arithmetic and book-keeping going on there, which got me quite confused. > But the thing works, amazingly enough! > > I added a DM2.midi.xml which assigns my strange and pointless key tables > correctly in a current Mixxx. > > Please don't bite my head off for having recoded the whole thing, > instead of patching existing stuff. My structures where just so far from > what I found in your version that I had to make a fresh start. USB > communication has also changed a bit, the MIDI stuff I took from your > version almost verbatim (except from having the kernel choose the card > index, and a couple other things). > > Have a look at it, it's really fun! Here's how you use it: > > 1. Center the fader and stick before loading the driver / inserting the > USB plug. The driver samples the first values as the center points. > After that, the joystick and the fader are auto-calibrating. > > 2. The LEDs should flash a bit, to indicate everything is set up. As > long as no LEDs are on, you have controls 1 and 3 on the wheels, to be > used with spread64. All buttons send MIDI key on/off events. > > 3. Pressing and releasing a button on the platters (except the south > button, more later), lights that LED and switches the wheel into another > controller. Wheel to the right increases the value, wheel to the left > decreases the value. At 0 and 127, further turning does nothing. > > 4. You can precisely center the active control(s) by pressing the > respective south button on the platter. > > 5. Pushing the button which is lit switches the light off and if all > lights are off you're back in wheel mode. > > 6. If you push and hold a button, you can turn the wheel to adjust that > parameter, and when you let go off the button, the light goes out again > (temporary shifting). > > 7. This temporary shift also works if you hold a key while another light > is on and turn the wheel. When you let go, you return to the former control. > > 8. The southeast button on the left platter and the southwest button on > the right platter do not have a control attached. They only send key > on/off. I use them for reverse play. > > 9. The center button shifts left and right wheels into a temporary > control. This control cannot be locked. > > > Try it with Mixxx! The outer three buttons of each platter control Low, > Mid, and High, the inner button (east on left platter, west on right > platter) control volume. > > Center buttons on the platter and the middle button do what you expect. > A and B are mapped to some cue function which I don't fully understand. > Upper buttons 1 and 3 switch the flanger on for the respective platter. > The joystick changes flanger depth and delay. > > I'll make a photo of my DM2 and will label it, so that it can be easier > used to configure the driver. > > The code is already prepared for sending note on/note off events to > drive the LEDs. The LEDs have a "display" layer on top of the "button > status" layer. The "display" layer automatically goes off about 1 second > after the last LED changing MIDI command. What's missing is the parsing > of incoming MIDI events. What's missing also are a few kernel parameters > and an interface for reconfiguring (I thought to use MIDI for > configuration also). > > Oh, about the stupid renaming from usbdm2.ko to dm2.ko. I needed a > different name to keep myself from constantly getting confused. Renaming > it back to usbdm2 is a snap, of course. > > André, your comments on this are naturally valued highest, since I > dissected and rearranged the fruits of your labour. So, any comments are > welcome! Also, anyone with a DM2 is invited to have a go (don't forget > to patch your kernel with André's fix). > > > More later, hope you don't hate me for being such a separatist... > > - Ján > > ------------------------------------------------------------------------- > SF.Net email is sponsored by: > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Mixxx-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/mixxx-devel ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Mixxx-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mixxx-devel
