我正在做一个项目,我想用python到flstudio (fruityloops)创建一个虚拟的midi输入,我已经用谷歌搜索了一下,但我能找到的所有模块都是关于创建midi文件的,这不是我的问题。
那么我应该为python的midi i/o使用什么模块呢?
发布于 2010-08-31 02:18:36
艾哈迈德,我推荐你用米迪轭。构建一个虚拟的MIDI设备驱动程序并不是一件容易的事情,而且这也不是你要用Python做的事情。
http://www.midiox.com/myoke.htm
编辑2011:在过去的一年中,一些事情发生了变化。我推荐使用Tobias Erichsen的驱动程序,它允许您创建虚拟端口并向它们发送数据。如果你可以使用DLL,你就可以使用他的驱动程序。
信息在这里:http://www.tobias-erichsen.de/rtpMIDI.html
请联系他获取API。
发布于 2016-06-06 08:43:25
我只是想完成你的任务,偶然发现了python的"mido library"。在此页面中,您可以看到:
import mido
output = mido.open_output()
output.send(mido.Message('note_on', note=60, velocity=64))我相信这是假设设置了一个默认设备,所以你可能需要运行:
names = mido.get_output_names()
print(names) 查看哪些midi设备也可用于输出。一旦你知道了你的设备名称,你就可以做:
output = mido.open_output(names[indexOfYourDeviceHere])
output.send(mido.Message('note_on', note=60, velocity=64))现在,这个与FL Studio的接口是怎样的?我已经安装了LoopBe1 Virtual Midi Driver,所以当我运行上面的代码时,LoopBe内部Midi设备就会出现。同样,在FL Studio中,我已经启用了LoopBe内部MIDI设备。因此,当您的python程序写入设备时,FL Studio将其读取为midi输入!
遗憾的是,我在我的windows机器上安装mido确实遇到了一些问题,所以我想我应该给你一个指针。为了读取或写入midi设备,您需要安装"mido后端“。在linux上,我只是简单地按照安装页面上的说明来安装portmidi,它工作得很好。
然而,对于windows,我在尝试使用portmidi或其他选项时遇到了很多问题。我最终决定为windows安装pygame (第三个选项),然后使用以下命令将其设置为我的后端:
mido.set_backed("mido.backends.pygame")然后一切都在windows上正常工作。你可以通过googling很容易的找到pygame for windows和mido的安装页面。希望这能对你有所帮助。
https://stackoverflow.com/questions/3478707
复制相似问题