3

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

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

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

4

2 回答 2

4

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

是的!浏览器使用高质量的音频引擎,一直带有浮点采样。

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

我认为 Web Audio API 不能使用 VST

那是对的。

但也许合成会受到限制?

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

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

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

于 2018-10-14T23:03:15.480 回答
0

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

只有 Chromium 支持 Audio Worklets 中的高优先级音频线程,您需要这些线程来获得稳定、实时的音频。

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

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

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

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


注意:九年前就要求添加对 WebMIDI 工作者的支持,问题仍然存在(仅用于将其添加到规范中)。

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

于 2022-01-29T03:08:10.300 回答