4个版本 (2个重大更改)
0.3.1 | 2022年8月10日 |
---|---|
0.3.0 | 2022年5月5日 |
0.2.0 | 2022年4月28日 |
0.1.0 | 2022年4月25日 |
#579 in 音频
在 2 crates 中使用
43KB
1K SLoC
具有midi、音符、和弦、音阶等音乐理论的库
use music_note::{midi, Chord, Pitch};
let chord = Chord::from_midi(
midi!(C, 4),
[midi!(E, 3), midi!(G, 3), midi!(C, 4)]
);
assert_eq!(chord.to_string(), "C/E");
let pitches = [Pitch::E, Pitch::G, Pitch::C];
assert!(chord.into_iter().eq(pitches));
lib.rs
:
具有midi、音符、和弦、音阶等音乐理论的库
示例
创建一个C大调(第一转位)和弦并遍历其音符。
use music_note::{midi, Chord, Pitch};
// C/E
let chord = Chord::from_midi(
midi!(C, 4),
[midi!(E, 3), midi!(G, 3), midi!(C, 4)]
);
assert_eq!(chord.to_string(), "C/E");
let pitches = [Pitch::E, Pitch::G, Pitch::C];
assert!(chord.into_iter().eq(pitches));
创建一个C大调音阶并遍历其音符。
use music_note::{midi, Note, Scale};
// C major
let scale = Scale::major(midi!(C, 4));
assert!(scale.eq([
midi!(C, 4),
midi!(D, 4),
midi!(E, 4),
midi!(F, 4),
midi!(G, 4),
midi!(A, 4),
midi!(B, 4),
]));
依赖项
~155KB