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: Spectrum Visualization feature requests (0.9.5) (Read 46863 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Spectrum Visualization feature requests (0.9.5)

I know that the spectrum visualization is probably the last of most people's concerns regarding the new default UI, but it is actually one of the main reasons I switched to it.  I loved the simple spectrum plug-in for columsUI with Foobar .8.x, but when foobar .9.x came along this component was not updated for .9  .  So when I saw that the new default UI had a similar visualization I had to switch. 

Anyway, after looking at the feature requests page, I don't see anything for the spectrum visualization, so I thought I'd start one. 

First of all, it is quite good already.  I think it's awesome being able to change the color scheme of the amplitude scale, and the different channel options.  Now for my requests.

First, it looks like the the frequency axis is linear, and I always thought a log scale works better since most of the action is in the lower 5 kHz.  So, perhaps an option to switch to a log scale that allows us to see what's going on down there more clearly?  I don't really know how hard it is to do, but it's just a single mathematical conversion, so I wouldn't think it would be that difficult (could be way wrong though).  As for what particular log base you should use...I don't really know....perhaps you could have a slider bar that allows us to change the base of the log scale to adjust how much the lower frequencies are spread out, and the upper frequencies are squished...If this is too complicated, then you could just pick a good log scale and allow it as an alternative to the linear scale (or maybe a couple choices).

Second, It would be nice to have a way to customize the scrolling speed to personal preference.  For instance, I was thinking I would speed it up some to get more spacial separation on the temporal axis .  Again, this doesn't seem like it would be too difficult, since it was probably arbitrarily set by some parameter.  Maybe we could have something like a few different options for the speed, or even a slider bar.

Someone else mentioned elsewhere that they wanted to be able to see the future spectrum as well as the past.  I don't really care about that too much, but I was thinking that it could probably be done by having a vertical line in the in the center of the spectrum display that marks the current playback time...then you would be able to see what's coming on one side, and what has already played on the other, and what's currently playing would be on the line.  Could be a cool option.

Now, being able to see the spectrum that is coming before it plays sounds like it could possibly be a difficult thing to achieve, since you probably only have it compute the spectrum for the current playback time and then just shift it over to display the next time interval.  Making it look ahead into the file to compute the spectrum before it is playing sounds like it could be difficult, but maybe not...maybe the whole spectrum is computed when the song begins playing and then it just displays a portion of it on the screen, then it would be easy to do.

OK....I think thats it for my requests and comments. 

Thanks!

Spectrum Visualization feature requests (0.9.5)

Reply #1
what i really miss are grid lines at 16k and 22k or something like that.

Spectrum Visualization feature requests (0.9.5)

Reply #2
Hi,
First, it looks like the the frequency axis is linear, and I always thought a log scale works better since most of the action is in the lower 5 kHz.  So, perhaps an option to switch to a log scale that allows us to see what's going on down there more clearly?
I would like to have a logarithmic scale for the spectrograph too, because linear scale doesn't display correctly the images encoded in music by the process of steganography.
Examples and illustration of what I'm talking about can be found at this page :
http://www.bastwood.com/aphex.php

Spectrum Visualization feature requests (0.9.5)

Reply #3
yes, the spectrum feature of foobar is important, I think for many 0.8.3 users the reason so far not to update until the great 0.9.5 !

(besides the os issue, that on older PCs with win95/98 you need older foobar, but well, indeed, I have had win2000sp3 even running some years ago on an 486with 75 MHz/4 for some word.doc and excel work!, so win2000 should be possible with older Pentiums to have a "music machine", oh, just found out, that win2000 is also only possible with foobar versions prior 0.9.5, but now back to topic)

I know the spectrum viewers of an old winamp (spectrum analyzer was plugin, which you needed to pay for), and the spectrum viewer of 0.8.3.

The 0.8.3 spectrum was more or less sufficient after all, it had some grid lines, markers to estimate the frequency values, like counting ...10, 11, 12, .. 15, 16,..., 20, 21 .. kHz

This feature I request kindly for future spectrum viewers.

The 0.8.3 had other nice options, you could select between
1. both channels,
2. mono=the combined signal of the stereo,
3. and the difference signal between left & right channel.

Feature 3. is nice to have also


The features requested above like switching between linear and logarithmic scale make sense, iirc, the winamp spectrum had this feature.

Spectrum Visualization feature requests (0.9.5)

Reply #4
When I started this topic, I should have included the [0.9.5] in the topic heading, since that is what other posts are doing to signify that the post pertains to the new version of foobar...And I can't find a way to modify the topic heading, so would it be possible for a Mod to add it in?

Thanks!

Spectrum Visualization feature requests (0.9.5)

Reply #5
Just wanted to bump this topic back to the top, in the hopes that some of the requests might end up on the official request list (or at least acknowledged and explained why they may or may not be considered for implementation in the future).  I know that the spectrum is probably the least of the dev's worries, what with more important bugs and usability issues to take care of, but I have been waiting since foobar 0.9 came out for a spectrum analyzer like this, and it is the reason I switched to the DUI, so it is important to me. 

Thanks!

Spectrum Visualization feature requests (0.9.5)

Reply #6
btw., if somebody of the devs finds time to update the spectrum viewer,
maybe think also about an expanding (a switch to select) the frequency range.

CD has max. 22 kHz, but today you could play many other music containing theoretically up to 48 kHz (96 kHz sampling, or even 192 k sampling with 96 kHz frequencies.

So, if somebody should have eg. recorded his vinyl by high sampling rates, it is interesting to watch for higher frequency content, or think of DVD-A etc.

let's gather some features necessary:

1. a ruler/scale to determine special frequencies more exact

2. difference spectrum between left & right channels

3. switch to select between linear & logarithmic scale

edit: removed request for spectrum expander to 24, 28, 96 kHz, as it exists already automatically
but it shows, that a ruler is necessary

Spectrum Visualization feature requests (0.9.5)

Reply #7
and here's a little glitch with default background, just cosmetic thing really

normal playing, background is green (custom color1)


and this happens on startup or resize from smaller to bigger window (basically spectrum forces background color to black instead of chosen custom color1)

Spectrum Visualization feature requests (0.9.5)

Reply #8
For the VIS is there any way that an option be added so that we can choose what is being plotted on what axes. For instance, the current setup is x-axis is time, y-axis is frequency and color depicts intensity. Can there be a way in a future release of foobar 0.9.5 that we could set for instance the frequency to the x-axis and intensity to the y-axis? Also, could there be an option to choose between logarithmic or linear scales for ANY of the axes?

Thanks,
808

Spectrum Visualization feature requests (0.9.5)

Reply #9
btw., if somebody of the devs finds time to update the spectrum viewer,
maybe think also about an expanding (a switch to select) the frequency range.

CD has max. 22 kHz, but today you could play many other music containing theoretically up to 48 kHz (96 kHz sampling, or even 192 k sampling with 96 kHz frequencies.

So, if somebody should have eg. recorded his vinyl by high sampling rates, it is interesting to watch for higher frequency content, or think of DVD-A etc.

It already works this way, just try to resample or change # of channels through a DSP, and you'll see that Spectrum changes correspondingly.

My small feature request: allow me to drag Spectrum window by the client area, not only by the window title. Thank you!
stimulating the audio nerve directly

Spectrum Visualization feature requests (0.9.5)

Reply #10
Oh, and please create a mode where spectrum does not move, but is drawn from left to right, like the original mode of foo_vis_spectrum (where scrolling mode was adder later). I want this mode for the speed reasons.
stimulating the audio nerve directly

Spectrum Visualization feature requests (0.9.5)

Reply #11
Unfortunaly, I'm not familiar enough with VS to create spectrum DLL. I use my own spectrum analyser, that based not on FFT. So, should we expect some with similar algorithm?

Spectrum Visualization feature requests (0.9.5)

Reply #12
Thanks, you guys, for all the wonderful work you've put into this software. It's worked very well for me. I'm excited about the prospect of a log-freq visualization program, since it maps so neatly onto musical notation. I'm thinking that two things might be useful to help interpret the results, but haven't played around nearly enough to know what to expect.

First, it seems like the z-scale might be tricky -- we want to clearly see peaks across a wide range of loudness levels. Perhaps we should have a couple different scaling options? At the very least, it might be useful to have both monochrome and full-color intensity maps.

Second, in monochrome mode, I wonder if some sort of cyclical coloring scheme might be useful? That is, map luminance to loudness, but tint with a different color depending on position within the octave. If I'm thinking this through correctly, the overall color balance would reflect the key the song is written in.

Thanks again. We sure do appreciate all the effort you folks put in, and thanks for entertaining my naive suggestions.

Spectrum Visualization feature requests (0.9.5)

Reply #13
Unfortunaly, I'm not familiar enough with VS to create spectrum DLL. I use my own spectrum analyser, that based not on FFT. So, should we expect some with similar algorithm?

Your code uses a regular DFT, whereas an FFT is just an algorithm to compute a DFT in O(n log n) instead of O(n^2), so I don't see your point.

Spectrum Visualization feature requests (0.9.5)

Reply #14
Unfortunaly, I'm not familiar enough with VS to create spectrum DLL. I use my own spectrum analyser, that based not on FFT. So, should we expect some with similar algorithm?

Your code uses a regular DFT, whereas an FFT is just an algorithm to compute a DFT in O(n log n) instead of O(n^2), so I don't see your point.

No, FFT is not JUST it, because it has poor quality. New multi-core CPUs allow quality DFT's. Because of it, it seems to be reasonable to include quality alternative.

Spectrum Visualization feature requests (0.9.5)

Reply #15
If you want to improve the quality of a fourier transform increase it's size, I assume by "quality" you mean how well the artefacts of a finite fourier transform are reduced. Why use a slower algorithm if you can do the same thing with a faster one?

Spectrum Visualization feature requests (0.9.5)

Reply #16
If you want to improve the quality of a fourier transform increase it's size, I assume by "quality" you mean how well the artefacts of a finite fourier transform are reduced. Why use a slower algorithm if you can do the same thing with a faster one?

Assumptions is inappropriate, because that I wrote is unambiguous. FFT size of full audio dynamic range with acceptable resolution on low frequencies is astronomic. So, "doing the same thing faster" is impossible.

Spectrum Visualization feature requests (0.9.5)

Reply #17
FFT size of full audio dynamic range with acceptable resolution on low frequencies is astronomic.


I'm in over my head, here, but it seems like this complaint is more easily addressed by something like a constant-Q transform?


Spectrum Visualization feature requests (0.9.5)

Reply #19
I've noticed some things in the spectrum vis. I come from Winamp, so all my comparisons are with the Tiny plugin that it has by default. I'm running 0.9.5, by the way. Some tweaks may have been done already.

* Bright pixels cause strange gradient streaks to the top and bottom of the display. It's especially noticable when there's little more than a beat in the picture: huge gradients shoot towards the top of the window. It's hard to see how this is an intended effect, because all it does is muddy up the display. Rock guitars do a good job of hiding it, but with not-full-spectrum music it gets a little annoying. It's like the visual equivalent of resonation due to high volume.

* Foobar's vis is generally a lot brighter than Winamp's. I suspect the volume-to-gradient mapping is done differently, or that it uses a slightly different analysis method. Not really a bug or issue , but I see it, and I don't quite know how I feel about it until point 1 is resolved/fixed -- those gradients really get in the way.

Features I'd humbly like:
* a few more configurable colours than just foreground/background.
* fullscreen option
* left-to-right sweep rendering, as alternative to the scrolling mode. It's not quite as comfortable to look at continuously moving stuff.
* grid lines etc are fine, but I personally don't like numbers and lines distracting from the Pretty Picture, so I'd rather have it optional. I'm looking at music, not doing research on it.
* optinal linear frequency scaling as well. Though I'm not sure how much more detail one'd actually get.

A spectrograph is just about the only visualisation that's "accurate" from a human perspective, so I place some value on crisp, plain audio display (none of that milkdrop and geiss stuff for me, thanks).

Some screenshots (because what good is talking about a vis plugin without some visual support?):

Winamp 5.05 versus 5.5/Bento (something fishy in 5.5 when feeding data to the vis plugin, I think):
http://www.pliv.com/show/winamp_nsfs_voiceprint.png

Foobar, playing Underworld - Confusion The Waitress, showing excessive streaking -- I assure you that's not percussion.
http://www.pliv.com/show/fb2k_spectrum_streaks.png

Spectrum Visualization feature requests (0.9.5)

Reply #20
* a few more configurable colours than just foreground/background.
Its already done - double-click on white space below colors.

 
* grid lines etc are fine, but I personally don't like numbers and lines distracting from the Pretty Picture, so I'd rather have it optional. I'm looking at music, not doing research on it.
They are useful to check for transcodes, you can compare declared lowpass filter from headers to actual one.

Spectrum Visualization feature requests (0.9.5)

Reply #21
Quote
Its already done - double-click on white space below colors.


Good stuff. Thanks.

Quote
They are useful to check for transcodes, you can compare declared lowpass filter from headers to actual one.


True, it's very useful at times. But not constantly, is my point.

Spectrum Visualization feature requests (0.9.5)

Reply #22
and here's a little glitch with default background, just cosmetic thing really

normal playing, background is green (custom color1)


and this happens on startup or resize from smaller to bigger window (basically spectrum forces background color to black instead of chosen custom color1)

+1 for requesting this fixed.
I use a color for my background so that the different windows mesh with the color of foobar's buttons, menus, etc. and it's really noticeable everytime

Spectrum Visualization feature requests (0.9.5)

Reply #23
Displaying the difference between left and right channel has already been requested.

In the same vein I would like to make another request:

something I would really like to see would be the ability to display the spectrogram as a single mono channel, but use different colors depending on the difference between left and right stereo channel.

That way it would be easy to visually distinguish instruments or voices that are spatialy separated in the recording.


Is there any tool that already does something like this so I could see how it works out in practise?


A possible way how this could be implemented:

Extend the spectrogram color selector so that it allows three lists of colors instead of one:
One list of colors for values that are identical on the left and on the right channel
One list for values that are strongly predominant on the left channel
One list for values that are strongly predominant on the right channel.

And Example:
sounds coming from the center would be equally represented on both channels and could be displayed in black-blue-yellow
Sound from the right could be displayed in black-darkGreen-lightGreen
Sound from the right could be displayed in black-darkRed-lightRed

Everything inbetween these values would be drawn as a proportional mixture of the respective colors.

One problem is that stereo separation will vary greatly between recordings. While one soundtrack could have very strong stereo separation, with some sounds only on the left or the right channel, another soundtrack could have only at most small differences between channels.

To dynamically adjust to this, the difference between left and right should be stretched.
a variable could measure the bigest discrepancy between left and right for the last 10 seconds of output, and sounds that have this much discrepancy are considered "entirely right", or "entirely left".

Spectrum Visualization feature requests (0.9.5)

Reply #24
I'd like to propose a disable screensaver feature for the built in visualistions. I imagine it would be the most useful if it only disabled the screensaver if a song was playing.


If I change to logarithmic scaling in the spektrogram most of it becomes blurred. I'm guessing it's because samplingstays linear. If this is the case i would like to propose logarithmic sampling for that view. (Correct me if I'm writing nonsense)