使用MIDI控制SuperCollider合成器
项目描述
安装
您可以使用 easy_install 安装 midi2sc
$ easy_install midi2sc
但是,您还需要安装 pkaudio 及其依赖项。
用法
midi2sc 允许您将 MIDI 控制器分配给 SuperCollider SynthDefs。
配置
示例配置
[SOSkick] midi_channel = 01 001 = amp_mul= AbsoluteControl(min=0.0, max=1.27, start_vel=100.0) 106 = mod_freq= IDC(min=2.0, max=20.0, steps=50, value=2.0) 107 = mod_index= IDC(min=2.0, max=20.0, steps=50, value=2.0) 108 = beater_noise_level= IDC(min=2.0, max=20.0, steps=50, value=18.0) 109 = decay= IDC(min=0.05, max=1.0, steps=70, value=0.3) noteon_args = out=18
此配置将创建并分配 7 个控件:1 个类型为 AbsoluteControl,4 个类型为 IDC(IncDecControl)。隐式创建的两个控件是 NoteOnControl 和 NoteOffControl。
001 MIDI 控制器通常是调制轮。在这里,它被绑定到 SOSkick SynthDef 的 amp_mul 参数。min 是当轮子在最低位置时发送到 SuperCollider Synth 的值,max 是当轮子在最高位置时的值。
106型MIDI控制器绑定到一个无限编码器,该编码器发送介于01到64之间的相对值用于增加,以及介于127到065之间的相对值用于减少。在最小值和最大值之间有50个步骤。起始值是2.0。这对应于M-Audio Axiom用户指南中所称的2的补码从0 / 相对(2的补码)。
还有专门的音高弯曲和触后控制。
SuperCollider
下面是一个可能使用之前配置的SynthDef示例
SynthDef("SOSkick", { arg out = 0, freq = 50, mod_freq = 6.5, mod_index = 19.5, decay = 0.1, amp = 0.8, beater_noise_level = 0.001, amp_mul = 1.0; var x; // do stuff... Out.ar(out, x); });
在开始使用midi2sc之前,请确保您的SuperCollider服务器已启动并且加载了SynthDefs。
启动midi2sc
在命令行中,midi2sc的运行方式如下
$ midi2sc
这假设您在当前工作目录中有一个midi2sc.ini配置文件。您也可以在命令行上提供此文件名作为选项。有关更多信息,请参阅内置的帮助。
$ midi2sc --help
midi2sc会询问您要绑定的MIDI端口,然后启动一个GUI,显示所有控制器的滑动条,最后将您放入一个交互式外壳,可以访问控制处理器字典和save_presets、load_presets函数。要从Python外壳中的文件保存预置(所有控制器的值)并在以后再次加载它们,您编写
>>> save_presets('presets1.pickle', midi_in) >>> # ... time passes >>> load_presets('presets0.pickle', midi_in)
您还可以加载一个新的midi2sc.ini配置文件
>>> handlers.update(configure.read('midi2sc2.ini'))
屏幕截图
左上方的窗口是midi2sc Python外壳。下方是midi2sc GUI,其中包含每个合成器的滑动条列。右侧是QJackCtl连接和Seq24
开发状态
midi2sc相对成熟,我在使用它。同时,它是一个很大的漏洞,可能不是线程安全的。
变更日志
0.1 - 2009-06-30
第一个版本。
项目详情
midi2sc-0.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cce902ac23b1d75253e863097fea3962491fe7bad09033b16c3e0467c057f196 |
|
MD5 | 90e941f9d4a9a93ac4954be29da2f962 |
|
BLAKE2b-256 | c214e425a42df1d2ab94d84ce7a6b57d5b43531086b9fe30e49d48514e545508 |