A (musical) key notation parser and transposer
- Rust 99.1%
- Shell 0.9%
| assets | Remove version badge | |
| scripts | Remove version badge | |
| src | Implement Key::to_lancelot_i32() and Key::try_from_lancelot_i32() | |
| .gitignore | Here we go | |
| Cargo.lock | v0.2.0 | |
| Cargo.toml | v0.2.0 | |
| CHANGELOG.md | v0.2.0 | |
| LICENSE | Initial commit | |
| README.md | Remove version badge | |
libkeynotation - A (musical) key notation parser and transposer
This library supports parsing musical keys notated in different formats and transposing the key. You can freely convert between the different formats and also transpose the key if the track is being played faster/slower.
Supported notations
- Traditional (eg. F#m, Abm, G♭,...)
- OpenKey (1m, 1d, 12m, 12d..)
- Lancelot (1A, 1B... 12A, 12B)
Example:
uselibkeynotation::Key;letkey=Key::from_string("F#m").unwrap();assert_eq!(key.lancelot(),"11A");assert_eq!(key.open_key(),"4m");assert_eq!(key.transpose_bpm(135.0,140.4).lancelot(),"6A");