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

Re: foo_vis_spectrum_analyzer

Reply #800
Anyone have a zip full of presets?

Re: foo_vis_spectrum_analyzer

Reply #801
By going to Common in the Artwork section and activating the "Show artwork on background" flag, if you do not have the panel active the artwork will not appear.






Re: foo_vis_spectrum_analyzer

Reply #802
Hello, I have a small doubt regarding this gap when changing the window size... Any idea how to resolve this or why it's happening in the first place? I'm not blaming the plugin since this seemed to happen with other spectrum analyzer programs as well unless I change the note range and bands per octave to somewhat eliminate this gap. You can see when windowed there's a-lot of gap present at the beginning of the note compared to full-screen but I want to totally eliminate this gap.

Re: foo_vis_spectrum_analyzer

Reply #803
Hello, I have a small doubt regarding this gap when changing the window size... Any idea how to resolve this or why it's happening in the first place? I'm not blaming the plugin since this seemed to happen with other spectrum analyzer programs as well unless I change the note range and bands per octave to somewhat eliminate this gap. You can see when windowed there's a-lot of gap present at the beginning of the note compared to full-screen but I want to totally eliminate this gap.
BTW, that start and end "gap" do exist in original foo_musical_spectrum when the horizontal screen resolution is not an integer factor of number of actual bands, which is absent in this CodePen project and even older version of this component

Re: foo_vis_spectrum_analyzer

Reply #804
which is absent in this CodePen project and even older version of this component

Was there a reason to revert that change? As of now it looks odd to resize the window in such a way where all the bands are laid out without any gaps

Re: foo_vis_spectrum_analyzer

Reply #805
which is absent in this CodePen project and even older version of this component

Was there a reason to revert that change? As of now it looks odd to resize the window in such a way where all the bands are laid out without any gaps
Yes, but if @pqyt were to revert this change, its current behavior when comes to resizing and how bars are laid out should be added as an opt-in feature, which can please some users of old foo_musical_spectrum that wants a 64-bit foobar2000 right?

Re: foo_vis_spectrum_analyzer

Reply #806
which is absent in this CodePen project and even older version of this component

Was there a reason to revert that change? As of now it looks odd to resize the window in such a way where all the bands are laid out without any gaps
Different opinions. I can't please everybody. There was a heavy push to get everything pixel-aligned. There is no such thing as half-a-pixel: if everything needs to be aligned and evenly spaced then the bars needs to have a width that is an integer and therefor the whole component width can not be used.

Re: foo_vis_spectrum_analyzer

Reply #807
I removed the rounding code. All math is done in DIP not pixels. If you think about it: rounding the values before giving them to Direct2D prevents it from choosing the correct pixel when it's time to create the final picture.
225 DPI with 7 bars and gauge gap of 1 DIP renders correctly now AFAICT.
Good to know it now renders correctly. Can you point me to the version/beta of your plugin that renders correctly with different windows scaling?
Speaking of pixel perfect. Can you please point me to version/beta that handles windows scaling correctly?

Re: foo_vis_spectrum_analyzer

Reply #808
I removed the rounding code. All math is done in DIP not pixels. If you think about it: rounding the values before giving them to Direct2D prevents it from choosing the correct pixel when it's time to create the final picture.
225 DPI with 7 bars and gauge gap of 1 DIP renders correctly now AFAICT.
Good to know it now renders correctly. Can you point me to the version/beta of your plugin that renders correctly with different windows scaling?
Speaking of pixel perfect. Can you please point me to version/beta that handles windows scaling correctly?
There's none yet. I'm working on other components for the moment.

Re: foo_vis_spectrum_analyzer

Reply #809
I removed the rounding code. All math is done in DIP not pixels. If you think about it: rounding the values before giving them to Direct2D prevents it from choosing the correct pixel when it's time to create the final picture.
225 DPI with 7 bars and gauge gap of 1 DIP renders correctly now AFAICT.
Good to know it now renders correctly. Can you point me to the version/beta of your plugin that renders correctly with different windows scaling?
Speaking of pixel perfect. Can you please point me to version/beta that handles windows scaling correctly?
There's none yet. I'm working on other components for the moment.

OK. That's your prerogative. Sorry, to hear that though.

Re: foo_vis_spectrum_analyzer

Reply #810
What you forget is antialiasing in Direct2D (since hardware-accelerated version of foobar2000's built-in visualizations like Spectrum have anti-aliasing) or is it?

Re: foo_vis_spectrum_analyzer

Reply #811
What you forget is antialiasing in Direct2D (since hardware-accelerated version of foobar2000's built-in visualizations like Spectrum have anti-aliasing) or is it?
Anti-aliasing is turned off for graphic elements with straight edges like the spectrum bars. It is enabled for the curve f.e.

Re: foo_vis_spectrum_analyzer

Reply #812
Anti-aliasing is turned off for graphic elements with straight edges like the spectrum bars. It is enabled for the curve f.e.
So what's wrong with antialiasing on spectrum bars (like in foobar2000's built-in "Spectrum" w/ hardware-acceleration) and LEDs visualization?

There's none yet. I'm working on other components for the moment.
Good thing that this response helped me clarify why there aren't any updates on this component, though I'm more of looking towards upcoming version 2 of @Crossover's foo_enhanced_spectrum_analyzer, though corrections (making audio analysis algorithm in this component behave very similarly if not same as in my CodePen projects and implemented correctly this time) on foo_vis_spectrum_analyzer are appreciated

Re: foo_vis_spectrum_analyzer

Reply #813
Hi and thanks for the plugin!
I have a small request: I would like to be able to use a two decimals in the smoothing factor value. Now when I try to input for example 0.95, it shows the correct result as long as I don't click away from the input field. When I click away or save the settings, it rounds it to the nearest single decimal value. So in that case it rounds it to 1.0. I'd like to use a smoothing factor of about 0.95 with the Peak smoothing method.

Re: foo_vis_spectrum_analyzer

Reply #814
Hi and thanks for the plugin!
I have a small request: I would like to be able to use a two decimals in the smoothing factor value. Now when I try to input for example 0.95, it shows the correct result as long as I don't click away from the input field. When I click away or save the settings, it rounds it to the nearest single decimal value. So in that case it rounds it to 1.0. I'd like to use a smoothing factor of about 0.95 with the Peak smoothing method.
No problem. I'll change it in the next version.

 

Re: foo_vis_spectrum_analyzer

Reply #815
Foobar2000 2.1.5 32bit

Hard crash when manually trying to change the percentages as indicated by the red arrow
When adding multiple spectrogram graphs, graph labels are placed on top of each other, and X and Y labels for each graph are always shown on the left graph when shown horizontally and on the top graph when stacked vertically
Also, for the spectrogram graphs, on my 7.1 system, it doesn't show the the graphs for Side-Left/Side-Right.
And the colors look like they are top-down with respect to the X-axis labels instead of bottom-up like the built-in spectrogram (channel order in the built-in is different though and can't be changed.)
Aside from that, scroll speed could be a bit faster, it feels like it's half the speed of the built-in spectrogram. Might also show a bit more detail when faster.

Re: foo_vis_spectrum_analyzer

Reply #816
Hard crash when manually trying to change the percentages as indicated by the red arrow
Not reproducible. Can you be more specific about the circumstances and what you entered?
Aside from that, scroll speed could be a bit faster, it feels like it's half the speed of the built-in spectrogram. Might also show a bit more detail when faster.
The spectogram updates every second because that's the frequency of the fb2k update event. I'll do some research about an alternative timer.

Re: foo_vis_spectrum_analyzer

Reply #817
Hard crash when manually trying to change the percentages as indicated by the red arrow
Not reproducible. Can you be more specific about the circumstances and what you entered?
I just tried to change the percentage by typing in a new number, as soon as I started typing, the whole of foobar2000 just silently died. I've attached the crash dum from the attempt I just did for this post.

Aside from that, scroll speed could be a bit faster, it feels like it's half the speed of the built-in spectrogram. Might also show a bit more detail when faster.
The spectogram updates every second because that's the frequency of the fb2k update event. I'll do some research about an alternative timer.
Don't know if you ever played with the Waveseekbar component, but I use the following calculation in effects in 'PS_IN VS( VS_IN input )' when I use it in scroll mode, which happens to produce the same speed as the internal spectrogram component. That wasn't my initial intention when I tried adding a scrolling mode, just a fortunate outcome. But I'm sure there must exist some info on how fast the internal spectrogram scrolls

Code: [Select]
output.tc.x = input.tc.x + cursorPos * trackDuration / (viewportSize.x / 100)

and would be nice if the SoX color pattern could look exactly like the graphs SoX itself creates.

Re: foo_vis_spectrum_analyzer

Reply #818
How do you even change the colors of the spectrogram???

I've been trying in vain to get it to show even something remotely resembling the internal one... the colors just won't change...

Ah, so you can change colors what you want, they don't have any effect unless the dropdown shows custom...

Might want to disable that whole color bit if you've got something else than custom selected.

Re: foo_vis_spectrum_analyzer

Reply #819
How do you even change the colors of the spectrogram???
By selecting a different color source for the "Spectogram" style and modifying the color scheme or the individual colors.

Re: foo_vis_spectrum_analyzer

Reply #820
Hi @pqyt,

I was reading this post here:
https://hydrogenaud.io/index.php/topic,126042.msg1046430.html#msg1046430
and I thought I would post my question in this thread.

Does foo_vis_spectrum_analyzer supports an interface between your component and JavaScript to read
the left and right channels and peaks via ActiveX in realtime?

I am using the old foo_vis_vumeter component as @Julero has posted and it reads
the left and right channels and peaks without even the need of a panel with the foo_vis_vumeter component being displayed.

I have a custom peakmeter bar and it feeds the data like this:
Code: [Select]
	/** Indicates if the foo_vis_vumeter component is installed. */
VUMeter: utils.CheckComponent('foo_vis_vumeter')

if (Component.VUMeter) {
this.VUMeter = new ActiveXObject('VUMeter');
}

/**
* Calculates the decibel (dB) value of the given volume.
* @type {Function}
* @private
*/
this.toDecibel = (Level) => Math.round(2000 * Math.log(Level) / Math.LN10) / 100;

// * Set and monitor volume level/peaks from VUMeter
this.leftLevel  = this.toDecibel(this.VUMeter.LeftLevel);
this.leftPeak   = this.toDecibel(this.VUMeter.LeftPeak);
this.rightLevel = this.toDecibel(this.VUMeter.RightLevel);
this.rightPeak  = this.toDecibel(this.VUMeter.RightPeak);

// * Debug stuff
DebugLog('LEFT PEAKS: ',  this.leftPeak,   '      RIGHT PEAKS: ',  this.rightPeak);
DebugLog('LEFT LEVEL:  ', this.leftLevel,  '      RIGHT LEVEL:  ', this.rightLevel, '\n\n');

// Outputs:
LEFT PEAKS:  -12.86     RIGHT PEAKS:  0.36
LEFT LEVEL:  -13.89     RIGHT LEVEL:  -0.46

LEFT PEAKS:  1.67       RIGHT PEAKS:  2.85
LEFT LEVEL: -1.88       RIGHT LEVEL:   1.4

LEFT PEAKS:  4.92       RIGHT PEAKS:  5
LEFT LEVEL:  0.28       RIGHT LEVEL:   2.18

LEFT PEAKS:  2.23       RIGHT PEAKS:  3.08
LEFT LEVEL:  2.01       RIGHT LEVEL:   3.03

Can this be achieved also with your foo_vis_spectrum_analyzer component?
It would be great if this could be done because I need a replacement and want to ditch the old foo_vis_vumeter...

-TT

Re: foo_vis_spectrum_analyzer

Reply #821
I was reading this post here:
https://hydrogenaud.io/index.php/topic,126042.msg1046430.html#msg1046430
and I thought I would post my question in this thread.
Can this be achieved also with your foo_vis_spectrum_analyzer component?
It would be great if this could be done because I need a replacement and want to ditch the old foo_vis_vumeter...
The short answer: no.

The longer answer: foo_vis_spectrum_analyzer is already complex enough that makes me hesitate to add an interface with EdgeView. On the other hand foo_vis_text seems to get a completely different purpose than what I needed and intended it to do so it may make more sense to add functionality to forward other data and events to EdgeView and let JavaScript figure out what to do with it.

But I'll repeat my question: what about jscript_panel? Doesn't that have all the functionality you need?

Re: foo_vis_spectrum_analyzer

Reply #822
I am using the Spider Monkey Panel and as far as I know there are no callbacks or methods to read these data from
and I guess it is the same for the JScript Panel...

I thought that foo_vis_spectrum_analyzer component is the right place to ask for
but If foo_vis_text could provide these, I'll gladly take it. It really doesn't matter which component could provide it :)

-TT


Re: foo_vis_spectrum_analyzer

Reply #824
Now the dust seems a bit settled with your foo_uie_text component,
can I expect a bugfix for foo_vis_spectrum_analyzer in regard to windows scaling (125/150/175/225/250/350) peakmeter issues?

https://hydrogenaud.io/index.php/topic,125031.msg1045171.html#msg1045171

Thx
Eventually. It may surprise you but I do have a life besides foobar2000 development.