Lmms: Native EQ IN/OUT gain sliders affect dry signals

Created on 15 Jun 2017  路  9Comments  路  Source: LMMS/lmms

At full dry, the EQ will continue to output the equalized signal at the volume specified on the out slider, alongside the original dry audio.

System Details: Windows 10, LMMS 1.2.0 rc2

bug

Most helpful comment

How would you deal with unknown signal latency of the effect?

Make it known. virtual f_cnt_t latency(); 馃槈

If anything, latency compensation for dry/wet is a reason in favour of, not against, handling this in Effect. Surely you wouldn't want to repeat the code for that in every effect with non-zero latency? We'll need a single piece of code that can handle different latencies anyway for the various third-party plugin APIs we support.

All 9 comments

@BaraMGB I believe I discovered the issue after the fact of that pull request.

Confirmed with latest master. Input gain and output gain are applied to dry signal.
I think it is not hard to fix, @curlymorphic?

System Details: Windows 10, LMMS 1.2.0 rc2

The pull request to fix this bug was merged on 02 may 2017, so would not have been present in the build under test.

Would someone please test this in RC3.

I changed the title because #3505 is partially fixed by #3520. However, Dry signals are still affected by IN/OUT gain sliders.

Shouldn't we handle all the dry/wet stuff in Effect, outside the call to processAudioBuffer, rather then leaving it to each individual effect to implement? The noise control on the flanger also doesn't interact properly with the dry/wet control, and these mistakes could easily be avoided while making the code a bit cleaner.

Shouldn't we handle all the dry/wet stuff in Effect, outside the call to processAudioBuffer, rather then leaving it to each individual effect to implement?

How would you deal with unknown signal latency of the effect? Say you feed in a 1 kHz sine wave, the effect does something with the signal and then produces output 0.5 ms later. When you mix the dry and wet signals (which are now exactly opposite phase), I imagine they would mostly cancel each other out.

How would you deal with unknown signal latency of the effect?

Make it known. virtual f_cnt_t latency(); 馃槈

If anything, latency compensation for dry/wet is a reason in favour of, not against, handling this in Effect. Surely you wouldn't want to repeat the code for that in every effect with non-zero latency? We'll need a single piece of code that can handle different latencies anyway for the various third-party plugin APIs we support.

Was this page helpful?
0 / 5 - 0 ratings