89 lines
1.9 KiB
Text
89 lines
1.9 KiB
Text
|
#lang scribble/manual
|
|||
|
@(require (for-label racket))
|
|||
|
|
|||
|
@title{SinOsc}
|
|||
|
Interpolating sine wavetable oscillator.@section{related}
|
|||
|
Classes/Osc, Classes/FSinOsc, Classes/SinOscFB, Classes/PMOsc, Classes/Klang
|
|||
|
@section{categories}
|
|||
|
UGens>Generators>Deterministic
|
|||
|
|
|||
|
|
|||
|
@section{description}
|
|||
|
|
|||
|
|
|||
|
Generates a sine wave.
|
|||
|
Uses a wavetable lookup oscillator with linear interpolation.
|
|||
|
Frequency and phase modulation are provided for audio-rate modulation.
|
|||
|
Technically,
|
|||
|
@racketblock[SinOsc:: uses the same implementation as link::Classes/Osc:: except that its table is fixed to be a sine wave made of ]
|
|||
|
|
|||
|
@racketblock[8192:: samples.
|
|||
|
|
|||
|
]
|
|||
|
@section{subsection}
|
|||
|
Other sinewaves oscillators
|
|||
|
|
|||
|
@section{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
|
|||
|
::
|
|||
|
|
|||
|
|
|||
|
@section{classmethods}
|
|||
|
|
|||
|
|
|||
|
@section{method}
|
|||
|
ar, kr
|
|||
|
|
|||
|
@section{argument}
|
|||
|
freq
|
|||
|
Frequency in Hertz.
|
|||
|
Sampled at audio-rate.
|
|||
|
|
|||
|
@section{argument}
|
|||
|
phase
|
|||
|
Phase in radians.
|
|||
|
Sampled at audio-rate.
|
|||
|
@section{note}
|
|||
|
phase values should be within the range +-8pi. If your phase values are larger then simply use
|
|||
|
@racketblock[.mod(2pi):: to wrap them.::
|
|||
|
|
|||
|
]
|
|||
|
@section{argument}
|
|||
|
mul
|
|||
|
Output will be multiplied by this value.
|
|||
|
|
|||
|
@section{argument}
|
|||
|
add
|
|||
|
This value will be added to the output.
|
|||
|
|
|||
|
|
|||
|
@section{Examples}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
@racketblock[
|
|||
|
|
|||
|
// 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;
|
|||
|
|
|||
|
::
|
|||
|
|
|||
|
]
|
|||
|
|
|||
|
|