hapsi

A package that represents a musical concept.

Example

```rust use hapsi::prelude::*;

let scale = Diatonic::major(&"C".parse().unwrap()); let scaled = Scaled::new(scale, Twelve); let keyboard = Keyboard::new(scaled); let mut tones = keyboard.class_iter();

asserteq!(tones.next(), Some(&"C".parse().unwrap())); asserteq!(tones.next(), Some(&"D".parse().unwrap())); asserteq!(tones.next(), Some(&"E".parse().unwrap())); asserteq!(tones.next(), Some(&"F".parse().unwrap())); asserteq!(tones.next(), Some(&"G".parse().unwrap())); asserteq!(tones.next(), Some(&"A".parse().unwrap())); asserteq!(tones.next(), Some(&"B".parse().unwrap())); asserteq!(tones.next(), None); ```

WIP