Multiple USB Sound Cards
Posted: Fri Dec 20, 2019 5:26 am
I use a Fast Track Pro as my principle sound card in combination with a QuNexus and Artiphon Instrument 1, all three USB devices. I have disabled the on board sound card via the BIOS so it is does not compete with any of the USB cards. My system also loads the Loopback module, so in essence 4 sound cards loading at boot.
The QuNexus is strictly a MIDI instrument but the Artiphon Instrument 1 has built in speakers and I occasionally want to use those speakers with ALSA only and as the DEFAULT sound card (no JACK or PULSE running). To do this I want it to always be hw:0
The problem was the QuNexus was always grabbing hw:0 by default on every reboot and I would have to unplug and replug them to get them ordered properly, plug back the Artiphon first and then the QuNexus second to get the Artiphon Instrument 1 to get hw:0 and the QuNexus to take hw:1
The Fast Track Pro always grabs hw:5 as it uses the file
with the following in it...
to gets this configuration 24 BIT - 44.1/48 KHz - 2 INPUTS (ANALOG) - 4 OUTPUTS (ANALOG + DIGITAL)
It was easy enough to understand how this file was used to set the hw number for the Fast Track pro to hw:5. The dilemma was figuring a method to get the other two USB cards to be assigned the intended slot on reboot.
I tried a few times to make changes to the ~/.asoundrc to no avail. I figured that if the Fast Track Pro could be assigned a hw number there had to be a way to get the other two assigned without hot swapping and decided to determine if there was another way to do so other than asoundrc.
After re-reading a few articles at Alsa Opensrc Org discovered that by using the vid and pid, the slots could be assigned and there was no need for complicating things with alias char-major, alias sound-slot, alias sound-service and options snd-card. Getting the vid and pid were enough, and for both the QuNexus (vid=0x1f38 pid=0x0019) and Artiphon Instrument 1 (vid=0x04d8 pid=0xf296) this info can be found running lsusb
At first I tried creating .conf files in /etc/modprobe.d/ with this info but that did not work well
in those files mimicking the fast-track-pro.conf file added...
but upon reboot the Fast Track Pro was at hw:0 and at its default 16 bit setting with the other cards (Aloop included) at hw:1, hw:2, hw:3
this was very far from a solution as I want the Fast Track Pro at 24 bit.
The solution was to add the following to
it already had
by adding
for
and to ensure the Asla Loopback card does not complicate things in
now every reboot the cards are ordered as intended
sources:
https://alsa.opensrc.org/MultipleUSBAudioDevices
https://alsa.opensrc.org/MultipleCards
The QuNexus is strictly a MIDI instrument but the Artiphon Instrument 1 has built in speakers and I occasionally want to use those speakers with ALSA only and as the DEFAULT sound card (no JACK or PULSE running). To do this I want it to always be hw:0
The problem was the QuNexus was always grabbing hw:0 by default on every reboot and I would have to unplug and replug them to get them ordered properly, plug back the Artiphon first and then the QuNexus second to get the Artiphon Instrument 1 to get hw:0 and the QuNexus to take hw:1
The Fast Track Pro always grabs hw:5 as it uses the file
Code: Select all
/etc/modprobe.d/fast-track-pro.conf
Code: Select all
options snd_usb_audio index=5 vid=0x763 pid=0x2012 device_setup=0x9 enable=1
It was easy enough to understand how this file was used to set the hw number for the Fast Track pro to hw:5. The dilemma was figuring a method to get the other two USB cards to be assigned the intended slot on reboot.
I tried a few times to make changes to the ~/.asoundrc to no avail. I figured that if the Fast Track Pro could be assigned a hw number there had to be a way to get the other two assigned without hot swapping and decided to determine if there was another way to do so other than asoundrc.
After re-reading a few articles at Alsa Opensrc Org discovered that by using the vid and pid, the slots could be assigned and there was no need for complicating things with alias char-major, alias sound-slot, alias sound-service and options snd-card. Getting the vid and pid were enough, and for both the QuNexus (vid=0x1f38 pid=0x0019) and Artiphon Instrument 1 (vid=0x04d8 pid=0xf296) this info can be found running lsusb
Code: Select all
lsusb
Bus 001 Device 009: ID 1f38:0019
Bus 001 Device 008: ID 04d8:f296 Microchip Technology, Inc.
Bus 001 Device 003: ID 0763:2012 M-Audio M-Audio Fast Track Pro
At first I tried creating .conf files in /etc/modprobe.d/ with this info but that did not work well
in those files mimicking the fast-track-pro.conf file added...
Code: Select all
options snd_usb_audio index=0 vid=0x04d8 pid=0xf296 enable=1
options snd_usb_audio index=1 vid=0x1f38 pid=0x0019 enable=1
this was very far from a solution as I want the Fast Track Pro at 24 bit.
The solution was to add the following to
Code: Select all
/etc/modules
Code: Select all
snd-aloop
snd-seq-midi
Code: Select all
snd-usb-audio index=0 vid=0x04d8 pid=0xf296
snd-usb-audio index=1 vid=0x1f38 pid=0x0019
Code: Select all
cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
snd-aloop
snd-seq-midi
snd-usb-audio index=0 vid=0x04d8 pid=0xf296
snd-usb-audio index=1 vid=0x1f38 pid=0x0019
Code: Select all
cat /etc/modprobe.d/snd-aloop.conf
# Prevent snd-aloop from being loaded as first soundcard
options snd-aloop index=2
Code: Select all
cat /proc/asound/cards
0 [INSTRUMENT1 ]: USB-Audio - INSTRUMENT1
Artiphon INSTRUMENT1 at usb-0000:00:1a.0-1.3, full speed
1 [QuNexus ]: USB-Audio - QuNexus
KESUMO, LLC QuNexus at usb-0000:00:1a.0-1.4, full speed
2 [Loopback ]: Loopback - Loopback
Loopback 1
5 [Pro ]: USB-Audio - FastTrack Pro
M-Audio FastTrack Pro at usb-0000:00:1a.0-1.1, full speed
https://alsa.opensrc.org/MultipleUSBAudioDevices
https://alsa.opensrc.org/MultipleCards