📄 threejs/Core/Audio/AudioAnalyser

File: AudioAnalyser.md | Updated: 11/15/2025


title: AudioAnalyser category: Core layout: docs

AudioAnalyser

This class can be used to analyse audio data.

Code Example

// create an AudioListener and add it to the camera
const listener = new THREE.AudioListener();
camera.add( listener );
// create an Audio source
const sound = new THREE.Audio( listener );
// load a sound and set it as the Audio object's buffer
const audioLoader = new THREE.AudioLoader();
audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
	sound.setBuffer( buffer );
	sound.setLoop(true);
	sound.setVolume(0.5);
	sound.play();
});
// create an AudioAnalyser, passing in the sound and desired fftSize
const analyser = new THREE.AudioAnalyser( sound, 32 );
// get the average frequency of the sound
const data = analyser.getAverageFrequency();

Constructor

new AudioAnalyser( audio : Audio, fftSize : number )

Constructs a new audio analyzer.

audio | The audio to analyze.
---|---
fftSize | The window size in samples that is used when performing a Fast Fourier Transform (FFT) to get frequency domain data. Default is 2048.

Properties

.analyser : AnalyserNode

The global audio listener.

.data : Uint8Array

Holds the analyzed data.

Methods

.getAverageFrequency() : number

Returns the average of the frequencies returned by AudioAnalyser#getFrequencyData.

Returns: The average frequency.

.getFrequencyData() : Uint8Array

Returns an array with frequency data of the audio.

Each item in the array represents the decibel value for a specific frequency. The frequencies are spread linearly from 0 to 1/2 of the sample rate. For example, for 48000 sample rate, the last item of the array will represent the decibel value for 24000 Hz.

Returns: The frequency data.

Source

src/audio/AudioAnalyser.js