Skip to main content

Equalizer

A 10-band equalizer with built-in and custom presets. Get the singleton with getEqualizer():

import { getEqualizer } from 'react-native-queue-player';

const eq = getEqualizer();
await eq.setEnabled(true);
await eq.setBandGain(0, 3.5); // boost the lowest band by 3.5 dB

Methods

setEnabled(enabled: boolean): Promise<void>
isEnabled(): boolean
getBands(): EqualizerBand[] // 10 fixed ISO-frequency bands
setBandGain(index: number, gainDb: number): Promise<void>
setAllBandGains(gains: number[]): Promise<void>
applyPreset(name: string): Promise<void>
getPresets(): EqualizerPreset[]
saveCustomPreset(name: string): Promise<void>
deleteCustomPreset(name: string): Promise<void> // no-op on built-ins
reset(): Promise<void> // all bands to 0 dB; stays enabled
onBandChange(callback: (bands: EqualizerBand[]) => void): () => void
onEnabledChange(callback: (enabled: boolean) => void): () => void // fires once on subscribe

Types

type EqualizerBand = { frequencyHz: number; gainDb: number };
type EqualizerPreset = { name: string; gains: number[]; builtin: boolean };

Gains are in decibels, clamped to ±12 dB. The 10 band centre frequencies are 31, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000 Hz.

Helpers

The package also exports pure helpers for building EQ UIs without round-tripping native:

import {
EQ_BAND_COUNT, // 10
EQ_BAND_FREQUENCIES_HZ, // [31, 63, … 16000]
EQ_GAIN_MIN_DB, // -12
EQ_GAIN_MAX_DB, // 12
EQ_FLAT_PRESET_NAME, // 'Flat'
clampGain, // (dB) => clamped dB (NaN → 0)
gainsFromBands, // (bands) => number[]
gainsFromMap, // (Record<bandIndex, dB>) => number[]
isBuiltinPreset, // (presets, name) => boolean
nearestBandIndex, // (hz) => band index
} from 'react-native-queue-player';

In React, see useEqualizer.