Smoothly interpolate parameter / control changes.
Bug #1082115 reported by
Owen Williams
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
We need to add a utility crossover function to mixxx. That way when parameters change we can smoothly fade from one value to the other. The code would look like this:
if (new_val != old_val)
{
buf1 = process(old_val);
buf2 = prcocess(new_val);
output = util::crossfade
}
This could be used in EQs, effects, faders, loops, cues, etc etc. For instance it would fix https:/
It will increase CPU usage, but only when values are changing, and only for the changing values.
Changed in mixxx: | |
assignee: | Owen Williams (ywwg) → nobody |
Changed in mixxx: | |
milestone: | 1.11.1 → none |
To post a comment you must log in.
This could be built into ControlObject transparently to the rest of Mixxx. You could set an easing function on a control along with a fade duration.
I think it would be negligible CPU impact but depending on the fade duration you put on a control it could add latency to individual controls. For example if you forced volume to interpolate from 0 to 1 then the duration you take to interpolate would be the latency between the control taking on the full value indicated by the user.
My suspicion is that to reduce discontinuities in the audio we only need a very mild small duration for controls like gain / volume / xfader / etc. Just something to keep the value from shifting dramatically.