Using EQ Kill / Right Click Reset Introduces Pops + Clicks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Medium
|
Daniel Schürmann |
Bug Description
OS: Arch Linux
CPU: Intel Core2 Quad Q6700, 2.66ghz,
Kernel: 3.19.2-1-ARCH, performance governor selected
Video HW: Nvidia with proprietary drivers
Sound HW: NVIDIA Corporation MCP55 High Definition Audio
Jack: jackdmp 1.9.10
Sound Setup: 48k, 1024 frames, 2 periods
Mixx Version 1.12.0-alpha x64 from 01/04/2015, build master r5315
Problem Description:
Using the EQ and the EQ kill switches introduces half-square waves under certain conditions that are evident as cross spectrum transients.
The issue is most evident with a source sound file containing only low frequency content.
Reproduction scenario:
* Generate 60 seconds of 60 hz sine using Audacity
* Load into Deck and adjust gain downwards
* Make a loop of the entire file
* Press play
* Adjust gain back up to get less than clipping
* Set Low Pass Kill on deck
* Play with mid pass and high pass kill in decks, turning them on and off
Additional scenario last step:
* Leave mid/high EQ unkilled, and move EQ gain to far left
* Right click to reset to center
Speculation:
Mixxx seems to have some signal cascade through the EQ stages - when (I believe) each of the EQ bands should be individually attenuated/
Changed in mixxx: | |
status: | In Progress → Fix Committed |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
The bug happens due to the special Lipshitz/Vanderkooy mix oft the two
Bessel EQs.
The filtered signal is added or subtracted from a delayed dry signal.
https:/ /github. com/mixxxdj/ mixxx/blob/ master/ src/effects/ native/ bessel8lvmixeqe ffect.cpp
For performance reasons we stop processing the not required filters. This
should happens at unity and produces a bit-perfect sound. It turns out that
it also happens in you kill use case. After re-anabling a filter path, we
have to deal with silence until we are at the desired delay and the filter
is settled.
In the case you disable midi Kill, we have the transaction from the high
low bass stage to the low low pass stage.
Since the low low pass stage is not settled, some low samples are slipping
though.
The Linkwith-Riley type does not have the issue and works like you expect.
I will have a look how we can fix this issue.