我正在编写一个将OSC转换为MIDI的程序,允许启用OSC的应用程序(如我的iPhone上的touchOSC)控制启用MIDI的应用程序(Sibelius,Ableton Live等).
我正在使用Python创建一个OSC服务器并从OSC转换为MIDI.为了将MIDI转换为有问题的应用程序,我将MIDI输出到Apple IAC驱动程序,然后将其作为相关程序中的输入启用.
有没有人知道以编程方式以编程方式配置Mac MIDI设备的方法?特别是,我需要启用IAC驱动程序,默认情况下禁用该驱动程序.
使用FileMon,我发现在启用/禁用IAC驱动程序时,Audio Midi Setup.app会修改此文件:
?/首选项/ ByHost / com.apple.MIDI.0017f2cxxxxx.plist
编号0017f2cxxxxx是我的系统IOPlatformUUID.这是一个简单的XML属性列表,但我很担心直接写它.即使我这样做,大概我也需要哄骗midi服务器进程以某种方式重新读取它?
最后,我越来越意识到使用IAC驱动程序是一个非常简单的解决方案 – 一开始它只适用于Mac!理想情况下,我会编写一个环回MIDI驱动程序,我的所有问题都将得到解决……
解决方法:
你直接写到plist的预感是正确的 – 你可能不应该这样做.我不是100%肯定这一点,但我感觉plist反映了MIDI设备的状态,但改变它不会打开或关闭MIDI设备.
要实际打开MIDI设备,你可以使用像pygame这样的东西.我已经将它用于一些与音频相关的项目,而且SDK非常简单易用.由于python没有直接支持MIDI,这可能是你最好的选择(没有自己编写python C模块,这将是相当痛苦的).
至于IAC,很遗憾其他操作系统没有像这样的虚拟MIDI设备. IAC非常有用并且擅长它的功能.因此,虽然依赖IAC这样的东西不会是跨平台的,但你可以编写一个抽象层来操作环回设备.对于Windows用户,您可以建议将free MIDI loopback device与您的软件一起使用.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!