Sine Shaper

ATMOSYNTH built-in module

A sine laid across the sound rather than a ceiling put over it. Quiet parts pass almost as they came; as the sound is driven harder the curve turns back on itself instead of flattening, so a peak that goes further comes back down and out the other side. That folding is where the harmonics come from, and it is why they arrive high up and in bunches rather than as warmth spreading gradually upward — a sine shaper folds where a saturator clips. Drive is the gain into the curve and is the whole of the effect: at the low end the sound is barely bent and simply quieter, at the top it has been turned through the curve several times and little of the pitch it went in with is left at the front of it. The curve stops on a crest, so a sound driven past the end of its range leans on that instead of falling through the zero beyond. Dry/wet is the blend: at nothing what came in, at everything only the folded copy, and in between both at once with nothing between them to smear one against the other — which is what lets a fold sit under a clean sound rather than replace it. The fold itself is worked out at four times the rate and filtered back down, because a curve that turns this often makes harmonics far above what the rate can hold, and those come back down the spectrum as a ring against the note rather than as part of it — worst at the top of the keyboard, where the note has the most room above it to fold into. The clean half runs through the same oversampler with a straight line for a curve, so both halves are held back by exactly whatever that costs and the blend stays sample-aligned whatever a browser charges for it. That straight line passes anything up to eight times full scale untouched, which is further than the fold reaches at any drive. Drive is an input as well, with a depth for how far a signal there moves it: an LFO into it sweeps the folds through the sound.

Four notes played on Keys, passing through it on their way out.

What it is made of

Ports: audio input ‘In’, audio input ‘Drive’, audio output ‘Out’.

  • ‘in’: audio input · port in · into ‘dry’ · into ‘drive’
  • ‘dry’: Gain · into ‘drytrim’
  • ‘drytrim’: Gain · into ‘dryflat’
  • ‘dryflat’: Waveshaper · curve linear · oversampling 4× · into ‘drylift’
  • ‘drylift’: Gain · into ‘out’
  • ‘drive’: Gain · into ‘span’ · level turned by ‘Drive’
  • ‘span’: Gain · into ‘shaper’
  • ‘shaper’: Waveshaper · curve sine · oversampling 4× · into ‘wet’
  • ‘wet’: Gain · into ‘out’ · level turned by ‘Dry/wet’
  • ‘mixsrc’: Constant · into ‘mixdepth’ · into ‘spanset’ · into ‘drytrimset’ · into ‘dryliftset’
  • ‘mixdepth’: Gain · into ‘mixinvert’ · level turned by ‘Dry/wet’
  • ‘mixinvert’: Waveshaper · modulates the level of ‘dry’
  • ‘spanset’: Waveshaper · modulates the level of ‘span’
  • ‘drytrimset’: Waveshaper · modulates the level of ‘drytrim’
  • ‘dryliftset’: Waveshaper · modulates the level of ‘drylift’
  • ‘out’: audio output · port out
  • ‘drivein’: audio input · port drive · into ‘drivedepth’
  • ‘drivedepth’: Gain · modulates the level of ‘drive’ · level turned by ‘Drive depth’
  • ‘Drive’: knob, 0.25 to 14
  • ‘Dry/wet’: knob, 0 to 1
  • ‘Drive depth’: knob, -14 to 14

Patches built on it

1 published patch