Skip to main content


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.
Recent Posts
Development - (fb2k) / Enumerating uielements
Last post by pqyt -
Is there a way to enumerate all the instances of an uielement?

I'd like to post a message to each instance when a particular parameter changes in the preferences page.
3rd Party Plugins - (fb2k) / Re: Recreating the functionality of non-existent/made-up components
Last post by TF3RDL -
It's a pity that there are no components.
Now, there it is and that is foo_vis_spectrum_analyzer with some if not most of features from made-up components I've made over Fanon Wiki, at least for spectrum analysis-type visualizations though Mid/Side spectrum analyzer are still missing

What I still need is X/Y oscilloscope or vectorscope in other words as actual foobar2000 component (instead of being a preset for MilkDrop/AVS or a VST plugin) and perceptual graphic EQ and parametric equalizer as DSP components
General - (fb2k) / ReFacet causing foobar2000 to crash, whenever interacting with Refacet
Last post by Ojos Azules -
Demo - X

I crashes for sure when I click on "All"
I Noticed it crashed less when I removed these formatting from ReFacet

Performer      $stripprefix(%<instrument>%,Guitar,Vocals,Bass,Drums,Piano,Vocals Backing)
Key            $stripprefix(%<key>%,Intro,Verse,Chorus,Outo,Pre-Chorus,Bridge,Intrumental,Intro/Verse,Verse/Chorus,Verse/Pre-Chorus/Chorus)

I Still Have these-

Failure Report txt X

I got many tabs with ReFacet and it seems like it is searching for results for background tabs

Windows 11 22H2 foobar2000 2.1.5
Scientific Discussion / Re: AudioWorklet-based filter bank spectrum analyzer
Last post by TF3RDL -
Features I currently have in this project:
  • 1/nth octave bands mode (equal-tempered scale, adjustable reference frequency and supports transposing like in old foo_musical_spectrum component for foobar2000) and frequency bands mode (supports Mel/Bark/ERB psychoacoustic scales and others like hyperbolic sine, nth root, and period, in-addition to standard linear and logarithmic frequency scales)
  • Adjustable frequency range in Hz for frequency bands equally spaced in arbitrary frequency scale, and in note index # (starting from C0 = ~16Hz) on octave bands mode
  • Truly constant-Q (assuming logarithmic frequency scale since the bandwidth is automatically determined by frequency band's lower and upper boundaries), no longer limited to 32768 samples (~682.7ms at 48kHz sampling rate) but it can be set to be variable-Q by unchecking "Use constant-Q instead" if you want better time resolution at lower frequencies, where minimum Hz resolution (to cope with time/frequency resolution tradeoff) is specified by "time resolution" parameter in milliseconds
  • Bandwidth for this filter bank is adjustable; higher values makes a smoothed spectrum while having improved time resolution on bass frequencies at the same time and vice versa
  • Three filter bank types are supported:
    • Analog-style analyzer: Cascaded biquad bandpass filters, simply stacking one another is good enough even without a flat-top response of Butterworth bandpass filters. Also, Q values are prewarped (unless you opt-out) for "truly" logarithmic resolution as this filter bank is designed using bilinear transform (borrowed from RBJ EQ cookbook)
    • Sliding windowed infinite Fourier transform: which is a bank of IIR complex resonators and it resembles a Gammatone filter on 4th order cascaded SWIFT
    • Variable-Q sliding DFT: Recursive FIR filter bank, complex-valued. Also have an option to use NC method to enhance time/frequency resolution. Window function options are limited to cosine sums like Hann and Hamming windows but custom frequency-domain windowing are supported and since it is a FIR type of filter bank, there is a "maximum time resolution" parameter that determine how long the circular buffer should be, which is no longer constant-Q if gets too low
  • For IIR filter bank modes: Adjustable filter order, higher values reduces leakage at the expense of some time resolution (especially on lower frequencies)
  • Peak decay and exponential moving average-based smoothing as well as optional fading peaks effect. Also an option to perform time smoothing operation during calculation rather than after (in other words, per-sample instead of per-frame) for greater accuracy and framerate-independence
  • Linear and nth root amplitude scale is supported in-addition to logarithmic/dB scale. Also, dB range on this visualization can be adjusted and "Use absolute value" sets minimum dB range to -∞ dBFS on linear/nth root amplitude mode
  • Multiple X-axis scales supported:
    • Decade: A standard grid for logarithmic scale
    • Octaves: Each label/line corresponds to center frequencies of a common 10-band graphic equalizer
    • Notes: Frequency gridlines are equidistantly-spaced in logarithmic frequency scale, following 1/12th octave bands and each label displays musical notes instead of Hz
    • Automatic: Frequency grid-lines and labels corresponds to actual frequency bands, much like foobar2000's built-in "Spectrum" visualization though X-axis labels become cluttered on large number of bands
  • Y-axis labels are in dB even if in linear/nth root scale and dB step for Y-axis grid are adjustable. Common dB interval values to set are 6dB, 10dB, 12dB, and 20dB, though it can be almost any value
  • As this project is intended towards audio analysis algorithms (in this case, IIR filter banks) and not intended to be eye-candy after all, color customization is very limited; it boils down to just light/dark mode and a switch between solid color and color gradient (borrowed from foobar2000 built-in visualizations for gradients)

This works best if you have a CPU that is much newer than a relatively-ancient Intel Core 2 Duo series as it demands more CPU than FFT-based analyzers using AnalyserNode.getFloatTimeDomainData() + FFT library

BTW, when using "Analog-style analyzer" mode and a "filter order" of 1, it produces a shape of the frequency bars visualization that reminds me of a hybrid of Windows Media Player's "Bars" and VLC media player's "Spectrum" visualizations where the former is for true log frequency scale and general shape, and the latter for spectral leakage and apparently equal peak width
General - (fb2k) / Reprocessing ReplayGain Values
Last post by gravitron_pgh -
I have a very large collection of music.  Whenever I add to my collection, I process the Replay Gain values prior to moving the music into my Library.

The problem is that I am just now realizing that this value is only processed for files where a REPLAYGAIN Value does not already exist.

I do not know which files I have that already had a ReplayGain Value prior to my processing them.  Thus, I am not sure if I have files that do not follow the libebur128 standard.

I know I have the option to delete the existing ReplayGain values and process them again.  But, is there an easier way?  For example:

1. Filter files where the ReplayGain Value was not processed by my current instance of foobar2000.

2. Filter files that were not processed using the libebur128 standard.

Then, I could delete the ReplayGain Value and reprocess it.


3. Have the step of deleting the existing value and reprocessing a new one created as a single action/file change.

Or, do I just need to bite the bullet and do this in two phases, deleting the values, then reprocessing them again for all files?

I have 12TB of music so any steps to shorten the process or hard drive/processor usage is appreciated.  Thank you.