Swift 使用AVAudioUnitEQ删除频率

Swift 使用AVAudioUnitEQ删除频率,swift,avfoundation,avaudioengine,Swift,Avfoundation,Avaudioengine,我正在尝试使用AVAudioEngine从音频文件中删除一些脱机频率。我只希望频率保持在100到150赫兹之间 在JavaScript中,我会: var lowpass = offlineContext.createBiquadFilter(); lowpass.type = "lowpass"; lowpass.frequency.setValueAtTime(150, 0); lowpass.Q.setValueAtTime(1, 0); var highpass = offlineCon

我正在尝试使用AVAudioEngine从音频文件中删除一些脱机频率。我只希望频率保持在100到150赫兹之间

在JavaScript中,我会:

var lowpass = offlineContext.createBiquadFilter();
lowpass.type = "lowpass";
lowpass.frequency.setValueAtTime(150, 0);
lowpass.Q.setValueAtTime(1, 0);

var highpass = offlineContext.createBiquadFilter();
highpass.type = "highpass";
highpass.frequency.setValueAtTime(100, 0);
highpass.Q.setValueAtTime(1, 0);
结果音频中的某些频率看起来确实没有受到影响:

在Swift中,我正在尝试:

let eq = AVAudioUnitEQ(numberOfBands: 2)
engine.attach(eq)

let lowPass = eq.bands[0]
lowPass.filterType = .lowPass
lowPass.frequency = 150.0
lowPass.bypass = false

let highPass = eq.bands[1]
highPass.filterType = .highPass
highPass.frequency = 100.0
highPass.bypass = false
但看起来压缩适用于所有频率。峰值与其他峰值之间的差异较小

我可以看到每个波段都有
增益
带宽
,但我不知道如何使用它们。很高兴了解这些乐队是如何工作的。谢谢