I’ve been successfully playing with using multiple sound cards for jack using alsa_in
. e.g.
run aplay -l
to get an additional usb sound device`
root@zynthian:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
card1: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
Then use alsa_in to create a jackport for the new soundcard.
alsa_in -j yeti -d hw:Microphone
once you’ve done this you can create a new effect layer and use something like patchage to connect the yeti ports to whatever effect is in the layer.
I’m thinking about how I could set this up so it can be managed from the Zynthian UI. So far I’ve though about creating a resource in the web interface where you would input the device name and requested jack port name. Then in the ui you’d have a special layer appear that would create a layer for your secondary input which you could use the standard zynth interface for adding effects to, such as a vocoder or effects chain for a guitar input, that would then output though the main jack system out in the normal way. The only constraint I can think of is you should only be able to launch one instance of each secondary input.
Does that sound workable? Does anyone have any better ideas for how to do it?