Staff

crate documentation

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

staff

Installation

cargo install staff --features=cli

Usage

example.ly <c''4 g'> <eis'2 f' g'> g'4 f''2 <c'4 eis'> c'' $ staff engrave example.ly > example.svg

Library

```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)); ```