lucianodato / libspecbleach

C library for audio noise reduction and other spectral effects
GNU Lesser General Public License v2.1
68 stars 12 forks source link

Explain and implement different modes better #52

Open bergfried opened 2 years ago

bergfried commented 2 years ago

(Sorry for the somewhat strange-looking title.)

I just learned by accident that I can choose different values for "Learn noise profile". Neither the README.md nor the Wiki explain them, nor do they acknowledge their existence. How do they work? Some of them appear to be labeled in Spanish. For English, I would prefer simpler labels like

But I do not know whether that would be expressive enough since I do not understand the semantics. Please explain the meaning of the different values (0 to 3) in the Wiki.

While we are at it: From what I guess the different values are supposed to mean, does that mean that the way noise reduction works depends on the mode chosen during learning? If so, why not just learn for all of the three different modes simultaneously, and then let the user choose the mode to be used afterwards? That way, the user can try and compare different modes without having to try and make Noise Repellent relearn from the exact same noise profile repeatedly.

In the end, I think of something like this:

The main advantages I see are the following:

Of course, there are probably reasons as to why the controls are the way they currently are. Maybe what I imagine is too complex to implement or too difficult to use. What do you think?

P. S.: The control "Reduction strenght" (sic!) should probably read "Reduction strength".

lucianodato commented 2 years ago

That makes absolute sense! Much better usability for sure. Thing is I'll need to change how libspecbleach works quite a bit. Still doable I think.

bergfried commented 2 years ago

Well, technically, there are at least two downsides to the approach I proposed.

However, I think the currently available three choices are good enough. Again, as I said, these are only theoretical downsides written down here for the sake of completeness.

(By the way, I am not sure whether "Mode" is a good label but I could not yet come up with a better word for it.)