#音乐理论 #midi #和弦 #音阶 #音符 #音符 #音高

music-note

具有midi、音符、和弦、音阶等音乐理论的库

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 中使用

MIT 协议

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