cloudseedcore-rs 0.1.0

A safe wrapper around the CloudSeedCore Reverb algorithm.
docs.rs failed to build cloudseedcore-rs-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: cloudseedcore-rs-0.3.0

cloudseedcore-rs

This crate provides safe Rust bindings to the CloudSeedCore Reverb algorithm, commit deb21de.

Building this crate requires a C++14 toolchain. The C++ bindings are created using cxx.

Hear it

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

Example usage

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();

License

This crate is MIT licensed.

Any code under vendor/CloudSeedCore falls under the original MIT license, reproduced within that directory.