Raspberry Pi 4 Help (ES-8 USB Audio Interface + Pipewire)

I have a Pi4 2GB running bullseye raspbian. I am able to run sclang with no issue and connect to it over the network. Great.

What I would like to do is connect an Expert Sleepers ES-8 and control is from SuperCollider running on the pi.

I’m not sure how to select this audio device from the terminal.

From within SuperCollider ServerOptions.outDevices will give this error:

The preceding error dump is for ERROR: Primitive '_ListAudioDevices' failed.

alsamixer does not allow me to change the default audio device.

Finally, plugging in the usb device appears to crash GNOME so I am unable to select it in the Sound Settings. Any ideas?

From /var/syslog

Aug 26 11:16:25 raspberrypi kernel: [ 6757.014882] usb 1-1.3: new high-speed USB device number 5 using xhci_hcd
Aug 26 11:16:25 raspberrypi kernel: [ 6757.115808] usb 1-1.3: New USB device found, idVendor=20b1, idProduct=308d, bcdDevice= 1.10
Aug 26 11:16:25 raspberrypi kernel: [ 6757.115842] usb 1-1.3: New USB device strings: Mfr=1, Product=3, SerialNumber=2
Aug 26 11:16:25 raspberrypi kernel: [ 6757.115857] usb 1-1.3: Product: ES-8
Aug 26 11:16:25 raspberrypi kernel: [ 6757.115869] usb 1-1.3: Manufacturer: Expert Sleepers Ltd
Aug 26 11:16:25 raspberrypi kernel: [ 6757.115880] usb 1-1.3: SerialNumber: EXSL-ES-8-1-0134
Aug 26 11:16:26 raspberrypi mtp-probe: checking bus 1, device 5: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3"
Aug 26 11:16:26 raspberrypi mtp-probe: bus: 1, device: 5 was not an MTP device
Aug 26 11:16:26 raspberrypi mtp-probe: checking bus 1, device 5: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3"
Aug 26 11:16:26 raspberrypi mtp-probe: bus: 1, device: 5 was not an MTP device
Aug 26 11:16:26 raspberrypi kernel: [ 6758.588429] retire_capture_urb: 2948 callbacks suppressed

I’m not 100% sure of the current best practice with Pipewire, but…

scsynth is oriented toward JACK. Pre-Pipewire, the JACK server uses ALSA (or other backend) to connect to the hardware, and this is the audio device selection. SC has no power to override that. This is why outDevices failed – it’s irrelevant in Linux.

If I recall, the way to use SC with PipeWire is 1/ “Install pipewire-jack for JACK support.” PipeWire - ArchWiki 2/ Start SC using the pw-jack wrapper e.g. if you’re using sclang in command line mode, pw-jack sclang; if the IDE (but I guess Raspberry, probably not this), pw-jack scide and child processes such as scsynth will be subject to the same (which you want). Server won't start: Pipewire on Ubuntu 22.10 - #5 by bad-numbers

Then the audio device selection would be done with pipewire tools.

I think… I’m not on a pipewire system.

Or you could drop pipewire and set up JACK in the old school way.

ALSA and PulseAudio settings will not help you at all – don’t waste time on those.

hjh