Audio Analysis

Analyse audio for frequency, amplitude, and spectral content.

What it does

Audio Analysis converts an audio source into 16 numeric outputs: low, mid and high frequency bands, kick, snare and hihat percussion hits, beat pulses, BPM, and spectral shape (centroid, rolloff, flatness, flux, crest, dominant frequency).

Spectrum accepts a precomputed spectrum from Audio Input, or a raw audio signal from Audio File or a synth. A raw signal is converted to a spectrum automatically. All 16 outputs come from one analysis pass, so wiring several of them costs no more than wiring one.

When to use it

ParameterTypeDefault
spectrumOneOf([NumberArray, Signal])
sample_rateNumber44100
fft_sizeNumber512
sensitivityNumber0.500
decayNumber0.100
bpm_enabledBooleantrue

Gotchas

Sensitivity and Decay shape the beat and percussion triggers only. The frequency bands and spectral features read straight off the spectrum and ignore both.

BPM estimation needs history before it locks in: bpm_confidence rises after a few seconds of steady rhythm. Turn BPM Enabled off to skip that work.

Sample Rate and FFT Size must match the settings on the node that produced the spectrum upstream. Out of sync, the frequency-band and BPM readings measure the wrong thing.

Worked example

  1. Add an Audio Input (or Audio File) node and play back a track.

  2. Add Audio Analysis and wire the source's spectrum (or signal) into Spectrum.

  3. Match Sample Rate and FFT Size to the source node's settings.

  4. Wire beat or kick into a Scale or Colour parameter elsewhere in the graph for a beat-reactive pulse.

  5. Wire bpm into a timing-driven node once bpm_confidence settles.

See also

Audio Mixer · Envelope Follower · Pitch Detect · Numbers, signals & audio