LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
8.05k stars 1k forks source link

Bitcrush effect applies a lowpass filter even if sample-rate reduction is disabled #5893

Open DeRobyJ opened 3 years ago

DeRobyJ commented 3 years ago

Bug Summary

Using a bitcrush effect on a signal will result in a lowpass filter at Nyquist frequency, even if the sample-rate reduction is disabled. Enabling the sample-rate reduction will further filter the signal.

Steps to reproduce

From default project, create two Mixer channels. Route the first to the second. Send the TripleOscillator to the first, and set it up so that it only produces white noise. Add a Bitcrusher effect on the second mixer channel, leave the default values but uncheck the sample-rate reduction led, to disable it. Disabling the quantization reduction doesn't have any effect.

Expected behavior

Signal should be untouched, the two spectrums should be the same.

Actual behavior

A lowpass filter at nyquist frequency is applied to the signal with the bitcrush effect

Screenshot

Screenshot_4

Affected LMMS versions

1.3.0 alpha 1.33+g4f74151f0 1.2.2

PhysSong commented 3 years ago

For some reason, there is an antialiasing filter in the plugin. https://github.com/LMMS/lmms/blob/ed4df52d86d5da1d35ebc426f57fe923061185d5/plugins/Bitcrush/Bitcrush.cpp#L193-L216

zonkmachine commented 5 months ago

I don't think this is a bug. You can't expect an effect plugin to have a state in which it will have absolutely no effect when it's engaged. This is just the way this specific plugin operates. Have you tried removing the filter to see if something breaks?