A blown voice that opens as it is held, as an Oberheim's does: two sawtooths a few cents apart through a mixer that leans on them and a state-variable filter whose contour swells with the attack and settles half open. Filter contour is how far, in cents, the filter's own contour opens it, Filter decay and Filter sustain that contour's shape, and Emphasis how far the filter rings, singing past one.
Four notes played on it, from a Keyboard, as a patch plays it.
‘note’: note input · port midi · modulates the frequency of ‘osc1’ · modulates the frequency of ‘osc2’ · into ‘track’
‘vel’: note input · port midi · signal velocity · modulates the velocity of ‘fenv’
‘in’: audio input · port in · into ‘sum’
‘one’: Constant · into ‘sumset’ · into ‘trackGainset’ · into ‘fenvAmountset’ · into ‘fenvReleaseset’
‘sum’: Gain · into ‘shaper’
‘sumset’: Waveshaper · modulates the level of ‘sum’
‘osc1’: Worklet (your own code) · processor name atmosynth-analog · inputs 0 · outputs 2 · runs its author’s code · into ‘sum’ · wave turned by ‘Wave (0 triangle, 1 saw, 2 square, 3 narrow pulse)’ · detune turned by ‘Detune 1 (cents)’
‘osc2’: Worklet (your own code) · processor name atmosynth-analog · inputs 0 · outputs 2 · runs its author’s code · into ‘sum’ · wave turned by ‘Wave (0 triangle, 1 saw, 2 square, 3 narrow pulse)’ · detune turned by ‘Detune 2 (cents)’
‘shaper’: Waveshaper · oversampling 4× · into ‘dcblock’
‘dcblock’: Custom filter · into ‘vcf’
‘vcf’: Worklet (your own code) · processor name atmosynth-sem · inputs 1 · outputs 1 · runs its author’s code · into ‘vca’ · frequency turned by ‘Brightness (Hz)’ · resonance turned by ‘Emphasis (sings above one)’ · drive turned by ‘Drive’
‘track’: Gain · modulates the frequency of ‘vcf’
‘trackGainset’: Waveshaper · modulates the level of ‘track’
‘gate’: Constant · modulates the gate of ‘fenv’ · value set by ‘Gate’
‘fenv’: Worklet (your own code) · processor name atmosynth-contour · inputs 0 · outputs 2 · runs its author’s code · into ‘fdepth’ · attack turned by ‘Attack’ · decay turned by ‘Filter decay (ms for a full fall)’ · sustain turned by ‘Filter sustain’
‘fdepth’: Gain · modulates the detune of ‘vcf’ · level turned by ‘Filter contour (cents)’
‘fenvAmountset’: Waveshaper · modulates the amount of ‘fenv’
‘fenvReleaseset’: Waveshaper · modulates the release of ‘fenv’
‘vca’: Gain · into ‘level’ · level set by ‘Amplitude’
‘level’: Gain · into ‘out’ · level turned by ‘Level’
‘out’: audio output · port out
‘Amplitude’: envelope, 4 points, on the level of ‘vca’ · holds at point 3
‘Gate’: envelope, 2 points, on the value of ‘gate’ · holds at point 1
‘Attack’: knob, 0 to 4000
‘Decay reaches sustain at’: knob, 0 to 8000
‘Sustain level’: knob, 0 to 1
‘Release ends at’: knob, 0 to 12000
‘Brightness (Hz)’: knob, 20 to 20000
‘Emphasis (sings above one)’: knob, 0 to 1.2
‘Filter contour (cents)’: knob, -9600 to 9600
‘Filter decay (ms for a full fall)’: knob, 1 to 10000