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 non-positional audio source.

pub type Audio

A decoded audio buffer.

pub type AudioBuffer

A scene listener, typically attached to a camera.

pub type Listener

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 clear_buffer(audio: Audio) -> Audio

Removes the current buffer from an audio source.

pub fn dispose(audio: Audio) -> Nil

Disposes an audio source.

pub fn dispose_listener(listener: Listener) -> Nil

Disposes a listener.

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() -> Listener

Creates a new listener.

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 pause(audio: Audio) -> Audio

Pauses an audio source.

pub fn play(audio: Audio) -> Audio

Starts playback for an audio source.

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 stop(audio: Audio) -> Audio

Stops an audio source.

pub fn to_object3d(audio: Audio) -> object.Object3D

Views an audio source as an object.

Search Document