76 lines
1.4 KiB
Racket
76 lines
1.4 KiB
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{LFSaw}
|
|
Sawtooth oscillator@section{related}
|
|
Classes/LFCub, Classes/LFPar, Classes/LFPulse, Classes/LFTri, Classes/Saw
|
|
@section{categories}
|
|
UGens>Generators>Deterministic
|
|
|
|
|
|
@section{description}
|
|
|
|
|
|
A non-band-limited sawtooth oscillator. Output ranges from -1 to +1.
|
|
|
|
|
|
@section{classmethods}
|
|
|
|
|
|
@section{method}
|
|
ar, kr
|
|
|
|
@section{argument}
|
|
freq
|
|
Frequency in Hertz.
|
|
|
|
@section{argument}
|
|
iphase
|
|
|
|
Initial phase offset. For efficiency reasons this is a value
|
|
ranging from 0 to 2.
|
|
@section{Note}
|
|
enter "1" for an initial phase of 0 radiants.
|
|
A value of 0 would start the cycle at pi radiants. See the example below.::
|
|
|
|
@section{argument}
|
|
mul
|
|
Output will be multiplied by this value.
|
|
|
|
@section{argument}
|
|
add
|
|
This value will be added to the output.
|
|
|
|
@section{Examples}
|
|
|
|
|
|
|
|
@racketblock[
|
|
{ LFSaw.ar(500, 1, 0.1) }.play
|
|
|
|
// used as both Oscillator and LFO:
|
|
{ LFSaw.ar(LFSaw.kr(4, 0, 200, 400), 0, 0.1) }.play
|
|
|
|
::
|
|
Display special behaviour of initial phase parameter:
|
|
]
|
|
|
|
@racketblock[
|
|
// 0.15 seconds of 3-channel buffer
|
|
b = Buffer.alloc(s, s.sampleRate * 0.15, 3);
|
|
|
|
(
|
|
// generate Signal
|
|
m = SynthDef ("help-lfsawphase", {|rate = 20|
|
|
var l;
|
|
l = LFSaw.ar(rate, [0, 1, 2]); // three channels, three phases
|
|
RecordBuf.ar(l, b, doneAction: Done.freeSelf, loop: 0);
|
|
Out.ar(0, l * -20.dbamp);
|
|
}).play(s);
|
|
)
|
|
|
|
b.plot; // see the difference
|
|
::
|
|
]
|
|
|
|
|