Crate firewheel_web_audio

Crate firewheel_web_audio 

Source
Expand description

crates.io docs.rs

A multi-threaded wasm32-unknown-unknown Web Audio backend for Firewheel.

Currently, this backend only supports stereo inputs and outputs.

§Requirements

Because this crate relies on Wasm multi-threading, it has some additional requirements.

  1. A nightly compiler is required along with the Rust standard library source code (with rustup, you can add it with rustup component add rust-src).
  2. You’ll need the atomics, bulk-memory, and mutable-globals target features. These can be enabled with a .cargo/config.toml:
[target.wasm32-unknown-unknown]
rustflags = ["-C", "target-feature=+atomics,+bulk-memory,+mutable-globals"]

[unstable]
build-std = ["std", "core", "alloc", "panic_abort"]
  1. Wherever your project is served, the protocol must be secure (usually https) and the response must include two security headers:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
# or
Cross-Origin-Embedder-Policy: credentialless

Note that credentialless may not work on Safari: the browser may throw an error in the audio worklet upon receiving shared Wasm memory.

Structs§

WebAudioBackend
The main-thread host for the Web Audio API backend.
WebAudioConfig
The Web Audio backend’s configuration.

Enums§

WebAudioStartError
Errors related to initializing the web audio stream.
WebAudioStreamError
Errors encountered while the web audio stream is running.