Hi 👋,

I have recently updated the firmware of my RODE audio interface from 1.12.x to 1.13, and the device was no longer working properly on Linux, it had trouble with the microphone. I found out that it was an audio sampling issue.

dmesg -kH

[feb21 16:20] usb 1-9.3: 1:1: cannot set freq 44100 to ep 0x82
[  +0,005008] usb 1-9.3: 1:1: cannot set freq 44100 to ep 0x82
[  +0,005019] usb 1-9.3: 1:1: cannot set freq 44100 to ep 0x82
[  +0,004971] usb 1-9.3: 1:1: cannot set freq 44100 to ep 0x82
[  +0,015019] usb 1-9.3: 1:1: cannot set freq 44100 to ep 0x82

To fix it, I did the following:

1. Edit Pulse’s 📖 daemon.conf.

nano /etc/pulse/daemon.conf

And add the following lines:

default-sample-format = s24le
default-sample-rate = 48000
alternate-sample-rate = 48000

2. Disconnect the device and then kill the pulse daemon with 🔪 pulseaudio -k.

3. Connect back the device 🔌, it should work without problems.

PipeWire

Note, if you are using pipewire, you will need to run this command to set the sample rate:

pw-metadata -n settings 0 audio.access MMAP_INTERLEAVED
pw-metadata -n settings 0 audio.channels 1
pw-metadata -n settings 0 audio.subformat STD
pw-metadata -n settings 0 audio.format S24_3LE
pw-metadata -n settings 0 clock.force-rate 48000
pw-metadata -n settings 0 audio.period-size 512
pw-metadata -n settings 0 audio.buffer-size 32768

And restart with:

systemctl --user restart pipewire.service
systemctl --user restart pipewire-pulse.service

Thanks for reading and happy hacking! 🥷