Staff

crate documentation

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

Installation

cargo install staff --features=cli

Usage

Command-line interface

``` $ staff chord C#m7

C# F G# B $ staff scale D dorian

D E F G A B C ```

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