sim_lib_music_transform/lib.rs
1//! Music transformation layer for the SIM music constellation.
2//!
3//! This crate applies transformations to musical material: classic operations
4//! such as transpose, invert, retrograde, augment, and diminish; exact
5//! identity-preserving staff operations for sustain, slur, expansion,
6//! delayed-note voice separation, register unwrapping, slicing, composition,
7//! and rhythm masks; configurable pitch and time remaps; pattern mutators; and
8//! a capability-gated custom event filter pipeline. Every exact staff operation
9//! returns a [`MusicTransform`] with stable identities and explicit edits.
10//! General object transforms return new `Music`, optionally paired with
11//! diagnostics in a [`TransformReport`].
12#![forbid(unsafe_code)]
13#![deny(missing_docs)]
14
15mod arranger;
16mod diagnostic;
17mod exact;
18mod filter;
19mod filter_eval;
20mod model;
21mod mutator;
22mod pitch_map;
23mod player;
24mod remap;
25mod serial;
26
27pub use arranger::*;
28pub use diagnostic::*;
29pub use exact::*;
30pub use filter::*;
31pub use model::*;
32pub use mutator::*;
33pub use pitch_map::*;
34pub use player::*;
35pub use remap::*;
36pub use serial::*;
37
38/// Cookbook recipes for this lib, embedded at build time.
39pub static RECIPES: sim_cookbook::EmbeddedDir =
40 include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
41
42#[cfg(test)]
43mod tests;