tiramisu/audio

Types

Audio buffer type (opaque, wraps Web Audio API AudioBuffer)

pub type AudioBuffer

Audio playback configuration

pub type AudioConfig {
  AudioConfig(
    volume: Float,
    loop: Bool,
    playback_rate: Float,
    autoplay: Bool,
  )
}

Constructors

  • AudioConfig(
      volume: Float,
      loop: Bool,
      playback_rate: Float,
      autoplay: Bool,
    )

    Arguments

    volume

    Volume (0.0 to 1.0)

    loop

    Whether to loop the audio

    playback_rate

    Playback rate (1.0 = normal speed)

    autoplay

    Whether the audio should autoplay

Audio node for the scene graph This is a declarative way to add audio to the scene

pub type AudioNode {
  AudioNode(
    id: String,
    config: AudioConfig,
    audio_type: AudioType,
    position: option.Option(vec3.Vec3(Float)),
  )
}

Constructors

Opaque handle to a THREE.Audio or THREE.PositionalAudio object

pub type AudioSource

Type of audio (global or positional)

pub type AudioType {
  GlobalAudio
  PositionalAudio(
    ref_distance: Float,
    rolloff_factor: Float,
    max_distance: Float,
  )
}

Constructors

  • GlobalAudio

    Global audio (2D, same volume everywhere)

  • PositionalAudio(
      ref_distance: Float,
      rolloff_factor: Float,
      max_distance: Float,
    )

    Positional audio (3D, volume based on distance)

    Arguments

    ref_distance

    Maximum hearing distance

    rolloff_factor

    How quickly audio fades with distance

    max_distance

    Maximum distance where audio can be heard

Values

pub fn config() -> AudioConfig

Create default audio config

pub fn get_current_time(source_id: String) -> Float

Get current playback time in seconds

pub fn global_audio(id: String, config: AudioConfig) -> AudioNode

Create a global audio node (2D audio)

pub fn is_playing(source_id: String) -> Bool

Check if an audio source is playing

pub fn pause(source_id: String) -> Nil

Pause an audio source

pub fn play(source_id: String) -> Nil

Play an audio source

pub fn positional() -> AudioType

Create a default positional audio configuration

pub fn positional_audio(
  id: String,
  config: AudioConfig,
  position: vec3.Vec3(Float),
) -> AudioNode

Create a positional audio node (3D audio at a position)

pub fn positional_audio_custom(
  id: String,
  config: AudioConfig,
  position: vec3.Vec3(Float),
  audio_type: AudioType,
) -> AudioNode

Create a positional audio node with custom settings

pub fn set_autoplay(
  config: AudioConfig,
  autoplay: Bool,
) -> AudioConfig

Set autoplay

pub fn set_current_time(source_id: String, time: Float) -> Nil

Set current playback time in seconds

pub fn set_loop(config: AudioConfig, loop: Bool) -> AudioConfig

Set looping

pub fn set_max_distance(
  audio: AudioType,
  distance: Float,
) -> AudioType

Set maximum distance for positional audio

pub fn set_playback_rate(
  config: AudioConfig,
  rate: Float,
) -> AudioConfig

Set playback rate (1.0 = normal, 2.0 = double speed, etc.)

pub fn set_ref_distance(
  audio: AudioType,
  distance: Float,
) -> AudioType

Set reference distance for positional audio

pub fn set_rolloff_factor(
  audio: AudioType,
  factor: Float,
) -> AudioType

Set rolloff factor for positional audio

pub fn set_source_volume(source_id: String, volume: Float) -> Nil

Set volume of a playing audio source

pub fn set_volume(
  config: AudioConfig,
  volume: Float,
) -> AudioConfig

Set volume (0.0 to 1.0)

pub fn stop(source_id: String) -> Nil

Stop an audio source (resets to beginning)

Search Document