9 个版本
0.2.0 | 2020 年 8 月 19 日 |
---|---|
0.1.7 | 2020 年 5 月 3 日 |
0.1.6 | 2020 年 1 月 25 日 |
#297 in 音频
每月 192 次下载
用于 2 crates
42KB
974 行
Rust 音乐理论
一个库和可执行文件,提供了音乐理论基础(如音符、和弦、音阶、音程等)的程序化实现。
目录
概述
Rust 音乐理论
用于程序化地使用音乐理论概念,如音符、和弦、音阶、音程等。该库的主要目的是让音乐理论能够在其他程序中使用,并以程序化的方式生成音乐/音频。
作为库的使用
将 rust-music-theory
添加到 Cargo.toml 中的依赖项。
[dependencies]
rust-music-theory = "0.2"
安装依赖项后,您可以使用库如下。
extern crate rust_music_theory as rustmt;
use rustmt::note::{Note, Notes, PitchClass};
use rustmt::scale::{Scale, ScaleType, Mode, Direction};
use rustmt::chord::{Chord, Number as ChordNumber, Quality as ChordQuality};
// to create a Note, specify a pitch class and an octave;
let note = Note::new(PitchClass::As, 4);
// Scale Example;
let scale = Scale::new(
ScaleType::Diatonic, // scale type
PitchClass::C, // tonic
4, // octave
Some(Mode::Ionian), // scale mode
Direction::Ascending, // scale direction
).unwrap();
// returns a Vector of the Notes of the scale
let scale_notes = scale.notes();
// Chord Example;
let chord = Chord::new(PitchClass::C, ChordQuality::Major, ChordNumber::Triad);
// returns a Vector of the Notes of the chord
let chord_notes = chord.notes();
这是最简单的使用方式。有关详细信息,请参阅测试文件夹。
作为可执行文件的使用
cargo安装 --githttps://github.com/ozankasikci/rust-music-theory
这将使 cargo 将库作为名为 rustmt
的可执行文件安装。以下是一些使用示例;
rustmt scale D Locrian
Notes:
1: D
2: D#
3: F
4: G
5: G#
6: A#
7: C
8: D
rustmt chord C#属九和弦
Notes:
1: C#
2: F
3: G#
4: B
5: D#
6: G
rustmt scale list
Available Scales:
- Major|Ionian
- Minor|Aeolian
- Dorian
- Phrygian
- Lydian
- Mixolydian
- Locrian
- Harmonic Minor
- Melodic Minor
rustmt chord list
Available chords:
- Major Triad
- Minor Triad
- Suspended2 Triad
- Suspended4 Triad
- Augmented Triad
- Diminished Triad
- Major Seventh
- Minor Seventh
- Augmented Seventh
- Augmented Major Seventh
- Diminished Seventh
- Half Diminished Seventh
- Minor Major Seventh
- Dominant Seventh
- Dominant Ninth
- Major Ninth
- Dominant Eleventh
- Major Eleventh
- Minor Eleventh
- Dominant Thirteenth
- Major Thirteenth
- Minor Thirteenth
从源代码构建
二进制文件实现为一个正则表达式解析器 CLI,返回给定音阶/和弦的音符。要快速本地构建和运行可执行文件;
gitclone http://github.com/ozankasikci/rust-music-theory && cdrust-music-theory
然后您可以直接使用 cargo 编译。以下是一个示例;
cargorun scale D Locrian
Notes:
1: D
2: D#
3: F
4: G
5: G#
6: A#
7: C
8: D
路线图
- 为梅洛迪小调和和声小调音阶添加缺失的模式
- 添加对任意变音符号的支持
- 为正则表达式解析器添加对模式替代名称的支持
- 正确显示等音拼写
- 为和弦添加转位支持
- 添加对 终止式 的支持
- 添加一种从给定音符中查找和弦的机制
依赖项
~4.5–6MB
~103K SLoC