从Javascript生成实时MIDI

时间:2010-08-02 18:35:52

标签: javascript midi

我做了一些研究,似乎Javascript和MIDI这些天并不顺利。谷歌说至少这样。

如本主题所述: generating MIDI in javascript,可以在Javascript或服务器端创建一个文件,并像播放普通文件一样播放。

但是,我真的希望能够发送个人midi事件,“直播”,因为它将是一个持续的用户交互。 我想我的计划B将是创建一个Java applet来实现这一点,但随后我的应用程序将不再是纯HTML5。

我也听说HTML5的音频支持现在并不出名,所以我也想知道,如果现在还没有解决方案,未来会有什么样的结果?

感谢。

3 个答案:

答案 0 :(得分:3)

查看this blog post by John Resig的音乐嵌入部分。 (出于某种原因,Resig链接到的马里奥游戏在Firefox中播放,而不是Chrome或Safari;它值得调查原因。)

我们的想法是使用data URI在HTML文件本身中嵌入base64编码的数据版本。因此,您可以编写Javascript以在MIDI format,然后encode it in base64中继续生成数据,然后将其注入HTML5 <audio>元素

答案 1 :(得分:1)

我相信您目前最好的选择是通过xhr或websockets从HTML应用程序传送到服务器上运行的后端系统,该系统可以实际转换为midi事件。您可能会发现许多已经可用的彗星服务器中的一个可以使您的生活更轻松,但是许多midi应用程序需要相对较低的延迟,并且您很难将彗星技术降低到100毫秒以下。

答案 2 :(得分:0)

如果html5是一个选项,你可以尝试使用websockets生成osc事件,并使用服务器代理将它们转换为midi信号。

我不知道的是javascript中的计时器是否足够稳定以产生准确的计时。