File: SinOsc.schelp

package info (click to toggle)
supercollider 1%3A3.13.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 80,292 kB
  • sloc: cpp: 476,363; lisp: 84,680; ansic: 77,685; sh: 25,509; python: 7,909; makefile: 3,440; perl: 1,964; javascript: 974; xml: 826; java: 677; yacc: 314; lex: 175; objc: 152; ruby: 136
file content (63 lines) | stat: -rw-r--r-- 1,767 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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;

::