我想谈谈如何解决硬件合成器爱好者可能熟悉的问题。
如果我想对接MIDI控制器和合成器,但是其中一个仅具有USB连接器却没有MIDI,该怎么办? 而且,出于明显的原因,我想在不使用计算机的情况下进行所有操作。
我曾在互联网上搜索过几次以寻找用于此目的的设备,但除了找到一些连接到几个小型流通设备的链接(花费很多钱)之外,我什么都没找到,这些链接已经停产了。
在某个时候,它突然出现在我身上:您可以使用Raspberry Pi并在其上进行所有操作-这是一台真正的计算机,在此计算机上可以轻松完成这些操作。
对于完整的声音处理,它可能很弱,但是MIDI消息流应该已经被传送。
[顺便说一句, Raspberry Pi有一个音效处理器 ,但是它需要最新的Raspberry Pi型号,该型号价格昂贵得多,外加一个额外的屏蔽罩,价格也不便宜,我决定不打扰]。
言归正传。 Raspberry Pi获得了第一个模型,并在几个晚上组装了一个工作原型。 简而言之,它是如何工作的。
ALSA Midi
最初,我计划采用PureData并为其编写一个简单的补丁程序,该补丁程序会将Midi消息从一个端口传输到另一个端口。
但是,当我开始在Linux上使用MIDI时,我发现了一种更为简单的方法。
Linux具有标准的声音输入/输出系统-ALSA。 它同时支持音频流和MIDI。
为了使程序通过ALSA接收MIDI消息,您首先需要将其连接到这些消息的源。 但这正是我们解决这个问题所需要的! 我三思而后行,我放弃了PureData并使用ALSA本地工具进行了所有操作。
这是结果。
连接
当您将MIDI设备连接到系统时,它会出现在ALSA设备中,并且您可以使用标准命令执行各种操作。 我们对aconnect
团队感兴趣, aconnect
团队只是使端口断开连接。 详细文档可在此处找到 。
实际上,我们只需要执行两项操作:显示可用设备的列表,并将一个设备连接到另一个设备:
# MIDI-, aconnect -l # Arturia Keystep Xio aconnect 'Arturia KeyStep 32' 'Xio'
我用自动启动systemd脚本包装了这些命令,并将它们配置为不断循环启动,您可以在这里看到我是如何做到的。
替代品
如果仍需要以某种方式处理MIDI流,然后再将其发送到输出,则可以使用几个选项:
如果您知道更多选项,请发送。
更新:摘要
经过一个半月的实验,我总结一下。
结果,实践表明,转移票据无关紧要-票据经常移出并跳过。
对于时钟传输,这或多或少是正常的-在受控合成器的琶音器与门框的主节奏同步中,我听不到门框的声音。
但是对于控制器消息的传输,这似乎是理想的。
现在,您可以将Launch Control XL连接到任何语法。
参考文献
当我由于某种原因上次研究这个问题时,我什么都找不到。
这次有很多事情,我将在这里发布链接,这样,如果出现相同的问题,您就不会重复我的路径。