Skip to content

Fix crackling noise when switching quick effects #15796

Merged
ronso0 merged 6 commits intomixxxdj:2.5from
daschuer:gh15794
Feb 4, 2026
Merged

Fix crackling noise when switching quick effects #15796
ronso0 merged 6 commits intomixxxdj:2.5from
daschuer:gh15794

Conversation

@daschuer
Copy link
Copy Markdown
Member

@daschuer daschuer commented Dec 27, 2025

This fixes #15794

The issue was that the enabling state was maintained only one time. In the first channel that was processed after the change.
The quick effects are however instantiated for all channels and only one is used. This leads to loss of the enabling disabling states. Now the state is maintained for each instants together with the same sates for the invisible routing switches in m_channelStateMatrix. This even simplifies the code

before:
grafik

after:
grafik

@daschuer daschuer added this to the 2.6.0 milestone Dec 27, 2025
Copy link
Copy Markdown
Member

@acolombier acolombier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good - is there an easy way to test this by hear?
Also, did you mean to target 2.5?

@daschuer
Copy link
Copy Markdown
Member Author

Yes the issue happens already in 2.5. You can hear the click by ear if you play a 440 Hz Sine wave.

@ronso0
Copy link
Copy Markdown
Member

ronso0 commented Feb 3, 2026

I'm pretty sure I heard something like this recently (with main), but I can't reproduce it with the sine wave.
Looks okay to me, too
image
Though there is a small dip after enabling, I presume that's the resonance building up??
image

@daschuer
Copy link
Copy Markdown
Member Author

daschuer commented Feb 3, 2026

This dip happens due to the group delay of the filter and crossfading. If you cross fade a delayed signal with the original and the delay is exactly at 180° the dip will go to zero at 50 % crossfade. For real audio, this zeros out one frequency and it's harmonic. like a phaser effect.

I think DAW station allow to compensate the group delay. Mixxx does not have the feature for the sake of a minimal latency.

@ronso0
Copy link
Copy Markdown
Member

ronso0 commented Feb 3, 2026

Ah okay, thanks for the xplanation. So the dip is so obvious because we fade two sine waves with the same frequency.

@daschuer
Copy link
Copy Markdown
Member Author

daschuer commented Feb 3, 2026

Yes.

@ronso0
Copy link
Copy Markdown
Member

ronso0 commented Feb 4, 2026

Approved by Antoine, so let's merge.
Thank you!

@ronso0 ronso0 merged commit 6fe60b0 into mixxxdj:2.5 Feb 4, 2026
34 of 37 checks passed
@acolombier acolombier added this to the 2.5.5 milestone Feb 25, 2026
@github-project-automation github-project-automation Bot moved this from In progress to Done in Releases Feb 25, 2026
@github-project-automation github-project-automation Bot moved this to In progress in Releases Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants