1

简而言之,我想创建一个网站,该网站根据客户端在类似合成器的界面中给出的输入输出音频流。就像每个访问这个站点的人都将拥有完全相同的音频流和界面状态,我希望所有工作都由服务器完成,只让客户端管理输入。虽然我不是编程的新手,但我对实现它的可能性感到有点不知所措。您能否为此推荐一个实用的设置,例如使用哪些库(编程语言可能与此相关联)来使用服务器端、客户端以及哪些技术是它们之间最有效的通信方式?我知道,这不是回答最快的问题,但我非常感谢您的帮助。

PS:这个项目对我来说主要是教育性的,而不是任何商业用途或任何东西

4

2 回答 2

2

除了@Brad 的回答,坐在网络服务器后面,您可能会有一个带有商业软合成插件的 VST 主机(实施这些插件需要付出很大的努力 - 尽管任何人都猜测许可是否扩展到此应用程序)。

Juce可能是您选择 SoftSynth 主机的地方。

输入几乎可以肯定是 MIDI,但您可能需要使用 SYSEX 或一些旁通道来处理 MIDI 尚未为您提供控制消息的地方。

对于实时回放,往返延迟可能太大(尽管这是最坏情况下的延迟才是真正的问题)。

不过,非实时音频渲染是可能的。

于 2015-08-16T21:35:10.083 回答
1

“合成器”非常模糊......不清楚您期望什么功能以及延迟时间。

无论如何,我可能会从 Node.js 和 Web Audio API 的实现开始。 https://github.com/sebpiq/node-web-audio-api 不幸的是,那个包还没有完全完成,但它是我所知道的最多的。

Liquidsoap 还有很多你可能会觉得有用的功能。

根据您的需要,另一种方法是让您的服务器应用程序使用 OSC 或 MIDI 控制专业软合成器(甚至是真正的硬件!),然后流式传输音频。

于 2015-08-16T20:10:36.390 回答