Skip to main content

Audio

The audio module provides audio playback, transport controls, and an fx context for looping and bandpass frequency filters. See the Basic Audio demo for guidance.

Components​

function Effect() : JSX.Element
function Provider(props: ProviderProps): JSX.Element
function Seek(props: SeekProps): JSX.Element
function TransformFx(props: TransformFxProps): JSX.Element

Functions​

function load(url: string): Promise<AudioBuffer>
function useContext(): Context

Types​

type Context = {
audioContext: null | AudioContext
buffer: null | AudioBuffer
fx: Fx
state: State
transport: Transport
}

type Fx = {
hpf?: number
lpf?: number
loop?: Loop
}

type Loop = [number, number]

type SeekProps = {
format?: FormatFn
}

type State = {
pause: boolean
seek: number
timecode: number
}

type Transport = {
play: (seek?: number) => void
stop: (seek?: number) => void
seek: (seek: React.SetStateAction<number>) => void
getSeek: (state: State) => number
}

type ProviderProps = {
audioContext?: AudioContext
buffer: AudioBuffer
children: React.ReactNode
fx?: Fx
}

type TransformFxProps = {
children: React.ReactNode
fn: (fx: Fx) => Fx
}