AnalyserNode
The AnalyserNode interface represents a node providing two core functionalities: extracting time-domain data and frequency-domain data from audio signals.
It is an AudioNode that passes the audio data unchanged from input to output, but allows to take passed data and process it.
AudioNode properties
| Number of inputs | 1 |
| Number of outputs | 1 |
| Channel count | 2 |
| Channel count mode | max |
| Channel interpretation | speakers |
Time domain vs Frequency domain

A time-domain graph illustrates how a signal evolves over time, displaying changes in amplitude or intensity as time progresses. In contrast, a frequency-domain graph reveals how the signal's energy or power is distributed across different frequency bands, highlighting the presence and strength of various frequency components over a specified range.
Constructor
constructor(context: BaseAudioContext, options?: AnalyserOptions)
AnalyserOptions
Inherits all properties from AudioNodeOptions
| Parameter | Type | Default | |
|---|---|---|---|
fftSize Optional | number | 2048 | Number representing size of fast fourier transform |
minDecibels Optional | number | -100 | Initial minimum power in dB for FFT analysis |
maxDecibels Optional | number | -30 | Initial maximum power in dB for FFT analysis |
smoothingTimeConstant Optional | number | 0.8 | Initial smoothing constant for the FFT analysis |
Or by using BaseAudioContext factory method:
BaseAudioContext.createAnalyser() that creates node with default values.
Properties
It inherits all properties from AudioNode.
| Name | Type | Description | |
|---|---|---|---|
fftSize | number | Integer value representing size of Fast Fourier Transform used to determine frequency domain. In general it is size of returning time-domain data. | |
minDecibels | number | Float value representing the minimum value for the range of results from getByteFrequencyData(). | |
maxDecibels | number | Float value representing the maximum value for the range of results from getByteFrequencyData(). | |
smoothingTimeConstant | number | Float value representing averaging constant with the last analysis frame. In general the higher value the smoother is the transition between values over time. | |
frequencyBinCount | number | Integer value representing amount of the data obtained in frequency domain, half of the fftSize property. | Read only |
Methods
It inherits all methods from AudioNode.
getFloatFrequencyData
Copies current frequency data into given array. Each value in the array represents the decibel value for a specific frequency.
| Parameter | Type | Description |
|---|---|---|
array | Float32Array | The array to which frequency data will be copied. |
Returns undefined.
getByteFrequencyData
Copies current frequency data into given array. Each value in the array is within the range 0 to 255.
| Parameter | Type | Description |
|---|---|---|
array | Uint8Array | The array to which frequency data will be copied. |
Returns undefined.
getFloatTimeDomainData
Copies current time-domain data into given array. Each value in the array is the magnitude of the signal at a particular time.
| Parameter | Type | Description |
|---|---|---|
array | Float32Array | The array to which time-domain data will be copied. |
Returns undefined.
getByteTimeDomainData
Copies current time-domain data into given array. Each value in the array is within the range 0 to 255, where value of 127 indicates silence.
| Parameter | Type | Description |
|---|---|---|
array | Uint8Array | The array to which time-domain data will be copied. |
Returns undefined.
Remarks
fftSize
- Must be a power of 2 between 32 and 32768.
- Throws
IndexSizeErrorif set value is not power of 2, or is outside the allowed range.
minDecibels
- 0 dB(decibel) is the loudest possible sound, -10 dB is a 10th of that.
- When getting data from
getByteFrequencyData(), any frequency with amplitude lower thenminDecibelswill be returned as 0. - Throws
IndexSizeErrorif set value is greater than or equal tomaxDecibels.
maxDecibels
- 0 dB(decibel) is the loudest possible sound, -10 dB is a 10th of that.
- When getting data from
getByteFrequencyData(), any frequency with amplitude higher thenmaxDecibelswill be returned as 255. - Throws
IndexSizeErrorif set value is less then or equal tominDecibels.
smoothingTimeConstant
- Nominal range is 0 to 1.
- 0 means no averaging, 1 means "overlap the previous and current buffer quite a lot while computing the value".
- Throws
IndexSizeErrorif set value is outside the allowed range.