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

Reply via email to