             case .EqualPower:
                 //direction will be negative if going up
                 scaledControlAmount = pow((0.5 + 0.5 * direction * cos(π * controlAmount)), 0.5)
+        
+            case .SCurve:
+                //direction will be negative if going up
+                scaledControlAmount = pow((0.5 + 0.5 * direction * cos(π * controlAmount)), 1)
             }
-            
+        
             output!.gain = scaledControlAmount
             stepCounter += 1
         } else {

            case .EqualPower:
                //direction will be negative if going up
                scaledControlAmount = pow((0.5 + 0.5 * direction * cos(M_PI * controlAmount)), 0.5)
            }
            curvePoints.append(scaledControlAmount)
            counter += 1

    @objc func updateFadeFromCADTimer() {
        let direction: Double = (initialVolume > finalVolume ? 1.0 : -1.0)
        let millis = NSDate().timeIntervalSince1970*1000
        //print("updatingFade fade \(millis) - \(stepCounter) \(directionString)")
        if numberOfSteps == 0 {
            endFade()
        } else if stepCounter <= numberOfSteps {
