RNBO multichannel output to M-Audio fast track pro
I want to send four channels of audio from RNBO on the Raspberry Pi to an M-Audio Fast Track Pro audio interface. This audio device is in fact seen as two audio devices in one, each with two channels. ALSA / "aplay -l" lists them as two separate devices. RNBO seems to only be able to output to one of these devices. With etc/asound.conf we have been able to create a multi-device that can be used with jackd, and tested with Pure Data (Pd) and it plays four channels correctly. How do I set this up with RNBO?
I think if you've set up an asound.conf based composite device you should be able to select it as an 'interface' in the audio configuration, either when doing an export or from the web interface.
let us know if this works out for you.
Hi Alex! It's taken a little time to test, and I eventually did a clean reinstall as nothing seemed to work, including the wifi continuously dropping out (I'll get back to that after checking more about the error messages). But now I am sure that this method to make an aggregate device doesn't work with rnbo but does work with Pure Data on the pi5:
At the outset, jackd can only use one of the two devices, but by creating a "virtual" multi-device in /etc/asound.conf
we were able to send sound to all four outputs at the same time from Pure Data.
The file contents:
```
pcm.multi {
type multi
slaves.a.pcm "hw:1,0"
slaves.a.channels 2
slaves.b.pcm "hw:1,1"
slaves.b.channels 2
bindings.0.slave a
bindings.1.slave a
bindings.2.slave b
bindings.3.slave b
}
pcm.jack_multi {
type plug
slave.pcm "multi"
}
```
And then on Pd, the jackd command to use this multi-device:
jackd -d alsa -d jack_multi -r 48000 -p 256 -n 3 -S -i 2 -o 4
But on rnbo jackd reports:
```
`default' server already active
Failed to open server
```
In the rnbo target export configuration only hw:pro (channels 1+2 of the audio interface) are available, along with the dummy etc. Likewise in the web interface I only see alsa_pcm:hw:Pro:in1 and alsa_pcm:hw:Pro:in2.
Appreciate any suggestions / solutions!
Natasha
HMM... so we construct our list of interfaces from /proc/asound/cards .. I suspect it isn't listed in there. I'm curious if your aggregate device is listed anywhere else in /proc/asound ? does aplay -l
list it?
If you're able to get jackd to run as multi-device on the commandline, you could start jackd yourself before you run the rnbo runner. You'd have to write a systemd service file and make sure it happens before the rnbo runner, I'd also make sure to add some delay in there somehow as it takes some amount of time for jack to actually start after running jackd.
To test out what your setup would be like you can do this (logged into the pi as the 'pi' user):
sudo service rnbooscquery stop
jackd -d alsa -d jack_multi -r 48000 -p 256 -n 3 -S -i 2 -o 4
then, in another terminal, log into the pi and do:
sudo service rnbooscquery start
This should run the runner using the jack setup you've created, jack will only keep running while you have the terminal open that started it though.