savoiardi/audio
Audio buffers, listeners, and scene audio objects.
The audio API mirrors the Three.js audio model while keeping the public surface typed in terms of listeners, global audio, and positional audio.
Types
A decoded audio buffer.
pub type AudioBuffer
An audio source with positional attenuation.
pub type PositionalAudio
Values
pub fn attach_listener(
listener: Listener,
camera: camera.Camera,
) -> Listener
Attaches a listener to a camera.
pub fn audio_from_object3d(
object: object.Object3D,
) -> Result(Audio, Nil)
Safely downcasts an object to an audio source.
pub fn find_listener(scene: scene.Scene) -> Result(Listener, Nil)
Finds the first listener attached somewhere in the scene.
pub fn from_positional(audio: PositionalAudio) -> Audio
Widens a positional audio source into the shared audio type.
pub fn global(listener: Listener) -> Audio
Creates a global audio source that plays through the listener.
pub fn has_buffer(audio: Audio) -> Bool
Returns whether an audio source has a buffer.
pub fn is_audio(object: object.Object3D) -> Bool
Returns whether an object is an audio source.
pub fn is_listener(object: object.Object3D) -> Bool
Returns whether an object is an audio listener.
pub fn is_positional_audio(object: object.Object3D) -> Bool
Returns whether an object is a positional audio source.
pub fn listener_from_object3d(
object: object.Object3D,
) -> Result(Listener, Nil)
Safely downcasts an object to a listener.
pub fn listener_to_object3d(
listener: Listener,
) -> object.Object3D
Views a listener as an object.
pub fn load(
loader: loader.AudioLoader,
url: String,
on_result: fn(Result(AudioBuffer, loader.LoadError)) -> Nil,
) -> Nil
Loads an audio buffer and reports the result through a callback.
pub fn load_async(
loader: loader.AudioLoader,
url: String,
) -> promise.Promise(Result(AudioBuffer, loader.LoadError))
Loads an audio buffer asynchronously.
pub fn positional(listener: Listener) -> PositionalAudio
Creates a positional audio source that plays through the listener.
pub fn positional_from_object3d(
object: object.Object3D,
) -> Result(PositionalAudio, Nil)
Safely downcasts an object to a positional audio source.
pub fn set_buffer(audio: Audio, buffer: AudioBuffer) -> Audio
Assigns a buffer to an audio source.
pub fn set_loop(audio: Audio, should_loop: Bool) -> Audio
Enables or disables looping for an audio source.
pub fn set_max_distance(
audio: PositionalAudio,
distance: Float,
) -> PositionalAudio
Sets the maximum effective distance for positional attenuation.
pub fn set_playback_rate(audio: Audio, rate: Float) -> Audio
Sets the playback rate for an audio source.
pub fn set_ref_distance(
audio: PositionalAudio,
distance: Float,
) -> PositionalAudio
Sets the reference distance for positional attenuation.
pub fn set_rolloff_factor(
audio: PositionalAudio,
factor: Float,
) -> PositionalAudio
Sets the rolloff factor for positional attenuation.
pub fn set_volume(audio: Audio, volume: Float) -> Audio
Sets the playback volume for an audio source.
pub fn to_object3d(audio: Audio) -> object.Object3D
Views an audio source as an object.