11 releases
Uses new Rust 2024
| 0.0.13 | Jan 21, 2026 |
|---|---|
| 0.0.12 | Jan 10, 2026 |
| 0.0.9 | Dec 29, 2025 |
| 0.0.5 | Jun 20, 2025 |
| 0.0.1 | Jul 15, 2024 |
#458 in Math
Used in 7 crates
185KB
4.5K
SLoC
rstmt
_Warning: expect heavy changes to the API as the library is currently in the early stages of development and is not yet ready for production use.
rstmt is a generalize music-theory toolkit written in Rust.
Features
- American Standard Pitch Notation (ASPN)
- The Neo-Riemannian Theory
Usage
Add this to your Cargo.toml:
[dependencies.rstmt]
features = ["full"]
version = "0.0.x"
Examples
Example #1: Using the Triad implementation
extern crate rstmt;
use rstmt::Note;
use rstmt::nrt::Triad;
fn main() -> Result<(), Box<dyn core::error::Error + Send + Sync + 'static>> {
let root = Note::from_pitch(0);
// initialize a c-major triad
let triad = dbg!(Triad::major(root));
// test the root of the triad
assert_eq!(triad.root(), root);
// test the parallel transformation
assert_eq!(triad.parallel(), Triad::minor(root));
// assert the invertibility of the transformations
assert_eq!(triad.parallel().parallel(), triad);
Ok(())
}
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
Getting Started
For more information on getting an environment setup to develop the crate view the QUICKSTART file.
Dependencies
~0.5–5.5MB
~85K SLoC