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

没有这些,它就不会是一个让人难堪的琐碎程序。

安装

###先决条件 您将需要最新版本的pipcython

pip install -U pip pip install cython

###来自PYPI

pip install touchosc2midi

###来源

git clone https://github.com/velolala/touchosc2midi cd touchosc2midi pip install .

pyliblopython rtmidi需要安装一些操作系统库(即liblo devlibrtmidi 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地址。

许可证

这个程序是在麻省理工学院的许可下发布的。有关详细信息,请参见许可证。

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

推荐PyPI第三方库


热门话题
java调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型