Skip to main content

Equalizer

These functions manage the 10-band equalizer with real-time audio processing capabilities. The equalizer provides precise control over frequency bands ranging from 32Hz to 16kHz, covering the full audible spectrum.

setEqualizerEnabled​

Enable or disable the equalizer.

TrackPlayer.setEqualizerEnabled(enabled: boolean): void

Parameters​

ParameterTypeRequiredDescription
enabledbooleanYesWhether to enable the equalizer

Example​

// Enable equalizer
TrackPlayer.setEqualizerEnabled(true)

// Disable equalizer (bypasses all EQ processing)
TrackPlayer.setEqualizerEnabled(false)

isEqualizerEnabled​

Check if the equalizer is currently enabled.

TrackPlayer.isEqualizerEnabled(): boolean

Return Value​

Returns boolean - Whether the equalizer is enabled

Example​

if (TrackPlayer.isEqualizerEnabled()) {
console.log("Equalizer is active")
} else {
console.log("Equalizer is bypassed")
}

setEqualizerBandGain​

Set the gain for a specific frequency band.

TrackPlayer.setEqualizerBandGain(bandIndex: number, gain: number): void

Parameters​

ParameterTypeRequiredDescription
bandIndexnumberYesIndex of the band (0-9)
gainnumberYesGain in dB (-12 to +12)

Band Indices​

IndexFrequencyDescription
032 HzSub-bass
164 HzBass
2125 HzLow mids
3250 HzMidrange
4500 HzUpper mids
51000 HzPresence
62000 HzUpper presence
74000 HzBrilliance
88000 HzTreble
916000 HzAir

Example​

// Boost bass frequencies
TrackPlayer.setEqualizerBandGain(0, 6) // +6dB at 32Hz
TrackPlayer.setEqualizerBandGain(1, 4) // +4dB at 64Hz

// Cut harsh frequencies
TrackPlayer.setEqualizerBandGain(6, -3) // -3dB at 2kHz

// Enhance presence
TrackPlayer.setEqualizerBandGain(5, 2) // +2dB at 1kHz

getEqualizerBandGain​

Get the current gain for a specific frequency band.

TrackPlayer.getEqualizerBandGain(bandIndex: number): number

Parameters​

ParameterTypeRequiredDescription
bandIndexnumberYesIndex of the band (0-9)

Return Value​

Returns number - Current gain in dB

Example​

// Check current bass level
const bassGain = TrackPlayer.getEqualizerBandGain(1)
console.log(`64Hz band is at ${bassGain}dB`)

// Display all band levels
for (let i = 0; i < 10; i++) {
const gain = TrackPlayer.getEqualizerBandGain(i)
console.log(`Band ${i}: ${gain}dB`)
}

setEqualizerBands​

Set the configuration for all equalizer bands at once.

TrackPlayer.setEqualizerBands(bands: EqualizerBand[]): void

Parameters​

ParameterTypeRequiredDescription
bandsEqualizerBand[]YesArray of 10 equalizer bands

Example​

import type { EqualizerBand } from "react-track-player-web"

// Create custom EQ curve
const customBands = [
{ frequency: 32, gain: 3, Q: 1 },
{ frequency: 64, gain: 5, Q: 1 },
{ frequency: 125, gain: 2, Q: 1 },
{ frequency: 250, gain: 0, Q: 1 },
{ frequency: 500, gain: -1, Q: 1 },
{ frequency: 1000, gain: 0, Q: 1 },
{ frequency: 2000, gain: 1, Q: 1 },
{ frequency: 4000, gain: 2, Q: 1 },
{ frequency: 8000, gain: 4, Q: 1 },
{ frequency: 16000, gain: 3, Q: 1 }
]

TrackPlayer.setEqualizerBands(customBands)

getEqualizerBands​

Get the current configuration of all equalizer bands.

TrackPlayer.getEqualizerBands(): EqualizerBand[]

Return Value​

Returns EqualizerBand[] - Array of current equalizer band configurations

Example​

const currentBands = TrackPlayer.getEqualizerBands()

currentBands.forEach((band, index) => {
console.log(`${band.frequency}Hz: ${band.gain}dB (Q: ${band.Q})`)
})

// Save current configuration
const savedEQ = JSON.stringify(currentBands)
localStorage.setItem("myEQSettings", savedEQ)

setEqualizerPreset​

Apply a predefined equalizer preset optimized for different music genres.

TrackPlayer.setEqualizerPreset(preset: EqualizerPreset): void

Parameters​

ParameterTypeRequiredDescription
presetEqualizerPresetYesName of the preset to apply

Available Presets​

PresetDescription
"flat"No adjustments (0dB on all bands)
"rock"Enhanced bass and treble for rock music
"pop"Balanced with slight bass and treble boost
"jazz"Smooth mid-range emphasis
"classical"Natural sound with subtle enhancements
"electronic"Heavy bass and crisp highs for electronic music
"vocal"Mid-range boost for vocal clarity
"bass"Heavy low-frequency emphasis
"treble"High-frequency emphasis

Example​

// Apply presets for different genres
TrackPlayer.setEqualizerPreset("rock") // Great for rock and metal
TrackPlayer.setEqualizerPreset("jazz") // Smooth for jazz and acoustic
TrackPlayer.setEqualizerPreset("electronic") // Punchy for EDM and electronic
TrackPlayer.setEqualizerPreset("vocal") // Clear vocals for podcasts
TrackPlayer.setEqualizerPreset("flat") // Reset to neutral

resetEqualizer​

Reset all equalizer bands to 0dB (flat response).

TrackPlayer.resetEqualizer(): void

Example​

// Reset equalizer to neutral
TrackPlayer.resetEqualizer()

// Equivalent to:
TrackPlayer.setEqualizerPreset("flat")

getAudioAnalysisData​

Get real-time audio analysis data for visualization purposes.

TrackPlayer.getAudioAnalysisData(): AudioAnalysisData | null

Return Value​

Returns AudioAnalysisData | null - Audio analysis data or null if not available

interface AudioAnalysisData {
frequencyData: Uint8Array // Frequency domain data (0-255)
timeData: Uint8Array // Time domain data (0-255)
sampleRate: number // Audio sample rate
fftSize: number // FFT size used for analysis
}

Example​

// Get audio analysis data for visualization
const analysisData = TrackPlayer.getAudioAnalysisData()

if (analysisData) {
const { frequencyData, timeData, sampleRate, fftSize } = analysisData

// Use frequency data for spectrum analyzer
console.log(`Frequency bins: ${frequencyData.length}`)
console.log(`Sample rate: ${sampleRate}Hz`)

// Draw spectrum visualization
drawSpectrumVisualizer(frequencyData)

// Draw waveform visualization
drawWaveform(timeData)
}

configureAudioAnalyser​

Configure the audio analyser settings for real-time analysis.

TrackPlayer.configureAudioAnalyser(fftSize?: number, smoothingTimeConstant?: number): void

Parameters​

ParameterTypeRequiredDefaultDescription
fftSizenumberNo2048FFT size (must be power of 2: 32-32768)
smoothingTimeConstantnumberNo0.8Temporal smoothing (0.0 - 1.0)

Example​

// Configure for high-resolution analysis
TrackPlayer.configureAudioAnalyser(4096, 0.5)

// Configure for low-latency analysis
TrackPlayer.configureAudioAnalyser(512, 0.9)

// Configure for smooth visualization
TrackPlayer.configureAudioAnalyser(2048, 0.8)