All notable changes to wavy
will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Impl
Notifier<Event = SpeakersSink>
forSpeakers
- Impl
Notifier<Event = MicrophoneStream>
forMicrophone
- Update to pasts 0.12.0
- Replace
supports()
withconfig()
- Bumped to 2021 edition
Speakers::play()
- useNotifier
impl onSpeakers
insteadMicrophone::record()
- useNotifier
impl onMicrophone
instead
- Panics in the Web port
- Updated to fon 0.5
- XRUNS on ALSA stopping playback indefinitely.
- Latency improvements on ALSA.
- More correct handling of errors for ALSA speaker.
- Support for stereo audio sources.
MicrophoneStream
concrete type.SpeakerSink
concrete type.- Ability to switch audio type of a speaker or microphone at runtime.
Microphone::supports()
to check if an audio format is available.Speakers::supports()
to check if an audio format is available.
- Updated to newer
fon
version. - Now prefers 32-bit float audio, rather than 16-bit PCM.
- Rename
Speaker
toSpeakers
MicrophoneId
- now merged intoMicrophone
SpeakerId
- now merged intoSpeakers
Microphone::sample_rate()
- No longer neededSpeaker::sample_rate()
- No longer needed
- Improved latency on Linux.
- More consistent behavior across audio devices.
- Task starving issues are mitigated with new
smelling_salts
dependency.
- Updated
fon
code for wasm and dummy implementation.
- Update to new
fon
version 0.3
MicrophoneId
, withquery()
method to get list of microphones.SpeakerId
, withquery()
method to get list of speakers.
- Rename
Speakers
toSpeaker
- Replace
Microphone::new()
withMicrophoneId::default().connect()
- Replace
Speaker::new()
withSpeakerId::default().connect()
- Updated docs and examples to use newest pasts (0.6)
- Removed a lot of unwraps that occured when a microphone or speaker wasn't plugged in.
- No longer support stdweb, wasm-pack only (see examples folder)
- Improved latency on wasm
- Updated docs and examples to use newest pasts (0.5)
fon
crate dependency for easy resampling and consistency.Microphone.sample_rate()
for getting the sample rate of a micSpeakers.sample_rate()
for getting the sample rate of the speakers.
- Renamed
Player
toSpeakers
- Renamed
Recorder
toMicrophone
- Replaced
Microphone.record_last()
withMicrophone.record()
which returns an audioStream
instead of taking a mutable reference to aVec
. - Replaced
Speakers.play_last()
withSpeakers.play()
which returns an audioSink
instead of passing a slice of samples and returning samples written. Speakers::new()
now returnsSelf
instead ofOption<Self>
S16LEx2
type in favor offon
types.
- Support for running on a Web Page with WASM
- No longer pass in sample rate in
Player::new()
andRecorder::new()
, it is now returned by.await
ingPlayer
orRecord
as anf64
.
- Updated examples / documentation to pasts 0.4
- Update documentation to use pasts 0.2
- Async/Await support
SampleRate
enum, you can now specify whatever you like in hertz.AudioError
enum, since there was only one error anyway (device not found), all occurances were replaced withOption
.
- Rename
MicrophoneSystem
toRecorder
. - Rename
SpeakerSystem
toPlayer
. AudioSample
was replaced withS16LEx2
. More audio formats will be added in the future.
- Undefined behavior using
std::mem::uninitialized()
by replacing withstd::mem::MaybeUninit()
.
- Broken links.
cargo-clippy
warnings.
- Audio playback support on Linux.
- Audio recording support on Linux.