1
1
Fork
You've already forked libkeynotation
0
A (musical) key notation parser and transposer
  • Rust 99.1%
  • Shell 0.9%
2024年01月26日 04:05:12 +01:00
assets Remove version badge 2023年11月30日 15:51:03 +01:00
scripts Remove version badge 2023年11月30日 15:51:03 +01:00
src Implement Key::to_lancelot_i32() and Key::try_from_lancelot_i32() 2024年01月26日 04:04:30 +01:00
.gitignore Here we go 2023年11月30日 15:18:10 +01:00
Cargo.lock v0.2.0 2024年01月26日 04:05:12 +01:00
Cargo.toml v0.2.0 2024年01月26日 04:05:12 +01:00
CHANGELOG.md v0.2.0 2024年01月26日 04:05:12 +01:00
LICENSE Initial commit 2023年11月30日 14:17:10 +00:00
README.md Remove version badge 2023年11月30日 15:51:03 +01:00

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