Classes | UGens > Generators > Deterministic

VOsc : PureUGen : UGen : AbstractFunction : Object

Variable wavetable oscillator.
Source: Osc.sc


A wavetable lookup oscillator which can be swept smoothly across wavetables. Fractional values of table will interpolate between two adjacent tables.

This oscillator requires at least two buffers to be filled with a wavetable format signal. This preprocesses the signal into a form which can be used efficiently by the oscillator. All the wavetables must be allocated to the same size, and the size must be a power of two.

Setting your tables with Buffers

The wavetable can be generated by filling a buffer via the Buffer: Buffer Fill Commands (e.g. Buffer: -sine1). Set wavetable: true to ensure the proper data formatting.

Identically, you can create a Buffer object by sending one of the \b_gen messages \sine1, \sine2, \sine3 (see Server Command Reference: Wave Fill Commands and examples below), again remembering to enable the wavetable format.

You can use Buffer: *allocConsecutive to ensure a contiguous buffers numbers to be interpolated.

Setting your tables with Signals

This can also be achieved by creating a Signal object and sending it the Signal: -asWavetable message, saving it to disk, and having the server load it from there.

Class Methods

VOsc.ar(bufpos, freq: 440.0, phase: 0.0, mul: 1.0, add: 0.0)

VOsc.kr(bufpos, freq: 440.0, phase: 0.0, mul: 1.0, add: 0.0)



Buffer index. Can be swept continuously among adjacent wavetable buffers of the same size.


Frequency in Hertz. (non-interpolated control-rate)


Phase offset or modulator in radians.


Output will be multiplied by this value.


This value will be added to the output.

Inherited class methods

Instance Methods

Inherited instance methods