Multiple USB Sound Cards

Optimize your system for ultimate performance.

Moderators: MattKingUSA, khz

Post Reply
oddy.o.lynx
Established Member
Posts: 37
Joined: Sat Jun 30, 2018 2:54 am

Multiple USB Sound Cards

Post by oddy.o.lynx »

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

Code: Select all

/etc/modprobe.d/fast-track-pro.conf
with the following in it...

Code: Select all

options snd_usb_audio index=5 vid=0x763 pid=0x2012 device_setup=0x9 enable=1
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

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
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

Code: Select all

/etc/modules
it already had

Code: Select all

snd-aloop
snd-seq-midi
by adding

Code: Select all

snd-usb-audio index=0 vid=0x04d8 pid=0xf296
snd-usb-audio index=1 vid=0x1f38 pid=0x0019
for

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
and to ensure the Asla Loopback card does not complicate things in

Code: Select all

cat /etc/modprobe.d/snd-aloop.conf
# Prevent snd-aloop from being loaded as first soundcard
options snd-aloop index=2
now every reboot the cards are ordered as intended

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
sources:
https://alsa.opensrc.org/MultipleUSBAudioDevices
https://alsa.opensrc.org/MultipleCards

Post Reply