<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreHaptics",
  "identifier" : "/documentation/CoreHaptics/CHHapticPatternPlayer/scheduleParameterCurve(_:atTime:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Core Haptics"
    ],
    "preciseIdentifier" : "c:objc(pl)CHHapticPatternPlayer(im)scheduleParameterCurve:atTime:error:"
  },
  "title" : "scheduleParameterCurve(_:atTime:)"
}
-->

# scheduleParameterCurve(_:atTime:)

Schedules a parameter curve to begin transitioning a parameter at a certain time.

```
func scheduleParameterCurve(_ parameterCurve: CHHapticParameterCurve, atTime time: TimeInterval) throws
```

## Parameters

`parameterCurve`

The curve along which to vary the parameter.

`time`

The time at which to begin applying the parameter curve.

## Discussion

Scheduling a parameter curve tells the haptic pattern player to vary a parameter gradually along the curve. For example, if the intensity of a haptic pattern is `0` at the time of application, then a curve created to set the haptic intensity to `1` will smoothly hit every single continuous value between `0` and `1` during the transition.

![A graph showing how dynamic parameters change instantly, whereas parameter curves vary gradually.](images/com.apple.corehaptics/media-3189138@2x.png)

Scheduling a parameter curve is analogous to sending a dynamic parameter with [`sendParameters(_:atTime:)`](/documentation/CoreHaptics/CHHapticPatternPlayer/sendParameters(_:atTime:)); the only difference is that the curve transitions the parameter gradually, whereas the dynamic parameter changes the parameter immediately at a certain time.

```objc
CHHapticParameterCurveControlPoint* intensityControlPoint = [[CHHapticParameterCurveControlPoint alloc] initWithRelativeTime:0.1 value:intensity];
CHHapticParameterCurve* intensityCurve = [[CHHapticParameterCurve alloc] initWithParameterID:CHHapticDynamicParameterIDHapticIntensityControl controlPoints:@[intensityControlPoint] relativeTime:0]; 
NSError* intensityCurveError;
[continuousPlayer scheduleParameterCurve:intensityCurve
                                  atTime:0
                                   error:&intensityCurveError];
```

Schedule a parameter curve for one parameter at a time, and specify control points to characterize the curve’s shape. For more information on creating or specifying a parameter curve, see [`CHHapticParameterCurve`](/documentation/CoreHaptics/CHHapticParameterCurve).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)