2 个版本
0.1.1 | 2021年11月9日 |
---|---|
0.1.0 | 2020年9月12日 |
#795 in 音频
1MB
560 行
rudiments
rudiments 是一个步进式鼓机,使用音频样本播放节奏模式。
功能
- 16步可编程小节。
- 可按轨道配置幅度。
- 可调整速度。
- 单次播放或重复播放。
- 支持多种音频文件格式
- MP3
- WAV
- Vorbis
- Flac
播放和音频文件解码由 rodio 处理。
用法
rudiments 0.1.1
A step-sequencing drum machine
USAGE:
rudiments [FLAGS] [OPTIONS] --pattern <FILE> --instrumentation <FILE> --samples <DIRECTORY>
FLAGS:
-h, --help Prints help information
-r, --repeat Repeat the pattern until stopped
-V, --version Prints version information
OPTIONS:
-i, --instrumentation <FILE> Path to instrumentation file
-p, --pattern <FILE> Path to pattern file
-s, --samples <DIRECTORY> Search path for sample files
-t, --tempo <NUMBER> Playback tempo [default: 120]
输入
rudiments 加载一个 模式 文件,并将模式中的轨道绑定到 乐器配置 文件中定义的 样本 目录中的音频文件。
模式文件 (--pattern
)
模式文件中的每一行代表一个轨道。模式中轨道的数量没有限制。一个轨道包含一个乐器名称、一个16步序列和一个可选的幅度。乐器名称是一个标识符,每个模式中只能出现一次。每个序列代表4/4拍中的单个小节,分为16分音符步(x
表示 播放,-
表示 静音)。轨道可以包含一个范围在 [0,1] 内的可选幅度。默认情况下,轨道以全音量播放。
以下是一个模式文件内容的示例,用于标准的八分音符节奏,并且打击乐轨道以半音量播放。
hi-hat |x-x-|x-x-|x-x-|x-x-| 0.5
snare |----|x---|----|x---|
kick |x---|----|x---|----|
乐器配置文件 (--instrumentation
)
乐器配置文件将模式文件中的乐器绑定到音频样本文件。乐器配置文件中的每一行包含一个乐器名称和一个音频文件名称。每个乐器只能出现一次,但单个音频文件可以绑定到多个乐器。
以下是一个乐器配置文件内容的示例,将五个乐器绑定到四个音频样本文件。
请注意,
tom.wav
用来绑定tom-1
和tom-2
。
hi-hat hh.wav
tom-1 tom.wav
tom-2 tom.wav
snare snare.wav
kick kick.wav
样本目录 (--samples
)
rudiments 将在样本目录中查找乐器配置文件中列出的音频文件。
速度 (--tempo
)
这调整播放速度(即每分钟的节拍数)。默认播放速度是 120。
安装
rudiments 可以使用 cargo
安装。
$ cargo install rudiments
即将推出的功能
- 摇摆
- 混响
- 记录输出音频文件
- 模式组合
- 防止削波
- 触发输入
- 不同的拍号
- 基于终端的用户界面
- 播放跟踪
- 实时模式编辑
缺少有趣或有用的功能?请随时提交功能请求和PR!
演示 🥁
assets
目录包含一些示例模式和来自 LinnDrum 打击乐机的音频样本。
标准八分音符节奏
$ rudiments \
--pattern ./assets/patterns/standard \
--instrumentation ./assets/instrumentations/linndrum \
--samples ./assets/samples/linndrum \
--repeat
Burning Up (Madonna)
$ rudiments \
--pattern ./assets/patterns/burning-up \
--instrumentation ./assets/instrumentations/linndrum \
--samples ./assets/samples/linndrum \
--tempo 140 \
--repeat
Thriller (Michael Jackson)
$ rudiments \
--pattern ./assets/patterns/thriller \
--instrumentation ./assets/instrumentations/linndrum \
--samples ./assets/samples/linndrum \
--tempo 118 \
--repeat
Get a Little (Patrick Cowley)
$ rudiments \
--pattern ./assets/patterns/get-a-little \
--instrumentation ./assets/instrumentations/linndrum \
--samples ./assets/samples/linndrum \
--repeat
I Wanna Dance With Somebody (Whitney Houston)
$ rudiments \
--pattern ./assets/patterns/i-wanna-dance-with-somebody \
--instrumentation ./assets/instrumentations/linndrum \
--samples ./assets/samples/linndrum \
--tempo 118 \
--repeat
Tom Sawyer (Rush)
$ rudiments \
--pattern ./assets/patterns/tom-sawyer \
--instrumentation ./assets/instrumentations/linndrum \
--samples ./assets/samples/linndrum \
--tempo 180
Never Gonna Give You Up (Rick Astley)
$ rudiments \
--pattern ./assets/patterns/never-gonna-give-you-up \
--instrumentation ./assets/instrumentations/linndrum \
--samples ./assets/samples/linndrum
依赖关系
~4–6MB
~108K SLoC