TheWisker / Cavasik

Audio visualizer based on CAVA
GNU General Public License v3.0
84 stars 4 forks source link

[BUG] Noise reduction is not working? #4

Closed d3cryptofc closed 11 months ago

d3cryptofc commented 1 year ago

Explanation

I've Cava 0.9.1 on my system, it seems that noise reduction value must be between 0 and 100, not 0 and 1.

I tried to edit ~/.config/cavasik/config file, but it restores value to 1.0.

Steps to reproduce

No response

Cavasik Version

v1.0.0

Linux Distro

Arch

Additional Context

No response

Relevant log output

No response

Code of Conduct

TheWisker commented 1 year ago

I did some tests, and even tough what you said about the noise reduction value needing to be between 0 and 100 is theoretically true as I have checked on the Cava GitHub page, I arrived to the confusing conclusion that values between 0 and 1 work fine and values between 1 and 100 glitch (saturate). If you have any further information please make a comment. Thanks for pointing out the bug!

d3cryptofc commented 1 year ago

Thank you for answering this issue :)

I changed the file /usr/share/cavasik/cavasik/cava.py on line 62: https://github.com/TheWisker/Cavasik/blob/master/src/cava.py#L62

self.noise_reduction = self.settings['noise-reduction']

to

self.noise_reduction = self.settings['noise-reduction'] * 100

It seems to work right for me..

TheWisker commented 1 year ago

It is really strange, the change you did to cava.py was one of the changes I did while performing some tests that caused the output to saturate (glitch). So in the end I do not know if I should change it in the release version or let it as it is.

d3cryptofc commented 1 year ago

Really.. Just in case I'll leave my configuration file here in case you need it.

~/.config/cavasik/config

[general]
bars = 100
autosens = 1
sensitivity = 100.0
framerate = 30
[input]
method = pulse
[output]
channels = stereo
mono_option = average
method = raw
raw_target = /dev/stdout
bit_format = 16bit
[smoothing]
monstercat = 1
noise_reduction = 39.0
d3cryptofc commented 1 year ago

Your case is really strange, because here is working fine.. This is my suggestion:

import subprocess

_, cava_version = subprocess.getoutput('cava -v').split()

self.noise_reduction = (
   self.settings['noise-reduction'] * (100 if cava_version >= '0.9' else 1)
)
Plyply99 commented 1 year ago

I have exact same issue on a fresh Arch install. Cava uses a value 0 - 100.

"self.noise_reduction = self.settings['noise-reduction'] * 100" fixed it for me too.