9 releases (5 breaking)
Uses old Rust 2015
0.6.0 | Mar 22, 2017 |
---|---|
0.5.0 | Mar 22, 2017 |
0.4.0 | Sep 2, 2016 |
0.3.1 | Aug 2, 2016 |
0.1.0 | Feb 13, 2015 |
#1135 in Audio
23 downloads per month
8KB
131 lines
musical_keyboard
A small lib for converting keyboard input into musical notes.
extern crate musical_keyboard;
use musical_keyboard::{Letter, MusicalKeyboard, NoteEvent, Key};
fn main() {
let mut musical_keyboard = MusicalKeyboard::default();
let on = musical_keyboard.key_pressed(Key::A);
assert_eq!(Some(NoteOn { letter: Letter::C, octave: 2, velocity: 1.0 }), on);
musical_keyboard.key_pressed(Key::X);
let on = musical_keyboard.key_pressed(Key::D);
assert_eq!(Some(NoteOn { letter: Letter::E, octave: 3, velocity: 1.0 }), on);
let off = musical_keyboard.key_released(Key::D);
assert_eq!(Some(NoteOff { letter: Letter::E, octave: 3 }), off);
musical_keyboard.key_pressed(Key::C);
let on = musical_keyboard.key_pressed(Key::Semicolon);
assert_eq!(Some(NoteOn { letter: Letter::E, octave: 4, velocity: 0.95 }), on);
}
The behaviour is modelled on Logic Studio X's musical keyboard.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0.5–0.8MB
~13K SLoC