Closed micsthepick closed 4 years ago
This sounds like a good idea - let me know if it improves noise reduction if you try it out! I'm trying not too add too many features to this because I'll have to write some text in the blog post showing how to write each one (and it can be intimidating for beginners to see a long JSFX script, though this is already pretty long, sorry about that!), but this sounds like it might be short enough to make it in. (I'm also maybe thinking about writing a more entry-level JSFX tutorial at some point, though that could be a ways off.) Worse case, it totally makes sense as a fork of this denoiser.
Closing, as #4 has been merged.
When the ReaFir plugin is set to build a noise profile, it appears as if the noise profile is continuously built. It resets the noise profile to 0, then takes the maximum of each frequency bin over time as the noise profile (at least that's how it looks).
I would imagine that it should be easy to make this plugin work in a similar way, and I am willing to open a PR which does just that. I would add some code to the @slider section, to check if the old setting was not "Record Noise Sample" and it has changed to "Record Noise Sample", then set the noise profile to 0, and instead of doing memcpy to store the noise profile, I could set it to the max of what's already there, and the current value of the noise. (perhaps it would make more sense to compare the squared norms, and copy only if greater, since there is a real and imaginary part).