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 65345 times) previous topic - next topic
0 Members and 4 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.
• Join our efforts to make Helix MP3 encoder great again
• Opus complexity & qAAC dependence on Apple is an aberration from Vorbis & Musepack breakthroughs
• Let's pray that D. Bryant improve WavPack hybrid, C. Helmrich update FSLAC, M. van Beurden teach FLAC to handle non-audio data

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.


• Join our efforts to make Helix MP3 encoder great again
• Opus complexity & qAAC dependence on Apple is an aberration from Vorbis & Musepack breakthroughs
• Let's pray that D. Bryant improve WavPack hybrid, C. Helmrich update FSLAC, M. van Beurden teach FLAC to handle non-audio data


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)


Re: foo_vis_spectrum_analyzer

Reply #442
1. Color source. What's the intended behavior of setting a Color Source to None? For example, Configure > Styles > Graph Description > Color source: None. I cannot discern a difference between Color Source None and Color Source Solid. I assumed it would hide the element, but it doesn't.

2. GPU usage. I've noticed the most recent beta registers more GPU usage (per Task Manager), about 7%. Even when playback is paused the usage fluctuates that high. No changes were made to the config from the prior version. My setup has two spectrum windows running simultaneously. Freezing one does cut the usage in half. Anyway, just thought this might be relevant to report since the usage seems to have doubled or more from the prior version.

Edit: Another thing I've noticed. When using only the stock vis components, if I minimize foobar2000, the GPU usage is reduced to 0%. When I add foo_vis_spectrum_analyzer components to my setup and minimize fb2k, the GPU usage remains active when minimizing the app. Perhaps setting them to automatically freeze/unfreeze when minimized/unminimized? Idk I'm not a dev 😅

3. Custom font size for styles that included text labels. Would this be a good idea? My implementation of your component is typically very narrow and long. The new graph labels appear quite large in comparison.

4. Full screen. Double-clicking the component for full screen mode doesn't display the component with the active setup; it renders the default layout with (I think) color scheme Prism 1.

5. If I've already requested this forgive me: Implementing profiles apart from color schemas that can be renamed, loaded, deleted, saved, and accessible across the various instances of the component. This would encompass saving all tweaks to the various settings.

Anyway, I've finally deleted all my other third-party spectrum components. This has become my daily driver spectrum analyzer. Well done, and thank you!

Edited: Supplied more feedback.

 

Re: foo_vis_spectrum_analyzer

Reply #443
1. Color source. What's the intended behavior of setting a Color Source to None? For example, Configure > Styles > Graph Description > Color source: None. I cannot discern a difference between Color Source None and Color Source Solid. I assumed it would hide the element, but it doesn't.
Yes, the intended behavior is that the visual element will not be drawn. If one is not obeying then it's a bug.

2. GPU usage. I've noticed the most recent beta registers more GPU usage (per Task Manager), about 7%. Even when playback is paused the usage fluctuates that high. No changes were made to the config from the prior version. My setup has two spectrum windows running simultaneously. Freezing one does cut the usage in half. Anyway, just thought this might be relevant to report since the usage seems to have doubled or more from the prior version.
To enable flipping and mirroring affine transformations are used. Not much optimization has been done but also, not much is possible. I'll have a look later.

Edit: Another thing I've noticed. When using only the stock vis components, if I minimize foobar2000, the GPU usage is reduced to 0%. When I add foo_vis_spectrum_analyzer components to my setup and minimize fb2k, the GPU usage remains active when minimizing the app. Perhaps setting them to automatically freeze/unfreeze when minimized/unminimized? Idk I'm not a dev 😅
The rendering is skipped when the component is hidden by another child window. I did not check what happens when I minimize the whole app. Will do later.

3. Custom font size for styles that included text labels. Would this be a good idea? My implementation of your component is typically very narrow and long. The new graph labels appear quite large in comparison.
The styles have that possibility but it's not exposed yet because it opens a whole new can of worms.

4. Full screen. Double-clicking the component for full screen mode doesn't display the component with the active setup; it renders the default layout with (I think) color scheme Prism 1.
That's because in DUI fb2k opens a second instance with it's own config while in CUI the existing window is resized.

5. If I've already requested this forgive me: Implementing profiles apart from color schemas that can be renamed, loaded, deleted, saved, and accessible across the various instances of the component. This would encompass saving all tweaks to the various settings.
It's on my To Do list. First I have to get this beta ready.

Anyway, I've finally deleted all my other third-party spectrum components. This has become my daily driver spectrum analyzer. Well done, and thank you!
Edited: Supplied more feedback.
Thx. for the feedback

Re: foo_vis_spectrum_analyzer

Reply #444
Hey, pqyt. Two questions...

1) In the top/left corner I see "Stereo". If I delete it, it still shows a 'cursor'. Can that be removed?
2) In a future update is it possible to add a fill option for artwork? A lot of my artwork is small so the images have a window-boxed border. The fill option (like in ESLyrics for example) will take care of that.

Thanks.

Re: foo_vis_spectrum_analyzer

Reply #445
1) In the top/left corner I see "Stereo". If I delete it, it still shows a 'cursor'. Can that be removed?
Already fixed in the next release.
2) In a future update is it possible to add a fill option for artwork? A lot of my artwork is small so the images have a window-boxed border. The fill option (like in ESLyrics for example) will take care of that.
Already implemented but not yet exposed to the GUI.

Re: foo_vis_spectrum_analyzer

Reply #446
1) In the top/left corner I see "Stereo". If I delete it, it still shows a 'cursor'. Can that be removed?
Already fixed in the next release.
2) In a future update is it possible to add a fill option for artwork? A lot of my artwork is small so the images have a window-boxed border. The fill option (like in ESLyrics for example) will take care of that.
Already implemented but not yet exposed to the GUI.

Cool! Thanks for the quick reply.

Re: foo_vis_spectrum_analyzer

Reply #447
v0.7.1.0-rc-1, 2024-02-26

* New: The style of the graph description background can be specified.
* New: A marker for the Nyquist frequency can be enabled on the Styles page.
* Improved: The frequency tooltip tries to stay within borders of the component.
* Fixed: The graph description will not be shown when it is left empty or when its color source is set to "None".
* Fixed: The gradient brushes were not recreated when the graph was resized.
* Fixed: X-axis scaling did not obey the selected scaling function.
* Fixed: Most visual elements with color source "None" ignored the setting.

You can download it only from GitHub for now.

Re: foo_vis_spectrum_analyzer

Reply #448
foobar 2000 2.1.2 preview 0219 with v0.7.0-rc-1 Spectrum not displayed or crashes.
Fourier Transform No. ofbins 32768 and 65536 ->Not Displayed. (PGGB-RT 352.8/384KHz Resampling)
Sample rate based -> Crash foobar 2000.
We apologise for any inconvenience caused by poor English.
DAC: FiiO K7 Headphone: Audio-Technica ATH-W5000 (A2DC Connecter/Balanced Mod.)
Audio Source: FLAC (16/44 24/96 24/192) from Windows Server Public Folder.
Foobar2000 x64 Preview with Intel Core i9-7900X/MEM 48GB/Windows 11.

Re: foo_vis_spectrum_analyzer

Reply #449
foobar 2000 2.1.2 preview 0219 with v0.7.0-rc-1 Spectrum not displayed or crashes.
Fourier Transform No. ofbins 32768 and 65536 ->Not Displayed. (PGGB-RT 352.8/384KHz Resampling)
Sample rate based -> Crash foobar 2000.
What happens if you reset the component's configuration? I haven't had a crash for a while.

Edit: Confirmed for non-radix-2 FFT's. I'll issue a fix immediately. 32768 and 65536 should work.