A4 Ridiculously Complex Waveform Generator

A4 Ridiculously Complex Waveform Generator

This was inspired by Softube Modular’s virtual recreation of the Buchla 259e Twisted Waveform Generator. The original 259e hardware was a digital version of the all analog Buchla 259 Complex Waveform Generator and was wavetable based. Since Audulus 3 didn’t lend itself well to wavetable synthesis, I decided to take a blended approach. This is not an attempt to clone either Buchla unit, but a complex oscillator in the same general style. With the introduction of Audulus version 4, wavetable synthesis is now much more practical, but that’s a project for another day.

The unit consists of a modulating oscillator and a pair of primary oscillators. Each oscillator is basically of the same design. The oscillators feature a selectable waveform that crossfades between sine, triangle, saw, square and random waves. The saw and square wave also have a shape control which in the case of the saw introduces a second saw peak and in the case of the square wave varies the pulse width. Each oscillator has a frequency and fine tune control and an output level slider. There is an external amplitude modulation input for each that can be set to linear or exponential response for the primary oscillators and is adjusted by an attenuverter. The oscillator output level is a combination of the AM input level and the oscillator lvl control allowing for external level control if desired. There is a linear FM input with a level control (ndx) and a sync input for each oscillator. There are drift level and rate controls which cause the oscillators to vary in frequency over time similar to an analog oscillator.

The output of the primary oscillators is fed into a pair of wave folders with fold, order and symmetry controls. The outputs of the folders are crossfaded using the bipolar fader control and sent to the main output. Each primary oscillator also has individual outputs of each wave type and the post-folder oscillator output.

The random wave is a random set of 16 steps which is used to create an audio output. A new set of steps can be generated by a pulse on the scramble input for each oscillator.

The modulating oscillator has two range settings. Low is from 0.05 Hz to 220 Hz. High is from 27 Hz to about 7k. There are three modulation targets, pitch, fold and xfade (crossfade) which can be adjusted using the attenuverters. The modulation is bipolar and the pitch modulation is linear. The mod lvl slider controls the overall depth of modulation. The xfade and fold controls are unipolar so the combination of the modulating signal and the knob is clamped between 0 and 1. There is a modulating oscillator output as well.


I/O

Input Signal Range Notes
o 1 per octave primary 1 per octave frequency input. With the freq and fine controls at 50% 0 is 440 Hz.
sync 0-1 pulse hard sync input for each oscillator - syncs on the leading edge.
am 0-1 modulation oscillator amplitude - modulation can be negative if the oscillator lvl control is greater than 0
fm -1 to 1 linear FM input for each oscillator
scramble 0-1 pulse reloads the random wavetable with a new set of random values

Output Signal Range Notes
mo -1 to 1 modulation oscillator output
main -1 to 1 main oscillator output
rnd, square, etc. -1 to 1 primary oscillators individual waves
osc A -1 to 1 primary oscillator 1 output post-folder
mod -1 to 1 modulation oscillator output
osc B -1 to 1 primary oscillator 2 output post-folder

Controls

Control Function Notes
** Oscillator Controls **
shp modifies the wave shape this only affects the saw and square waves
wave selects the wave type smoothly changes from sine to triangle to saw to square to random
freq frequency control range is 8 octaves - 50% (0.5) is tuned to a-440
fine fine tuning +/- 1 semitone
osc lv output level adjust the oucillator output levels
ndx FM index adjusts the level of the signal input to the “fm” input
am external amplitude modulation level attenuverter control
drift oscillator drift sets the depth of the random frequency drift of the oscillators
rate drift rate controls how fast the oscillators drift.
** Main Oscillators **
sym symmetry alters the symmetry of the folder - 50% is symmetric
order folder order controls the number of folds for a given fold setting.
fold folds the input waveform
crossfade slider crossfade crossfades between the upper and lower main oscillator
** Modulation Oscillator **
range frequency range low, high and high with tracking (trk)
xfade, fold, pitch modulation targets attenuverters for any combination of pitch, fold and crossfade

Displays

Meter Displays Notes
tuning fork indicate when tune and fine knobs are at default
waveform display shows the selected waveform


Version History

Revision File Date Notes
4.1 A4 Ridiculoulsly Complex Waveform Generator V4.1.audulus4 (96.3 KB) 12/272022 initial upload to forum

Demos

Revision File Date Notes
4.1 A4 Ridiculoulsly Complex Waveform Generator V4.1 Demo.audulus4 (365.7 KB) 12/27/2022 initial upload to forum - you need to start the clock (select run)
6 Likes

Phenomenal module! Excellent work here :slight_smile:

I am new to A4 and modular synthesis, but even I can appreciate your skill and experience at producing both the Waveform generator and and the demo example, which contains several other interesting custom modules.

I will try and examine this closely and see what learning I can achieve as my A4 experience grows…

Thanks so much for sharing

1 Like

@stschoen is one of the great Audulus designers! He’s come up with so many great ideas I’ve lost count. Great person to learn from.

3 Likes

Can the memory node be repurposed for wavetables?

1 Like

Yeah the memory node is perfect for doing wavetable stuff. I should edit that line. :monkey_face:

2 Likes