| Crates.io | rconvolve |
| lib.rs | rconvolve |
| version | 0.1.2 |
| created_at | 2025-12-09 19:05:17.713068+00 |
| updated_at | 2025-12-09 22:02:26.156944+00 |
| description | Fast convolution and impulse-response extraction for audio applications |
| homepage | https://github.com/alex-russo/rconvolve |
| repository | https://github.com/alex-russo/rconvolve |
| max_upload_size | |
| id | 1976033 |
| size | 518,300 |
Fast convolution and impulse response extraction for audio applications in Rust.
rconvolve provides FFT-based convolution and deconvolution for audio processing. It supports:
no_std compatibility (requires alloc) for embedded systemsLive Demo: Try the WebAssembly demo at rconvolve.pages.dev
Add to your Cargo.toml:
[dependencies]
rconvolve = "*"
| Feature | Default | Description |
|---|---|---|
std |
Yes | Enables standard library. Disable for no_std environments. |
wasm |
No | Enables WebAssembly bindings via wasm-bindgen. |
See the example in the rconvolve::convolve module documentation.
See the example in the rconvolve::convolve::PartitionedConvolution documentation.
See the example in the rconvolve::deconvolve module documentation.
The crate includes some examples:
Apply convolution reverb to a WAV file:
cargo run --example apply_reverb -- input.wav impulse_response.wav output.wav
Real-time convolution reverb using system audio input/output:
cargo run --example realtime_reverb -- impulse_response.wav
cargo run --example realtime_reverb -- --test-ir # Use generated test IR
Convert a recorded sweep to an impulse response:
cargo run --example simple_wav_to_ir -- recorded_sweep.wav output_ir.wav
cargo install wasm-pack
wasm-pack build --target web --release
See the full documentation for the WASM API reference, or try the live demo.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.