python中的touchosc桥克隆
touchosc2midi的Python项目详细描述
>;一个touchsoc桥克隆,针对linux,用python编写。
动机
我想在一个树莓上建一座touchosc桥。在研究了各种选择之后 死气沉沉,我想,我需要自己写。具体而言,该计划旨在实现以下目标:
- 它在Linux上工作
- 它在ARM上工作
- 它不需要布局文件。
- 它可以提供虚拟的midi端口,就像来自http://hexler.net/software/touchosc
- 它是开源的
- 它通过zeroconf
- 它需要最少的配置
依赖关系
TouchOSC2 MIDI是在这些PIP可安装包的基础上构建的:
- pyliblo
- mido(需要python rtmidi和/或(fixme!)portmidi)
- zeroconf
没有这些,它就不会是一个让人难堪的琐碎程序。
安装
###先决条件 您将需要最新版本的pip和cython
pip install -U pip pip install cython
###来自PYPI
pip install touchosc2midi
###来源
git clone https://github.com/velolala/touchosc2midi cd touchosc2midi pip install .
pyliblo和python rtmidi需要安装一些操作系统库(即liblo dev和librtmidi devdebian)。查看https://github.com/velolala/touchosc2midi/tree/master/docker/Dockerfile,了解如何使用python 2.7从普通debian安装。
入门
安装后,您的路径中应该有一个touchsc2midi脚本。从
开始touchosc2midi
打开TouchOSC设备上的“MIDI桥”配置对话框。你应该看到你主人的条目。单击您的主机并单击“完成”。现在你应该有一个名为“touchOSC桥”的MIDI输入输出端口,你可以在你的客户端软件中使用。
MIDI配置
本节将向您介绍如何进行更具体的MIDI配置。
###后端
由于touchsc2midi使用mido,因此可以配置多个后端(请参见: http://mido.readthedocs.org/en/latest/backends.html了解详细信息)。
默认情况下,它尝试模拟原始的touchsoc网桥的行为(请参见:http://hexler.net/software/touchosc);即:打开名为“touchsoc网桥”的虚拟进出口。因此,它在默认情况下尝试使用rtmidi后端,因为只有此后端允许创建虚拟midi端口。
不幸的是,它变得更加混乱,因为rtmidi允许几个api(例如“linux-alsa”、“unix-jack”)。 TouchOSC2MIDI的默认设置是在第一个可用/实现的API中使用RTMIDI后端。
如果要更改后端,则命令:
touchosc2midi list backends
列出可用于mido_backend=…环境变量的可用完整后端字符串。 要使用另一个后端,请调用touchsc2midi,如下所示:
MIDO_BACKEND=<backend string> touchosc2midi
###MIDI端口
默认情况下,TouchOSC2MIDI使用虚拟端口进行MIDI输入和MIDI输出。但是,您可以直接连接MIDI端口。命令:
touchosc2midi list ports
列出所有可用端口及其ID和端口字符串。您可以通过ID或名称字符串连接MIDI输入和MIDI输出端口,例如:
touchosc2midi –midi-in=1 –midi-out=”iConnectMIDI4+ MIDI 11”
请注意,目前无法混合虚拟和直接MIDI端口(但我很乐意接受您的公关!).
OSC配置
touchsc2midi尝试自动检测网络部件的主网络接口,您可以预期这在大多数情况下都能正常工作。但是,您可以让它监听特定的IP地址:
touchosc2midi –ip=192.168.0.53
码头工人
git存储库包含一个dockerfile。使用它:
cd docker
docker build -t touchosc2midi:latest .
上面构建了一个包含所有操作系统依赖项和已安装的touchsc2midi的容器。当运行时,您需要共享`/dev/snd/seq设备并公开osc接收端口,例如:
docker run -p 0.0.0.0:12101:12101/udp –device=/dev/snd/seq:/dev/snd/seq touchosc2midi:latest
注意,当使用Docker时,ZeroConf服务通告不起作用,因此您必须在TouchOSC设备上手动配置IP地址。
许可证
这个程序是在麻省理工学院的许可下发布的。有关详细信息,请参见许可证。