Dropouts on Linn Klimax at 192kHz

Anyone got thoughts on this:

Intermittent periods of very bad dropouts (1-2 second gap every few seconds) when playing 192kHz 24 bit FLAC from Qobuz via Roon on a Linn Klimax DS/Exakt system. All devices connected by wired LAN, cable connection 500 Mbps with no latency or dropout issues. Roon running on ROCK / Intel NUC, again wired ethernet connection.

Strangenesses:

  • streaming same track to iPad from Roon plays flawlessly
  • streaming same track from Qobuz using Kazoo app seems to come at 96kHz so plays flawlessly
  • playing 192kHz track from local library seemed to work fine

I think this happened after a Linn software update but this could be a coincidence.

Where do I start looking for the bandwidth issue? Or a Linn fault?

I assume that the signal path once the track has started is internet → gateway → Linn player without going through the Roon local server?

That’s the case if streaming directly from Qobuz under Kazoo or new Linn app control. But when accessing Qobuz via Roon, you’ll have

(2) internet → gateway → Roon server → Linn player

In this configuration, the Roon server (ROCK in your case) takes the track to be played from Qobuz servers in big chunks, and then sends it in a timed stream using “Linn streaming” (Songcast, really) to the Linn player. One possible source of problems in this setup is that Songcast is layered on UDP, and so it’s rather sensitive to local packet loss. Surprisingly, even supposedly solid LAN gear can lose packets. That’s not a problem with TCP/IP, which retransmits, but it can be an issue with UDP-based streams. My sense (as owner of 4 Linn systems on 3 separate Roon locations/servers) is that seemingly small things, from a slightly misconfigured router or managed switch to a slightly flaky Ethernet cable, can make a difference in Linn streaming reliability. It’s not by chance that Linn recommends the simplest unmanaged network switches and star LAN configurations.

One more thing: the data path (2) above can cause problems if traffic from gateway to Roon server contents with traffic from Roon server to Linn player. Reason is that Roon server will pull down data from Qobuz at the maximum available rate. I’ve seen it happen at almost 1Gbps where I have fast fiber internet. If your gateway is also providing the path between Roon server and Linn player, contention is possible if the gateway si not capable or correctly configured. One way to address this is to get a good unmanaged switch (such as Netgear GS105) and create a star configuration with the switch connecting to the gateway, to the Roon server, and to the Linn player.

1 Like

That is very helpful indeed. I didn’t know the Roon Server was sending the full data stream out. Too bad it can’t just instruct the player to pull the stream directly from Qobuz.

I have quite a complex network here (Unifi) and will have a closer look at switching and network routing.

Meanwhile is there a way to get the Roon server to send only 96kHz to the Linn?

Curious… My Linn Klimax players are on somewhat complicated Unifi-based LANs. Neither has the simple star structure I suggested for debugging. Roughly speaking (there’s other house built-in LAN hardware in between), the paths between Roon server and Klimax on the two sites look like this

Klimax – UDM Pro (connected to Xfinity cable) – UniFi switch – UniFi switch – Roon server
Klimax – UDM (connected to 1Gb fiber internet) – UniFi switch – Roon server

Both work perfectly and play 192kHz from Qobuz without glitches.

I’ve disabled IGMP snooping and jumbo frames on both networks, as they’ve been known to sometimes cause issues with Roon.

Mine is Klimax - unifi switch - NUC (Rock) - unifi switch - UXG-Pro - cable modem

I was beginning to suspect the house wiring between Klimax and the rack upstairs - but I’ve now discovered the same issue happens on a Klimax in another room.

So I guess the suspect is the Rock and/or its connection to the network. I will try running the server on my Mac Studio and see what that does.

Edit:
It works perfectly when running the server on my Mac. So its something in the networking around the Rock server or the Rock itself I guess.

I have a Selekt Classic. Am I still invited to this party? :slight_smile:

Actually have a Selekt Edition on the way and a fairly silly non-Linn speaker upgrade in the pipeline, but that’s another story.

My path is:

Selekt → UniFi IW HD (wired) → UniFi Switch → Roon Server (Docker on a Synology RS1221+).

I have no issues with dropout with 192kHz from Qobuz. I had an additional UniFi switch in between the Selekt and the AP for quite a while and also had no issues.

You need about 9 megabit to stream 192kHz/24-bit. My Selekt, unlike your Klimax units, has a 100 megabit ethernet port. Well within the bounds.

I think something may be up with your wiring or network. Could be something as simple as a bad cable or connection.

Experienced the same today on a Linn System 3, but not on my Klimax systems at other locations. The relevant warning on my server logs was something like this

12/24 18:06:34 Warn: [songcastdirect] [Linn Series 3] time discontinuity. Expected 220, Got 221

The System 3 is currently using WiFi to connect to the network, which may be part of the issue. Roon server is wired. The problem does not show up at lower bit rates, or with local files.

I have the same problem with Selekt DSM + Davaar 105 - L2 SW - Nucleus (RoonServer 2.0 (build 1359)). 192/24 ALAC playback drops out frequently. 44/24 No problem with 44/24 ALAC playback.
Roon Server log shows “Linn Selekt DSM: Transport Updated State=Buffering” / Transport Updated State=Playing repeatedly.

RoonServer_log.txt

02/04 23:08:31 Trace: [LINN] [Lossless, 24/192 ALAC => 24/192] [100% buf] [PLAYING @ 0:18/4:32] Nebraska - Bruce Springsteen
02/04 23:08:32 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=21 at time_time=20
02/04 23:08:33 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=22 at time_time=21
02/04 23:08:34 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Playing
02/04 23:08:34 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Playing)
02/04 23:08:35 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 21 (DR ON) ]---
02/04 23:08:35 Warn: [songcastdirect] [Linn Selekt DSM] time discontinuity. Expected 19, Got 21
02/04 23:08:35 Warn: [songcastdirect] [Linn Selekt DSM] time discontinuity. Expected 20, Got 21
02/04 23:08:35 Debug: [songcastdirect] [Linn Selekt DSM] stream time matched, is 22 seconds
02/04 23:08:35 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=23 at time_time=22
02/04 23:08:36 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 22 (DR ON) ]---
02/04 23:08:36 Debug: [songcastdirect] [Linn Selekt DSM] stream time matched, is 23 seconds
02/04 23:08:36 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=24 at time_time=23
02/04 23:08:37 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 23 (DR ON) ]---
02/04 23:08:37 Debug: [songcastdirect] [Linn Selekt DSM] stream time matched, is 24 seconds
02/04 23:08:37 Trace: [LINN] [Lossless, 24/192 ALAC => 24/192] [100% buf] [PLAYING @ 0:23/4:32] Nebraska - Bruce Springsteen
02/04 23:08:38 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 24 (DR ON) ]---
02/04 23:08:38 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=25 at time_time=24
02/04 23:08:38 Debug: [songcastdirect] [Linn Selekt DSM] stream time matched, is 25 seconds
02/04 23:08:39 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 25 (DR ON) ]---
02/04 23:08:39 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=26 at time_time=25
02/04 23:08:40 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 26 (DR ON) ]---
02/04 23:08:40 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Buffering
02/04 23:08:40 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Buffering)
02/04 23:08:41 Info: [stats] 9247mb Virtual, 4561mb Physical, 1342mb Managed, 336 Handles, 89 Threads
02/04 23:08:41 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Playing
02/04 23:08:41 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Playing)
02/04 23:08:41 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Buffering
02/04 23:08:41 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Buffering)
02/04 23:08:41 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=27 at time_time=26
02/04 23:08:42 Trace: [LINN] [Lossless, 24/192 ALAC => 24/192] [100% buf] [PLAYING @ 0:24/4:32] Nebraska - Bruce Springsteen
02/04 23:08:42 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=28 at time_time=27
02/04 23:08:44 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Playing
02/04 23:08:44 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Playing)
02/04 23:08:44 Trace: [zone LINN] PlayPause
02/04 23:08:44 Trace: [zone LINN] Pause
02/04 23:08:44 Info: [zone LINN] Canceling Pending Sleep
02/04 23:08:44 Trace: [songcastdirect] [Linn Selekt DSM] Pause
02/04 23:08:44 Info: [zone LINN] OnPlayFeedback Paused
02/04 23:08:44 Trace: [LINN] [Lossless, 24/192 ALAC => 24/192] [100% buf] [PAUSED @ 0:24/4:32] Nebraska - Bruce Springsteen
02/04 23:08:44 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=29 at time_time=28
02/04 23:08:44 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Paused
02/04 23:08:44 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Paused)
02/04 23:08:45 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=30 at time_time=29
02/04 23:08:47 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=31 at time_time=30
02/04 23:08:48 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=32 at time_time=31
02/04 23:08:49 Trace: [zone LINN] [zone] no playback for 5s, suspending to release audio device

Playback of the DSD 128 format also stopped frequently.
Roon Server log shows “Linn Selekt DSM: Transport Updated State=Buffering” / Transport Updated State=Playing repeatedly.

02/05 00:36:56 Trace: [LINN] [Lossless, DSD128 DSF => DSD128] [93% buf] [PAUSED @ 2:22/3:00] I'm Beginning to See the Light - Holly Cole
02/05 00:36:57 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Buffering
02/05 00:36:57 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Buffering)
02/05 00:36:57 Trace: [library] endmutation in 68ms
02/05 00:36:58 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=1 at time_time=142
02/05 00:37:00 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=2 at time_time=143
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Playing
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Playing)
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] IsMyUriStillActive(transport-uri=uri=scd://172.16.80.36:44917 my-last-uri=uri=scd://172.16.80.36:44917) ==> True
02/05 00:37:01 Trace: [zone LINN] Play
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Paused
02/05 00:37:01 Trace: [zone LINN] Unpause
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Paused)
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] IsMyUriStillActive(transport-uri=uri=scd://172.16.80.36:44917 my-last-uri=uri=scd://172.16.80.36:44917) ==> True
02/05 00:37:01 Trace: [zone LINN] Pause
02/05 00:37:01 Trace: [songcastdirect] [Linn Selekt DSM] Play
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Playing
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Playing)
02/05 00:37:01 Info: [zone LINN] OnPlayFeedback Playing
02/05 00:37:01 Trace: [LINN] [Lossless, DSD128 DSF => DSD128] [100% buf] [PLAYING @ 2:22/3:00] I'm Beginning to See the Light - Holly Cole
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Buffering
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Buffering)
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Playing
02/05 00:37:01 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Playing)
02/05 00:37:01 Info: [stats] 9271mb Virtual, 4564mb Physical, 1386mb Managed, 337 Handles, 93 Threads
02/05 00:37:02 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 143 (DR ON) ]---
02/05 00:37:02 Warn: [songcastdirect] [Linn Selekt DSM] time discontinuity. Expected 142, Got 143
02/05 00:37:02 Debug: [songcastdirect] [Linn Selekt DSM] stream time matched, is 2 seconds
02/05 00:37:03 Debug: [songcastdirect] [Linn Selekt DSM] ---[ Time Service @ 144 (DR ON) ]---
02/05 00:37:03 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=3 at time_time=144
02/05 00:37:03 Debug: [songcastdirect] [Linn Selekt DSM] stream time matched, is 3 seconds
02/05 00:37:03 Trace: [zone LINN] PlayPause
02/05 00:37:03 Trace: [zone LINN] Pause
02/05 00:37:03 Info: [zone LINN] Canceling Pending Sleep
02/05 00:37:03 Trace: [songcastdirect] [Linn Selekt DSM] Pause
02/05 00:37:03 Info: [zone LINN] OnPlayFeedback Paused
02/05 00:37:03 Trace: [LINN] [Lossless, DSD128 DSF => DSD128] [100% buf] [PAUSED @ 2:24/3:00] I'm Beginning to See the Light - Holly Cole
02/05 00:37:04 Debug: [songcastdirect] [Linn Selekt DSM] ScdEndpoint Linn Selekt DSM: Transport Updated State=Paused
02/05 00:37:04 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransportState(Paused)
02/05 00:37:05 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=4 at time_time=145
02/05 00:37:08 Debug: [songcastdirect] [Linn Selekt DSM] NotifyTransmittedStreamTime stream_time=5 at time_time=146

Thinking it was something between the Roon server and Selekt, I turned the power off and on at the back of the Selekt DSM, but the problem persisted. So I restarted Nucleus and now both 192/24 and DSD128 files play without dropouts.

Can you upsample to 384 khz/24 bit, and DSD 256? Or maybe you just want to strream ‘lossless’?

Esp. with DSD, but not limited to this, you may get dropouts and weird start/stop/skip behavior in certain Ethernet network situation.
Although, your network may not show heavy traffic, and your roon server or ROCK may not show heavy load you should definitely look for…

  • Is your roon server or ROCK connected to the roon endpoint via a managed switch?
  • If so, check the flow-control option for the switch port the roon endpoint is connected to.

roon’s RAAT protocol needs this option to be enabled in many cases. It solved all my dropouts issues at once.

Roon>Linn uses Linn’s Songcast protocol, not RAAT. Songcast is UDP-based; RAAT is TCP-based. Is flow control relevant to UDP? I don’t believe so, but I could be missing something.

Ah, ok. Haven’t thought of this special protocol.

I believe flow control settings on routers can impact the handling of UDP in the sense that if a network is overwhelmed by VOIP or other flow-control manageable traffic, the router may apply limiting/scheduling to that traffic. Reducing the impact of that traffic can, in theory and I believe some practice, help with UDP issues. In other words, the router won’t be smart about the UDP traffic but might be smart about other types of traffic and the side effect of that might be an improvement with UDP issues.

In all cases, enabling flow control would only help if Roon traffic is contending with other traffic. Unless a network is congested to the extent that switches and routers are overwhelmed, it shouldn’t be necessary and is more likely to cause issues than to help.

1 Like

Just to add my voice here: I have the NG Klimax DSM, came across this thread and can confirm that I have the same thing - 1-2 seconds of dropout continuously when playing 192/24 content from Qobuz. My network is as follows:

Linn > ethernet or fibre to Etheregen #1 > ethernet to etheregen #2 > Synergistic research switch > Unifi switch > Unifi dream machine router

I can confirm that the same thing happens if I remove all the other switches and go straight from Linn > Unifi switch

I will confirm whether the same thing is happening with local files.

88/24 or 96/24 play just fine.

In the interest of helping you folks possibly narrow down what’s happening.

I have a Selekt with Organik and (1) Power Amp cartridges. My speakers are driven from the analogue outs on the Amp cartridge.

I don’t have dropouts or other issues with any of the content types discussed here. I’ve tested with DSD64 (local), DSD128 (local), DSD256 (local, Roon converts to DSD128), 192/24 (Qobuz).

I’m not sure network gear matters at this point, since @crom eliminated that variable. For reference, my topology is:

Cable Modem ->
    UniFi UDM Pro ->
        UniFi USW-Enterprise-24-PoE ->
            Synology RS1221+ (Roon on Docker)
            UniFi IW HD (Switch) ->
                USW Flex Mini ->
                    Linn Selekt DSM

Maybe you’ll see something here that gives you an idea. Perhaps you’re using Exact outputs, for example.

@crom - you really did elimate the Ethergen and Synergistic stuff? I did not come here to debate the use of products like that but they are the first place I’d look if you’re having what might be network issues. I also wonder if you have a bad cable in the mix.

I hear ya. It’s the first place I start too when there’s a problem. Yes, I did. I will admit that I’ve been really lazy at trying to fix/nail down the issue because Qobuz makes it so easy to pick a different format…I will do some more testing and come back.

1 Like

You did not show how your Roon server is connected to the rest of the network. With Roon, Qobuz streams go to the Roon server first, where they are buffered and then forwarded to the endpoints. As I noted earlier in the thread, I have two Klimax systems (latest version) on UniFi networks and I have no issues with 192kHz on them, either from Qobuz or from local files. Roon servers on Ubuntu Server 22.04.3, i7-13700 fanless servers with32Gb RAM, 500GB M.2 SSD for system and Roon library, 4TB SSD for local music. Most of the networks are UniFi gear with UDM routers, although both DSMs are connected by fiber to Cisco WS-C2960CG-8TC-L switches that are then connected by Cat 5e/6 or MoCA (depending on location) to the UniFi gear. As I noted earlier on this thread, configured with no jumbo frames, no IGMP snooping. Elsewhere someone recommended turning off spanning tree too, but I can’t do that (long story).

I saw a post that many of the newer Linn products have just completed Roon Ready certification and an update is coming real soon. The Majik DSM, Selekt DSM, Klimax DSM, Kustom DSM and Series 3 speakers will no longer need to leverage Linn Streaming but will now have RAAT.

1 Like