Audio config
Jump to navigation
Jump to search
Install jackd2 from /root/jackd2, which is a jackd2 compiled without dbus (--dbus removed from debian/rules in the debian source package). Make sure to enable rtprio and memlock permissions, the jackd installer on debian asks for this.
Make a new file /root/jackd_start, chmod to 755 and put this in it:
#!/bin/bash #make sure jackd and bobdsp are terminated when this script ends cleanup() { killall jackd killall bobdsp exit 0 } trap cleanup SIGINT trap cleanup SIGTERM #JACK_PROMISCUOUS_SERVER is exported here and in /etc/environment #this tells jackd and libjack to use /dev/shm/jack instead of /dev/shm/jack-<uid> #and to set the permissions to 777, however umask needs to be set to 0 first export JACK_PROMISCUOUS_SERVER="" #allow rtprio and mem locking ulimit -l unlimited ulimit -r 95 #start bobdsp su -l bitlair -c "cd /home/bitlair/bobdsp; ./build/bobdsp -f -d" #start jackd with -l passed to su to make the environment a login shell, restart when it dies #jackd needs to run as root, probably because it needs to send signals to its clients while [ 1 ] do su -l -c "mkdir ~/.jackd; umask 0; jackd -R -d alsa -d jack51 -r 48000 -p 1024 -n 2 -i 2 -o 6 2>&1 | tee ~/.jackd/jackd.log" || true sleep 1 done
Put this in /etc/rc.local
/root/jackd_start&
At the top of /etc/init.d/mpd change
#!/bin/sh
to
#!/bin/bash
Then change
# Exit if the package is not installed [ -x "$DAEMON" ] || exit 0
into
# Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 #allow rtprio and mem locking ulimit -l unlimited ulimit -r 95
And
user "mpd"
into
user "bitlair"
Then run as root:
dpkg-statoverride --remove /var/run/mpd dpkg-statoverride --add bitlair audio 755 /var/run/mpd chown -R bitlair:audio /var/lib/mpd chown -R bitlair:audio /var/run/mpd chown -R bitlair:audio /var/log/mpd
Use this /etc/asound.conf file
pcm.!default { type plug slave { pcm "jack" } } pcm.jack { type jack playback_ports { 0 system:playback_1 1 system:playback_2 2 system:playback_3 3 system:playback_4 4 system:playback_5 5 system:playback_6 } capture_ports { 0 system:capture_1 1 system:capture_2 } } ctl.mixer0 { type hw card 0 } ctl.jack51 { type hw #card 0 card Audigy } pcm.jack51 { # "asym" allows for different # handling of in/out devices type asym playback.pcm { # route for mmap workaround type plug slave.pcm "surround51:CARD=Audigy" #slave.pcm "surround51" slave.channels 6 route_policy duplicate } capture.pcm { # 2 channels only type hw #card 0 card Audigy } }
In /etc/mpd.conf comment the current audio output, and use this instead:
audio_output { type "jack" name "mpd" }