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_vis_spectrum_analyzer (Read 40141 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

Re: foo_vis_spectrum_analyzer

Reply #425
@Brazil2, it is possible to install the component 0.7.1 on my Foobar2000 2.1 as well. But after calling it from the View/Visualizations menu, the player crashes. The earlier betas of 0.7.* do not load at all, the error is: “Failed to load DLL: foo_vis_spectrum_analyzer.dll. Reason: Unknown error code (3765269347)”. However, I confirm that 0.6.0.3 works fine.

Re: foo_vis_spectrum_analyzer

Reply #426
Small suggestion for the preview picture:

1) Option to mirror the left channel (so frequency runs from high to low instead of the default low to high)
2) Option to disable the right side y-as display for left channel and the left side y-as display for right channel

Result something like the attached picture ...


Re: foo_vis_spectrum_analyzer

Reply #427
Small suggestion for the preview picture:

1) Option to mirror the left channel (so frequency runs from high to low instead of the default low to high)
2) Option to disable the right side y-as display for left channel and the left side y-as display for right channel

Result something like the attached picture ...
Already working on it. It was just a preview.

Re: foo_vis_spectrum_analyzer

Reply #428
Another sneak preview:


Re: foo_vis_spectrum_analyzer

Reply #429
component 0.7.1 on my Foobar2000 2.1 as well. But after calling it from the View/Visualizations menu, the player crashes.
I'm now getting crashes as well with version 0.7.1.0 beta. It began with crashes on exit of foobar2000 and now it crashes at start, I can't run foobar2000 anymore. :( I've put back my profile backup and I'll stick with version 0.6.0.3 for now.

Re: foo_vis_spectrum_analyzer

Reply #430
Many thanks for this plugin  :D

Bug:
- the tooltip that displays the frequency is right-aligned, but is out of view when displayed for the higher frequencies.

Left-aligning it would work better and may be ok the lowest frequencies too.

Re: foo_vis_spectrum_analyzer

Reply #431
component 0.7.1 on my Foobar2000 2.1 as well. But after calling it from the View/Visualizations menu, the player crashes.
I'm now getting crashes as well with version 0.7.1.0 beta. It began with crashes on exit of foobar2000 and now it crashes at start, I can't run foobar2000 anymore. :( I've put back my profile backup and I'll stick with version 0.6.0.3 for now.
Does fb2k crash or does it hang? A hang is caused by a deadlock which will be solved in the next beta.

Re: foo_vis_spectrum_analyzer

Reply #432
@pqyt, c r a s h.




Re: foo_vis_spectrum_analyzer

Reply #434
Another sneak preview:


The channel spectrum visualization is not complete without an optional feature to use pseudo-logarithmic scaling similar to original Channel Spectrum panel (this admittedly have stability issues according to online troubleshooter at least), which is implemented in a CodePen project about channel spectrum visualization

BTW, The bottom spectrum flipped vertically look kinda cool actually, but how about combined spectrum/spectrogram and "Discrete frequencies" frequency distribution mode (where frequency bands are linearly spaced, equal to FFT bin's center frequencies, but the graph are scaled according to arbitrary frequency scale anyway, so uneven bar width are expected), which locks the transform mode to FFT and mapping to standard as it visualizes every raw FFT bins visible within specified frequency range? Something like this:
X

BTW, as this component is tested on Windows 10 and 11, expect stability and compatibility issues when running on Windows 7 or even 8.1 and in-addition, optimizing the Goertzel-based CQT/VQT, sDFT algorithms, and even analog-style analyzer with something like AVX instructions might cause stability problems with CPUs that don't have AVX instruction sets (which I heard this already happen sometimes in AAA games) unless fallbacks to older SIMD instructions down to SSE2 (which fb2k starting from version 1.6 requires a CPU with SSE2 instructions on it) are provided

Re: foo_vis_spectrum_analyzer

Reply #435
add a spectrogram image function?  Like spek, to see the spectrogram of the selected track .

Re: foo_vis_spectrum_analyzer

Reply #436
v0.7.1.0-beta-2, 2024-02-22

* New: Multiple graphs.
  * Each graph can be configured to show the analysis of one or more channels.
  * A graph can be flipped horizontally or vertically.
  * Graphs can be stacked vertically or on a horizontal line.
* New: Context menu item to freeze and unfreeze the component.
* Improved: Rendering and spectrum computation are not performed when the component window is hidden (to reduce the load on the computer).

You can download it only from GitHub for now.

Again, this version has seen a lot of abuse, probing and poking but is definitely not bug-free. Since your config will be converted upon first use, make sure you have a backup of your config.

Re: foo_vis_spectrum_analyzer

Reply #437
Could you update the graph description rendering not to render the rectangle if the string is empty. I tried leaving it blank as it's useless to me but end up with this...



Looks like relevant code is here...

https://github.com/stuerp/foo_vis_spectrum_analyzer/blob/f16465ee33a9031dbc27e56046182ca8d408b99c/Visuals/Graph.cpp#L160-L180

Oh and thanks for the updates.  8)


Re: foo_vis_spectrum_analyzer

Reply #438
Another niggle, your gradient stop positions don't adjust on resize. Compare this before/after resize against my component which also implements them.

edit: opening/closing the configure dialog or restarting fb2k sorts it out so I guess you create your brush on init and don't change.

Re: foo_vis_spectrum_analyzer

Reply #439
edit: opening/closing the configure dialog or restarting fb2k sorts it out so I guess you create your brush on init and don't change.
Thx for the report. Yes, the brush is cached, as it's supposed to be, but recognizing the need for a cache flush is a little more complicated due to the different threads.

Re: foo_vis_spectrum_analyzer

Reply #440
* New: Multiple graphs.
  * Each graph can be configured to show the analysis of one or more channels.
  * A graph can be flipped horizontally or vertically.
  * Graphs can be stacked vertically or on a horizontal line.
Finally, we don't have to use multiple instances of foo_musical_spectrum, and also one step closer to replicating foo_uie_vis_channel_spectrum for foobar2000 x64 (one thing currently missing is pseudo-logarithmic frequency scaling that becomes linear on larger number of bands)

BTW, a Mid/Side mode and a capability to treat stereo audio as complex-valued input (can be easily implemented by having four of channel configuration settings for each graph; the first two are real part for FFT input data, and the latter two are imaginary part, first of the each pair is subtracted by the latter of each pair before FFT) would be appreciated
Again, this version has seen a lot of abuse, probing and poking but is definitely not bug-free. Since your config will be converted upon first use, make sure you have a backup of your config.
Expect some bugs and stability issues on beta (or any other pre-release) versions of this component, as well as unfinished features on these prerelease versions

Also, here's the comparison of these two methods of calculating IIR CQT spectrum, first one is SWIFT (which is there in beta version of this component):
X
And the second one is analog-style analyzer (currently not implemented just yet on this component, so I have to use Voxengo AnSpec, which can be used within foobar2000 via foo_dsp_vst3's Visualize with VST feature):
X

Alas, the latter case is more epilepsy-inducing (especially when smoothing or peak decay is set to zero or none), just like trying to visualize the MDCT spectrum (or only the real part of FFT and discarding the imaginary part before taking the absolute value) since analog-style analyzer produces real-valued output, instead of usual complex-valued one (I guess we need some DSP knowledge on how to make a complex-valued IIR filter bank that have symmetric response when viewed on a logarithmic frequency scale)