91 lines
1.4 KiB
Racket
91 lines
1.4 KiB
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{SyncSaw}
|
|
Hard sync sawtooth wave.@section{related}
|
|
Classes/Saw, Classes/VarSaw, Classes/LFSaw
|
|
@section{categories}
|
|
UGens>Generators>Deterministic
|
|
|
|
|
|
@section{description}
|
|
|
|
|
|
A sawtooth wave that is hard synched to a fundamental pitch. This
|
|
produces an effect similar to moving formants or pulse width modulation.
|
|
The sawtooth oscillator has its phase reset when the sync oscillator
|
|
completes a cycle. This is not a band limited waveform, so it may alias.
|
|
|
|
|
|
@section{classmethods}
|
|
|
|
|
|
@section{method}
|
|
ar, kr
|
|
|
|
@section{argument}
|
|
syncFreq
|
|
|
|
Frequency of the fundamental.
|
|
|
|
|
|
@section{argument}
|
|
sawFreq
|
|
|
|
Frequency of the slave synched sawtooth wave. Should always be
|
|
greater than
|
|
|
|
@racketblock[syncFreq:: .
|
|
|
|
|
|
]
|
|
@section{argument}
|
|
mul
|
|
|
|
Output will be multiplied by this value.
|
|
|
|
|
|
@section{argument}
|
|
add
|
|
|
|
This value will be added to the output.
|
|
|
|
|
|
@section{Examples}
|
|
|
|
|
|
|
|
@racketblock[
|
|
|
|
{ SyncSaw.ar(100, Line.kr(100, 800, 12), 0.1) }.play;
|
|
|
|
|
|
(
|
|
plot { [
|
|
SyncSaw.ar(800, 1200),
|
|
Impulse.ar(800) // to show sync rate
|
|
] }
|
|
)
|
|
|
|
(
|
|
plot { [
|
|
SyncSaw.ar(800, Line.kr(800, 1600, 0.01)), // modulate saw freq
|
|
Impulse.ar(800) // to show sync rate
|
|
] }
|
|
)
|
|
|
|
// scoping the saw: hit 's' when focused on the scope window to compare the channels
|
|
(
|
|
scope {
|
|
var freq = 400;
|
|
[
|
|
SyncSaw.ar(freq, freq * MouseX.kr(1, 3)), // modulate saw freq
|
|
Impulse.ar(freq) // to show sync rate
|
|
] * 0.3 }
|
|
)
|
|
|
|
::
|
|
|
|
]
|
|
|
|
|