Skip to content

EZ Web Audio / createLayeredSound

Function: createLayeredSound()

Call Signature

createLayeredSound(layers, opts?): Promise<LayeredSound>

Defined in: packages/core/src/index.ts:1040

Create a LayeredSound that plays multiple Sound/Oscillator instances simultaneously. All layers start at exactly the same audioContext.currentTime for perfect sync.

Parameters

layers

(Oscillator | Sound<BaseSoundEventMap>)[]

Array of Sound or Oscillator instances to layer

opts?

LayeredSoundOptions

Optional configuration (name, warnLayerCount)

Returns

Promise<LayeredSound>

LayeredSound instance

Example

ts
const bass = await createSound('bass.mp3')
const melody = await createSound('melody.mp3')
const synth = await createOscillator({ frequency: 440 })

const layered = await createLayeredSound([bass, melody, synth])
layered.play() // All layers start at exact same time
layered.changeGainTo(0.5) // Affects all layers
layered.getLayer(2)?.changeGainTo(0.8) // Control individual layer

Call Signature

createLayeredSound(audioContext, layers, opts?): Promise<LayeredSound>

Defined in: packages/core/src/index.ts:1041

Create a LayeredSound that plays multiple Sound/Oscillator instances simultaneously. All layers start at exactly the same audioContext.currentTime for perfect sync.

Parameters

audioContext

BaseAudioContext

layers

(Oscillator | Sound<BaseSoundEventMap>)[]

Array of Sound or Oscillator instances to layer

opts?

LayeredSoundOptions

Optional configuration (name, warnLayerCount)

Returns

Promise<LayeredSound>

LayeredSound instance

Example

ts
const bass = await createSound('bass.mp3')
const melody = await createSound('melody.mp3')
const synth = await createOscillator({ frequency: 440 })

const layered = await createLayeredSound([bass, melody, synth])
layered.play() // All layers start at exact same time
layered.changeGainTo(0.5) // Affects all layers
layered.getLayer(2)?.changeGainTo(0.8) // Control individual layer