rconvolve

Crates.iorconvolve
lib.rsrconvolve
version0.1.2
created_at2025-12-09 19:05:17.713068+00
updated_at2025-12-09 22:02:26.156944+00
descriptionFast convolution and impulse-response extraction for audio applications
homepagehttps://github.com/alex-russo/rconvolve
repositoryhttps://github.com/alex-russo/rconvolve
max_upload_size
id1976033
size518,300
(alex-russo)

documentation

README

rconvolve

Crates.io Docs.rs

Fast convolution and impulse response extraction for audio applications in Rust.

Overview

rconvolve provides FFT-based convolution and deconvolution for audio processing. It supports:

  • Batch and real-time convolution for applying impulse responses to audio
  • Exponential sine sweep generation for acoustic measurement
  • Impulse response extraction from recorded sweeps via deconvolution
  • Mono, stereo, and true stereo (4-channel matrix) processing
  • WebAssembly support for browser-based applications
  • no_std compatibility (requires alloc) for embedded systems

Live Demo: Try the WebAssembly demo at rconvolve.pages.dev

Installation

Add to your Cargo.toml:

[dependencies]
rconvolve = "*"

Feature Flags

Feature Default Description
std Yes Enables standard library. Disable for no_std environments.
wasm No Enables WebAssembly bindings via wasm-bindgen.

Quick Start

Batch Convolution

See the example in the rconvolve::convolve module documentation.

Real-Time Convolution

See the example in the rconvolve::convolve::PartitionedConvolution documentation.

Impulse Response Extraction

See the example in the rconvolve::deconvolve module documentation.

Examples

The crate includes some examples:

apply_reverb

Apply convolution reverb to a WAV file:

cargo run --example apply_reverb -- input.wav impulse_response.wav output.wav

realtime_reverb

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

simple_wav_to_ir

Convert a recorded sweep to an impulse response:

cargo run --example simple_wav_to_ir -- recorded_sweep.wav output_ir.wav

WebAssembly

cargo install wasm-pack
wasm-pack build --target web --release

See the full documentation for the WASM API reference, or try the live demo.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Commit count: 0

cargo fmt