All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Make
AudioEngine
beSync
. - breaking:
AudioEngine::resume
now takes a exclusive&mut self
reference.
- Make
ChannelConverter
don't panic when the number of channels of input and output were both not 1. - Fixed #7:
stop()
was not working when all sounds were playing.
Should have included the fix for #7, but because of a confusion with git, the fix as not included in the publication of this version. This version is identical to the previous.
- Put
OggDecoder
andWavDecoder
, and respective dependencies, behind the featuresogg
andwav
. Both are enabled by default.
- Updated
cpal
to 0.14.0
- Wasm: add
AudioEngine::resume
, for resuming the underlying AudioContext, which can be in "suspended" state on Chrome.
- Android: work around crash when dropping
AudioEngine
due to unsoundness in oboe-rs.
- Make
Mixer
be public. - implement
SoundSource
forArc<Mutex<T>>
. - Add the
SineWave
SoundSource
. - Add sound groups to AudioEngine:
use audio_engine::{AudioEngine, WavDecoder};
#[derive(Eq, Hash, PartialEq)]
enum Group {
Effect,
Music,
}
let audio_engine = AudioEngine::with_groups::<Group>()?;
let mut fx = audio_engine.new_sound_with_group(Group::Effect, my_fx)?;
let mut music = audio_engine.new_sound_with_group(Group::Music, my_music)?;
fx.play();
music.play();
// decrease music volume, for example
audio_engine.set_group_volume(Group::Music, 0.1);
- Fix
set_volume
don't working for more than one added sounds (#5).
- breaking: Return a
Result
instead of panicking if creating aWavDecoder
orOggDecoder
fail.
- Handle i8, i16, i24, i32 and f32 sample formats in
WavDecoder
.
- Fix compiler error in WebAssembly.
- Add Android support.
- Handle device disconnection.
- Enable
cpal
's featurewasm-bindgen
by default.
- breaking: Remove custom WebAssembly backend, replacing it with cpal's WebAudio backend (that don't require calling update regularly).
- Fix a panic in
SampleRateConverter
and add unit tests.