ZynAddSubFx glitch on high sample rate
A rare glitch appears with ZynAddSubFx with very specific scenarios. It Might be related to the envelopes in ZynAddSubFx, but it happens too randomly to be sure.
Steps to reproduce:
- Set the playback sample rate to 192 kHz (currently doable in .lmmsrc.xml)
- Open this project. (Updated)
- Enable the oscilloscope and press play
Expected behavior: The sound sounds, then goes to silence.
Actual behavior: You can see a gradually appearing DC offset in the output. Putting in a reverb in Zyn produces even more crazy things.
Tested in 1.3.0-alpha.1.606+g75d6be2ea (Linux/x86_64, Qt 5.15.13, GCC 14.1.1 20240507)
I can confirm the issue.
Putting in a reverb in Zyn produces even more crazy things.
That's what you'd get with a floating point error. A good candidate to trouble shoot with the WANT_DEBUG_FPE debug option.
That's what you'd get with a floating point error. A good candidate to trouble shoot with the WANT_DEBUG_FPE debug option.
Tested with -DWANT_DEBUG_FPE=ON and nothing showed up.
Change samplerate to 48000, bit depth to 16, and oversampling to 8x.
I get the same result no matter what bit depth setting I use.
Oversampling was removed in https://github.com/LMMS/lmms/pull/7228
Oversampling was removed in #7228
It's not an issue with the oversampling feature, it's a ZynAddSubFx bug when using high sample rates in general.
Updated the original post to be reproducible without the removed setting.
Set the playback sample rate to 192 kHz (currently doable in .lmmsrc.xml)
Are you sure this setting isn't just a feature in https://github.com/LMMS/lmms/pull/7125 ?
OK. I tested the issue above on https://github.com/LMMS/lmms/pull/7125 and can confirm the issue.
Are you sure this setting isn't just a feature in #7125 ?
Well it is, but that pr is open, thus not in newest master.
Well it is, but that pr is open, thus not in newest master.
Ah, right! Now I found it. samplerate=""/>. I learnt something new.
Enable the oscilloscope and press play
Interesting. I do get the bug but it doesn't show up on export.