stereoRamp(withInitialValue:multiplyingBy:_:increment:)
Returns two single-precision vectors that contain stereo monotonically incrementing or decrementing values multiplied by two source vectors.
Declaration
static func stereoRamp<U>(withInitialValue initialValue: inout Float, multiplyingBy multiplierOne: U, _ multiplierTwo: U, increment: Float) -> (firstOutput: [Float], secondOutput: [Float]) where U : AccelerateBuffer, U.Element == FloatParameters
- initialValue:
The initial value of the ramp.
- multiplierOne:
The first input vector that’s multiplied by the ramp function.
- multiplierTwo:
The second input vector that’s multiplied by the ramp function.
- increment:
The increment, or decrement if negative, between each generated element.
Discussion
Use this function to create two vectors by multiplying the values in two input vectors with the corresponding values of a ramp.
For example, the following code fills the arrays multiplierOne and multiplierTwo with sine values:
let n = vDSP_Length(1024)
let multiplierOne: [Float] = (0 ..< n).map {
return sin(Float($0) / 20) * 2
}
let multiplierTwo: [Float] = (0 ..< n).map {
return sin(Float($0) / 40)
}The following figure illustrates the values of multiplierOne, as a solid line, and multiplierTwo, as a dashed line:
[Image]
Pass multiplierOne and multiplierTwo as the multiplyingBy parameter of stereoRamp(withInitialValue:multiplyingBy:_:increment:):
var start: Float = 0
let step: Float = 0.1
let results = vDSP.stereoRamp(withInitialValue: &start,
multiplyingBy: multiplierOne, multiplierTwo,
increment: step)On return, the output vectors, results.firstOutput and results.secondOutput, contain ramped-sine waves. The figure below shows the first output as a solid line and the second output as a dashed line:
[Image]