以 Tweakbench 的 VSTi Triforce为例。当加载到市场上的任何 VST 主机中时,它允许主机向 VSTi 发送(可能是 MIDI)信号。然后,VSTi 将处理该信号并输出由VSTi 内的软件乐器创建的合成音频。
例如,向 VSTi 发送 A4(我相信是 MIDI 音符)将导致它在中间 C 之上合成 A。它将音频数据发送回 VST 主机,然后它可以在我的扬声器上播放或保存它到 .wav 或其他一些音频文件格式。
假设我有Triforce,并且正在尝试用我选择的语言编写一个程序,该程序可以通过发送要合成的 A4 笔记来与 VSTi 交互,并自动将其保存到系统上的文件中?
最终,我希望能够解析整个单轨 MIDI 文件(使用已建立的、稳定的库已经用于此目的)并将其发送到 VSTi 以“渲染”/将其合成为音频文件。
我将如何解决这个问题,我应该 使用哪种语言来构建核心框架?
最终,它将在基于 Ruby 的项目中使用,因此任何指向特定 Ruby 资源的指针也会很好。
但是,我只是想基本了解 VSTi 的 API 是如何工作的。(我已经意识到这个问题与首先构建 VST 主机的问题非常相关,尽管它只能将 VST 输出保存到文件而不能回放,而且范围要小得多)