Web Audio中的复音合成器:动态添加/删除节点或静态图形?

时间:2018-03-02 21:24:37

标签: web-audio web-audio-api

我正在使用动态语音分配在Web Audio中实现复音合成器。

性能方面,每次按下一个键时,最好修改新语音的图形(添加振荡器节点,滤波器节点等),或预先创建所需的最大复音的整个图形,以及然后只需更改按键的增益/包络?

即。 - 什么对性能产生更大的影响:始终动态更改图表,或者让(大部分未使用的)节点一直在运行?

2 个答案:

答案 0 :(得分:0)

我认为唯一可以确切知道的方法就是双向尝试并看看。

但是如果你的合成器最多有50个振荡器并且你预先创建了它们,你将有50个振荡器始终在运行,即使你大部分时间只需要几个振荡器。这也可能导致所有下游节点不必要地处理。

但是如果你真的需要50个振荡器(带有效果链)才能工作,那么你的机器需要足够强大才能支持它,所以我认为这两种方法都有效。如果您预先创建所有节点而不是仅创建所需数量的节点,则平均功耗可能会更高。

答案 1 :(得分:0)

除非延迟是一个问题,否则我看不出预先创建固定数量的补丁图有什么好处。

理想情况下,您的合成器将具有 Polyphony Level 设置,该设置可以设置为 dynamic (每个图根据需要初始化)或固定到给定数量的图(均已预先初始化)。默认情况下,它将是动态的,并且可以选择仅在延迟成为问题时修复该级别,作为备用。