5 个版本
0.1.26 | 2024年3月2日 |
---|---|
0.1.25 | 2024年2月28日 |
0.1.24 | 2024年1月29日 |
0.1.22 | 2024年1月29日 |
0.1.18 | 2024年1月29日 |
#1 in #rhythm
585KB
812 行
Metrome
Metrome 是一个节拍轨生成器。它使用基于文本的简单节奏记谱法来生成任何类型的节奏节拍轨。目前,Metrome 可以作为 CLI 或 Rust crate 使用。计划添加网页界面!
为什么你会选择 Metrome,而不是节拍器呢?
你的节奏需求可能不同。对于大多数音乐家来说,一个发出恒定脉冲的简单设备可能就足够了。对于一小部分音乐家,一个 多节奏节拍器 可能能满足他们的特殊节奏需求。然而,如果你发现自己面对的是具有恒定速度、节拍和脉冲变化的乐谱,你可能需要一个专门的节拍轨来练习该乐谱。甚至偶尔出现的奇数拍也会使正常节拍器的练习变得困难。
使用方法
CLI
系统要求:运行 Metrome CLI 需要 Rust。请按照 此页面 安装 Rust。
快速入门
为了快速开始,您可以克隆此仓库并渲染示例。
git clone https://github.com/somecho/metrome
cd metrome
# Linux & Mac
./render_examples.sh
# Windows
./render_examples.ps1
运行此操作后,metrome 目录的根目录应包含许多 WAV 文件,您可以直接在命令行中运行 cvlc(如果您已安装 VLC 播放器)。否则,只需使用您选择的播放器播放 WAV 文件。
提供自己的乐谱
Metrome 乐谱只是一个没有扩展名的文本文件。要向 Metrome 提供自己的乐谱,请使用如下 -
标志: metrome -
或在 metrome 项目目录中 cargo run -- -p my_score
。使用 -/--output
标志指定自定义输出路径。有关如何编写节奏乐谱的更多信息,请参阅以下部分。
编程使用示例
use metrome::{scanner, score::Score};
fn main() {
let file = std::fs::read_to_string("myscore").unwrap();
let tokens = scanner::scan(file).unwrap();
let score = Score::new(tokens).unwrap();
score.write_click_track("myscore.wav");
}
Metrome 乐谱
Metrome 使用乐谱创建节拍轨,它只是一个简单的文本文件。以下是一个简短的示例。
示例
| q. e q. e | e e e e h
| q. e q. e | e e e e h
| q q. e e e | e e q. e e e
| e e q. e e e | e e q. e e e |
小节
正如您所看到的,它遵循传统的记谱法,音符被分组在乐句中(如通过谱线|
表示)。然而,与传统记谱法不同的是,您不需要提供拍号。乐句的作用是区分强拍和弱拍,每个乐句的第一个强拍是强的,其余的是弱的。
| q q q |
^ ^ ^
| | |
| | Weak
| Weak
Strong
⚠每个乐谱都必须以乐句线开始和结束!
提示:您可以根据自己的喜好组织乐谱。换行符不会产生影响。
音符、时值和比例
音符可以用这些字母表示
w
- 全音符h
- 二分音符q
- 四分音符e
- 八分音符s
- 十六分音符t
- 三十二分音符
或者,您也可以用比例来写音符
these two bars are the same: | 1/4 1/4 1/4 1/4 | q q q q |
ratios are great for triples: | 1/6 1/6 1/6 1/6 1/6 1/6 |
您可以使用这些比例的任意组合。例如,| q 1/6 1/6 1/6 h |
是一个有效的乐句。
带点音符
任何音符、时值或比例都可以使用点.
来延长,就像传统记谱法一样。例如,q.
的时长是3/8
,而q..
的时长是7/16
。
速度
速度可以像这样指定q = 140
(读作:每分钟140个四分音符)。这种语法的格式是<note> = <number>
,其中<note>
是表示为字母或比例的时值。
速度可以指定在乐谱的任何位置
At the beginning like a normal score
q = 140
| q q q q |
After a bar
| q q q q | h = 90 h h |
In the middle of a bar like a psycho
| q q q=150 1/6 1/6 1/6 |
注意:当未指定速度时,Metrome默认为
q = 120
或每分钟120个四分音符。如果您问我,这似乎很合理。
相对速度变化
在许多音乐中,速度变化可以是相对的。例如,♩=♩. ,意味着圆点四分音符现在与四分音符一样长。您通常会在从4/4(简单拍子)切换到6/8(复拍子)的音乐中找到这一点,其中脉冲分割从二变三,长度保持不变。
在Metrome中,等效的是q=q.
。简单、干净。您还可以这样做1/6=q
,其中四分音符现在与三连音四分音符一样快(从语义和音乐上讲是同一件事,但不同)。
示例
查看示例以供参考。
路线图
- 接受
stdin
输入 - 浮点速度
-
-o
标志用于指定自定义输出路径
© 2024 Somē Cho
依赖项
~1.3–1.9MB
~36K SLoC