 
 /// Adding subscript
 extension AVAudioUnit {
-    subscript(param: AudioUnitParameterID) -> Double {
+    subscript (param: AudioUnitParameterID) -> Double {
         get {
-            return AudioUnitGetParameter(audioUnit, param: param)
+              return AudioUnitGetParameter(audioUnit, param: param)
         }
         set {
-            AudioUnitSetParameter(audioUnit, param: param, to: newValue)
+              AudioUnitSetParameter(audioUnit, param: param, to: newValue)
         }
     }
 }

}

extension RangeReplaceableCollection where Iterator.Element: ExpressibleByIntegerLiteral {
    /// Initialize array with zeros, ~10x faster than append for array of size 4096
    ///
    /// - parameter count: Number of elements in the array
    ///

    public init(zeros count: Int) {
        self.init(repeating: 0, count: count)


        if taper > 0 {
            // algebraic taper
            return pow(((self - range.lowerBound ) / (range.upperBound - range.lowerBound)), (1.0 / taper))
        } else {
            // exponential taper
            return range.lowerBound * exp(log(range.upperBound / range.lowerBound) * self)
