Hi,
I'm trying to add multiple audio cards on a Raspberry Pi 4, running Patchbox OS 5.15.36. The main audio card is a Blokas Pisound, with stereo audio in and audio out.
The objective is to add a Roland MC-101 as an additional USB audio card to get the Pisound playing the MC-101 audio and to record onto the MC-101 using the Pisound audio input. So basically: MC-101 > System Out | System In > MC-101 > System Out
I can easily do this by setting the Roland MC-101 in Generic mode and then use either alsa_in /alsa_out or jack_load, together with jack_connect. Both approaches work relatively well with minimal latency, but in both cases I hear occasional audio artefacts like pops and clicks, whether in the audio output (Roland MC-101 playing) or in the audio input (Roland MC-101 receiving the audio coming from the Pisound audio in).
I could end my experiments here and go on making music in Generic mode, but I accidentally found that if I set the Roland MC-101 to Vendor mode and use alsa_in /alsa_out, all the audio artefacts are gone. The only downside is that I can only hear the MC-101 audio out, i.e. it no longer plays back the audio coming from the Pisound audio input.
So, basically, I do the following either in Generic or Vendor modes:
Code: Select all
alsa_in -j "MC101_in" -d hw:MC101,DEV=0 -r 44100 -p 64 -n 4
alsa_out -j "MC101_out" -d hw:MC101,DEV=0 -r 44100 -p 64 -n 4
jack_connect MC101_in:capture_1 system:playback_1
jack_connect MC101_in:capture_2 system:playback_2
jack_connect system:capture_1 MC101_out:playback_1
jack_connect system:capture_2 MC101_out:playback_2
In Generic mode I hear both the MC-101 internal audio and the audio input from the Pisound with, admittedly, ocasional audio artefacts. However, in Vendor mode, I get an absolute pristine sound (I think it sounds even better than the audio coming from Generic mode) with absolutely no audio artefacts, but I can only hear the MC-101 internal sound - I cannot hear the audio input coming from the Pisound.
In both cases, i can see everything properly connected with jack_lsp. I know Vendor mode theoretically required installing drivers, but apparently it seems to work without them.
I tried to change all the parameters such as Sample Rate, Buffer Size, Period, etc, but it doesn't seem to have any major impact (aside from increasing the audio artefacts). I also tried jack_load, but it does not work in Vendor mode (audio gets really distorted). I could't find and difference in using hw: or plughw: either.
So, my question is: Has anyone encountered the same issue and/or understands what's going on with the Generic versus Vendor modes?
Thanks in advance for reading!