In order for JAMin to be useful you must first connect JACK enabled input and output applications. Ideally you will want to use applications that incorporate the JACK transport mechanics so that the transport can be controlled from one of the applications. In order to run JAMin you must first have started the JACK daemon (jackd). There are a number of ways to do this. Ideally you would want to use qjackctl or qjackconnect to handle the connections instead of having to use a hardwired script. Qjackctl has the added feature of being able to start and stop the jackd process and modify it's parameters. Note that qjackctl requires the latest version 3.0.5 of Qt. If you're running Red Hat 7.3 you will need to download and install the latest from Trolltech. Trust me on this, it's well worth the effort. A fairly standard setup is to start jackd using qjackctl, start Ardour, have all of your outputs going to the master out in Ardour, connect the master outputs to JAMin inputs, connect JAMin outputs to a stereo track in Ardour, and then use Ardour to both play and record. You can also export audio sessions from Ardour, use alsaplayer or ecamegapedal to play the audio file, connect the outputs to JAMin inputs, connect JAMin outputs to Ardour stereo track inputs. As you can see the JACK Audio Connection Kit makes many different kinds of setups possible. Here is a picture of the qjackctl connections page with the alsaplayer, JAMin, Ardour setup:
If you're a dyed-in-the-wool UNIX geek you might prefer the command line
method. As an example here is a test script that I use to start jackd and
run JAMin:
#!/bin/bash
if [ $1 ]; then
SONG=$1
else
SONG=/data2/cdroast/grown_man_cry.wav
fi
killall -9 artsd 2>/dev/null
killall -9 jackd 2>/dev/null
rm -rf /tmp/jack*
echo 1 > /proc/sys/kernel/lowlatency
jackd -R -d alsa -d ice1712 -n 2 -p 2048 -r 44100 &
sleep 2
qjackconnect &
sleep 2
alsaplayer -s alsaplayer -S -o jack $SONG &
sleep 2
jamin alsaplayer:out_1 alsaplayer:out_2 alsa_pcm:playback_1 alsa_pcm:playback_2
killall -9 alsaplayer
killall -9 qjackconnect
killall -9 jackd 2>/dev/null
Instead of alsaplayer you can use ecamegapedal (which understands JACK transport controls) by using:
ecamegapedal $SONG &in place of the alsaplayer specific lines. Note that there is no recorder connected in this case because it's just for testing. Hooking up Ardour or some other JACK enabled recorder is left as an exercise for the student ;-)
jamin ecasound:out_1 ecasound:out_2 alsa_pcm:playback_1 alsa_pcm:playback_2
killall -9 ecamegapedal