Skip to main content

sim_lib_music_core/
lib.rs

1//! Core music model layer for the SIM music constellation.
2//!
3//! SIM is a Rust runtime with multiple codec surfaces; this crate supplies the
4//! concrete music domain that those surfaces operate on. It defines the music
5//! object model (notes, chords, melodies, scores), the descriptor metadata that
6//! describes music components and their ports and parameters, events and lanes,
7//! the piano roll and time grid, players and playables, performances and takes,
8//! the arranger, freeze surfaces, traces, the component registry, and the
9//! citizen integration that registers these types with the runtime.
10#![forbid(unsafe_code)]
11#![deny(missing_docs)]
12
13mod arranger;
14mod arranger_expr;
15mod arranger_music_expr;
16mod arranger_render;
17mod browse;
18mod citizen;
19mod descriptor;
20mod descriptor_defaults;
21mod descriptor_modulators;
22mod descriptor_step_players;
23mod event;
24mod freeze;
25mod lane;
26mod model;
27mod objects;
28mod performance;
29mod piano_roll;
30mod playable;
31mod player;
32mod player_chain;
33mod registry;
34mod time;
35mod trace;
36
37pub use arranger::*;
38pub use browse::*;
39pub use citizen::*;
40pub use descriptor::*;
41pub use descriptor_defaults::*;
42pub use descriptor_modulators::*;
43pub use descriptor_step_players::*;
44pub use event::*;
45pub use freeze::*;
46pub use lane::*;
47pub use model::*;
48pub use performance::*;
49pub use piano_roll::*;
50pub use playable::*;
51pub use player::*;
52pub use player_chain::*;
53pub use registry::*;
54pub use time::*;
55pub use trace::*;
56
57#[cfg(test)]
58mod arranger_tests;
59
60#[cfg(test)]
61mod player_tests;
62
63#[cfg(test)]
64mod performance_tests;
65
66#[cfg(test)]
67mod piano_roll_tests;
68
69#[cfg(test)]
70mod recipe_tests;
71
72#[cfg(test)]
73mod registry_tests;
74
75/// Cookbook recipes for this lib, embedded at build time.
76pub static RECIPES: sim_cookbook::EmbeddedDir =
77    include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
78
79#[cfg(test)]
80mod tests;