49 lines
1.1 KiB
Text
49 lines
1.1 KiB
Text
|
class:: FSinOsc
|
||
|
summary:: Fast sine oscillator.
|
||
|
related:: Classes/SinOsc, Classes/SinOscFB
|
||
|
categories:: UGens>Generators>Deterministic
|
||
|
|
||
|
Description::
|
||
|
|
||
|
Very fast sine wave generator (2 PowerPC instructions per output sample!)
|
||
|
implemented using a ringing filter. This generates a much cleaner sine
|
||
|
wave than a table lookup oscillator and is a lot faster. However, the
|
||
|
amplitude of the wave will vary with frequency. Generally the amplitude
|
||
|
will go down as you raise the frequency and go up as you lower the frequency.
|
||
|
|
||
|
warning::
|
||
|
In the current implementation, the amplitude can blow up if the
|
||
|
frequency is modulated by certain alternating signals.
|
||
|
::
|
||
|
|
||
|
|
||
|
classmethods::
|
||
|
|
||
|
method::ar, kr
|
||
|
|
||
|
argument::freq
|
||
|
Frequency in Hertz.
|
||
|
|
||
|
argument::iphase
|
||
|
Initial phase offset.
|
||
|
|
||
|
argument::mul
|
||
|
Output will be multiplied by this value.
|
||
|
|
||
|
argument::add
|
||
|
This value will be added to the output.
|
||
|
|
||
|
|
||
|
Examples::
|
||
|
|
||
|
code::
|
||
|
{ FSinOsc.ar(800) * 0.2 }.play;
|
||
|
|
||
|
{ FSinOsc.ar(XLine.kr(200, 4000, 1)) * 0.2 }.play;
|
||
|
|
||
|
// loses amplitude towards the end
|
||
|
{ FSinOsc.ar(FSinOsc.ar(XLine.kr(4, 401, 8), 0.0, 200, 800)) * 0.2 }.play;
|
||
|
|
||
|
::
|
||
|
|