Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_enhanced_spectrum_analyzer (Read 59757 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: foo_enhanced_spectrum_analyzer

Reply #150
You're right sveakul :-) I've been using the V2 of the component since mid-2023.
Good to know it hasn't been abandoned! :)
Looking forward to this still!
foobar2000  x64

Re: foo_enhanced_spectrum_analyzer

Reply #151
In my filter I have low frequencies displayed in high resolution just fine,  it have nothing to do with links you provided above.
Do you mean showcwt or something else? And as I said before, you can't have precise time resolution while having higher resolution on lower frequencies at the same time

Irrelevant, showcwt have high resolution of low frequencies.
Please remove my account from this forum.


Re: foo_enhanced_spectrum_analyzer

Reply #153
Crossover, any chance of a sneak visual preview of what you've been working on and when it might be released?
I was thinking about this and I already PM'd @Crossover but no response or any replies from that, so maybe too busy with other stuffs or is it?

BTW, don't expect the upcoming V2 of this spectrum analyzer component to have similar set of new features and changes as in this fanon wiki page (admittedly, I have some unrealistic expectations about upcoming stuffs), though I guess I might be disappointed if there is no option to use IIR filter bank for frequency bands mode in upcoming Enhanced Spectrum analyzer 2.0.0.0

Re: foo_enhanced_spectrum_analyzer

Reply #154
You're right sveakul :-) I've been using the V2 of the component since mid-2023.
Good to know it hasn't been abandoned! :)
Looking forward to this still!
Crossover, any chance of a sneak visual preview of what you've been working on and when it might be released?
I'm still working on it. But I need more time than expected because I decided to use OpenGl instead of GDI+ and therefore a large part of the code has to be rewritten. But OpenGl is much faster than GDI+. So it's worth the effort. So far I have been able to solve everything. Here is a current picture of the component.

Re: foo_enhanced_spectrum_analyzer

Reply #155
Crossover, any chance of a sneak visual preview of what you've been working on and when it might be released?
I was thinking about this and I already PM'd @Crossover but no response or any replies from that, so maybe too busy with other stuffs or is it?

BTW, don't expect the upcoming V2 of this spectrum analyzer component to have similar set of new features and changes as in this fanon wiki page (admittedly, I have some unrealistic expectations about upcoming stuffs), though I guess I might be disappointed if there is no option to use IIR filter bank for frequency bands mode in upcoming Enhanced Spectrum analyzer 2.0.0.0
I'm sorry TF3RDL, but my primary goal is to increase the performance of the component. After I release the OpenGL version of the component, I will take care of your ideas.  Probably not all of them, but may be a few :-) Thanks for your patience.

Re: foo_enhanced_spectrum_analyzer

Reply #156
I'm still working on it. But I need more time than expected because I decided to use OpenGl instead of GDI+ and therefore a large part of the code has to be rewritten. But OpenGl is much faster than GDI+. So it's worth the effort. So far I have been able to solve everything. Here is a current picture of the component.
Cool on OpenGL and it looks great.  Thanks for your efforts.

Re: foo_enhanced_spectrum_analyzer

Reply #157
I'm sorry TF3RDL, but my primary goal is to increase the performance of the component. After I release the OpenGL version of the component, I will take care of your ideas.  Probably not all of them, but may be a few :-) Thanks for your patience.
Oh ok, thanks for switching away from legacy GDI+ to something GPU-accelerated graphics API (probably one of many reasons why the next version of this component take too long to release), but the difference between Direct2D and OpenGL shouldn't matter performance-wise right?

And I understand that my ideas (e.g. IIR filter bank mode as well as adjustable number of bands per-octave for frequency bands mode) might take a lot of time to actually being materialized into this component and it makes sense to have fewer (and not all) ideas made into it

Re: foo_enhanced_spectrum_analyzer

Reply #158
I'm still working on it. But I need more time than expected because I decided to use OpenGl instead of GDI+ and therefore a large part of the code has to be rewritten. But OpenGl is much faster than GDI+. So it's worth the effort. So far I have been able to solve everything. Here is a current picture of the component.
[attach width=500 align=center]30325[/attach]
Very well presented interface, I'll keep an eye on it!

Re: foo_enhanced_spectrum_analyzer

Reply #159
Work in progress:

- Separate peak and RMS read-outs
- Left/Right and Mid/Side level meters with configurable channel pair.
This upcoming update for another component (foo_vis_spectrum_analyzer) makes me want a stereo balance/phase correlation spectrum (basically Voxengo Correlometer or something like that but FFT) added for Enhanced Spectrum analyzer component

Might be useful to let me visualize what kind of artifacts and/or differences I'm hearing when listen in mono vs. stereo (e.g. the NCS song "Debris & Our Psych - Omerta" have lead synths that so wide to the point it sound slightly different when played in mono), though the FR of allowing simultaneous channels visualization do the same job when Mid/Side channels are visualized, just in a different (level-dependent I guess) representation

Re: foo_enhanced_spectrum_analyzer

Reply #160
I'm still working on it. But I need more time than expected because I decided to use OpenGl instead of GDI+ and therefore a large part of the code has to be rewritten. But OpenGl is much faster than GDI+. So it's worth the effort. So far I have been able to solve everything.
@Crossover, any sneak previews of IIR filter bank mode for 1/nth octave bands mode and anything other than switch to OpenGL?

Re: foo_enhanced_spectrum_analyzer

Reply #161
Just found this beautiful component!
Thanks!

Re: foo_enhanced_spectrum_analyzer

Reply #162
Feature request: Show more details on higher frequencies with "Low detail mode" switch, something like this:

With LDM off:
X
With LDM on:
X


Re: foo_enhanced_spectrum_analyzer

Reply #164
Feature request: Show more details on higher frequencies with "Low detail mode" switch, something like this:

With LDM off:
[attach type=image]30421[/attach]
With LDM on:
[attach type=image]30419[/attach]
Yes, smoothing will be part of the new version:


Re: foo_enhanced_spectrum_analyzer

Reply #166
Yes, smoothing will be part of the new version:
Surely, IIR filter bank can be made wider (lower Q parameter as there is no FFT size parameter for this filter bank-based analysis) while having larger number of bands per-octave to get a smoother spectrum with improved time resolution or responsiveness on lower frequencies (as we can't have narrow bandwidth while having good time resolution on lower frequencies at the same time obviously), try it out yourself by tinkering with "Bandwidth" parameter on my own AudioWorklet-based filter bank spectrum analyzer project

BTW, what I meant by "low detail mode" (BTW the name is borrowed from an option in Geometry Dash that improves performance on lower end PCs) is that when enabled, it tries to avoid drawing more lines if the distance between two points in pixel coordinates in terms of X-axis is within subpixel level (much like foobar2000's built-in "Oscilloscope" visualization), which makes it look more like "Line/Area graph" mode in audioMotion-analyzer than " Spectrum analyzer and spectrogram using custom FFT" especially at higher FFT size like 32768

Re: foo_enhanced_spectrum_analyzer

Reply #167
Killing all relevant details makes your plugin just a kid toy.
Please remove my account from this forum.

Re: foo_enhanced_spectrum_analyzer

Reply #168
Killing all relevant details makes your plugin just a kid toy.
While there is some merit for 1/3rd octave bands and 1/1st octave bands as well as the smoothing of the spectrum visualization (e.g. reducing the visual clutter) especially when you focused on the spectral trends instead, unnecessary smoothing do kill off some of the relevant details

Re: foo_enhanced_spectrum_analyzer

Reply #169
Not interested in output that have number of distinct bars less than pixel width of image/frame.
Please remove my account from this forum.

Re: foo_enhanced_spectrum_analyzer

Reply #170
Not interested in output that have number of distinct bars less than pixel width of image/frame.
Yeah, but it doesn't mean right a "low detail mode" switch that when enabled, avoids drawing more lines if the distance between these two are in subpixel level (e.g. on higher frequencies in logarithmic frequency scale) and when disabled, it draws all FFT bins within specified frequency range right?

Re: foo_enhanced_spectrum_analyzer

Reply #171
@Crossover, what about non-power of two FFT sizes like 4800 samples (100ms at 48kHz samplerate)?
Feature request: Being able to set FFT size to specified length in milliseconds instead of samples as get_chunk_absolute() in fb2k SDK takes length in seconds rather than in samples

This makes the window length in seconds/milliseconds samplerate-independent when you set the unit for "FFT size" to milliseconds

Re: foo_enhanced_spectrum_analyzer

Reply #172
A smoothed spectrum can be achieved just by decreasing the Q value for its filter bank, whereas on FFT-based spectrum, it is a post-processing step

Re: foo_enhanced_spectrum_analyzer

Reply #173
Oh I forget the reassignment and NC (neighboring components) method exists to make FFT-based spectrum and spectrogram look much sharper in both time/frequency axis (though with caveats of for the former, having point cloud-like appearance especially on lower frequencies and for the latter, a rectangular window and possibly zero-padding works best though for both, the FFT size parameter still makes sense considering there is still a time/frequency resolution tradeoff in a form of window length), which can greatly improve the spectrogram display but is it worth adding these to foo_enhanced_spectrum_analyzer component?

BTW, I think the smoothed spectrum still have poor time resolution on higher frequencies in log2 frequency scale with FFT sizes like 32768, 65536, or even higher samples assuming it is just a post-processing step (considering just decreasing the Q value can similarly produces a smoothed spectrum but with improved time resolution, but it only applies to IIR/FIR filter bank anyway)

Re: foo_enhanced_spectrum_analyzer

Reply #174
As for the feature request of letting you visualize all channels as FFTs of each channel, I meant this: (BTW, I've updated this interactive mockup to add this, which already exists on the similar spectrum analyzer plugin for another music player except for the M/S part)
[attach type=image]26984[/attach]
And for Mid/Side part (which can be easily done using M/S encoding then doing FFTs of resulting M/S signal for visualization):
[attach type=image]26986[/attach]
On the subject of the request to add a feature to analyze multiple channels (stereo and even surround sound, and Mid/Side spectrum analyzer) simultaneously, I found the neat trick on this thread about whether or not the complex-input FFTs as in SDR-related stuff is also really useful for audio-related stuffs, that really improves performance on multichannel spectrum by treating channel pairs as complex number for the input-side and doing the "unscrambling" operation to resemble two separate FFTs of stereo pairs, though I think the performance improvements that brings is diminished when multichannel analysis is multithreaded (each channel gets its own thread for FFT analysis, so it can be done in parallel) right?