用于Gamelan音乐的Python序列器
gamelan-sequencer的Python项目详细描述
Gamelan序列器
Python Sequencer for Gamelan Music
简介
问题:西方乐谱和MIDI文件不太适合为gamelan乐团创作和演奏乐曲。在
解决方案:Gamelan Sequencer使用Gamelan友好的Kepatian启发的分数格式。当提供乐器样本和乐谱时,提供的Python脚本将生成音乐的录制。在
我很幸运地在网上找到了加州大学戴维斯·加梅兰合唱团的样本,为凯图录制-ketik.com网站由Elisa Hough提供,经允许,我将用这些样本来播种这个系统。在
演示
克隆此存储库并运行以下操作(假设已安装Python):
python -m gamelan_sequencer scores/simple_score.json --mixdown=simple_score.wav
输出应该是一个简单的音乐作品。在
python -m gamelan_sequencer scores/kotekan_sonatina.json --mixdown=kotekan_sonatina.wav
输出应该是这样的:https://youtu.be/6_ZQaYkq0q0
注意:上面视频中的录制使用了--separates
选项,而不是--mixdown
,这允许我从单个曲目进行自定义合成。
要求
- Python2.6+或Python3的任何版本
- (仅当您设置“失谐率”>;0时)scipy库:
pip install scipy
使用
从命令行
python -m gamelan_sequencer SCORE_FILE [--mixdown=MIXDOWN_FILE] [--separates=SEPARATES_FOLDER] [--samples=SAMPLES_FILE]
- SCORE_文件:JSON格式的SCORE的路径
- 有关示例,请参见scores文件夹
- 以下参数中的一个(或两个):
- 合成_文件:录制到单个文件
- 将_FOLDER:记录分隔到包含多个文件的文件夹中
- SAMPLES_文件(可选):gamelan JSON文件的路径
- 默认为提供的javanese_gamelan.json
- 此JSON引用的所有声音必须是WAV格式,并且具有相同的帧速率/每采样位数/num通道。在
从Python环境
from gamelan_sequencer import Gamelan
gamelan = Gamelan()
score = gamelan.load_score(SCORE_FILE)
if score.load_errors == 0:
score.write_mixdown(MIXDOWN_FILE)
-and/or-
score.write_separates(SEPARATES_FOLDER)
输出
输出将是与示例文件具有相同帧速率/每采样位数/num通道的WAV文件。在
如果您为--mixdown
提供一个文件名,则整个录制将混合为一个WAV文件。在
如果您为--separates
提供一个文件夹路径,那么您将为每个唯一的仪器/名称对获得一个单独的WAV文件。在
分数格式
有关示例,请参见scores文件夹。在
Gamelan音乐有不同的音阶符号,但通常都是用一个八度音阶内的数字来表示,数字上方或下方的一个点分别代表较低或较高的八度。在
为了方便起见,我在提供的示例中使用了字母数字值:
^{pr2}$您可以指定在示例JSON文件中选择的任何字符映射(甚至unicode),然后在相应的score JSON文件中使用该映射。在
例如,在默认示例文件javanese_gamelan.json中,我们有以下jenglong示例:
"jenglong": {
"samples": {
"1": "jenglong5lo.wav",
"2": "jenglong4.wav",
"3": "jenglong3.wav",
"5": "jenglong2.wav",
"6": "jenglong1.wav",
"A": "jenglong5hi.wav"
}
}
因此,在我们的乐谱中,我们可以参考以下音符:
{ "instrument": "jenglong", "notes": "5...6...A.6.5...6...A.6.5..." }
如何分开
例如,如果您有这样一个序列:
{ "instrument": "gong", "notes": "1..." },
{ "instrument": "bonang", "track_name": "polos", "notes": "56.5" },
{ "instrument": "bonang", "track_name": "sangsih", "notes": "32.3" }
然后,这些注释将分别记录到以下文件中:
- 在锣鼓在
- 博南_马球.wav在
- 博南_桑西.wav在
它们都是同步的,所以你可以把它们拖到你选择的音频应用程序中进行混合。在
许可证
根据麻省理工学院的许可证。在
注:来自ketuk的样品-ketik.com网站不在本许可证范围内。关于这些在线样品,请参考http://elisahough.com/sounds/sampler.html。在
- 项目
标签: