Optional cacophony: CacophonyPrivate _routePrimary route target. null means master. See Sound for full notes.
Private _sendsSend target → send gain value. See Sound._sends for notes.
Canonical 3D-audio configuration storage. Always holds a fully-populated
HRTF variant (ThreeDOptions with panType: "HRTF") so callers
reading via the getter never see undefined fields. Setting the stereo
variant replaces this with the stereo shape (no stale HRTF fields).
Private Optional cacophonyPrivate eventPrivate globalReturns a boolean indicating whether the object is currently playing. an object is playing if any of its playbacks are currently playing.
Retrieves the current 3D spatial position of the sound in the audio context. The position is returned as an array of three values[x, y, z].
Sets the 3D spatial position of the sound in the audio context. The position is an array of three values[x, y, z]. This method updates the position of all active playbacks of the sound.
Returns a fresh copy of the canonical 3D-audio configuration. The clone
prevents callers from mutating the container's internal state via the
returned reference (previously the raw _threeDOptions object leaked).
Accepts either a full canonical ThreeDOptions value, or a partial
HRTF-options override (legacy ergonomics). When a partial is provided the
existing variant is merged in place — and if the existing variant is
stereo, the partial is interpreted as a switch back to HRTF defaults plus
the override (no stale stereo fields). When a full variant is provided
with a different panType, the storage is replaced wholesale so stale
fields from the previous variant cannot be observed via the getter.
Private _addPrivate _resolvePrivate _resolvePrivate _setAdds a BiquadFilterNode to the container's filter chain. Filters are cloned when creating new playbacks - existing playbacks are not affected. Each playback gets independent filter instances for isolated processing.
Clones the current Synth instance, creating a deep copy with the option to override specific properties.
This method allows for the creation of a new, independent Synth instance based on the current one, with the
flexibility to modify certain attributes through the overrides parameter. This is particularly useful for
creating variations of a synth without affecting the original instance. The cloned instance includes all properties,
playback settings, and filters of the original, unless explicitly overridden.
An object specifying properties to override in the cloned instance. This can include audio settings like volume, playback rate, and spatial positioning, as well as more complex configurations like 3D audio options and filter adjustments.
Private createProtected emitProtected emitFades in all playbacks from silence to their current volume.
The fade duration in milliseconds.
Optional type: FadeTypeThe fade curve type. Defaults to "linear".
Resolves when all fades complete.
Fades out all playbacks from their current volume to silence.
The fade duration in milliseconds.
Optional type: FadeTypeThe fade curve type. Defaults to "linear".
Resolves when all fades complete.
Fades the volume of all playbacks to a target value over a duration.
The target volume (0 to 1).
The fade duration in milliseconds.
Optional type: FadeTypeThe fade curve type. Defaults to "linear".
Resolves when all fades complete.
Remove event listener.
Register event listener.
Cleanup function
Removes a BiquadFilterNode from the container's filter chain. Only affects future playbacks - existing playbacks retain their cloned filters.
If the filter was never added to this container.
Routes this Synth to a Bus (or back to master). See Sound.routeTo for full semantics — Synth mirrors the behavior exactly.
Optional sendGain: numberFades out all playbacks then stops them.
The fade-out duration in milliseconds.
Optional type: FadeTypeThe fade curve type. Defaults to "linear".
Resolves when the fade completes and all playbacks are stopped.
The base interface for any sound-producing entity, including individual sounds, groups, and playbacks. BaseSound