Rodecaster Pro - Bad audio out [Solved-ish]

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)…

The new card just arrived. It works flawlessly!

Awesome! I picked up a 3.2 card to try as well to try and see if I might be right on the 3.2 theory. Haven’t had a chance to try it out yet though. Should be able to give it a try this afternoon and then we might have a pretty solid answer on what the problem actually is.

Well, just got the 3.2 card in and it reproduces the issue. So my guess at this point is it’s any 3.2 capable host controller that causes the problem.

Looking over the usb spec for 3.2 the only thing i see that might be causing the issue is that 10gbps connections can be made using two high speed data lines in 5gbps speeds with line striping. In theory that option should only be chosen for usb c connections though since a standard usb a will only have one physical line pair.

But that being said, if for some reason a striped 10gpbs connection was negotiated instead of a single line 10gpbs connection it would explain why things are outputting slow and choppy. The rodecaster would only be receiving half of the data packets in an alternating fashion so it may be trying to stretch that data and then renegotiate.

I’m going to try and look and see what speed the rodecaster is operating at and if there’s a way to force 5 gbps speeds. If there is a way to force that then we might not need a hardware fix.