Rodecaster Pro - Bad audio out [Solved-ish]

Recently switched back to full time Linux from Windows and the only issue that i’m having is the usb audio output for the Rodecaster Pro is garbled. See following link for a recording of the output.

EDIT: SOLUTION - Use the rodecaster with a non-amd chipset usb port. An off the shelf pcie usb card worked for me.

EDIT 2: The issue may not just be with amd chipsets, not sure what the exact cause is but as of right now it seems the pcie usb card is working on other platforms as well.

Edit 3: Leaning towards it being a usb 3.2 gen 2 issue. Right now if you’re picking up a pcie card to use I’d suggest getting a usb 3.0 one instead of the higher bandwidth cards.

Edit 4: Further testing is confirming that usb 3.2 gen 2x2 capable pcie usb cards are also causing the rodecaster to fail. Need to do some more testing to narrow down if it’s only 3.2 gen 2x2 (20gpbs) host controllers (the controller, not ports). There’s some chance it’s any usb controller capable of 10gbps+ but my guess is there’s some bad dual link negotiation in the 2x2 controllers that’s causing this issue.

I’m currently running manjaro on the 5.12 kernel so it is after the alsa patches for the rodecaster to set it to 48000 hz. Input audio sounds fine from the rodecaster with the default settings for pulseaudio in manjaro. I’ve tried running through all of the troubleshooting steps in the audio quality section of the arch troubleshooting page here. I’ve also tried running jack and it has the same issue.

Looking for any further tips on troubleshooting the issue.

here’s the pacmd list-sinks output:
index: 0
name: <alsa_output.usb-RODE_Microphones_RODECaster_Pro_00000000001A-01.iec958-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY
state: IDLE
suspend cause: (none)
priority: 9048
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 100.11 ms
max request: 37 KiB
max rewind: 37 KiB
monitor source: 0
sample spec: s32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
fixed latency: 99.94 ms
card: 0 <alsa_card.usb-RODE_Microphones_RODECaster_Pro_00000000001A-01>
module: 6
properties:
alsa.resolution_bits = “32”
device.api = “alsa”
device.class = “sound”
alsa.class = “generic”
alsa.subclass = “generic-mix”
alsa.name = “USB Audio”
alsa.id = “USB Audio”
alsa.subdevice = “0”
alsa.subdevice_name = “subdevice #0
alsa.device = “0”
alsa.card = “3”
alsa.card_name = “RODECaster Pro”
alsa.long_card_name = “RODE Microphones RODECaster Pro at usb-0000:0b:00.3-4.4.3, high speed”
alsa.driver_name = “snd_usb_audio”
device.bus_path = “pci-0000:0b:00.3-usb-0:4.4.3:1.1”
sysfs.path = “/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:0b:00.3/usb3/3-4/3-4.4/3-4.4.3/3-4.4.3:1.1/sound/card3”
udev.id = “usb-RODE_Microphones_RODECaster_Pro_00000000001A-01”
device.bus = “usb”
device.vendor.id = “19f7”
device.vendor.name = “RODE Microphones”
device.product.id = “0011”
device.product.name = “RODECaster Pro”
device.serial = “RODE_Microphones_RODECaster_Pro_00000000001A”
device.string = “iec958:3”
device.buffering.buffer_size = “38376”
device.buffering.fragment_size = “9592”
device.access_mode = “mmap”
device.profile.name = “iec958-stereo”
device.profile.description = “Digital Stereo (IEC958)”
device.description = “RODECaster Pro Digital Stereo (IEC958)”
module-udev-detect.discovered = “1”
device.icon_name = “audio-card-usb”
ports:
iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
properties:

	active port: <iec958-stereo-output>

That might be your problem. Try setting it to s16le or s24le

1 Like

I am not familiar with the audio happenings on Linux. Just happy I got both my soundcards to work.

Try running 24 bit and a 1024 sample buffer size (audio buffer).

1 Like

So doing some research, it looks like most 24 bit cards use 24 bits packed into 32 which I think is why pulse is saying 32. That being said, i’ve tried setting the default-sample-format in /etc/pulse/daemon.conf to s24le, float24le, and float32le, but these settings seem not to change anything in pacmd list-sinks

Edit: I’ve also tried forcing 16 bit when using jack without any success, i also did read somewhere that the rodecaster pro only supports 24 bit

Yeah, luckily the input is working and is the most important part with the rodecaster, i have another sound card that works for output, just less convenient to use both (and the rodecaster has better amps)

tried switching to pipewire, still have the same issue, pw-dump output:

   "id": 42,
   "type": "PipeWire:Interface:Node",
   "version": 3,
   "permissions": [ "r", "w", "x", "m" ],
   "info": {
     "max-input-ports": 64,
     "max-output-ports": 0,
     "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
     "n-input-ports": 2,
     "n-output-ports": 2,
     "state": "suspended",
     "error": null,
     "props": {
       "object.path": "alsa:pcm:3:iec958:3:playback",
       "api.alsa.path": "iec958:3",
       "api.alsa.pcm.card": 3,
       "api.alsa.pcm.stream": "playback",
       "audio.channels": 2,
       "audio.position": "FL,FR",
       "device.routes": 1,
       "alsa.resolution_bits": 32,
       "device.api": "alsa",
       "device.class": "sound",
       "alsa.class": "generic",
       "alsa.subclass": "generic-mix",
       "alsa.name": "USB Audio",
       "alsa.id": "USB Audio",
       "alsa.subdevice": 0,
       "alsa.subdevice_name": "subdevice #0",
       "alsa.device": 0,
       "alsa.card": 3,
       "alsa.card_name": "RODECaster Pro",
       "alsa.long_card_name": "RODE Microphones RODECaster Pro at usb-0000:0b:00.3-4.4.3, high speed",
       "alsa.driver_name": "snd_usb_audio",
       "device.profile.name": "iec958-stereo",
       "device.profile.description": "Digital Stereo (IEC958)",
       "card.profile.device": 5,
       "device.id": 37,
       "factory.name": "api.alsa.pcm.sink",
       "priority.driver": 816,
       "priority.session": 816,
       "media.class": "Audio/Sink",
       "node.nick": "RODECaster Pro",
       "node.name": "alsa_output.usb-RODE_Microphones_RODECaster_Pro_00000000001A-01.iec958-stereo",
       "node.description": "RODECaster Pro Digital Stereo (IEC958)",
       "node.pause-on-idle": false,
       "factory.id": 18,
       "client.id": 30,
       "node.driver": true,
       "factory.mode": "merge",
       "audio.adapt.follower": 0,
       "library.name": "audioconvert/libspa-audioconvert",
       "object.id": 42,
       "node.max-latency": "32768/48000"
     },
     "params": {
       "EnumFormat": [
         {
           "mediaType": "audio",
           "mediaSubtype": "raw",
           "format": "S32LE",
           "rate": 48000,
           "channels": 2,
           "position": [ "FL", "FR" ]
         }
       ],
       "PropInfo": [
         {
           "id": "volume",
           "name": "Volume",
           "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
         },
         {
           "id": "mute",
           "name": "Mute",
           "type": {
             "default": false,
             "alt1": false,
             "alt2": true
           }
         },
         {
           "id": "channelVolumes",
           "name": "Channel Volumes",
           "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
           "container": "Array"
         },
         {
           "id": "channelMap",
           "name": "Channel Map",
           "type": 0,
           "container": "Array"
         },
         {
           "id": "device",
           "name": "The ALSA device",
           "type": "iec958:3"
         },
         {
           "id": "deviceName",
           "name": "The ALSA device name",
           "type": ""
         },
         {
           "id": "cardName",
           "name": "The ALSA card name",
           "type": ""
         },
         {
           "id": "minLatency",
           "name": "The minimum latency",
           "type": { "default": 16, "min": 1, "max": 2147483647 }
         },
         {
           "id": "maxLatency",
           "name": "The maximum latency",
           "type": { "default": 8192, "min": 1, "max": 2147483647 }
         },
         {
           "id": "id-01000000",
           "name": "Use the driver channelmap",
           "type": false
         }
       ],
       "Props": [
         {
           "volume": 1.000000,
           "mute": false,
           "channelVolumes": [ 0.399992, 0.399992 ],
           "channelMap": [ "FL", "FR" ],
           "monitorMute": false,
           "monitorVolumes": [ 0.399992, 0.399992 ]
         },
         {
           "device": "iec958:3",
           "deviceName": "",
           "cardName": "",
           "minLatency": 16,
           "maxLatency": 8192,
           "id-01000000": false
         }
       ],
       "Format": [ ],
       "EnumPortConfig": [
         {
           "direction": "Input",
           "mode": "dsp"
         },
         {
           "direction": "Output",
           "mode": "dsp"
         },
         {
           "direction": "Input",
           "mode": "convert"
         },
         {
           "direction": "Output",
           "mode": "convert"
         }
       ],
       "PortConfig": [
         {
           "direction": "Input",
           "mode": "dsp"
         },
         {
           "direction": "Output",
           "mode": "convert"
         }
       ]
     }
   }
 },```


Edit: corrected pw-dump output

Hey,

Were you able to solve that issue? I’m fighting with same thing and can’t really find any solution anywhere.

Unfortunately no I haven’t found a solution. Sorry for not getting back sooner I just saw your comment as i was researching the issue again and my own post was the third result… :sweat_smile: If I do find an answer I’ll have to make sure to update this thread since it’s such a high result.

At this point i’m pretty sure it’s some kind of interaction between amd cpus/chipset (possibly ryzen 3000?) and the rodecaster. I’m basing this off of a couple things.

1.) If I boot up an ubuntu live usb on an intel machine the rodecaster works fine whereas on both of my amd machines it does not

2.) it could still be an interaction between the rodecaster and the graphics card as my intel machine has an amd gpu and both of my amd machines have an nvidia gpu, however I saw a thread where a guy said his rodecaster wasn’t working even when he tried pulling out his gpu

so my best guess is there’s some kind of issue in the chipset kernel usb modules that prevents the rodecaster from working. There’s a chance that using a usb port that’s not using the amd chipset could get the rodecaster working but unfortunately I don’t have any other chipset on my machines to try that. I mighht pick up a pci usb controller to try it out though

@nightf somewhat good news, the rodecaster pro works perfectly with a pcie usb card. it is unfortunately a hardware solution but assuming you’re on a desktop it’s a reasonably cheap one.

SOLUTION: Use the rodecaster with a non-amd chipset usb port.

Do you have a BIOS update available? AMD finally fixes USB bugs with Ryzen CPUs – but patch won’t roll out for a while yet | TechRadar

Hey, thanks for reaching back and lettink me know. So as I’m in the same boat, with only amd controller on my MOBO, so will need to get some PCIe card with USB ports as well, but at least it will work! So thanks angain.

@NZSNIPER I tried upgrading BIOS to version with AMD AM4 AGESA V2 PI 1.2.0.3 Patch C - and it did not solve the issue, but thanks for your article :slight_smile:

Yeah, I also tried updating my bios before trying a pcie card because I knew they had fixed some usb issues but unfortunately that didn’t work for me either. I think the issue is actually in the linux kernel modules as it works in windows (or at least the kernel modules don’t have some crazy workaround for some kind of hardware/firmware level issue).

I had the exact same issue with an intel machine - the dell inspiron with the 11500H chip. Tried it with a live boot with Ubuntu 21.10 with the same results.
Weirdly, I decided to connect a thunderbold 3 dock into the Dell and then connect my Rodecaster Pro to that, and it fixed the issue.
Before I figured out this workaround I was connecting my soundcard output from the laptop to the mobile phone input on the rodecaster pro.

I’ve just upgraded my old 6600k to a Ryzen 5600x with Aorus x590 and have the exact same problem with that also :confused:
I tried a live usb with the newest Manjaro hoping that maybe a newer kernel had fixed it, but same issue. I’ve ordered a PCIe USB card.

My personal laptop (X1 Extreme Gen 2) has zero issues with Linux and the Rodecaster Pro…

That’s really interesting that you had the issue with an intel machine. I was pretty convinced it was just the amd chipset that had the issue, but now i’m wondering what other part in the cpu → usb chain could cause it.

The thunderbolt dock fixing the issue somewhat makes sense to me because the dock is basically acting as a pcie device so the usb output from the dock would be the same as a pcie card. The caveat to this thought process being that thunderbolt has usb built in so I would have thought that the dock would have used the built in usb functionality and have just been the same as a usb hub plugged into one of the usb ports. It could just be that a single connection to thunderbolt doesn’t support both usb and pcie at the same time so the dock just uses pcie for everything but I don’t know the thunderbolt spec well enough to say.

Also, what video card is in each of those machines? I had a theory at one point that it could be related to having an nvidia graphics card, but I’m pretty sure the X1 Extreme Gen 2 has an nvidia graphics card as well, so that would throw that theory out.

yep, thunderbolt being PCIe makes a bit more sense actually. Although maybe it has its own USB system. That might also be why these things are so rediculously expensive.
The dell inspiron is actually not an inspiron, it is a Precision 3561 (work supplied machine). It only has the standard intel iGPU. It also has issues with onboard Ethernet and there is a known bug that needs to be fixed in the kernel. Thankfully the Thunderbolt dock also has Ethernet and so that issue was also “solved”.
The X1 Extreme has an iGPU which I’ve disabled in bios and a discreet GTX1650.
My 5600X machine has an Nvidia GTX980. (damn Graphics card shortage :smiley: ).

btw, there is currently an open bug for this on the Ubuntu Launchpad: #1927255 (Can’t post links sorry)

Well, let us know if the pcie card works for you too. I’m starting to think the issue might be with any chipset port, or it’s a usb 3.2 issue. Seems a little weird that it would be the chipset though because the chipset is more or less using pcie to talk to the processor anyways. Intel is using dmi between the chipset and the processor, but that’s pretty much just pcie and afaik amd’s chipsets actually do use pcie to talk to the processor.

Either way once we know for sure the pcie card is working for you we’re at least closer to a true answer. I’ll have to play around with the different ports on my machine that my rodecaster was working on and see if there are any ports that it doesn’t work with on that one. It’s a 3rd gen i7 though so just straight usb 3.0 is the fastest its ports get.

So the PCIe card did not work and actually caused my PC to stutter (mouse pointer) :frowning:
I bought an “Inateck PCIe to USB 3.2 Gen 2 card” which was a bit more expensive than the others…
I tried a newer kernel in Manjaro too, but same issue.
Which PCIe card did you get that worked? I’ll see if I can source the same one here…

I bought this one: https://www.amazon.com/gp/product/B08PF8XR73/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

Since the one you grabbed didn’t work i’m starting to think it’s any usb 3.2 controller isn’t working. I might pick up one just to test out and see if that’s the case.

You might be onto something!
My X1 Extreme gen 2 has a 3.1 controller, the Dell (it’s actually a Latitude 5521 - for sure this time!) has a 3.2 gen 1 and the Aorus X570 Elite board has 3.2 gen 1 and 3.2 gen 2 ports.
I’ve ordered the 3.0 card - should arrive Thursday (it is shipping from the UK groan)…