Fix wrong value interpolation#3929
Conversation
|
A first test. I'm not quite sure if this test tells anything but I cherry-picked 600e361 into master and tested it with the fpe debug option. The project I tested it with had a calf limiter just as the one in #3685/#3859. We had two separate fixes that will allow the project to play as normally, patching audio_fx.cpp or setting m_valueOld to '0' for new value buffers, and now this third proper fix for the value buffer. They all work and makes the failing projects pass but when you test for floating point errors, they will all come out crashing. The only difference is that with this latest effort it will play for two bars, but they will all crash with a similar backtrace. master with 600e361 |
|
Yes. I had the same issue before. That's an underflow, which seems harmless there. |
|
You may |
|
That worked. Interesting, what shows that there are denormals involved here? |
I inserted |
zonkmachine
left a comment
There was a problem hiding this comment.
I can't comment on the code, especially the valueBuffer() stuff, but it's been sweating in the debugger and works fine.
Maybe we should have the underflow check disabled by default for now then. The debugger is a bit too nervous right now. |
Totally agree. In my case, LMMS fails to start with FPE debugging for some reason. |
|
Also, we do have some tweak to keep denormals under control.
|
Fixes #3859.