从VB或Python脚本控制FruityLoops或Reason?

10 投票
7 回答
3440 浏览
提问于 2025-04-11 09:35

我在我的Windows电脑上有Fruityloops和Propellerheads Reason这两个软件合成器。

请问有没有办法通过Visual Basic或Python来控制这些合成器?或者至少能不能从代码里发送MIDI信息给合成器呢?

更新:我尝试使用类似“midi-mapper”的东西(感谢MusiGenesis提供的链接),但似乎不太管用。我觉得Reason和FL Studio并不像标准的GM MIDI合成器。

更新2:如果你对这个问题感兴趣,可以看看这个链接

7 个回答

2

我觉得FL Studio和Reason都可以设置为默认的MIDI播放设备。如果你想通过VB.NET发送MIDI信息到这两个软件,你需要使用一些特定的API调用,比如midiOutOpen、midiOutShortMsg和midiOutClose。这里有个链接提供了代码示例:

http://www.answers.com/topic/midioutopen

这些示例是针对VB6的,但应该很容易转换成VB.NET。

我知道FL Studio可以通过为FL编写的插件(或者VSTx插件)来控制,但我想这些插件通常都是用C或C++写的。

补充一下:我刚刚了解到Windows Vista取消了MIDI Mapper,这本来可以让设置FL或Reason作为默认MIDI设备变得简单。真让人惊讶。这里有个我找到的替代解决方案的链接:

http://akkordwechsel.de/15-windows-vista-und-der-midi-mapper/

我刚试了一下(它只是一个*.CPL文件,双击就能运行),看起来是有效的(不过我笔记本上只有GM合成器这个选项,所以不确定它是否能识别FL或Reason作为选择)。

2

注意:这个回答可能并没有直接回答你问的问题,但它可能会帮你达到你想要的结果 :)

你可以使用 jVSTWrapper 来用 Java 编写一个 VST 插件,链接在这里:http://jvstwrapper.sourceforge.net/。如果你真的想用 Python,可以通过 Jython 来和 Java 进行连接,这样也可以实现。或者,你也可以直接用 Java 或者其他适合 JVM 的脚本语言,比如 Groovy,来写这个插件。

3

这两个应用程序都支持MIDI,但它们之间无法互相识别。

要让这两个应用程序通过MIDI发送消息,你需要安装一个虚拟MIDI端口

有好几个免费的选项,但这个可以用:http://www.midiox.com/zip/MidiYokeSetup.msi

安装后,你会得到一个虚拟的MIDI输出端口,可以像使用普通MIDI设备一样使用它。在Fruity Loops或Rebirth中,你选择这个端口作为输入。这样就可以把这两个程序连接起来了。

它的工作流程是这样的:

你的应用程序 --> 虚拟MIDI端口 --> FruityLoops

撰写回答