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 121195 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: foo_vis_spectrum_analyzer

Reply #500
^When the color scheme is "Artwork" and a track does not have an album cover, the color scheme of the graph will be different from the color scheme of other layout elements.
In this case, I think it makes sense to define a default color scheme (i.e. when there is no cover).
When no artwork is found, it falls back to a gradient of black to white.

What do you mean: different from other elements? Do those elements also have the Gradient / Artwork color source?

Re: foo_vis_spectrum_analyzer

Reply #501
v0.7.2.0, 2024-03-03

* New: Analog-style spectrum analysis. Based on https://codepen.io/TF3RDL/pen/MWLzPoO.
* Improved: Performance optimization. Rendering will stop when the main window is minimized.
* Improved: Small performance optimization in SWIFT.
* Changed: The grid lines can be displayed without an X or Y-axis.
  * X-axis and Y-axis mode "None" still disables everything.
  * The X-axis or Y-axis labels can be controlled with the top, bottom, left and right settings.
  * The X-axis Line and Y-axis Line style have been renamed to Vertical and Horizontal Grid Line.
* Fixed: The style list box in the configuration dialog was not cleared before it was filled again after a reset.
* Fixed (Regression): Gradient brushes are created again with the colors in the same order as shown in the configuration dialog.

You can download it from Components repository or upgrade from within foobar2000.

Re: foo_vis_spectrum_analyzer

Reply #502
I'm thinking of compiling the next versions with Advanced Vector Extensions 2 (AVX2) instructions enabled. This would mean that the CPU in your computer should be released in 2013 or later (10 years ago, Intel Haswell).

Is that an unreasonable requirement?

I'm hoping for a civil discussion...

Re: foo_vis_spectrum_analyzer

Reply #503
When no artwork is found, it falls back to a gradient of black to white.

What do you mean: different from other elements? Do those elements also have the Gradient / Artwork color source?
In "Dark Mode" when the "Dark" color scheme is defined. Stock visualization elements such as "Peak Meter", "Spectrum", "VU Meter" are not black and white. But this is like an explanation that if there no cover, the color scheme of the component could be not only black and white.

Re: foo_vis_spectrum_analyzer

Reply #504
v0.7.2.0, 2024-03-03

* New: Analog-style spectrum analysis. Based on https://codepen.io/TF3RDL/pen/MWLzPoO.
* Improved: Performance optimization. Rendering will stop when the main window is minimized.
* Improved: Small performance optimization in SWIFT.
* Changed: The grid lines can be displayed without an X or Y-axis.
  * X-axis and Y-axis mode "None" still disables everything.
  * The X-axis or Y-axis labels can be controlled with the top, bottom, left and right settings.
  * The X-axis Line and Y-axis Line style have been renamed to Vertical and Horizontal Grid Line.
* Fixed: The style list box in the configuration dialog was not cleared before it was filled again after a reset.
* Fixed (Regression): Gradient brushes are created again with the colors in the same order as shown in the configuration dialog.

You can download it from Components repository or upgrade from within foobar2000.
The component is awesome!

Re: foo_vis_spectrum_analyzer

Reply #505
Agreed.  I finally moved on from my jitter fears since 0600 after being able to set this new version up for flawless (to me) performance.  The other players I use (MusicBee and AIMP) have nothing remotely comparable.

Re: foo_vis_spectrum_analyzer

Reply #506
* New: Analog-style spectrum analysis. Based on https://codepen.io/TF3RDL/pen/MWLzPoO.
Finally, we got the IIR filter bank spectrum analyzer for foobar2000, so if I see this actually working, I don't need Voxengo AnSpec or foo_dsp_vst3 anymore just for visualization

BTW, I think it is fine to deviate from ANSI S1.11-2004 standard for octave bands spectrum analyzer not based on FFT as it is a visualization component after all (though it can be configured to do something more useful), but I think making the IIR filter bank ANSI-compliant would benefit for an another spectrum analyzer component like Enhanced Spectrum analyzer (foo_enhanced_spectrum_analyzer) component by @Crossover

I'm thinking of compiling the next versions with Advanced Vector Extensions 2 (AVX2) instructions enabled. This would mean that the CPU in your computer should be released in 2013 or later (10 years ago, Intel Haswell).

Is that an unreasonable requirement?

I'm hoping for a civil discussion...

Well, that could be the new but unreasonable requirement unless a proper fallback to SSE4.2 down to SSE2 is implemented for compatibility (at the expense of performance obviously for low-end CPUs)

Sure, the constant-Q sliding DFT and even analog-style analyzer can benefit from use of SIMD instructions (especially something like AVX2)

BTW, since I have the version 0.5.0.1 of this component, would the configuration of this component be reset if I upgrade this to the latest version (currently v0.7.2.0) as it might have breaking changes down the line since the old version of this I've have?

Re: foo_vis_spectrum_analyzer

Reply #507
BTW, since I have the version 0.5.0.1 of this component, would the configuration of this component be reset if I upgrade this to the latest version (currently v0.7.2.0) as it might have breaking changes down the line since the old version of this I've have?
I took care to provide upgrade paths and conversion routines along the way. It's not pretty code but it should work.

Re: foo_vis_spectrum_analyzer

Reply #508
Unfortunately I have another bug report for 0710.  When the X-axis frequency scale (distribution linear, scaling logarithmic) is set for an upper limit past about 24 kHz, instead of an expected fall-off before that point, a space/"notch" appears and frequency bars start appearing again where none should be.  In version 0600, this does not happen--a fall-off occurs and then no more activity is shown.  This is with normal music, not a test wave, etc.  The images below aren't from the the same exact moment but are representative of an entire song.  They show the X-axis set for 26 kHz max, first from 0600 and then 0710:
  
Did you disable the "Common / Suppress mirror image" flag? It was a feature request to show the amplitudes of frequencies above the Nyquist frequency. Default is to suppress the mirror image.


Hi,
please excuse my lack of knowledge but can a file that is 44,1/24 show "mirror frequencies" higher than the sampling rate? If I enable the mirror option in your componet it shows freqs up till 96kHz. This seems strange.
On the other hand if I play SACDISO and suppress mirror freqs it shows bars only to about 22,05kHz which is the more strange because of sacd specifications (and I use Native DSD streaming via USB to DAC so no PCM conversion and no filters/limiters etc.; plus I use 192/24 freq just for visualisation purpose - so why there is nothing in the spectrum - everything above 22,05 is hidden as mirror freqs).


Re: foo_vis_spectrum_analyzer

Reply #509
This plugin becomes better and better, thank you :)

I have a strange behaviour with bar mode and alpha transparency, it looks like the LED mode don't manage transparency like bar mode.

Bar mode:
X

LED mode:
X

Request:
For me the LEDs are a bit too thick, is it possible in a future developpement to reduce or adjust their size like this example ?
X

Thanks

Re: foo_vis_spectrum_analyzer

Reply #510
I'm trying to emulate the spectrum analyzer aesthetic from Cyberpunk 2077.

I've basically done it by differentiating the color for the peak indicator, and setting peak mode to Gravity; Hold time to 0; Acceleration to 2. I'm not sure how accurate that is to achieving an actual curve line type visualization for bar mode, but aesthetically it kinda works. If it's a minor addition, consider adding a bar line style.

Re: foo_vis_spectrum_analyzer

Reply #511
This plugin becomes better and better, thank you :)

I have a strange behaviour with bar mode and alpha transparency, it looks like the LED mode don't manage transparency like bar mode.

Bar mode:
[attach type=thumb]29547[/attach]

LED mode:
[attach type=thumb]29549[/attach]

Request:
For me the LEDs are a bit too thick, is it possible in a future developpement to reduce or adjust their size like this example ?
[attach type=thumb]29551[/attach]

Thanks
The 'LED's are created simply by overwriting the bar with a separate brush the erases every other line of pixels. From a performance point of view it was very inexpensive.

I'll do some research to see if I can improve the look without impacting performance too much.

Re: foo_vis_spectrum_analyzer

Reply #512
I'm trying to emulate the spectrum analyzer aesthetic from Cyberpunk 2077.

I've basically done it by differentiating the color for the peak indicator, and setting peak mode to Gravity; Hold time to 0; Acceleration to 2. I'm not sure how accurate that is to achieving an actual curve line type visualization for bar mode, but aesthetically it kinda works. If it's a minor addition, consider adding a bar line style.
Can you get me a better picture of it? It think it's not as simple as rendering a curvy line. That would also be expensive performance wise.

Re: foo_vis_spectrum_analyzer

Reply #513
Thanks so much for all your hard work on this, it keeps getting better and better!

Is there functionality for users to save and share their setups so they can be imported into other foobar installs?
I would love to try out some of the ones being discussed on here (without having to individually adjusting all the settings).
-StuPC

p.s. my setup attached

Re: foo_vis_spectrum_analyzer

Reply #514
Thanks so much for all your hard work on this, it keeps getting better and better!

Is there functionality for users to save and share their setups so they can be imported into other foobar installs?
I would love to try out some of the ones being discussed on here (without having to individually adjusting all the settings).
-StuPC

p.s. my setup attached
Working on it. Actually, it's finished but I want to put some other stuff in the next release.


Re: foo_vis_spectrum_analyzer

Reply #516
I'm trying to emulate the spectrum analyzer aesthetic from Cyberpunk 2077.

I've basically done it by differentiating the color for the peak indicator, and setting peak mode to Gravity; Hold time to 0; Acceleration to 2. I'm not sure how accurate that is to achieving an actual curve line type visualization for bar mode, but aesthetically it kinda works. If it's a minor addition, consider adding a bar line style.
Can you get me a better picture of it? It think it's not as simple as rendering a curvy line. That would also be expensive performance wise.
I updated the reference point; I've added the peak line mode for the bars and LED mode, which is something @metal_termite wants

BTW, wouldn't just setting the tuning frequency to 1kHz automatically makes one third octave bands compliant with ANSI standards in terms of band center frequencies or is it?

Re: foo_vis_spectrum_analyzer

Reply #517
I use foobar2000-64bits (portable mode) with Wine in Linux, but this version of  foo_vis_spectrum_analyzer: 0.7.2.0, isn't working. If I change to version 0.7.1.0 it shows the bars and looks great. Maybe it's the configuration that changed between versions, where they are stored?

Re: foo_vis_spectrum_analyzer

Reply #518
Can you get me a better picture of it? It think it's not as simple as rendering a curvy line. That would also be expensive performance wise.

Unfortunately, that's the best I could provide. This is my setup https://i.ibb.co/VMKfVsb/Animation.webp that attempts to emulate my goal, but it's not quite right (because it's obviously using peak indicators that lag behind). If I can attempt to rephrase the look I'm attempting to emulate, basically the top row of each rendered bar at any given point is always a distinct color.

Re: foo_vis_spectrum_analyzer

Reply #519
I use foobar2000-64bits (portable mode) with Wine in Linux, but this version of  foo_vis_spectrum_analyzer: 0.7.2.0, isn't working. If I change to version 0.7.1.0 it shows the bars and looks great. Maybe it's the configuration that changed between versions, where they are stored?
In the 32bits works like a charm.

*** Sorry for this, I reinstalled version 0.7.2.0 in 64bits foobar2000 and,,, it worked. So, no problem. It's only in my computer maybe.

Re: foo_vis_spectrum_analyzer

Reply #520
Feature request: Options to use more accurate peak decay and main bar time smoothing; decouple peak decay times and rate from FPS (for all analyzers) and/or making the calculation of peak decay and main bar time smoothing to be done during calculation, not as a post-processing effect (time-domain filter bank-based analyzers only, but includes conventional/FIR-based sliding DFT obviously)

I also suggest a new peak mode "Analysis", where calculation of spectral peaks is done before transformation to dB or nth root (just like main bar time smoothing does, which is done before log-amplitude/nth root transformation), so it decays exponentially when viewed with linear amplitude scale and linearly when viewed in logarithmic amplitude scale, which is more in-line with @Crossover's Enhanced Spectrum analyzer (foo_enhanced_spectrum_analyzer) component except the peak hold is in ticks per 60FPS (actually it can vary if the option to untie peak decay/time smoothing from FPS is turned off) instead of milliseconds and decay rate is not dB/second and instead it follows the AnalyserNode.smoothingTimeConstant's metric

Re: foo_vis_spectrum_analyzer

Reply #521
Can you get me a better picture of it? It think it's not as simple as rendering a curvy line. That would also be expensive performance wise.

Unfortunately, that's the best I could provide. This is my setup https://i.ibb.co/VMKfVsb/Animation.webp that attempts to emulate my goal, but it's not quite right (because it's obviously using peak indicators that lag behind). If I can attempt to rephrase the look I'm attempting to emulate, basically the top row of each rendered bar at any given point is always a distinct color.
@metal_termite,

the next version will have a few extra styles that will make it more easier to emulate that effect.

Re: foo_vis_spectrum_analyzer

Reply #522
v0.7.3.0, 2024-03-09

* New: Presets.
  * The configuration of the component can be written to and read from preset files (*.fvsa).
  * The default location of the preset files is the root of your profile directory but this can be changed.
* New: Extra styles.
  * Bar Area: The new name for the Bar Spectrum style.
  * Bar Top: Defines the style for the top of the spectrum bar. Defaults to color source None for backwards compatibility.
  * Peak Area: Defines the style for the area below the peak indicator. Defaults to color source None for backwards compatibility.
  * Peak Top: The new name for the Peak Indicator style.
* Improved: LED mode properly renders the 'LEDs' as blocks.
* Improved: The font of the graph description can be specified.
* Improved: Dark mode tooltips.
* Fixed: Multiple controls were not updated when switching graphs in the configuration dialog.

You can download it from Components repository or upgrade from within foobar2000.

Re: foo_vis_spectrum_analyzer

Reply #523
Thanks for the updated tooltips. Minor niggle: they don't track dark mode being toggled on/off. :P

Also, the "User Interface" colours don't seem to work. This is what I'm trying/hoping would work...

Styles>Graph Background
Color Source>User interface
Color Index>Background

It's not picking up my Default UI background colour - I've not tested CUI.

And IMHO, while User interface is selected, the colour picker should be unavailable.

edit: I have all grid lines/text labels off and I was previously using a fixed solid colour which is fine.

Re: foo_vis_spectrum_analyzer

Reply #524
Also, the "User Interface" colours don't seem to work. This is what I'm trying/hoping would work...
The colors get grabbed when the component is created. I'm not comfortable with the whole hook/callback mechanism from DUI and CUI yet. Feels unnatural to me.

Edit: DUI reacts to ui_element_notify_colors_changed but does not notify the configuration dialog yet when it's open.