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