-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NaN introduced with sample-exact fix in 1.0.91 #3685
Comments
There is more to this
Not only does the project sounds different, the issue with BitInvader is also gone. Somehow effects in unused channels are still influencing the playback. These channels are for presets thats no longer in the project ! |
I don't see this on my side. The project issue3685_unusedChannelRemoved.zip still has this issue on my setup. I can add that turning the volume down a bit and saving/reloading or turning normalization off on the BitInvader, also removes the glitch. |
Interesting! could be that selected backend is a factor, mine is SDL. |
No it is not a backend thing. I found a peculiarity that explain why i have sound where you had non. cuts sound no sound cut Its the last one |
The actual NaN happens in the Limiter, yes... but that's not the issue. The limiter wasn't changed in the actual commit. Somewhere up-stream from the Limiter we are producing a value the limiter just can't handle very well and it goes bananas. It's the up-stream event I'm interested in here, not the limiter. The limiter has issues but I've failed to nail it down. It's an old package that isn't developed any more and probably our best bet there is to just wait for LV2 and the newer Calf packages to come true on LMMS. |
@michaelgregorius I suspect this may be related to what you comment on here. |
I have added the pull request #3687 to provide an option to debug floating point exception. Please refer to the pull request for more details. |
@zonkmachine That might be the case. These exception really need to be weeded out. |
This will check for infs/nans in between the effect units and will clear up most cases where projects with bad data would simply cut out all sound at one point or be all silent. It comes with a slight performance hit of some 2% more cycles. The down side is that now instead of cutting out at the point of bad data some large signals will get through that could potentially hurt equipment. Resolves: LMMS#1048, LMMS#3685
This will check for infs/nans in between the effect units and will clear up most cases where projects with bad data would simply cut out all sound at one point or be all silent. It comes with a slight performance hit of some 2% more cycles. The down side is that now instead of cutting out at the point of bad data some large signals will get through that could potentially hurt equipment. Resolves: LMMS#1048, LMMS#3685
This will check for infs/nans in between the effect units and will clear up most cases where projects with bad data would simply cut out all sound at one point or be all silent. It comes with a slight performance hit of some 2% more cycles. The down side is that now instead of cutting out at the point of bad data some large signals will get through that could potentially hurt equipment. Resolves: LMMS#1048, LMMS#3685
This behavior depends on too many arguments: playhead position before press play button, the wave shape in BitInvader, effects in the instrument, limiter's lookahead parameter, etc. So bisect may give wrong result for this. There's nothing wrong with the input signal of the limiter in CH10, and its output contains a few number of(4~9 in my case) NaNs. In CH10, there are plate reverb and high pass filter. After these effects, the output signal becomes "the sea of NaN". NaN is introduced here. If So I guess the bisect result is wrong and the real reason of this issue is a bug of calf limiter which occurs rarely. |
@PhysSong -Good find! 👍 |
Closing this as a duplicate of #3859. |
@PhysSong Right. I hacked _peak above that line with: Edit: |
Here: https://github.com/LMMS/lmms/blob/stable-1.2/include/lmms_constants.h#L51 |
I fixed that up as part of #3927 |
This will check for infs/nans in between the effect units and will clear up most cases where projects with bad data would simply cut out all sound at one point or be all silent. It comes with a slight performance hit of some 2% more cycles. The down side is that now instead of cutting out at the point of bad data some large signals will get through that could potentially hurt equipment. Resolves: LMMS#1048, LMMS#3685
NaN in a project file from this comment in PR #3313 submitted by @Umcaruje
Edit: I edited down the original song to a minimal project.
issue3685.mmp.zip
The project goes silent just as the BitInvader sounds for the first time in bar 5.
<lmms-project version="1.0" creator="LMMS" creatorversion="1.0.0" type="song">
It was created with lmms 1.0.0 and the project breaks in lmms-1.0.91
If you turn the volume knob on the BitInvader track or if you render the project before you hit play the bug isn't triggered. I've been trying to spot something like an undefined variable in there but have come up with nothing so far.
The bug was introduced in 23433a7
The text was updated successfully, but these errors were encountered: