         }
         
         set(rate) {
-            let centerOffset:Float = fabs(kRateCenter - fabs(rate))
+            let centerOffset:Float = abs(kRateCenter - abs(rate))
             if centerOffset <= kRateDetentRange {
                 timePitch.rate = kRateCenter
             } else {

        didSet {
            var adjustment:Float = trackOutputLevelAdjust
            //apply detent around zero
            if fabs(adjustment) <= kOutputLevelDetentRange {
                adjustment = kOutputLevelDefault
            }
            engine.mainMixerNode.outputVolume = (adjustment + 1.0)/2.0

    public func setFilterAtIndex(filterIndex:Int, frequency:Float, gain:Float, bandwidth:Float = 0.0) {
        equalizer.bands[filterIndex].frequency = frequency
        
        if abs(gain) <= kEQGainDetentRange {
            equalizer.bands[filterIndex].gain = 0.0
        } else {
            equalizer.bands[filterIndex].gain = gain
