用midi控制超准直器合成器
midi2sc的Python项目详细描述
用法
midi2sc允许您将MIDI控制器分配给SuperColliderSynthDefs。
配置
配置示例:
[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个控件:类型之一 AbsoluteControl,四个类型为IDC(incdeccontrol)。两个 隐式创建的控件是NoteOnControl和 NoteOffControl。
001midi控制器通常是调制轮。在这里 它绑定到SOSkicksynthdef的amp_mul参数。 min是当轮子处于 在其最低位置,max最高位置的值。
106midi控制器绑定到一个无尽的编码器,该编码器发送 增量的01 to 64与^{tt16}之间的相对值$ 为了减量。在min和^{tt13}之间有50steps。$ 价值。我们开始的值是2.0。这与 什么是用户定义向导?。
还有专门的俯仰弯曲和触球后控制。
超准直器
这就是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); });
确保你的超级准直器服务器已经启动并且synthdefs已经加载 在开始midi2sc之前。
启动midi2sc
在命令行中,midi2sc按如下方式运行:
$ midi2sc
这假设您在 当前工作目录。您还可以将此文件名作为 命令行上的选项。有关更多信息,请参阅内置帮助 选项:
$ midi2sc --help
midi2sc将要求您绑定MIDI端口,然后它将 启动一个显示所有控件滑块的图形用户界面,最后删除 进入一个可访问变量(如 控件handlers和save_presets和load_presets 功能。从文件中保存预设(来自所有控制器的值) 在python shell上,然后稍后再次加载它们,您可以编写:
>>> save_presets('presets1.pickle', midi_in) >>> # ... time passes >>> load_presets('presets0.pickle', midi_in)
您还可以加载新的midi2sc.ini配置:
>>> handlers.update(configure.read('midi2sc2.ini'))
开发状态
midi2sc有些成熟,我用它。同时它也是 大黑客和可能不线程安全。
更改日志
0.1-2009-06-30
- First release.