DSD distorted drum crackling

Has anyone encountered the problem of sound distortion when playing DSD? I have this issue specifically with the Eagles’ Hotel California album. Drum hits cause crackling sounds. I’ve tested various solutions, and it turns out that on the Volumio version 3.378-2022-09-30-pi, such crackling does not occur. It seems like something has changed in the application that may be causing this. I should mention that I own other SACD albums, and this issue only occurs with this particular one.
ah i have HiFiberry DAC2 HD pi3+

Hey @bolga,

It sounds like a possible issue with the DAC configuration or audio settings. To help narrow down the problem, could you provide the following information?

  1. DAC Listing: Run the following command to list all audio devices connected to your system and let us know the output:

    aplay -l
    
  2. Mixer Settings: Identify the card number of your DAC from the output of aplay -l, then run the following command (replace <num> with the correct card number):

    amixer -c<num> scontents
    

    Share the output here so we can check the mixer settings for any anomalies.

  3. Other Details:

    • Are you using native DSD playback or DoP (DSD over PCM)?
    • Have you enabled or disabled “DSD Direct” in Volumio settings?
    • Does the crackling occur only during DSD playback, or is it present in PCM playback as well?

Let’s start with this information, and we can dive deeper into troubleshooting from there.

Kind Regards,

Hey @nerd, first of all, thank you for the quick response.
I followed the instructions, and here’s the result as a print screen:

  • Yes, I’m using native DSD.
  • Yes, I enabled “DSD direct” in the settings.
  • The crackling/distortion only occurs with DSD files and only with the Eagles’ Hotel California album (I have other DSD albums, and none of them have this issue).

I spent some time testing and installing different versions of Volumio:

  • Version 3.378 – OK
  • Version 3.569 – OK (this is the one I’m currently using)
  • Version 3.661 – problem occurs
  • Version 3.757 – problem occurs
  • Version 3.785 – problem occurs

These are the only versions I managed to find.

In my opinion, this is not an issue with the DAC or its settings. The crackling sounds are distorted audio at a specific frequency, and they always appear in the same parts of the track. It’s not caused by the DAC’s volume. I don’t use a mixer, either software or hardware, as I don’t need it. For testing purposes, I enabled the mixer, but the crackling/distortion occurs even at low DAC volume settings.

On a completely clean installation of version 3.569, this issue does not occur, but it does in higher versions.

This problem cannot be fixed by changing the configuration or reinstalling the system. I consider this issue resolved, especially since it only affects one album, and version 3.569 works fine.

P.S. I also tested on my friend’s setup (Pi + HiFiBerry DAC+ ADC Pro, latest version of Volumio), and the result was exactly the same: crackling/distortion.

Best regards.

Hey @bolga,

Thanks again for the detailed information. Based on your observations and the kernel versions used in the different Volumio releases, the issue might indeed stem from kernel changes affecting native DSD playback. Here’s a breakdown of the kernel versions:

  • Version 3.569: Kernel 6.1.58 – Works fine.
  • Version 3.661: Kernel 6.1.69 – Distortion/crackling starts.
  • Version 3.757: Kernel 6.1.69 – Problem persists.
  • Version 3.785: Kernel 6.6.62 – Problem persists.

This suggests that the kernel changes between 6.1.58 and 6.1.69 could be a potential cause. Additionally, kernel 6.6.62 seems to carry forward the same issue.

For reference, my HiFiBerry DAC2 HD is marked as Rev 1.4 (12/21) on the PCB, and I haven’t encountered this problem.

Digging into the past commits:
Based on the kernel issue reported here (Raspberry Pi Linux #5062), it seems you may have encountered a known problem with the compatibility between built-in overlays and the latest Device Tree Binary (DTB) files.

This issue can affect DACs that rely on EEPROM-based overlay loading, especially if the EEPROM’s overlay configuration conflicts with the updated DTBs in newer kernels. For your specific case, the crackling during native DSD playback could be a symptom of this incompatibility.

Recommended Fix:
The workaround involves disabling the automatic loading of the built-in overlay and explicitly specifying the correct overlay in config.txt. Here’s how you can adjust your config.txt:

  1. SSH into your Volumio system.

  2. Open /boot/config.txt (Caution! - it’s not preserved across updates):

    sudo nano /boot/config.txt
    
  3. Add the following line right below [all] scope of the file; should look like:

    [all]
    dtoverlay=
    include volumioconfig.txt
    include userconfig.txt
    
    #### Volumio i2s setting below: do not alter ####
    
    dtoverlay=hifiberry-dacplushd
    

    The dtoverlay= line disables automatic loading of the built-in overlay, and the other line explicitly loads the correct overlay for your DAC.

  4. Save and exit the file.

  5. Reboot your system:

    sudo reboot
    

This approach prevents the EEPROM from automatically loading the potentially incompatible built-in overlay while ensuring the proper overlay is applied.

Additional Notes:

  • If the DAC PCB revision is older than Rev 1.4 (12/21), as on my HiFiBerry DAC2 HD, it’s more likely this issue will arise. The overlay adjustments might mitigate the problem for older DAC revisions.
  • If this doesn’t fully resolve the issue, using “DSD over PCM (DoP)” in Volumio settings could be a fallback option.

Let me know if this workaround helps.

Kind Regards,

Hey @nerd
Thank you very much for your willingness to help. Very interesting EEPROM memory issue but this is not the right case. After changing the configuration, there is no effect. Distortions and clipping still occur. I conducted the test on the latest version of Volumio.
I will stick with the proven older version.

Best regards.

P.S. I also have exactly the same revision and date on the card.

Hey @bolga,

Would be possible to share side-by-side output from working and non-working:

amixer -c scontents

Perhaps Limits are lost somehow in the module itself with kernel change.

Kind Regards,

Hello @nerd,


I am attaching a screenshot. Best regards.