Microsoft DirectX 9.0 |

Media parameters are able to follow a curve over time. Each curve is described by a mathematical formula and two end-points. Each end-point is defined by a reference time and the value of the curve at that time. The formula is used to calculate intermediate values between the points, and determines the shape of the curve. The possible curves are:

- Jump
- Linear
- Square
- Inverse square
- Sine

"Jump" means jump directly to the end value. The other curves are shown in the following diagram.

Mathematically, the curves work as follows. Suppose that a curve begins at time *t*_{0} with a value of *v*_{0}, and ends at time *t*_{1}* _{ }*with a value of

- Let Δ
*t*be the total duration of the curve,*t*_{1}–*t*_{0}. - Let Δ
*v*be the interval between the starting and ending values,*v*_{1}–*v*_{0}. - At any time
*t*such that*t*_{0}<=*t*<=*t*_{1}, let Δ*t*' =*t*–*t*_{0}.

The value of the parameter at time *t* is:

*v* = f( Δ*t*' / Δ*t* ) * Δ*v* + *v*_{0}

where f(x) is a function determined by the curve type:

- Linear: y = x
- Square: y = x
^{2} - Inverse square: y = sqrt(x)
- Sine: y = [ sin(πx – π/2) + 1 ] / 2

Observe that Δ*t*' < Δ*t*, so the term Δ*t*'/Δ*t* ranges from 0 to 1. Therefore, f(x) also ranges from 0 to 1, and *v* always falls between *v*_{0} and *v*_{1}. This is true whether *v*_{0}* _{ }*<

For the sine curve, the value of (πx – π/2) ranges from –π/2 to π/2, which means that sin(πx – π/2) ranges from –1 to 1. The result is then normalized so that f(x) falls into the range (0–1).