用midi控制超准直器合成器

midi2sc的Python项目详细描述


安装

您可以使用easy_install

安装midi2sc
$ easy_install midi2sc

但是,您还需要安装pkaudio及其依赖项。

用法

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)。两个 隐式创建的控件是NoteOnControlNoteOffControl

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端口,然后它将 启动一个显示所有控件滑块的图形用户界面,最后删除 进入一个可访问变量(如 控件handlerssave_presetsload_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'))

截图

左上角的窗口是midi2scpython shell。下面是 midi2scgui,每个synth有一列滑块。在右边 是QJackCtl连接和Seq24

Screenshot of midi2sc

开发状态

midi2sc有些成熟,我用它。同时它也是 大黑客和可能不线程安全。

更改日志

0.1-2009-06-30

  • First release.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有可能让一个bean在春天拥有多个父对象吗?   java将字符串转换为sparql URI   java如何仅从JPQL中的日期时间字段按日期分组   java到节点。js代码转换   java为什么即使构建成功,applet也不启动?   java多人查询jpql   令牌“}”上的java语法错误,{应为   基于列表的简单留言板实现中的java NullPointerException   javasimplenlg:我们如何指定数量?   java如何仅从Freemarker中的字符串获取字母表?   java Spring引导JPA按实体排序集合   java排序单链表与排序双链表   eclipse将版权头添加到所有项目文件(.java、.xml、…)