| Crates.io | lyris |
| lib.rs | lyris |
| version | 0.0.12 |
| created_at | 2025-07-04 11:59:34.840028+00 |
| updated_at | 2025-07-07 05:11:10.455845+00 |
| description | A real-time safe audio processing framework |
| homepage | |
| repository | https://github.com/MoofSoup/lyris |
| max_upload_size | |
| id | 1737916 |
| size | 66,422 |
At Ceres, we believe in making the impossible fun. That is why we made Lyris, an ergonomics-first, data driven framework for digital signal processing. Lyris lets you focus on what matters: writing digital signal processors.
#[processor]
pub mod filter{
struct FilterState {
z1: f32,
}
fn filter(
audio_in: Input, // derefs into Option<&[f32]>,
cutoff: Input, // derefs into Option<&[f32]>
audio_out: Output, // deref muts into &mut [f32]
z1: State<FilterState>, // derefs into &mut FilterState
events: Events, // Option<&[Event]>, events are copyable
) {
for (i, &sample) in audio_in.unwrap_or(&[]).enumerate() {
audio_out[i] = z1;
*z1 = sample * 0.1 + *z1 * 0.9;
}
}
}
let (mut runtime, router) = Builder::<Event>::new()
.add(saw::new())
.add(filter::new())
.buffer_length(1024)
.build();
router.route(
saw::audio_out(),
filter::audio_in(),
);
router.route(
filter::audio_out(),
lyris::output()
);
The future of Lyris contains:
#[processor] macroA loose date for these features is September of 2025 (as I need a break from this project for a minute XD)
At Ceres, I am working on a feedback based drum synthesizer VST, inspired by SOPHIE. For updates, to contribute, or just to make cool projects and share your work, please join the official Ceres Discord
Thanks for checking out Lyris!
Sylvia Soup <3