Your Ad Here
2010
08.18

So, I’ve had this gadget for a few years now. It’s a DJ controller consisting of two jog pads for scratching, some basic level knobs, volume slides and a crossfader, and a few extra buttons which are used to control stuff in the bundled VirtualDJ software. However, VirtualDJ doesn’t have a linux port. There are several open source alternatives, but the one I found which was actively developed and looked good was Mixxx. It supports the Hercules DJ Control MP3 and a bunch of other similar controllers, and is cross-platform, built on the Qt toolkit.

So far, so good. Of course, like pretty much any hardware device other than the very basics, you’re going to need some drivers in order to use it properly. Hercules provide drivers for Windows and Mac with full support, and also, to their credit, provide linux drivers too, with source code available, but no official support. The drivers come as .deb and .rpm packages for both 32 and 64 bit systems. So far, so good. But on attempting to install the packages, which were last updated 2009, the installation dies while the kernel module is compiled. After a bit of investigating, I found the build log and the problem:

error: implicit declaration of function ‘snd_card_new’

The source uses the snd_card_new function, which was deprecated in mid 2009 and removed soon after in favour of the snd_card_create function which allowed better error handling. To fix this, you must extract the packages, open device.c, search “snd_card_new” and replace the line:

card = snd_card_new(index[idx], card_id/*id[idx]*/, THIS_MODULE, 0);

with:

snd_card_create(index[idx], card_id/*id[idx]*/, THIS_MODULE, 0, &card);

That solves the problem with compiling. Then you can pack it all back up again and install with dpkg as usual. However, it’s a bit of a hassle, and to make it simpler, here’s a pre-baked .deb package, tested on Ubuntu 10.04 64bit. Have fun and happy mixing!

Download [x86, x86_64, .deb, 213kb]

2 comments so far

Add Your Comment
  1. Thank you man !!

  2. thanks a lot dude…