sim_lib_pitch_scale/lib.rs
1//! Scales, modes, and scale-locking for the SIM music libraries.
2//!
3//! This crate defines the diatonic and symmetric [`Mode`]s, the [`Scale`] type
4//! that anchors a mode to a tonic pitch class, and the diatonic operations built
5//! on them (degree lookup, diatonic transposition, chord/scale tone mapping). The
6//! [`PlayerScale`] and [`ScaleLockPlayer`] types provide a performance-oriented
7//! surface that quantizes, filters, or remaps incoming pitches onto a chosen scale.
8
9#![forbid(unsafe_code)]
10#![deny(missing_docs)]
11
12mod generate;
13mod model;
14mod player;
15
16pub use generate::*;
17pub use model::*;
18pub use player::*;
19
20/// Cookbook recipes for this lib, embedded at build time.
21pub static RECIPES: sim_cookbook::EmbeddedDir =
22 include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
23
24#[cfg(test)]
25mod tests;