Skip to main content

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 model;
13mod player;
14
15pub use model::*;
16pub use player::*;
17
18/// Cookbook recipes for this lib, embedded at build time.
19pub static RECIPES: sim_cookbook::EmbeddedDir =
20    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
21
22#[cfg(test)]
23mod tests;