我正在尝试使用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
但是看起来压缩应用于所有频率。峰与其余峰之间的差异较小。
我可以看到每个频段都有gain
和bandwidth
,但是我不确定如何使用它们。很高兴了解这些乐队的工作方式。谢谢!