Sonic Player
API

๐ŸŽ›๏ธ Audio Filters

Expo Sonic supports advanced audio filter effects, including EQ bands, reverb, distortion, delay, and slowed reverb processing.


๐Ÿ“ฆ Import

import { ExpoSonicPlayer } from "expo-sonic-ios-player";

๐ŸŽš๏ธ Equalizer Controls

MethodSignatureDescription
setBandGain(band: number, gain: number) => Promise<void>Sets gain for a specific EQ band.
getBandGain(band: number) => Promise<number | null>Gets gain of a specific band.
getAllBandGains() => Promise<number[]>Returns gains for all bands.
resetEqualizer() => Promise<void>Resets all EQ bands to default.
applyEqualizerPreset(presetName: EqualizerPreset) => Promise<void>Applies a predefined EQ preset.

EqualizerPreset

type EqualizerPreset =
  | "flat"
  | "rock"
  | "pop"
  | "jazz"
  | "classical"
  | "bass"
  | "treble"
  | "vocal";

๐ŸŒซ๏ธ Reverb Controls

MethodSignatureDescription
setReverbWetDryMix(wetDryMix: number) => Promise<void>Sets the wet/dry mix ratio.
setReverbPreset(presetName: ReverbPreset) => Promise<void>Applies a reverb preset.

ReverbPreset

type ReverbPreset =
  | "smallroom"
  | "mediumroom"
  | "largeroom"
  | "mediumhall"
  | "largehall"
  | "plate"
  | "cathedral";

โฑ๏ธ Delay Controls

MethodSignatureDescription
setDelayTime(delayTime: number) => Promise<void>Sets the time before echo is played.
setDelayFeedback(feedback: number) => Promise<void>Sets how much of delay is repeated.
setDelayWetDryMix(wetDryMix: number) => Promise<void>Sets mix of dry and delayed audio.

๐Ÿ”Š Distortion Controls

MethodSignatureDescription
setDistortionWetDryMix(wetDryMix: number) => Promise<void>Mix ratio of distorted vs clean audio.
setDistortionPreset(presetName: DistortionPreset) => Promise<void>Applies a distortion preset.

DistortionPreset

type DistortionPreset =
  | "drumsbitterbuzz"
  | "drumsbufferlayer"
  | "drumslofi"
  | "multibrokenspeaker"
  | "multicellularcpa"
  | "multidecimated1"
  | "multidecimated2"
  | "multidecimated3"
  | "multidecimated4"
  | "multidistortioncubed"
  | "multiecho1"
  | "multiecho2"
  | "multiechotight1"
  | "multiechotight2"
  | "multieverything"
  | "multiextrasmallroom"
  | "speechalienchange"
  | "speechcosmicinterference"
  | "speechgoldentone"
  | "speechradiodifference"
  | "speechwavelform";

๐ŸŒ€ Slowed Reverb Controls

MethodSignatureDescription
enableSlowedReverb() => Promise<void>Enable slowed reverb effect.
disableSlowedReverb() => Promise<void>Disable the effect.
toggleSlowedReverb() => Promise<void>Toggle slowed reverb on/off.
setSlowedReverb(speed, pitch, reverbAmount) => Promise<void>Manually configure the slowed reverb.
applySlowedReverbPreset(presetName: SlowedReverbPreset) => Promise<void>Apply a preset configuration.
getAvailableSlowedReverbPresets() => Promise<SlowedReverbPreset[]>List available presets.
getSlowedReverbPresetInfo(presetName: SlowedReverbPreset) => Promise<SlowedReverbPresetInfo>Get full config for a preset.

SlowedReverbPreset

type SlowedReverbPreset = "classic" | "dreamy" | "subtle" | "heavy";

SlowedReverbPresetInfo

type SlowedReverbPresetInfo = {
  name: SlowedReverbPreset;
  speed: number;
  pitch: number;
  reverbAmount: number;
  delayAmount: number;
  delayTime: number;
  delayFeedback: number;
  description: string;
};

๐Ÿงช Audio Presets (Combinations)

MethodSignatureDescription
applyAudioPreset(presetName: AudioPreset) => Promise<void>Apply preset combination of filters.

AudioPreset

type AudioPreset = "normal" | "concert" | "studio";

๐Ÿ› ๏ธ Helper Methods

MethodSignatureDescription
getAvailableEqualizerPresets() => Promise<string[]>List of available EQ presets.
getAvailableReverbPresets() => Promise<string[]>List of available reverb presets.
getAvailableAudioPresets() => Promise<string[]>List of combination presets.
getBandFrequencies() => Promise<number[]>Get center frequencies of EQ bands.