Hi @mjw,
Thank you for this incredibly thoughtful and detailed post. This is exactly the kind of constructive, skeptical tinkering discussion I was hoping to have. You’ve asked some of the best technical questions in the entire thread, and I’ll do my best to answer them from my perspective.
First, I want to say I completely relate to your story about the Allo DigiONE power supply experiment. That feeling of “did I just fool myself?” is why so many of us (myself included) are skeptical. Your point about the “subjective approach” being “fundamentally flawed” is a fear every honest tinkerer has to grapple with. It’s why I’ve tried to be so open about my own journey from skepticism.
You’ve raised two central technical points that I’d love to clarify.
1. The “Drip Feed” vs. Real-Time Kernel Paradox
You asked:
…why is a real-time Linux kernel necessary when Diretta is supposedly drip feeding the stream…?
This is the key to the whole architecture, and it’s a common point of confusion. The “drip feed” isn’t what the Roon Core sends; it’s what the Diretta Host creates.
The architecture is in three tiers:
- Roon Core (NUC/Mac Mini): This sends the standard, “bursty” RAAT stream over the network.
- Diretta Host (Pi #1): This is the “processing engine.” It receives that “bursty” stream from the Core. This is where the Real-Time Kernel is critical. The RT kernel allows the Host’s CPU to manage its processes with high precision, re-packaging that “bursty” data into Diretta’s “calm, evenly-spaced” stream without its own timing getting messed up.
- Diretta Target (Pi #2): This receives the “drip feed” from the Host over the dedicated, physically and logically isolated point-to-point link. Because the data is now calm and perfectly timed, the Target’s CPU is barely working (slow and low), generating minimal electrical noise right before the DAC.
So, the RT kernel isn’t needed for the “drip feed”; it’s what creates the “drip feed” by processing Roon’s chaotic, bursty data with precise timing.
2. The “DAC Isolation” vs. “Processing Noise” Problem
You also said:
…eliminating noise at the input of the DAC is already achievable using galvanic isolation… I’m uncertain what this experiment is doing subjectively or otherwise.
You are 100% correct. Good galvanic isolation (in a DAC, or via SFP, etc.) is fantastic at blocking common-mode noise coming from the network cable.
This Diretta architecture is designed to solve a different (or additional) source of noise: the internal electrical noise (RFI/EMI) generated by the endpoint’s own processor.
Even with perfect galvanic isolation from the network, a “bursty” RAAT stream still forces the endpoint’s CPU to spike its activity (work hard, then sleep, work hard, then sleep).
My hypothesis—and the core theory of this project—is that these spikes in current draw create low-frequency electrical noise inside the endpoint itself. This noise is particularly insidious because it’s theorized to fall into a frequency range where a DAC’s Power Supply Rejection Ratio (PSRR) is least effective. The noise, therefore, is not filtered out, and it pollutes the clean ground plane and power rails that the DAC’s sensitive analog circuits rely on.
By using the Host-to-Target “drip feed,” the Target’s CPU has a constant, low, stable workload. No spikes, no low-frequency processing noise. We’re not just isolating from the network; we’re calming the processor at the most critical moment.
On AudioLinux vs. GentooPlayer
Finally, regarding the “wholly unnecessary cost of AudioLinux”: You are absolutely right that GentooPlayer is a suitable alternative! (Though it’s worth noting that GentooPlayer is not free, either.) This project isn’t an ad for one OS; it’s about the architecture. As I’ve mentioned previously, the SOtM sMS-200 family of products provides a more-or-less turnkey alternative also.
I chose AudioLinux for my guide simply because its pre-built RT kernel and Diretta support are excellent and well-documented. Well, that, and I already had an AudioLinux license for the single-RPi Roon endpoint I was using at the time. If you (or anyone) were to try this with GentooPlayer, I would be genuinely thrilled to hear the results. Honestly, in other Diretta forums, GentooPlayer is a more popular solution. That’s what this ‘Tinkering’ is all about.
Again, thank you for the fantastic, probing questions. I hope this clarifies the why behind the architecture.