stuerp / foo_vis_spectrum_analyzer

A foobar2000 component that displays a spectrum analyzer.
MIT License
13 stars 0 forks source link

How to have thin and smooth bass frequencies? #44

Closed PlaylistsTrance closed 4 months ago

PlaylistsTrance commented 4 months ago

I have made a test audio file that's just a sine wave sliding from C1 to C9 to see how the spectrum (range E1-C#10) responds. When the no. of bins is 4096 or below, low frequencies show up as multiple, separate "Gaussian" curves instead of one, but when the no. of bins is 8192 or higher, the bass frequencies do show up as single (albeit wide) frequencies, but are no longer smooth Gaussian curves. Smooth lower frequencies is enabled.

Transform method is FFT and window function is Hann. I also changed Window skew to -0.10 and Reaction alignment to -0.25, but setting both of these to 0.00 didn't seem to change this behavior, so I don't think they are relevant.

Left/Right example

The image shows left/front channels with 2048 bins to the left (mirrored), and right/front channels with 8192 bins to the right.

What settings should I use to have the best of both worlds: smooth Gaussian bass frequencies, without introducing ghost frequencies?

WagnerGFX commented 4 months ago

Try going into Frequencies. If you are using AveePlayer for distribution, try increasing the Skew Factor (I use 0.04 or 0.05). This will put the lower frequencies closer together. It's not perfect, but it solves the lower frequencies.

With Distribution set to Octaves you can change the first note in Note Range, but I think it "eats away" the lower frequencies.

With Linear, you have to select a Scaling method and testing the skewing. I recommend Mel.

frequencies

I have a feeling that in Octaves the Pitch was supposed to do the "skewing" since it changes the note label's position, but it's not changing the band distribution.

In AveePlayer the band distribution moves with Skew Factor, but the Octave labels don't move.

Is this a bug? 🤔

[Edit]: I changed a few things after noticing that some Linear scaling methods weren't affected by skewing. And linear skewing was moving the Octaves correctly.

PlaylistsTrance commented 4 months ago

Thanks for the response. Those AveePlayer settings do have thinner bass frequencies, although a weird 'ducking' (amplitude changes) occurs for the low frequencies while the pitch is rising. If I set the skew factor back to 0, the ducking's gone but it starts to look exactly like the Octave bass frequencies. I prefer the Octaves distribution as it's nice to see what keys the peaks correspond to.

stuerp commented 4 months ago

Or you can play with the filters.