How to set AVAudioUnitEQ equalizer presets gain values for 10 frequency bands in iOS Swift

732 views Asked by At

I could add an audio setup to change equalizer by changing slider values by

let FREQUENCY: [Float] = [31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000]
//let FREQUENCY: [Float] = [60, 230, 910, 3600, 14000]

self.audioEngine = AVAudioEngine.init()
self.audioPlayerNode = AVAudioPlayerNode.init()
self.audioUnitEQ = AVAudioUnitEQ(numberOfBands: 10)
self.audioEngine.attach(self.audioPlayerNode)
self.audioEngine.attach(self.audioUnitEQ)        

for i in 0...9 {
    self.audioUnitEQ.bands[i].filterType = .parametric
    self.audioUnitEQ.bands[i].frequency = FREQUENCY[i]
    self.audioUnitEQ.bands[i].bandwidth = 0.5 // half an octave
    let eq = self.value(forKey: String(format: "eq%d", i)) as! UISlider
    self.audioUnitEQ.bands[i].gain = eq.value
    self.audioUnitEQ.bands[i].bypass = false
}

But Is there any method to change gain values or set equalizer presets like Accoustics, Rock etc. How to set their gain values for those presets

0

There are 0 answers