### Oscillators

Each parameter has an oscillator (modulator) associated with it. The oscillator generates a repeating waveform (e.g. a sine wave), which is then used to modulate (change) the corresponding parameter's value. Oscillator waveforms are normalized, such that they always range from −1 to 1. An oscillator has the following properties:

 Waveform The type of waveform the oscillator generates: Triangle, Sine, Ramp Up, Ramp Down, Square, Pulse, or Random. Amplitude The width of the modulation. The oscillator's waveform, which ranges from −1 to 1, is scaled (multiplied) by Amplitude before being added to its parameter. Frequency The rate at which the oscillator's waveform is repeated, in Hertz (cycles per second). The frequency must be greater than zero, otherwise the oscillator has no effect. Pulse Width When the oscillator's waveform is "Pulse", this value sets the pulse wave's duty cycle (ratio of low to high), ranging from 0 to 1. At .5, the result is identical to a square wave. For other waveforms, Pulse Width has no effect.

In algebraic terms, an oscillator's behavior is:
Result = Parameter + (Waveform × Amplitude).

Note that when the amplitude is zero, the parameter is unchanged.

Since oscillators always swing both positive and negative, in some cases it may be necessary to offset a parameter to achieve the desired effect. For example, to make Ring Sides vary between 3 and 7, you would need to set Ring Sides to 5, and its oscillator's amplitude to 2:

5 + (−1 × 2) = 3
5 + (1 × 2) = 7

While programming oscillators, it may be helpful to view the numbers dialog, because it displays the modulated values of the parameters.