| Crates.io | cloudseedcore-rs |
| lib.rs | cloudseedcore-rs |
| version | 0.3.0 |
| created_at | 2025-11-28 15:47:52.155543+00 |
| updated_at | 2025-11-28 16:38:44.544615+00 |
| description | A safe wrapper around the CloudSeedCore Reverb algorithm. |
| homepage | |
| repository | https://github.com/CrushedPixel/cloudseedcore-rs |
| max_upload_size | |
| id | 1955506 |
| size | 127,867 |
This crate provides safe Rust bindings to the CloudSeedCore Reverb algorithm.
The specific version vendored is commit b46bd7e
on talaviram's fork, which fixes some cross-platform compatibility issues.
Building this crate requires a C++14 toolchain. The C++ bindings are created using cxx.
Output of one of the test cases, wide pulse with the Dark Plate preset applied:
https://github.com/user-attachments/assets/fb64421c-4911-4527-8389-5030926e4b85
use cloudseedcore_rs::{ReverbController, ParamId}
// create the reverb instance
let sample_rate = 48_000;
let block_size = 512;
let mut reverb = ReverbController::new(sample_rate, block_size);
// load the "Dark Plate" preset
reverb.set_program(&cloudseedcore_rs::DARK_PLATE);
// only output wet signal
reverb.set_parameter(ParamId::DryOut, 0.0);
// process stereo audio
// assuming you have four sample buffers of size block_size, two for input, two for output:
reverb.process(&in_left, &in_right, &mut out_left, &mut out_right, block_size);
// to persist the reverb's parameter state,
// you can get them as an array of f32 like so:
let state = reverb.get_program().to_array();
This crate is MIT licensed.
Any code under vendor/CloudSeedCore falls under the original MIT license,
reproduced within that directory.