I’m trying to use RoopieXL as an AirPlay endpoint. I have an USB-A to USB-C adapter that I’m connecting to a RPi4. To that, I then connected Apple’s USB-C to 3.5mm dongle-DAC
I can see the endpoint and stream audio to it, however, it consistently stutters. I’ve tried connecting via Ethernet only and via Wifi. Same behavior. Tried with both the latest Stable and Beta channel versions.
Is this setup supported? If so, is there some kind of workaround to get it up and running?
(BTW: this is just a temporary solution, as I’m waiting delivery of a Topping E30 USB DAC)
I’m just using it as a simple Airplay endpoint. I’m streaming from Apple Music (not a Roon subscriber yet). I also tried streaming a podcast from a different app (Overcast), to the same effect. Don’t really sure how I can change the sample rates with this simple setup / apps.
The logs are flooded with large sync error messages. Not entirely clear what those mean (although I’m pretty sure they cause the stutter).
Just to be sure this is not an existing bug I’ve just released the latest version of Shairport-Sync (the Airplay component used by XL) to the beta channel.
I just applied the update, but the problem persists. I also sent you feedback (with ID 6cf503e02d84b7ee), in the hope that being a new update and a shorter time since the previous feedback sent, the logs are more readable
Let me know if there’s anything I can do. Happy to SSH into the RPi and do any debugging on my end (I’m comfortable in a Linux shell)
Indeed. logs show the same sync errors.
Now, there are a few parameters concerning these sync errors; if you got experience with SSH and Linux then I suggest you may do some testing yourself (as this makes the cycle a little bit more convenient then me changing something and you testing).
You can login with username: root and password: ropieee.
The configuration file is:
/opt/RoPieee/shairport-sync/config
When you change something in this file you can test with:
As per those instructions, I tried modifying /etc/asound.conf from its default content:
pcm.!default {
type hw
card 0
device 0
}
ctl.!default {
type hw
card 0
}
To this:
pcm.!default {
type plug
slave.pcm {
type dmix
ipc_key 1024
slave {
pcm "hw:0"
rate 48000 # this line is only needed for USB DACs which only support 48khz
period_time 0
period_size 1920
buffer_size 19200
}
}
}
ctl.!default {
type hw
card 0
}
… And then restarted the RPi, but still didn’t get it to work.
There might be some other setup issues or files that are loaded that override this behavior, so maybe this input helps you in pointing me to the right location / configs to change.
Thanks so much for all your support so far on this esoteric setup
Yeah. I’ve read multiple posts of people using it in non Apple devices. And it does work on the RPi, it just stutters via Shairport-Sync as reported in the project’s repo.
Just wanted to share that it’s not a hardware issue. This seems specific to the shairport+alsa config. I just tried the same data sources on Roon, and even at 44k, it works just fine
I had this same issue while using a Qudelix 5K as a USB DAC and came across this same solution elsewhere and it worked for me but I have only tried it with a vanilla Raspberry Pi OS Lite + shairport-sync setup and have not tried it in a RoopieXL setup.
Just wanted to post here in case someone else comes across this issue. I may try it with my RoPieeeXL SD card later but at least people know there’s an alternate solution if necessary.
I am trying this with Ropiee XL via a Roon endpoint, going USB-A → Apple USB-C headphone dongle → audio aux input. The challenge that I am finding is that the Apple USB-C dongle outputs low volume (maybe 50%) if there is no volume control on the device so the output voltage in quite low. There were some ways around this using windows, but I am not sure if any of that could be implemented on a rPi running Ropiee. Anyone else tried this? It is a darn cheap way to get a DAC on ropiee if it can be made to output its normal voltage.
for the Apple USB-C DAC, there’s a (driver?) issue with 44.1kHz not showing as an available sample rate by default under linux
first install usb-modeswitch and then run the following to make 44.1kHz usable …
sudo usb_modeswitch -v 05ac -p 110a -u 3
that works for me on a Pi running RoonBridge under Raspberry Pi OS … i set up a systemd service that does this at startup (doesn’t always work, i’m probably trying to run it too early, still learning) … don’t know if this would work for RoPieee, hoping this will eventually get a driver fix
regarding the volume level, it does reset to a low (-20dB?) volume at startup, but it should be controllable if device volume is enabled in Roon audio device setup