Tone.js Follower创建侧链音量控制

问题描述

我想通过一个信号源控制另一个信号源的增益,以根据信号源一的取反包络在信号源2上创建增益自动化。

这是我的逻辑:

 playerOne.connect(follower)
 follower.connect(signal)
 signal.connect(negate)
 negate.connect(gainTwo.gain)

其中gainTwo是连接到playerTwo的增益节点。这是一个codepen示例:https://codepen.io/adam_fr/pen/BazVEwe

预期的结果是,每次gainTwo.gain触发时,playerOne都会回避,但是我得到的却是相反的,第二个源仅在第一个源播放时播放。

解决方法

我已经弄清楚了:需要反转跟随器信号并将其上推1,这是信号可以达到的最大值。上面的代码笔用正确的接线更新了:

// Flip the values and shift them up by the max value of the sidechain signal
const negate = new Tone.Multiply(-sideChainRatio)
const shift = new Tone.Add(1)

playerOne.connect(gainOne)
playerTwo.connect(gainTwo)        

playerOne.connect(follower)
follower.connect(signal)
signal.connect(negate)
negate.connect(shift)
shift.connect(gainTwo.gain)