RoPieee crashing my DAC

I’ve got a RoPieee 219 box (Canakit Pi 3 B+) with a Mytek Liberty DAC plugged directly into it. It will play for 2 or three tracks, then I get a flash of static, then nothing. Have to power-cycle the DAC to get things working again.

I’ve got these messages in the Roon log when it happens:
[Liberty DAC] [raatclient] GOT [38] {"status":"UnexpectedError","message":"RAAT__OUTPUT_PLUGIN_STATUS_FORMAT_NOT_SUPPORTED"}

So, how do I look at the RoPieee log files?

Feedback stamp: d70cb0bbcaf714fc

Wow. The logs on you’re unit show exactly the same message, followed by reporting the device is lost.

You’re playing something with 44.1K on 24 bits, which works. After that you’re switching to 44.1K on 16 bits, and then stuff breaks down.

Never seen this before…

Can you try if this is the problem? switching sample rates and/or word sizes?

I had it on radio, so it was sampling various things. Is there some specific sequence you’d like me to try? Would more of the RoonServer logs help? Maybe it’s the DAC, too. Perhaps add a resync delay?

OK, I’m playing an MQA track followed by an MP3 (192 kbps) followed by a 16/44.1 track.

OK, just happened again, going from a 16/44.1 FLAC track to a 160kbps MP3. That’s with a 50ms resync delay, too.

456c3187caf1b3bf

I seem to be able to play album after album without trouble so long as they’re all the same format. I’ll try a resync delay of 1s next.

1 second resync delay doesn’t help.

feedback stamp: 020b1a4e8157bca1

I now have a playlist that will cause this repeatably. Trying 2 seconds…

Actually, I tried 5000 ms. Didn’t help. Feedback stamp is ca2d8312b1db6abe. Here’s the server log from the track that crashed it:

11/08 15:49:51 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Prepared => Idle
11/08 15:49:51 Trace: [Liberty DAC] [raatclient] SENT [16]{"request":"setup","format":{"sample_type":"pcm","sample_rate":44100,"bits_per_sample":24,"channels":2,"sample_subtype":"none"}}
11/08 15:49:51 Info: [zone Liberty] OnPlayFeedback Playing
11/08 15:49:51 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [5% buf] [PLAYING @ 0:00] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:49:51 Info: [Liberty] [zoneplayer] Open result (Queueing): Result[Status=Success]
11/08 15:49:51 Trace: [prebuffer] ready 149940/441000 (34%) @ 0/43 sec
11/08 15:49:51 Trace: [Liberty DAC] [raatclient] GOT [11] {"status":"Teardown"}
11/08 15:49:51 Trace: [Liberty DAC] [raatclient] GOT [16] {"status":"OutputMessage","message":{"signal_path":[{"type":"output","method":"alsa","quality":"lossless","alsa_device":{"longname":"Mytek Digital Liberty DAC at usb-3f980000.usb-1.1.3.2, high speed","usbid":"25ce:001e","driver":"USB-Audio","components":"DAC","mixername":"USB Mixer","id":"DAC","name":"Liberty DAC"}}]}}
11/08 15:49:51 Trace: [Liberty DAC] [raatclient] GOT [16] {"audio_port":0,"audio_port_tcp":40923,"status":"Success","clock_port":55090}
11/08 15:49:51 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Idle => Prepared
11/08 15:49:51 Trace: [Liberty] [zoneplayer/raat] pausing for 5s for server-side resync delay
11/08 15:49:51 Trace: [prebuffer] ready 149940/441000 (34%) @ 0/160 sec
11/08 15:49:52 Info: 
--[ SignalPath ]---------------------------------------------
SignalPath Quality = LowQuality
Elements:
    Source Format=Mp3 44100/24/2 BitRate=160 Quality=LowQuality
    Raat Device=Liberty DAC
    Output OutputType=Local_Alsa Quality=Lossless SubType= Model=Liberty DAC
------------------------------------------------------------
11/08 15:49:56 Trace: [Liberty] [zoneplayer/raat] synced to endpoint Liberty DAC clock: realtime=503634616577 rtt=1000us offset=-23913383us delta=-23913383us
11/08 15:49:56 Trace: [Liberty DAC] [raatclient] SENT [17]{"request":"stream","stream_id":1149704089,"first_seq":-1,"nak_port":-1,"buffer_size":10,"ready_threshold":0.2}
11/08 15:49:56 Trace: [Liberty DAC] [raatclient] GOT [17] {"status":"Buffering"}
11/08 15:49:56 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Prepared => Buffering
11/08 15:49:56 Trace: [Liberty] [zoneplayer/raat] [zoneplayer/raat] selected Liberty DAC as clock master
11/08 15:49:56 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:00] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:49:56 Debug: [raat/tcpaudiosource] connecting to 192.168.3.72:40923
11/08 15:49:56 Debug: [raat/tcpaudiosource] connected
11/08 15:49:57 Trace: [Liberty DAC] [raatclient] GOT [17] {"status":"Ready"}
11/08 15:49:57 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Buffering => Ready
11/08 15:49:57 Trace: [Liberty] [zoneplayer/raat] wait for ready in 425ms
11/08 15:49:57 Trace: [Liberty] [zoneplayer/raat] Adjusting playback start offset from 50ms to 60ms
11/08 15:49:57 Trace: [Liberty] [zoneplayer/raat] Doing 'ASAP' Start since we are just playing to one device
11/08 15:49:57 Trace: [Liberty DAC] [raatclient] SENT [18]{"request":"start","min_offset":60770975,"stream_sample":0}
11/08 15:49:57 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Ready => Playing
11/08 15:49:57 Trace: [Liberty DAC] [raatclient] GOT [17] {"status":"Playing"}
11/08 15:49:57 Trace: [Liberty DAC] [raatclient] GOT [18] {"status":"Success","time":504171959947}
11/08 15:50:02 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:04/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:02 Info: [stats] 5235mb Virtual, 1013mb Physical, 242mb Managed, 0 Handles, 76 Threads
11/08 15:50:07 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:10/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:12 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:15/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:17 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:20/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:17 Info: [stats] 5235mb Virtual, 1014mb Physical, 248mb Managed, 0 Handles, 76 Threads
11/08 15:50:22 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:25/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:27 Trace: [Liberty] [zoneplayer/raat] sync Liberty DAC: realtime=533897617410 rtt=2000us offset=-23913382us delta=528us drift=0us in 30.262s (0.028ppm, 0.099ms/hr)
11/08 15:50:27 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:30/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:32 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PLAYING @ 0:35/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:32 Info: [stats] 5235mb Virtual, 1014mb Physical, 255mb Managed, 0 Handles, 76 Threads
11/08 15:50:33 Trace: [zone Liberty] PlayPause
11/08 15:50:33 Trace: [zone Liberty] Pause
11/08 15:50:33 Trace: [Liberty] [zoneplayer/raat] Pausing at streamtime_ns 36497327705 now_ns 540669287652
11/08 15:50:33 Trace: [Liberty DAC] [raatclient] SENT [19]{"request":"stop"}
11/08 15:50:33 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Playing => Paused
11/08 15:50:33 Info: [zone Liberty] OnPlayFeedback Paused
11/08 15:50:33 Trace: [Liberty] [LowQuality, 24/44 MP3 => 24/44] [100% buf] [PAUSED @ 0:36/2:40] Frankie and Johnny - Duke Ellington / Traditional
11/08 15:50:33 Trace: [Liberty DAC] [raatclient] GOT [17] {"status":"Stopped"}
11/08 15:50:33 Trace: [Liberty DAC] [raatclient] GOT [19] {"status":"Success"}
11/08 15:50:38 Trace: [zone] no playback for 5s, suspending to release audio device
11/08 15:50:38 Trace: [zone Liberty] Suspend
11/08 15:50:38 Trace: [zone Liberty] Stop
11/08 15:50:38 Info: [zone Liberty] OnPlayFeedback Stopped
11/08 15:50:38 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Paused => Prepared
11/08 15:50:38 Trace: [Liberty DAC] [raatclient] SENT [20]{"request":"end_stream"}
11/08 15:50:38 Trace: [Liberty DAC] [raatclient] SENT [21]{"request":"teardown"}
11/08 15:50:38 Trace: [Liberty] [zoneplayer/raat] Endpoint Liberty DAC State Changed: Prepared => Idle
11/08 15:50:38 Debug: [raat/tcpaudiosource] disconnecting
11/08 15:50:38 Info: [audio/env] [zoneplayer -> stream] All streams were disposed
11/08 15:50:38 Info: [audio/env] [zoneplayer -> stream -> endpoint] All streams were disposed
11/08 15:50:38 Info: [audio/env] [zoneplayer] All streams were disposed
11/08 15:50:38 Trace: [Liberty DAC] [raatclient] GOT [17] {"status":"Ended"}
11/08 15:50:38 Trace: [Liberty DAC] [raatclient] GOT [20] {"status":"Success"}
11/08 15:50:38 Info: sleep 40ms after flush
11/08 15:50:38 Trace: [Liberty DAC] [raatclient] GOT [16] {"status":"Teardown"}
11/08 15:50:47 Info: [stats] 5235mb Virtual, 1014mb Physical, 261mb Managed, 0 Handles, 78 Threads
11/08 15:51:02 Info: [stats] 5235mb Virtual, 1014mb Physical, 268mb Managed, 0 Handles, 69 Threads

Try using Roon DSP Engine to upsample everything and see if it still crashes.

1 Like

@Bill_Janssen I was going to suggest the same thing…as Peter

Also try the same playlist as it is now with the DAC directly connected to the core which is running what OS/Build of roon?

1 Like

@Bill_Janssen @spockfish this issue is very common with Roon and certain DACs. It seems to be very common with xmos chipset. Not sure if the mytech uses it. There are lots of threads about this and support are aware now that it’s a common issue. I had it with my Arcam irDac and it’s the same everything. Switching bit depth at certain sample rates triggers it. For me it was going from 44.1/16 to 44.1/24 and mostly on Roons upscaled low Res media. The only way to get round it, is to upscale pcm to one rate.

It’s a Roon specific issue too as using MPD on same hardware resulting in perfect switching. The buffers that Roon uses for Alsa are considerably less than mpd used wether that’s the issue or not I don’t know.

2 Likes

Thanks @CrystalGipsy,

This makes a lot more sense then this being a device issue.

@Bill_Janssen for now I would follow the suggestion and use DSP to re-sample everything to the same rate and depth.

1 Like

Yep The Liberty DAC definitely uses the XMOS usb chipset.

1 Like

So, this is under Audio / <endpoint-name> / DSP Engine / Sample Rate Conversion? I should enable that amd set it to “Max PCM rate” (which is 384)?

And the issue is the Linux drivers for the flavor of USB Audio 2 that the Mytek DAC supports? Due to the XMOS chipset? Is there some site or Roon Community thread I could watch to be notified of progress on this?

So is this a bridge issue on Linux arm only?

Should I open a support issue on this?

That didn’t “work”, though it did change things. Now the only track that plays clean through is the MQA track. Other tracks play for about 5 seconds, then Roon skips to the next track. But the DAC isn’t “locked up”, as it was previously.

Turned off “Max PCM rate”, and increased the buffer size. No help – DAC now locked up on transition from 160k MP3 track to 16/44.1 track.

You cant run max pcm through raspberry pi3 b+ usb it can’t handle it due to ethernet sharing same bus. You will likely not get better than pcm 192/24 via usb on the pi3 without breakups and stuttering I had the same issue it’s a known drawback of the pi and usb. Down DACs seem to tolerate it better.

It’s not just the bridge that’s the issue as it also effects Nucleus. But it’s Roon and xmos that’s the problem not linux. As mpd has no issues at all running on same hardware and software. I had it on my Allo USBridge and when I switched to Roppiee. Using MPD on the bridge on same os no problems.

I would put in a support ticket as they need to action this as its effecting lots of users and it’s the same problem.

Increasing buffer size will make no difference at all.