HTML5 Web Audio可以像DAW一样高质量吗?



这个问题主要针对音频工程师。

我在这里和这里看了一些关于javascript中的Web Audio API以及人们如何使用它制作音乐的视频。我想知道这个 API 是否可以用于在现有数字音频工作站 (DAW( 的级别上创建音质,如 Ableton、FL Studio、Reason、Logic 等。

还是浏览器存在某种固有的限制?我认为 VST 不能被 Web Audio API 使用,但无论 VST 如何,DAW 使用的音频引擎是否可以做一些 Web 音频在质量方面无法做到的事情?或者声音可以一样好。我相信样本可以同样有效地播放(?(,但也许合成会受到限制?

HTML5 Web Audio可以像DAW一样高质量吗?

是的! 浏览器使用高质量的音频引擎,始终带有浮点样本。

此外,API 本身是最直接使用且可扩展的 API 之一。 它还支持非常具体的控制时序。

我认为 VST 不能被网络音频 API 使用

这是正确的。

但也许合成会受到限制?

没有真正的基本限制。 如果你能编码,你就能做到。

现在,有几件事你没有问,但仍然应该知道。 首先是延迟问题。 浏览器不使用 ASIO 或类似的东西,因此如果您使用 Web 音频 API 来处理和返回低延迟音频,您将遇到不好的时间。 在 Chrome 中,您可以通过让 Chrome 以独占模式打开音频设备来改善这一点。

另一个问题是输入/输出通道数。 这通常在 8 个通道时达到最大值。 不过,在内部,您几乎可以做任何您想做的事情。 限制来自浏览器,而不是 Web 音频 API 本身。

有一些高质量的音频应用程序可以在浏览器中运行,但您只能在基于 Chromium 的浏览器中进行实时音频,即使这样也无法获得实时输入。

只有 Chromium 支持音频工作中的高优先级音频线程,这是稳定、实时音频所必需的。

WebMIDI API 只在主线程上运行,这使得它对实时输入毫无用处。

WebUSB API 是可线程的,但不允许与音频类设备(包括 MIDI 控制器(和声卡((通信。

键盘、触摸和鼠标事件(当前(必须由主线程处理。

因此,简而言之,您没有(实用的(方法来控制Chromium中的实时音频,甚至无法在任何其他平台上(可靠地(进行实时音频。


注意:九年前就请求添加对WebMIDI工作程序的支持,该问题仍然悬而未决(只是为了将其添加到规范中(。

注意:Electron将允许您访问受保护的USB设备类(音频/MIDI(,但Electron WebUSB支持仍在进行中。NWJS 支持 WebUSB,但无法访问受保护的设备类(尽管我最近打开了一个问题(。WebUSB 最终将在这些平台上工作,但您仍然需要为您的控制器实现 Web 驱动程序(即使是符合类的控制器(,因此即使它工作,这也不是一个理想的解决方案。

最新更新