Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


ProtoDAC TDA1387 X8 project
(04-11-2025, 02:58 PM)nas963 Wrote: This post will be a bit long, but maybe it will help someone else who encounters a similar problem.

While waiting for quality parts to arrive, I built a Protodac using parts I found locally. Reading impressions online, I expected good sound, but all my expectations were exceeded.

When compared to my 1541 DAC, the Protodac's soundstage width, and particularly its depth, are significantly more pronounced – sounding more 'audiophile'.

Initially, I listened without phase inversion, and then I inverted the phase. I use Roon. After some time, I started noticing sporadic, very short distortion (crackling). At first, I didn't pay much attention until I came across a song where the distortion was pronounced and lasted for several seconds. When the distortion occurred, it happened during louder parts, but only on specific songs; it wasn't a rule that it happened on all louder parts.

Incidentally, my Roon is configured for the Protodac to convert higher-resolution signals down to 16 bits. I suspected this might be the cause first, but the problem also occurred with streams or files that were natively 16-bit.

Next, I suspected the modules themselves might be faulty and tried all the spares I had, but there was no difference. Thinking further that the issue might still be module-related, I replaced the resistors (430R) and capacitors (2000uF) with different values I had on hand (100R and 9400uF). However, this made no difference either.

At this point, my ability (and knowledge) to diagnose the problem reached its limit, so I called on the new Google Gemini 2.5 for help (thanks, Google!). After I described the problem, Gemini gave me extremely precise and clear instructions on what to check and do to find the issue, which yielded results quite quickly.

It turned out the problem was with the phase inversion, specifically the clipping that was occurring because of it. The clipping indicator within Roon's headroom management feature was a great help in identifying this.

The solution to the problem is either:

Do not use phase inversion.
If using phase inversion, reduce the signal level via Roon's headroom management.
For my setup, I've set the headroom adjustment reduction to -4dB, and that's how I'm currently listening (Gemini convinced me to use this option Smile ).

Here are parts of the explanation Gemini gave me:

Why Phase Inversion Causes Clipping: Imagine a sound wave that isn't symmetrical – maybe it has sharp peaks going positive but less extreme dips going negative. When you invert the phase (multiply the digital sample values by -1), those sharp positive peaks become sharp negative peaks. If the original positive peak was already close to the maximum digital level (0dBFS), the new, equally large negative peak might exceed the negative limit. More commonly, even if the original peak wasn't at 0dBFS, the combination of samples around a peak might, after inversion, momentarily exceed 0dBFS mathematically within Roon's 64-bit processing pipeline before the final output stage. Roon's clipping indicator detects this internal overload.

Why Headroom Management Fixes It: Headroom Management digitally lowers the volume of the entire signal before other DSP processes like phase inversion are applied (or Roon intelligently manages the processing order to prevent clipping). By lowering the overall level by -4dB, you create enough "space" so that even after phase inversion, the highest peaks (positive or negative) no longer exceed the 0dBFS limit.

Roon's DSP engine operates at a very high precision (64-bit float). Simple operations like phase inversion and digital attenuation (Headroom Management) done correctly at this precision are generally considered sonically transparent. The "damage" done by not being bit-perfect in this specific case (clean inversion + clean attenuation) is almost certainly inaudible and far less detrimental than the audible clipping distortion you experienced, or the potentially audible effects of incorrect absolute phase (which some people are sensitive to, noticing differences in imaging, impact, or realism).

I think you want to use Polarity Inversion for ProtoDAC and not Phase Inversion. They are different.

There are two ways to do this directly in moOde. 

The Polarity Inversion option in the MPD section of Audio Config
   

The V3-ProtoDAC config in CamillaDSP. Gain is 0 in this config but can be changed to some other value if desired.
       
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
Agree that they are technically different
In Roon which I'm using inverting phase achieves same result as physically swapping the '+' and '-' speaker wires
Reply
(04-11-2025, 07:12 PM)nas963 Wrote: Agree that they are technically different
In Roon which I'm using inverting phase achieves same result as physically swapping the '+' and '-' speaker wires

Maybe, but only if they are using the wrong terminology and are actually inverting the polarity of the signal i.e. multiplying it by -1.

If they are actually phase shifting the signal for example by 180 deg then the signal will be shifted in time in this example by a half cycle. This is definitely not +/- polarity inversion.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply


Forum Jump: