rsc3/doc-schelp/HelpSource/Classes/SinOsc.schelp

63 lines
1.7 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class:: SinOsc
summary:: Interpolating sine wavetable oscillator.
related:: Classes/Osc, Classes/FSinOsc, Classes/SinOscFB, Classes/PMOsc, Classes/Klang
categories:: UGens>Generators>Deterministic
Description::
Generates a sine wave.
Uses a wavetable lookup oscillator with linear interpolation.
Frequency and phase modulation are provided for audio-rate modulation.
Technically, code::SinOsc:: uses the same implementation as link::Classes/Osc:: except that its table is fixed to be a sine wave made of code::8192:: samples.
subsection:: Other sinewaves oscillators
LIST::
## link::Classes/FSinOsc:: fast sinewave oscillator
## link::Classes/SinOscFB:: sinewave with phase feedback
## link::Classes/PMOsc:: phase modulation sine oscillator
## link::Classes/Klang:: bank of sinewave oscillators
## link::Classes/DynKlang:: modulable bank of sinewave oscillators
::
classmethods::
method::ar, kr
argument::freq
Frequency in Hertz.
Sampled at audio-rate.
argument::phase
Phase in radians.
Sampled at audio-rate.
note::phase values should be within the range +-8pi. If your phase values are larger then simply use code::.mod(2pi):: to wrap them.::
argument::mul
Output will be multiplied by this value.
argument::add
This value will be added to the output.
Examples::
code::
// create an audio-rate sine wave at 200 Hz,
// starting with phase 0 and an amplitude of 0.5
{ SinOsc.ar(200, 0, 0.5) }.play;
// modulate the frequency with an exponential ramp
{ SinOsc.ar(XLine.kr(2000, 200), 0, 0.5) }.play;
// more complex frequency modulation
{ SinOsc.ar(SinOsc.ar(XLine.kr(1, 1000, 9), 0, 200, 800), 0, 0.25) }.play;
// phase modulation (see also PMOsc)
{ SinOsc.ar(800, SinOsc.ar(XLine.kr(1, 1000, 9), 0, 2pi), 0.25) }.play;
::