Ubuntu – MixPre-D USB audio interface shows up as “Output Device,” not “Input Device” in Lubuntu 20.04

20.04alsalubuntusoundusb

I'm trying to connect my Sound Devices MixPre-D as a USB audio interface to a laptop running Lubuntu 20.04. The MixPre-D claims to be USB-standard compliant and is intended to work as a duplex (input and output) audio interface. When I look in Pulse Volume Control, I see the MixPre-D under the "Output Device" tab, but not under "Input Device." If I go to the "Configuration" tab in Pulse Volume Control, the MixPre-D's profile is listed as "Analog Stereo Output," and there is no profile for "Analog Stereo Duplex," which is what I think it should be, based on my other soundcard.

I have tried the Mixpre-D on Windows 7, where it works as expected. I have also tried it on another Lubuntu installation on another machine, where it again shows up only as an output device. I have tried it in different USB ports and with different USB cables, all with the same result. Finally, I have another USB-standard compliant interface, a Zoom H2 recorder, that works as expected on both Lubuntu and the Windows machines. So, it seems there's something in ALSA that is not properly recognizing this particular device.

The MixPre-D shows up in lsusb and in aplay -l, but not in arecord -l. When I look at the details of arecord -L, it shows the MixPre-D as "USB Output." It seems I need to tell ALSA that this device is also "USB Input," but I have no idea how to do that. Any help would be greatly appreciated!

Here's what some of the typical diagnostics show.

brian@Prolefeed-3:~$ lsusb
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 04f2:b2da Chicony Electronics Co., Ltd thinkpad t430s camera
    Bus 001 Device 003: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 002: ID 0926:0208 Sound Devices MixPre-D
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    brian@Prolefeed-3:

brian@Prolefeed-3:~$ aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: PCH [HDA Intel PCH], device 0: ALC3202 Analog [ALC3202 Analog]
      Subdevices: 0/1
      Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: MixPreD [MixPre-D], device 0: USB Audio [USB Audio]
      Subdevices: 0/1
      Subdevice #0: subdevice #0
    brian@Prolefeed-3:

brian@Prolefeed-3:~$ arecord -l
**** List of CAPTURE Hardware Devices ****
   card 0: PCH [HDA Intel PCH], device 0: ALC3202 Analog [ALC3202 Analog]
    Subdevices: 0/1
    Subdevice #0: subdevice #0
brian@Prolefeed-3:

brian@Prolefeed-3:~$ arecord -L
default
    Playback/recording through the PulseAudio sound server
surround21
    2.1 Surround output to Front and Subwoofer speakers
surround40
    4.0 Surround output to Front and Rear speakers
surround41
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50
    5.0 Surround output to Front, Center and Rear speakers
surround51
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
null
    Discard all samples (playback) or generate zero samples (capture)
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pulse
    PulseAudio Sound Server
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
sysdefault:CARD=PCH
    HDA Intel PCH, ALC3202 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3202 Analog
    Front speakers
dmix:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3202 Analog
    Direct sample mixing device
dsnoop:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3202 Analog
    Direct sample snooping device
hw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3202 Analog
    Direct hardware device without any conversions
plughw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC3202 Analog
    Hardware device with all software conversions
usbstream:CARD=PCH
    HDA Intel PCH
    USB Stream Output
usbstream:CARD=MixPreD
    MixPre-D
    USB Stream Output
brian@Prolefeed-3:~$ 

brian@Prolefeed-3:~$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf2530000 irq 33
 1 [MixPreD        ]: USB-Audio - MixPre-D
                      Sound Devices MixPre-D at usb-0000:00:14.0-3, full speed
brian@Prolefeed-3:~$

brian@Prolefeed-3:~$ cat /proc/asound/devices
  1:        : sequencer
  2: [ 0- 0]: digital audio playback
  3: [ 0- 0]: digital audio capture
  4: [ 0- 3]: digital audio playback
  5: [ 0- 7]: digital audio playback
  6: [ 0- 8]: digital audio playback
  7: [ 0- 0]: hardware dependent
  8: [ 0- 3]: hardware dependent
  9: [ 0]   : control
 10: [ 1- 0]: digital audio playback
 11: [ 1]   : control
 33:        : timer
brian@Prolefeed-3:~$

Best Answer

SOLVED! Apparently, this is a known bug in Sound Devices' implementation of the USB audio standard. See discussion here: https://www.spinics.net/lists/stable/msg411289.html.

This patch is included in Linux Kernel 5.9.0 (although undocumented in the changelog). So, upgrading Lubuntu to the 5.9.0 kernel (following the instructions here) solved the problem. My MixPre-D now shows up in ALSA and in Pulse as both an output and an input device.

brian@Prolefeed-3:~$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3202 Analog [ALC3202 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: MixPreD [MixPre-D], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
brian@Prolefeed-3:~$ 

Too bad Sound Devices hasn't fixed their implementation of the USB standard, but at least I got it working. Hopefully, this will help someone else in a similar situation.

Related Question