web-audio-api-rs
web-audio-api-rs copied to clipboard
A Rust implementation of the Web Audio API, for use in non-browser contexts
Also, I think we could improve the `AudioRenderQuantum::add` method so that we can get, (when possible according to `channel_config` and I guess it's only mono to stereo mix in Discrete...
The event loop has unpredictable timings. Also the sleeps commands to measure progress of current time sometimes do not suffice ``` ---- test_panner_node_drop_panic stdout ---- thread 'test_panner_node_drop_panic' panicked at tests/online.rs:182:5:...
To prevent out of order arrival with other node settings. For simplicity, I left the interior mutability pattern of the channel config but instead of using atomics, a mutex is...
Types such as `context::online::AudioContext`, `GainNode`, and likely others do not implement `std::fmt::Debug`. This makes implementing `Debug` for wrapping types cumbersome, and prevents the use of `expect` (among other things) involving...
See #412 for some initial inspiration. Async versions of suspend and resume were introduced in #419 and #412 We don't need the async_trait crate anymore because of https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html
A new EventLoop is spawned upon creation of a ConcreteBaseAudioContext, but it never terminates. I should terminate when both the RenderThread and ConcreteBaseAudioContext is dropped (?)
https://www.w3.org/TR/webaudio/#dom-offlineaudiocontext-oncomplete
Hi there, thank you for your work on this great library! I want to use this library for a Uni Project where I do live transcription and analyze spoken sentences...
Currently, we drop the AudioProcessor when both: - the control thread has dropped the corresponding AudioNode - the processor has no inputs and tail-time = false But we can release...
Follow up on #353, plus few ideas: - [ ] Implement `Drop` to drop `AudioBuffer` and `Vec` cleanly in renderers (cf. [Otto's comment](https://github.com/orottier/web-audio-api-rs/pull/353#issuecomment-1705553704)) + [ ] `AudioBufferSourceRenderer::buffer` + [ ]...