The Native Instruments Audio4DJ is a professional-quality USB soundcard for DJing that is also supported under linux. Like mode devices that are “supported” under linux, however, it can be tricky to set up correctly. In my case, I need the device to work with the JACK sound server, and I needed to do a little extra work.
The first trick is setting up ALSA so that JACK works happily with the card. The problem is that the drivers don’t supply any regular mixer controls for the Audio4DJ, which makes jackd unhappy. So when creating a .asoundrc, it’s necessary to substitute the internal soundcard as the mixer elements for that device. Putting this text in ~/.asoundrc does the trick:
pcm.AUDIO4DJ { type multi; # bind hardware devices slaves.a.pcm "hw:1,0,0"; slaves.a.channels 2; slaves.b.pcm "hw:1,0,1"; slaves.b.channels 2; # bind channels to virtual device; bindings.0.slave a; bindings.0.channel 0; bindings.1.slave a; bindings.1.channel 1; bindings.2.slave b; bindings.2.channel 0; bindings.3.slave b; bindings.3.channel 1; } # JACK will be unhappy if there is no mixer to talk to, so we set # this to card 0. This could be any device but 0 is easy. #note that audio4dj is actually card 1 -- we are faking mixer elements so JACK is happy: ctl.AUDIO4DJ { type hw; card 0; }
The second question is how to change the input mode of the Audio4DJ from phono to line and back. Normally this type of setting would be found in the alsamixer program, but for some reason it’s hidden away. This script makes it easy:
#!/bin/bash if [ "$1"x == "x" ] ; then echo "$0 [phono|line|timecode]" exit 1 fi dev=`aplay -l | grep Audio4DJ | grep "device 0" | cut -d\ -f 2 | cut -d: -f 1` if [ "$dev"x == "x" ] ; then echo "Audio 4 DJ not connected" exit 1 fi result=0 if [ "$1" == "phono" ] ; then amixer -c $dev cset numid=1 2 > /dev/null result=$? elif [ "$1" == "line" ] ; then amixer -c $dev cset numid=1 1 > /dev/null result=$? elif [ "$1" == "timecode" ] ; then amixer -c $dev cset numid=1 0 > /dev/null result=$? else echo "$0 [phono|line|timecode]" exit 1 fi if [ $result -ne 0 ] ; then echo "Error setting Audio 4 DJ input" exit $result fi
One thought on “Native Instruments Audio 4 DJ on linux”
Comments are closed.