95 lines
1.3 KiB
Text
95 lines
1.3 KiB
Text
|
#lang scribble/manual
|
||
|
@(require (for-label racket))
|
||
|
|
||
|
@title{Ramp}
|
||
|
Break a continuous signal into line segments@section{related}
|
||
|
Classes/Lag, Classes/VarLag, Classes/Slew
|
||
|
@section{categories}
|
||
|
UGens>Filters>Linear
|
||
|
|
||
|
|
||
|
@section{description}
|
||
|
|
||
|
|
||
|
Break a continuous signal into linearly interpolated segments with specific durations.
|
||
|
|
||
|
Feeding Ramp with noise is similar to link::Classes/LFNoise1::
|
||
|
|
||
|
@racketblock[
|
||
|
Ramp.kr(WhiteNoise.kr(1),0.5)
|
||
|
::
|
||
|
is equal to:
|
||
|
]
|
||
|
|
||
|
@racketblock[
|
||
|
LFNoise1.kr(1 / 0.5)
|
||
|
::
|
||
|
|
||
|
For smoothing out control signals, take a look at link::Classes/Lag:: and link::Classes/VarLag::
|
||
|
|
||
|
]
|
||
|
@section{classmethods}
|
||
|
|
||
|
|
||
|
@section{method}
|
||
|
ar, kr
|
||
|
|
||
|
@section{argument}
|
||
|
in
|
||
|
|
||
|
The input signal.
|
||
|
|
||
|
|
||
|
@section{argument}
|
||
|
lagTime
|
||
|
|
||
|
segment duration in seconds.
|
||
|
|
||
|
|
||
|
@section{argument}
|
||
|
mul
|
||
|
|
||
|
Output will be multiplied by this value.
|
||
|
|
||
|
|
||
|
@section{argument}
|
||
|
add
|
||
|
|
||
|
This value will be added to the output.
|
||
|
|
||
|
|
||
|
@section{Examples}
|
||
|
|
||
|
|
||
|
|
||
|
@racketblock[
|
||
|
s.boot;
|
||
|
(
|
||
|
// used to lag pitch
|
||
|
{
|
||
|
SinOsc.ar( // sine wave
|
||
|
Ramp.kr( // lag the modulator
|
||
|
LFPulse.kr(4, 0, 0.5, 50, 400), // frequency modulator
|
||
|
Line.kr(0, 1, 15) // modulate lag time
|
||
|
),
|
||
|
0, // phase
|
||
|
0.3 // sine amplitude
|
||
|
)
|
||
|
}.scope;
|
||
|
)
|
||
|
|
||
|
// Compare
|
||
|
(
|
||
|
var pulse;
|
||
|
{
|
||
|
pulse = LFPulse.kr(8.772);
|
||
|
Out.kr(0,[Ramp.kr(pulse, 0.025), Lag.kr(pulse, 0.025), pulse]);
|
||
|
}.play;
|
||
|
s.scope(3, bufsize: 44100, rate: \control, zoom: 40);
|
||
|
)
|
||
|
::
|
||
|
|
||
|
]
|
||
|
|
||
|
|