a fellow called "snap" mentioned a tool called "stereotool" which could be used as dsp in linux. I'll be using stereotool in this tutorial but it should also work with other similar tool which using JACK. I haven't checked yet but this one seems works too http://kxstudio.linuxaudio.org/Applications:Cadence. this tutorial will cover how to set up your system so that it could has a dsp but it won't cover about "how to use the dsp tool". well...honestly...this dsp stuff is quite complex and I'm still trying to figure that part too
1. a dsp tool which utilize jack.
3. jack modules for pulseaudio and pavucontrol. in case if you want to run pulse along with jack.
Code: Select all
sudo apt-get install jackd2 qjackctl pulseaudio-module-jack pavucontrol
A. preparing JACK.
1. start jack server. run 'qjackctl' and press 'start'.
2. load jack modules
Code: Select all
pactl load-module module-jack-sink pactl load-module module-jack-source
3. start pavucontrol and your favourite media player
similar with our previous experiment, we'll using pavucontrol to control the audio output. in order to use jack you need to change your audio output to jack
after this step your jack will works.
note: do not close qjackctl!!
B. starting the dsp and reroute the audio channel.
1. start your dsp. we'll use stereotool as reference but other dsp tool should works too.
2. open qjackctl and press "connect". press "expand all"
if you follow the A part correctly, in the left side you'll see "pulseaudio jack sinc", "stereotool", and "system". while on the right side "stereotool", and "system". you'll also see that pulseadio is directly connected to system playback. we'll need to put "stereotoll" between "pulse" and "system" to make the dsp works.
3. close the connection between "pulse" and "system". you can manually did that or simply "disconnect all".
4. put "steretool" between "pulse" and "system". connect pulse's front-left and front-right to stereotool's in-l and in-r. after that connect stereotool's out-l and out-r to system's playback_1 and playback_2.
the link above is not an exact interface of qjackctl but it should help you understand how it should done. credit for snap for the image :3
start your music and play with your dsp.
please note that when jack server is running pulseaudio can't access your soundcard. you need to make sure that your app is using jack sink to make it work. some people said that running pulse along with jack isn't an ideal solution since it will increase your system load and potentially decrease the sound quality due too many layer between your app and your soundcard. while that might true pulseaudio gives you more control to your system and quite easy to use. on top of that pulse doesn't take much cpu power so it won't decrease your sound quality much.
using pulseaudio also makes it possible to mix JACK's dsp with other dsp. for an instance, we can add LADSPA plugins along with JACK. we can use this one for example http://forums.solydxk.nl/viewtopic.php?f=74&t=5725. with pulseaudio we can mix stereotool with bs2b. simply follow the tutorial to enable bs2b on that thread. after that, change the ladspa stream output into jack and your music player's output into ladspa plugin.
that's just a little example of mixing JACK's dsp with other dsp. other dsp like pulse-adio-equalizer should works too :3