                                     duration: Double = 1.0,
                                     type: CurveType = .Exponential,
                                     curvature: Double = 1.0,
-                                    controlRate: Double = 1/30) -> [Double] {
+                                    controlRate: Double = 1/60) -> [Double] {
         var curvePoints = [Double]()
         let stepCount = Int(floor(duration / controlRate))
         var counter = 0

    var initialVolume: Double = 1.0 //make these only 0 or 1 right now
    var finalVolume: Double = 0.0 //make these only 0 or 1 right now
    
    var controlRate: Double = 1 / 30 // 30 times per second
    var curveType: CurveType = .Linear
    var curvature: Double = 0.5 //doesn't apply to linear
    var duration: Double = 1.0 //seconds
    var offset: Double = 0.0
    var stepCounter = 0
    var stepCount = 0
    
    var fadeTimer = NSTimer()
    var fadeScheduleTimer = NSTimer()
    
    /// Init with a single control output
    public init(initialVolume: Double,

        }
        return curvePoints
    }
    
    func scheduleCADTimer(seconds: Double) {
        if seconds == 0 {
            startImmediately()
        }else{
            let delayRate = (seconds / cadTimerRate)
            let frameDelay = Int(floor(delayRate))
            cadDelayTimer = CADisplayLink(target: self, selector: #selector(startFadeFromCADTimer))
            cadDelayTimer?.frameInterval = frameDelay
            cadDelayTimer?.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
        }
    }
    
    @objc func startFadeFromCADTimer() {
        let millis = NSDate().timeIntervalSince1970*1000
        print("startFadeFromCADTimer fired \(millis) - \(cadTimerIncrement) \(directionString)")
        //runs twice, once when scheduled and again at next frame, so we have to skip the first one and run the second.
        if cadTimerIncrement > 0 {
            cadDelayTimer?.invalidate()
            startImmediately()
        }
        cadTimerIncrement += 1
    }
}
