2 summary:: Interpolating wavetable oscillator.
3 related:: Classes/COsc, Classes/OscN, Classes/VOsc, Classes/VOsc3, Classes/Wavetable
4 categories:: UGens>Generators>Deterministic
9 Linear interpolating wavetable lookup oscillator with frequency and
10 phase modulation inputs.
13 This oscillator requires a buffer to be filled with a wavetable format
14 signal. This preprocesses the Signal into a form which can be used
15 efficiently by the Oscillator. The buffer size must be a power of 2.
18 This can be acheived by creating a Buffer object and sending it one of
19 the "b_gen" messages ( link::Classes/Buffer#-sine1::, link::Classes/Buffer#-sine2::, link::Classes/Buffer#-sine3:: ) with the wavetable flag set
23 This can also be achieved by creating a link::Classes/Signal:: object and sending it
24 the 'asWavetable' message, thereby creating a Wavetable object in the required format. Then, the wavetable data may be transmitted to the server using the link::Classes/Buffer#*sendCollection:: or link::Classes/Buffer#*loadCollection:: methods.
38 Phase offset or modulator in radians.
41 Output will be multiplied by this value.
44 This value will be added to the output.
52 b = Buffer.alloc(s, 512, 1);
53 b.sine1(1.0/[1,2,3,4,5,6], true, true, true);
55 SynthDef("help-Osc",{ arg out=0,bufnum=0;
57 Osc.ar(bufnum, 200, 0, 0.5)
59 }).play(s,[\out, 0, \bufnum, b.bufnum]);
64 b = Buffer.alloc(s, 512, 1);
65 b.sine1(1.0/[1,2,3,4,5,6], true, true, true);
67 SynthDef("help-Osc",{ arg out=0,bufnum=0;
69 Osc.ar(bufnum, XLine.kr(2000,200), 0, 0.5)// modulate freq
71 }).play(s,[\out, 0, \bufnum, b.bufnum]);
77 b = Buffer.alloc(s, 512, 1);
78 b.sine1([1.0], true, true, true);
80 SynthDef("help-Osc",{ arg out=0,bufnum=0;
91 }).play(s,[\out, 0, \bufnum, b.bufnum]);
98 b = Buffer.alloc(s, 512, 1);
99 b.sine1([1.0], true, true, true);
101 SynthDef("help-Osc",{ arg out=0,bufnum=0;
106 XLine.kr(20,8000,10),
111 }).play(s,[\out, 0, \bufnum, b.bufnum]);
117 // change the buffer while its playing
119 b = Buffer.alloc(s, 4096, 1);
120 b.sine1(1.0/[1,2,3,4,5,6], true, true, true);
122 SynthDef("help-Osc",{ arg out=0,bufnum=0;
124 Osc.ar(bufnum, [80,80.2], 0, 0.2)
126 }).play(s,[\out, 0, \bufnum, b.bufnum]);
133 b.sine1(Array.rand(n,0,1).cubed, true, true, true);