Library for expressive game audio.
ClockInfoProvider
having poor timing resolutionStreamingSoundData::duration
(thanks @ikbencasdoei!)AudioManager
s Sync
if the backend is Sync
CpalBackend
Sync
on wasm targets (thanks @zicklag!)MockBackend
Sync
glam
to v0.25.0kira::spatial::scene::AddEmitterError
not being publicly availableassert_no_alloc
featureThis release removes reverse playback support for streaming sounds. There's pretty serious issues with garbled audio when streaming an mp3 or ogg file backwards, and based the initial investigation, these issues won't be trivial to fix. This feature may return in the future, but for now, you should not rely on it.
Known issues:
StaticSoundData::from_media_source
StreamingSoundData::from_media_source
The main highlight of this release: Kira now supports 3D positional audio! This is a simple implementation of 3D audio that only support volume attenuation based on distance and panning based on direction. Doppler effect and distance-based filtering and reverb are not supported yet.
This is meant to be an MVP of positional audio. Please give it a try and let me know what improvements you'd like to see so I can gauge what expansions to this API should look like.
Modulators are globally available streams of values that parameters like volume and playback rate can be linked to. These are useful for controlling multiple parameters with one value and using more complex modulations, like LFOs.
For anyone who's made implementations of traits in previous versions of Kira, keep in mind that Tweener
was renamed to Parameter
, and now Tweener
is the name of a modulator implementation that comes with Kira.
Two new effects were added: compressor and EQ filter. The compressor adjusts the volume of audio to make louder parts quieter. An EQ filter a single band of a parametric EQ useful for adjusting the volume of frequencies of sound.
The start_position
setting for static and streaming sounds has been replaced with a playback_region
setting which lets you specify an end position for the sound as well as a start position. The loop_behavior
setting has been replaced
with loop_region
, which lets you specify an end point for the loop. You can now change the loop_region
after the sound is created using the
set_loop_region
function on the sound's handle.
StaticSoundData::frames
is now an Arc[Frame]
instead of Arc<Vec<Frame>>
Decoder
trait for streaming soundsPlaybackState
to the sound moduleTrackBuilder::with_effect
ClockSpeed
to the clock
modulePlaybackRate
to the sound
modulecpal
to 0.15.1