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)