1
8
既然你问过,像这样的项目的理想语言是C++。尽管对于VST SDK有更高级语言如Java&N.NET的包装,但我找不到露比的一个(虽然我确实找到了这个让你很酷的项目)。 program VST plugins in Ruby )因此,你将被困在某种程度上的C/C++集成在你自己的。 也就是说,这里基本上有两种选择:
我写了一篇文章 VST host programming tutorial 在我的博客上呆一段时间,你可能会发现在这两种情况下都有用。它详细说明了如何在Mac OSX和Windows上打开和与VST插件通信。一旦你让你的主机加载插件,你需要能够直接发送MIDI事件到插件,要么从文件中读取它们,要么你的Ruby代码和VST主机之间的某种类型的通信(例如,命名管道、套接字、文件等)。如果您不熟悉MIDI协议,请查看以下链接:
正如您可能已经发现的,VST从根本上说是一个基于块的协议。您从插件请求小的音频数据块,并在插件处理相应的块之前将任何MIDI事件发送到插件。务必 不 忽略midi delta字段;这将确保插件开始直接在所需示例上处理midi事件。否则,插件会听起来有点慢,特别是在仪器的情况下。 vst sdk也基于浮点块,因此您返回的任何数据都将包含-1.0.范围内的单个样本。1 }。根据所需的输出格式,您可能需要将这些格式转换为其他格式。幸运的是,似乎 Ruby binding for the audiofile library ,因此您可以将输出发送到该文件中,以便生成适当的aiff/wav文件。 总之,要达到你想要的最终目标,这是一项相当大的工作,但无论如何,这并非不可能。祝你好运! |
Una Persona Normal · 在滑块上选择特定值时播放声音 2 年前 |
ESB691 · 停止使用javascript循环音频,但完成播放迭代 2 年前 |
loltrox · Python中播放和暂停音频的理想模块是什么? 2 年前 |
Demetris · 如何在音频播放器中传递React道具? 2 年前 |
Uplink001 · SceneKit:定位音频不起作用 6 年前 |
Belphegor · WAV文件中的“ChunkSize” 6 年前 |