@@ -10,74 +10,53 @@ import Foundation
1010import AVFoundation
1111
1212class Equalizer : Effect {
13- let numberOfBands : Int !
14- var eqs : [ AVAudioUnitEQ ] = [ ]
13+ var eq : AVAudioUnitEQ
1514 var globalGain : Double {
1615 get {
17- return Double ( eqs [ 0 ] . globalGain)
16+ return Double ( eq . globalGain)
1817 }
1918 set {
20- eqs [ 0 ] . globalGain = Float ( newValue)
19+ eq . globalGain = Float ( newValue)
2120 }
2221 }
2322
2423 var gains : [ Double ] {
2524 var gains : [ Double ] = [ ]
26- for eq in eqs {
27- for band in eq. bands {
28- gains. append ( Double ( band. gain) )
29- }
25+ for band in eq. bands {
26+ gains. append ( Double ( band. gain) )
3027 }
3128 return gains
3229 }
3330
3431 init ( numberOfBands: Int ) {
35- self . numberOfBands = numberOfBands
36- let numberOfEQs = Int ( ceil ( Double ( numberOfBands) / 16 ) )
37- let remainder = numberOfBands % 16
38- for i in 1 ... numberOfEQs {
39- let eq = AVAudioUnitEQ ( numberOfBands: i == numberOfEQs ? remainder : 16 )
40- eq. globalGain = 0
41- for band in eq. bands {
42- band. filterType = . parametric
43- band. bandwidth = 0.5
44- band. bypass = false
45- }
46- eqs. append ( eq)
32+ eq = AVAudioUnitEQ ( numberOfBands: numberOfBands)
33+ eq. globalGain = 0
34+ for band in eq. bands {
35+ band. filterType = . parametric
36+ band. bandwidth = 0.5
37+ band. bypass = false
4738 }
4839 }
4940
5041 func getFrequency ( index: Int ) -> Double {
51- return Double ( getBandFromIndex ( index: index ) ! . frequency)
42+ return Double ( eq . bands [ index] . frequency)
5243 }
5344
5445 func setFrequency ( index: Int , frequency: Double ) {
55- let band = getBandFromIndex ( index: index )
56- band! . frequency = Float ( frequency)
46+ let band = eq . bands [ index]
47+ band. frequency = Float ( frequency)
5748 }
5849
5950 func getGain ( index: Int ) -> Double {
60- return Double ( getBandFromIndex ( index: index ) ! . gain)
51+ return Double ( eq . bands [ index] . gain)
6152 }
6253
6354 func setGain ( index: Int , gain: Double ) {
64- let band = getBandFromIndex ( index: index )
65- band! . gain = Float ( gain)
55+ let band = eq . bands [ index]
56+ band. gain = Float ( gain)
6657 }
6758
6859 override func enabledDidSet( ) {
69- for eq in eqs {
70- eq. bypass = !enabled
71- }
72- }
73-
74- private func getBandFromIndex ( index: Int ) -> AVAudioUnitEQFilterParameters ? {
75- if ( index >= numberOfBands) {
76- Console . log ( " Trying to get out of bounds AppleEqualizer Band " )
77- return nil
78- }
79- let eqIndex = Int ( floor ( Double ( index / 16 ) ) )
80- let bandIndex = index % 16
81- return eqs [ eqIndex] . bands [ bandIndex]
60+ eq. bypass = !enabled
8261 }
8362}
0 commit comments