Ruby 我如何通过编程与VST(I)插件交互来合成音频?
例如,通过Tweakbench开发的VSTi。当加载到市场上的任何VST主机中时,它允许主机向VSTi发送(可能是MIDI)信号。然后,VSTi将处理该信号并输出由VSTi内的软件仪器创建的合成音频 例如,将A4(我相信是MIDI音符)发送到VSTi将导致它合成中间C以上的A。它将音频数据发送回VST主机,然后它可以在我的扬声器上播放或将其保存为.wav或其他音频文件格式 比如说,我有Triforce,我正试图用我选择的语言编写一个程序,通过发送一张要合成的A4便笺,并自动将其保存到系统上的一个文件中,该程序可以与VSTi交互 最后,我希望能够解析一个完整的单轨MIDI文件(使用已建立的、稳定的库),并将其发送到VSTi“渲染”/“合成”为音频文件 我将如何着手,我应该用什么语言来构建核心框架 最终,它将用于一个基于Ruby的项目中,因此任何指向特定Ruby资源的指针都会很好Ruby 我如何通过编程与VST(I)插件交互来合成音频?,ruby,audio,midi,vst,synthesizer,Ruby,Audio,Midi,Vst,Synthesizer,例如,通过Tweakbench开发的VSTi。当加载到市场上的任何VST主机中时,它允许主机向VSTi发送(可能是MIDI)信号。然后,VSTi将处理该信号并输出由VSTi内的软件仪器创建的合成音频 例如,将A4(我相信是MIDI音符)发送到VSTi将导致它合成中间C以上的A。它将音频数据发送回VST主机,然后它可以在我的扬声器上播放或将其保存为.wav或其他音频文件格式 比如说,我有Triforce,我正试图用我选择的语言编写一个程序,通过发送一张要合成的A4便笺,并自动将其保存到系统上的一个
然而,我只是想从根本上理解VSTi的API是如何工作的。(我意识到,这个问题与建立VST主机的问题非常相关,尽管它只能保存VST输出文件,而不回放它们,而且范围小得多) < P>,既然你问过,这样的项目的理想语言是C++。尽管有一些高级语言的包装器,比如VSTSDK的Java和.NET,但我找不到Ruby的包装器(尽管我确实找到了这个非常酷的项目,它让您可以使用它)。因此,您将不得不自己进行某种程度的C/C++集成 也就是说,这里基本上有两种选择:
- (愚蠢的名字,严肃的资源)
- (如果您需要读取MIDI文件)
总的来说,要达到你想要的最终目标需要付出相当多的努力,但无论如何这都不是不可能的。祝你好运 我绝对没想到会有这么有用的答案(谢谢你!很高兴我能帮上忙。你最终是否为你的项目找到了一个好的解决方案或解决方案的组合?真棒的答案,这真的帮助了我。谢谢对于将来发现这个问题的人来说,JULSC++库()可能是构建这样一个系统的好起点;它有MIDI类、音频类、插件托管类和插件编写类,并且经过了良好的测试和广泛的使用。