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_enhanced_spectrum_analyzer 2.x.x.x feature requests (Read 4428 times) previous topic - next topic - Topic derived from Re: foo_enhanced_spec...
0 Members and 1 Guest are viewing this topic.

foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

@TF3RDL could you stop endlessly spamming the thread? It' so tiring to open the thread for news and getting another reply to yourself by you. I mean, if you want to create a new thread with your suggestions, fine. But right now 90% of posts from this thread are yours, not adding anything to the discussion or bringing anything new to the component development (just your infinite requests). Other people have pointed you the same.
Ok, so I think it is actually better off to have its own thread just for FRs right? So here's the short list of Enhanced Spectrum analyzer that I wished to have for upcoming version 2.x.x.x:
  • Frequency bands mode (already being developed by @Crossover though I think it is not enough)
    • IIR filter bank mode: Alternative transform algorithm that doesn't rely on FFT algorithm and it has logarithmic frequency resolution
    • Adjustable number of bands per octave: I think the making BPO adjustable allow for 1/3rd octave bands analysis and 1/24th ones
  • More frequency scaling options
    • Linear and Mel/Bark/ERB frequency scales in-addition to logarithmic: Frequency bands mode should also accept linear as well as perceptual/psychoacoustic scales but in a different way (this also apply to logarithmic scale but not following octave bands, so it counts as alternate log frequency bands)
    • DC (0Hz) and Nyquist (fs/2) options for lower and upper Hz ranges respectively: As if upcoming adjustable frequency range is not enough
  • FFT (fast Fourier transform)
    • Non-power of two sizes like 576 samples: And also increase the max FFT size to something like 65536 samples
    • A feature to set FFT size in milliseconds instead of samples: The actual FFT size should automatically change depending on the samplerate, kinda like built-in spectrum but better
  • Expanded time smoothing options
    • An option to use linear and even squared amplitude scale for calculation of RMS spectrum and also, exponential and infinite (cumulative) averaging modes should be added too
    • Infinite decay rate mode for all spectrums (especially the RMS spectrum)

BTW for any mods/admins like @Peter, move all of my FRs for foo_enhanced_spectrum_analyzer from its main thread to this new thread I've made just for that, in-order to clean up the mess I've admittedly made on the main thread

And to give an idea on what my suggested (not all) features really mean for foo_enhanced_spectrum_analyzer, here's the relevant "interactive mockups" I've made:

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #1
Thank you for starting your own thread.  This will not only allow you all the freedom you need to describe your own ideas, but will allow the developer of the plugin the breathing space to post his own own news and updates in his original thread, which have been sorely missing, without fear of being "bombarded."

BTW, the Interactive Mockups you linked to are interesting;  others might try the Load from Local Device option with a music file, hit play, and then play with the "Visualization Settings" to the right of the web spectrum.

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #2
Thank you for starting your own thread.  This will not only allow you all the freedom you need to describe your own ideas, but will allow the developer of the plugin the breathing space to post his own own news and updates in his original thread, which have been sorely missing, without fear of being "bombarded."
Agreed with you and it would be even better if my FRs are migrated to this new topic I've made specifically for that (FRs/wishlists) by forum mods

BTW, I hope @Crossover gets active again and notices that I've made this separate thread out of the main topic, so yeah but as always, don't expect all of my suggestions (including FRs from someone else) to actually be implemented in foo_enhanced_spectrum_analyzer 2.x.x.x

BTW, the Interactive Mockups you linked to are interesting;  others might try the Load from Local Device option with a music file, hit play, and then play with the "Visualization Settings" to the right of the web spectrum.
Yep, but I'm sure that my own ideas on these interactive mockups would also work too on another players like AIMP and even MusicBee assuming if plugin developers noticed that and re-implement these too in a completely different programming language like but not limited to C++ and C#

 

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #3
One of my own "interactive mockups" has been updated: added infinite average spectrum (previously, this mockup of one of my many foo_enhanced_spectrum_analyzer feature requests were private, and now that aspect has been made into the public now as I can now update this project and others)

It will look something like this: (not so obvious when the screenshot is a static image rather than a video or GIF of it)
X

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #4
LED-style spectrum bars (for frequency bands mode, which foo_loudness_peakmeter already have I guess), which would look something like this:
https://www.youtube.com/watch?v=bqAz6kpdzNE

One of my own "interactive mockups" has been updated: added infinite average spectrum (previously, this mockup of one of my many foo_enhanced_spectrum_analyzer feature requests were private, and now that aspect has been made into the public now as I can now update this project and others)

It will look something like this: (not so obvious when the screenshot is a static image rather than a video or GIF of it)
BTW, here's a video of a mockup of infinite average spectrum for @Crossover's foo_enhanced_spectrum_analyzer:
https://www.youtube.com/watch?v=3de_QboEr4o

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #5
Calibration line "improvement": Use either linear or squared domain instead of logarithmic (dB) for calculating the calibration line based on average of all FFT bins, in-addition to a feature to use actual RMS (FIFO averaging done in squared domain) or linear averaging mode for calculating the RMS spectrum

BTW, here's the video of a mockup of new linear averaging (one of three averaging domains that I've wanted to see in the new version of @Crossover's awesome audio analyzer component) and the return of crest spectrum (that was removed in foo_enhanced_spectrum_analyzer 1.9.2.0) for the upcoming Enhanced Spectrum analyzer 2.0.0.0 update:
https://www.youtube.com/watch?v=BOcHKE7VMsk

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #6
BTW, a FIFO averaging done sample-by-sample (when using IIR filter bank instead of usual FFT) is where using Advanced Vector Extensions 2 (AVX2) instruction set can be helpful (if done properly) for foo_enhanced_spectrum_analyzer

Though keep in mind that a component using AVX2 would require your CPU to be quite modern (or more precisely, CPUs released past 2013 with Haswell microarchitecture of Intel CPUs and past 2015 with Excavator microarchitecture of AMD CPUs) unless fallbacks using older SIMD instructions (down to SSE2) are implemented properly in some of these components

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #7
For the spectrogram mode I've requested for @Crossover's Enhanced Spectrum analyzer component, I think it should work with IIR filter bank (alternative transform mode) as well, which can look like this:
X
X
on the upcoming foo_enhanced_spectrum_analyzer 2.0.0.0 (or something like that) version, and I would this version could have adjustable hop size for spectrogram speed (for both transformation algorithms) and averaging accuracy (FFT transform only) and for FFT mode, a feature to decouple FFT calculations from rendering would be nice for framerate-independent averaging time and constant scrolling speed for spectrogram display (adjustable via hop size parameter as I've said before)

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #8
@Crossover, any chances of sneak preview videos (or even a YouTube video or series of it) of what you've been working on the features like IIR filter bank and infinite averaging mode I've suggested for this component?
I would imagine @Crossover doing video showcase of Enhanced Spectrum analyzer 2.x.x.x you're working on would look like this:
https://www.youtube.com/watch?v=MfAyDDL416w
and this (comparison with Spectralissime perhaps for IIR filter bank mode in foo_enhanced_spectrum_analyzer):
https://www.youtube.com/watch?v=H1hs3QjqqjQ

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #9
Here's the spectral descriptor lines (horizontal = Hz, vertical = dB) could possibly look like in foo_enhanced_spectrum_analyzer:
X
Note that monitoring fields for these spectral descriptors (e.g. spectral centroid) are obviously going to be different from this image above and it would look more like ones from foo_loudness_peakmeter

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #10
Calibration line "improvement": Use either linear or squared domain instead of logarithmic (dB) for calculating the calibration line based on average of all FFT bins, in-addition to a feature to use actual RMS (FIFO averaging done in squared domain) or linear averaging mode for calculating the RMS spectrum

BTW, here's the video of a mockup of new linear averaging (one of three averaging domains that I've wanted to see in the new version of @Crossover's awesome audio analyzer component) and the return of crest spectrum (that was removed in foo_enhanced_spectrum_analyzer 1.9.2.0) for the upcoming Enhanced Spectrum analyzer 2.0.0.0 update:
https://www.youtube.com/watch?v=BOcHKE7VMsk
This interactive mockup of all graphs on foo_enhanced_spectrum_analyzer (including crest spectrum) has now been published into the public as I'm (and even someone else probably) becoming too impatient for a big update for this @Crossover component perhaps

Here's the spectral descriptor lines (horizontal = Hz, vertical = dB) could possibly look like in foo_enhanced_spectrum_analyzer:

Note that monitoring fields for these spectral descriptors (e.g. spectral centroid) are obviously going to be different from this image above and it would look more like ones from foo_loudness_peakmeter
This is also what I've published into the public too now and the introduction of spectral features is probably one where "Monitoring Fields" area from foo_loudness_peakmeter gets introduced into foo_enhanced_spectrum_analyzer

@Crossover, you can now try these projects I've just made below:
  • Spectral descriptors: This is where monitoring fields are could be introduced into Enhanced Spectrum analyzer component displaying spectral features as the song plays
  • Spectrum visualization with average and crest spectrum: Re-introduction of the crest spectrum from older version of foo_enhanced_spectrum_analyzer but this time it updates at higher refresh rate and are highly-detailed and also, the averaging domain can now be selected to linear, squared, and logarithmic

Re: foo_enhanced_spectrum_analyzer 2.x.x.x feature requests

Reply #11
@Crossover, here's a closed-form equation for K-weighting curve:
Code: [Select]
const c2 = 4284900, // from 2070
      z2 = 1690000, // from 1300
      f = 80,
      f2 = x ** 2,
      s = Math.sqrt((1 + (f2) / z2) / (1 + (f2) / c2)), // shelving part
      l = ((x/f) ** 2)/Math.sqrt(0.5*(1 - (x/f) ** 2) ** 2 + (x/f) ** 2) / Math.SQRT2; // lowpass part

return s*l;
where "x" is frequency in Hz and "Math.SQRT2" is the square root of two