Introduction
It seems to be a common gripe among linux renoisers that you can’t play any audio from other applications while renoise is running, because it reserves the soundcard completely for itself.
Fortunately there’s a simple workaround for this, using jack server, and running both renoise’s and rest of the system’s sounds via it.
This method uses jack server’s dbus interface introduced in jack2, and pulseaudio’s module-jackdbus-detect. When you start jackdbus, the module-jackdbus-detect detects it (surprise), and routes all pulseaudio audio to jack. Now you can use renoise with jack output, and any PA application should work simultaneously via jack. This also makes it easy to record audio to renoise from any application. All you have to do is connect ‘system’ output to renoise’s input in jack for example via qjackctl.
This is also possible using legacy jackd+pulseaudio, or jack+alsa. I can write instructions for those later, although last time I checked both methods have the drawback that jack server must be setup to run system wide all the time.
Okay, let’s do it
You need to have installed:
-jack2
-pulseaudio (and module-jackdbus-detect for it if not provided by pulseaudio package)
First, let’s make sure jackdbus module is enabled for pulseaudio:
$ grep jack /etc/pulse/default.pa
.ifexists module-jackdbus-detect.so
load-module module-jackdbus-detect channels=2
if the command above doesn’t show anything about module-jackdbus-detect, You need to add this in ~/.config/pulse/default.pa (for your user only), or in /etc/pulse/default.pa (system wide):
### Automatically connect sink and source if JACK server is present
load-module module-jackdbus-detect channels=2
``` remember to restart pulseaudio after, if you edit either one of the files.
And that would be it, except now the problem is renoise doesn't support the jackdbus interface, and starts the legacy jackd instead, which isn't recognized by pulseaudio's jackdbus-detect.
Because of this, jackdbus must be started before launching renoise.
That can be done from command line with jack_control script, which is unfortunately rather badly documented: run jack_control without arguments to get list of commands, or see the script example below.
You can also use qjackctl for this if you enable d-bus interface in setup->misc, although I haven't tested this thoroughly.
Or you can use script to start/configure jackdbus and start renoise.
Here's and example. You will probably need to edit it for your needs, at least make sure the alsa device is correct.
#!/bin/sh
jack_control start # start jackdbus
jack_control eps realtime true # enable realtime privilidges for it
jack_control ds alsa # select driver
jack_control dps device hw:0 # select alsa device
jack_control dps rate 48000 # set sample rate
jack_control dps nperiods 3 # set number of periods
jack_control dps period 512 # set period size
#/path/to/your/renoise/renoise $1 # start renoise
renoise $1 # you don’t need the path if renoise is installed system wide
jack_control exit # stop jackdbus after you exit renoise
killall jackd # in case renoise starts legacy jackd
This may seem complicated, but actually the jackdbus+pulseaudio combo should work out of the box when you install the necessary packages on most modern linux distributions, and it's only missing from renoise, which is why you need the script or to start jack manually.
I hope this was helpful to someone. Let me know if you have any issues or comments, thanks ![:)](https://files.renoise.com/forum/emoticons/default/smile.gif)/>