2015-08-16 29 views
1

简单地说,我想创建一个网站,该网站根据客户端在合成器类似的interterface中给出的输入输出一个audiostream。 所以访问这个网站的每个人都会有完全相同的audiostream和接口状态,我希望所有的工作都由服务器来完成,并且只让客户端管理输入。 虽然我不是编程的新手,但我对实现它的可能性感到有点不知所措。你能推荐一个实用的设置,比如哪些库(编程语言可能与此绑定)以使用服务器端,客户端以及哪种技术是在它们之间进行通信的最有效方式? 我知道,这不是最快速回答的问题,但我非常感谢您的帮助。对于服务器端合成器,您会推荐什么设置?

PS:这个项目是为了大部分是教育我,没有任何商业用途或任何

回答

1

“合成”是很模糊...这是不明确的,你期待什么功能,以及在什么延迟。

在任何情况下,我可能会从Node.js开始,并实现Web Audio API。 https://github.com/sebpiq/node-web-audio-api不幸的是,这个软件包并没有完全完成,但它是我所知道的最多的。

Liquidsoap也有相当多的功能,您可能会觉得有用。

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

+0

谢谢!这看起来很完美。 –

2

除了@布拉德的回答,坐在网络服务器后面,你可能会有一个商业软合成插件的VST主机(实现这些是高努力 - 尽管任何人都猜测许可是否延伸到这个应用程序)。

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

输入几乎可以肯定是MIDI,但是你可能需要使用SYSEX或者一些侧声道来处理MIDI没有提供控制信息的地方。

实时回放的往返延迟可能太大(尽管这是最严重的延迟将是真正的问题)。

虽然不实时进行音频渲染是一种可能性。

+0

好吧,这使得它看起来比@布拉德的答案困难得多....为什么输入需要是MIDI?它毫无疑问不需要任何精确或功能性的东西来创造任何严肃的东西。唯一重要的是有控制,以某种方式影响的audiostream。几秒钟的延迟不应该是一个问题。 –

+0

MIDI:因为这是VST软合成器的输入。 – marko

相关问题