foobar2000:Components/Spectrum Analyzer (foo_vis_spectrum_analyzer)

From Hydrogenaudio Knowledgebase
Revision as of 22:34, 13 November 2023 by TF3RDL (talk | contribs) (idk the FFT size can be set to a non-power of two values, which original foo_musical_spectrum don't have)
Spectrum Analyzer

foo_vis_spectrum_analyzer
Developer(s) pqyt
Repository
Release information
Initial release
Stable release
Preview release 0.1.0.2 (November 13, 2023; 1 year ago)
foobar2000 compatibility
Architecture x86 32-bit, x86 64-bit
Minimum version 2.0
Maximum version
UI module(s) Default UI
Additional information
Use Visualization
License
Discussion thread {{{discussion_thread}}}
View all components

A recreation of Musical Spectrum component (and later, the concept component FFT Analyzer (foo_fft_analyzer) since this component is in Early Access state) for foobar2000 v2.x and 64-bit versions.

Configuration

You can tweak the configuration by creating a foo_musical_spectrum.json next to the foo_musical_spectrum.dll file. The content of the file is reread at the start of a new track.

   {
       "FFTSize": 4096,
       "FrequencyDistribution" : 1,
       "ScalingFunction" : 1,
       "ScalingFunctionFactor" : 0.0,
       "NumberOfBands" : 160,
       "MinFrequency" : 20,
       "MaxFrequency" : 20000,
       "Bandwidth" : 0.5,
       "BandsPerOctave" : 12,
       "MinNote" : 0,
       "MaxNote" : 143,
       "Detune" : 0,
       "Pitch" : 440.0,
       "SummationMethod" : 1,
       "XAxisMode" : 3
   }

FFTSize: 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768

FrequencyDistribution: Determines which parameters are used to generate the frequency bands.

   0: Generate frequency bands based on the frequency parameters.
   1: Generate frequency bands based on the note parameters.

ScalingFunction: Determines which frequency scaling function is used.

   0: Linear
   1: Logarithmic
   2: Shifted logarithmic
   3: Mel (AIMP)
   4: Bark
   5: Adjustable Bark
   6: ERB
   7: Cams
   8: Hyperbolic Sine
   9: NthRoot
   10: Negative exponential
   11: Period

NumberOfBands: Number of frequency bands to generate (2 to 512)

MinFrequency: Frequency of the first band, 0Hz to 96000Hz.

MaxFrequency: Frequency of the last band, 0Hz to 96000Hz.

Bandwidth: 0.0 to 64.0

BandsPerOctave: Number of bands per octave (1 to 48)

MinNote: Number of the first note. (C0 = 0, C1 = 12, ...), 0 to 143 (12 octaves)

MaxNote: Number of the last note. (C0 = 0, C1 = 12, ...), 0 to 143 (12 octaves)

Detune: Detuning offset (-24 to 24)

Pitch: Tuning pitch (A4 = 440.0Hz), 0Hz to 96000Hz.

SummationMethod: Determines which method is used to sum the coefficients of FFT.

   0: Minimum
   1: Maximum
   2: Sum
   3: RMS
   4: RMSSum
   5: Average
   6: Median

XAxisMode: Determines which X axis to display

   0: Center frequency of a band, every 10 bands.
   1: Fixed frequency range
   2: Frequency of the C note of each octave
   4: C note of each octave

External links

See also