Wavetable oscillator

ATMOSYNTH built-in module

Five waves side by side and a knob that travels through them. At nothing it is a sine; at everything it is a buzz with every harmonic in it; and anywhere between it is the two waves it stands between, mixed sample for sample rather than one replacing the other — which is the whole of what a wavetable oscillator is, and why moving Position is a sound changing shape rather than a sound being swapped. The five are a sweep from dark to bright: a sine, a hollow one, a reedy one, a full one, and one with every harmonic near enough level. Position is an input as well as a knob, and Position amount is how far it travels — an envelope on it is the sweep nearly every wavetable patch is built on, and an LFO on it is the sound moving on its own. Every wave here is a set of harmonics rather than a recording, so each is band-limited to the note being played and the bright end of the sweep stays a sound rather than folding into a chord of frequencies nobody asked for. They also share the phase of every harmonic they have in common, which is why a blend of two of them thickens instead of hollowing out.

What it is made of

The Web Audio nodes inside this module and how they are wired. Fork it to open the same graph in the editor, where every part can be changed.

A patch connects to it through MIDI input ‘Note’, audio input ‘Position’, audio input ‘Detune’ and audio output ‘Out’.

  • ‘note’ is a MIDI input this module declares, set to midiInput midi.
  • ‘osc0’ is a oscillator node, set to type custom. Its output reaches input 0 of ‘mix0’. A patch can set its detune, through ‘Detune (cents)’.
  • ‘win0’ is a waveShaper node. Its output modulates the gain of ‘mix0’.
  • ‘mix0’ is a gain node. Its output reaches input 0 of ‘out’.
  • ‘osc1’ is a oscillator node, set to type custom. Its output reaches input 0 of ‘mix1’. A patch can set its detune, through ‘Detune (cents)’.
  • ‘win1’ is a waveShaper node. Its output modulates the gain of ‘mix1’.
  • ‘mix1’ is a gain node. Its output reaches input 0 of ‘out’.
  • ‘osc2’ is a oscillator node, set to type custom. Its output reaches input 0 of ‘mix2’. A patch can set its detune, through ‘Detune (cents)’.
  • ‘win2’ is a waveShaper node. Its output modulates the gain of ‘mix2’.
  • ‘mix2’ is a gain node. Its output reaches input 0 of ‘out’.
  • ‘osc3’ is a oscillator node, set to type custom. Its output reaches input 0 of ‘mix3’. A patch can set its detune, through ‘Detune (cents)’.
  • ‘win3’ is a waveShaper node. Its output modulates the gain of ‘mix3’.
  • ‘mix3’ is a gain node. Its output reaches input 0 of ‘out’.
  • ‘osc4’ is a oscillator node, set to type custom. Its output reaches input 0 of ‘mix4’. A patch can set its detune, through ‘Detune (cents)’.
  • ‘win4’ is a waveShaper node. Its output modulates the gain of ‘mix4’.
  • ‘mix4’ is a gain node. Its output reaches input 0 of ‘out’.
  • ‘pos’ is a constantSource node. Its output reaches input 0 of ‘win0’. Its output reaches input 0 of ‘win1’. Its output reaches input 0 of ‘win2’. Its output reaches input 0 of ‘win3’. Its output reaches input 0 of ‘win4’. A patch can set its offset, through ‘Position’.
  • ‘posin’ is an audio input this module declares, set to input position. Its output reaches input 0 of ‘posdepth’.
  • ‘posdepth’ is a gain node. Its output modulates the offset of ‘pos’. A patch can set its gain, through ‘Position amount’.
  • ‘detunein’ is an audio input this module declares, set to input detune. Its output reaches input 0 of ‘detunedepth’.
  • ‘detunedepth’ is a gain node. Its output modulates the detune of ‘osc0’. Its output modulates the detune of ‘osc1’. Its output modulates the detune of ‘osc2’. Its output modulates the detune of ‘osc3’. Its output modulates the detune of ‘osc4’. A patch can set its gain, through ‘Detune amount (cents)’.
  • ‘out’ is an audio output this module declares, set to output out.
  • ‘Position’ is a setting a patch can turn, from 0 to 1.
  • ‘Position amount’ is a setting a patch can turn, from 0 to 1.
  • ‘Detune (cents)’ is a setting a patch can turn, from -1200 to 1200.
  • ‘Detune amount (cents)’ is a setting a patch can turn, from 0 to 1200.

No published patch uses this module yet

When somebody publishes a patch built on it, that patch will be listed here.

Browse Explore