74 lines
1.2 KiB
Text
74 lines
1.2 KiB
Text
|
class:: SyncSaw
|
||
|
summary:: Hard sync sawtooth wave.
|
||
|
related:: Classes/Saw, Classes/VarSaw, Classes/LFSaw
|
||
|
categories:: UGens>Generators>Deterministic
|
||
|
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
classmethods::
|
||
|
|
||
|
method::ar, kr
|
||
|
|
||
|
argument::syncFreq
|
||
|
|
||
|
Frequency of the fundamental.
|
||
|
|
||
|
|
||
|
argument::sawFreq
|
||
|
|
||
|
Frequency of the slave synched sawtooth wave. Should always be
|
||
|
greater than
|
||
|
code::syncFreq:: .
|
||
|
|
||
|
|
||
|
argument::mul
|
||
|
|
||
|
Output will be multiplied by this value.
|
||
|
|
||
|
|
||
|
argument::add
|
||
|
|
||
|
This value will be added to the output.
|
||
|
|
||
|
|
||
|
Examples::
|
||
|
|
||
|
code::
|
||
|
|
||
|
{ 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 }
|
||
|
)
|
||
|
|
||
|
::
|
||
|
|