oscillator_multi

Configure a region to use more than one oscillator.

Assuming oscillator_mode=0:

  • If the value is 1, the region operates normally, in single oscillator mode.
  • If the value is 2, the region operates in ring modulation mode.
  • If between 3 and 9, this defines a unison, with the value being the number of oscillators. In this case, oscillator_detune must also be set to indicate the spread between the oscillators.

Cakewalk unison #

Let m be the number of oscillators defined by oscillator_multi, and d the detune value defined by oscillator_detune.

The array of m oscillators is tuned by multiplying d for each oscillator by its coefficient.

Oscillator Coefficient
1 0
2 -1
3 1
4 -1/4
5 1/4
6 -1/2
7 1/2
8 -3/4
9 3/4

The oscillators sum into left and right channels with declining linear gain, opposite for each channel. With i the number of the oscillator (starting at 1), the left gain is (i-1)/(m-1), and the right gain is 1-((i-1)/(m-1)).

Example #

/*
# Left:
  [4]   25 cents,        0 dB
  [3]  -25 cents, -2.49878 dB
  [2]  100 cents,  -6.0206 dB
  [1] -100 cents, -12.0412 dB
  [0]    0 cents,     -inf dB

# Right:
  [0]    0 cents,        0 dB
  [1] -100 cents, -2.49878 dB
  [2]  100 cents,  -6.0206 dB
  [3]  -25 cents, -12.0412 dB
  [4]   25 cents,     -inf dB
*/
<region>
oscillator_detune=100
oscillator_multi=5
Name Version Type Default Range Unit
oscillator_multi SFZ v2 integer 1 1 to 9

Category: Wavetable Oscillator