Staff

crate documentation

Website

Music theory and score rendering library with midi, notes, chords, scales, and more.

Usage

```rust use staff::{midi, Chord, Pitch};

let chord = Chord::from_midi( midi!(C, 4), [midi!(E, 3), midi!(G, 3), midi!(C, 4)] );

asserteq!(chord.tostring(), "C/E");

let pitches = [Pitch::E, Pitch::G, Pitch::C]; assert!(chord.into_iter().eq(pitches)); ```

Features