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

            return .Exponential
        case "equalpower":
            return .EqualPower
        default:
            return .Linear
        }

import Foundation

public enum CurveType {
    case Linear, EqualPower, Exponential, SCurve
    
    public static func fromString(curve: String) -> CurveType {

