Javascript 音频信号如何通过Web音频API触发功能?

Javascript 音频信号如何通过Web音频API触发功能?,javascript,audio,web-audio-api,Javascript,Audio,Web Audio Api,我正在尝试使用web音频api构建一个模块化合成器。我不知道的主要事情是如何做“门”,或者换句话说,如何让音频信号触发js函数或事件 例如,假设我有一个低频方波,我想在每次方波的振幅超过某个值时触发一个函数。创建这种侦听器的最佳过程是什么?Web音频中没有普通的回调。您可以创建的唯一“侦听器”是使用ScriptProcessorNode的侦听器 连接要查找方波幅值的节点。定义一个scriptNode.onaudioprocess函数,它将在您构建的音频网络中的每次传递中被调用 然后,您可以使用a

我正在尝试使用web音频api构建一个模块化合成器。我不知道的主要事情是如何做“门”,或者换句话说,如何让音频信号触发js函数或事件


例如,假设我有一个低频方波,我想在每次方波的振幅超过某个值时触发一个函数。创建这种侦听器的最佳过程是什么?

Web音频中没有普通的回调。您可以创建的唯一“侦听器”是使用
ScriptProcessorNode
的侦听器

连接要查找方波幅值的节点。定义一个
scriptNode.onaudioprocess
函数,它将在您构建的音频网络中的每次传递中被调用

然后,您可以使用
audioProcessingEvent.inputBuffer
inputDataMic=inputBuffer.getChannelData(0)
获取输入(假设您允许自己访问导致调用回调的事件)


这些调用使您能够访问传入的实际数据值。您必须在每个音频帧中查找您的方波。您可能会发现analyzer节点有助于识别方波频率周围具有功率的帧

我将实现一个analyzer节点,并在每次调用requestanimationframe时进行检查。不知道这是不是最好的方法。