graphic_eq

Fata Morgana

3D Wavetable Synthesizer for Qu-Bit Aurora

STM32H750 C++ DSP Eurorack

Overview

A dual-oscillator wavetable synthesizer firmware featuring 3D morphing across an 8×8×8 wave cube with thru-zero FM and multi-effect processing. Load custom wavetables via USB.

Controls

Main Controls

Warp (knob + CV) Base frequency (V/Oct, 0V = C0 = 16.35Hz)
Blur (knob + CV) Effect depth (mode-dependent)
Time (knob + CV) X-axis morph position (0-7)
Reflect (knob + CV) Y-axis morph position (0-7)
Atmosphere (knob + CV) Z-axis morph position (0-7)
Mix (knob) Unison detune spread (0-5%)
CV_MIX VCA control (0V = unity, +V = boost, -V = attenuate)

Shift + Knob Functions

Shift + Warp Osc B semitone offset (±24 semitones)
Shift + Blur Effect mode select (5 modes)
Shift + Time Sub A level (0-100%)
Shift + Reflect Sub B level (0-100%)
Shift + Mix Output volume trim (0-100%)

Effect Modes

Select with Shift + Blur knob. Effect depth controlled by Blur knob + CV.

FM
Cross-modulation between oscillators
Ring Mod
Multiply A × B with wet/dry mix
Bitcrush
Bit depth + sample rate reduction
Wavefold
Wavefolding distortion
Overdrive
Warm saturation/distortion

USB Wavetable Format

Place 8 WAV files in the root of a USB drive:

1.wav (Z=0) 2.wav (Z=1) 3.wav (Z=2) 4.wav (Z=3) 5.wav (Z=4) 6.wav (Z=5) 7.wav (Z=6) 8.wav (Z=7)

File Requirements

Format 16-bit mono PCM WAV (uncompressed)
Samples per waveform 256
Waveforms per file 64 (8×8 grid for X and Y axes)
Total samples 16,384 (256 × 64)
Min file size ~32KB audio data

Validate Your Wavetables

Use the Wavetable Validator to check and fix your WAV files before loading.

check_circle Open Wavetable Validator

Button Functions

Freeze Toggle morph interpolation (smooth ↔ glitchy)
Reverse (tap) Cycle oscillator selection (A → B → Both)
Reverse (hold 5s) Sync Osc B wavetable position to Osc A
Shift + Freeze Toggle external input mode (waveshaper)
Shift + Reverse Cycle tone mode (Orthodox ↔ Degraded)

Audio I/O

Left Out Oscillator A output
Right Out Oscillator B output
Left In FM input for OSC A (normalled to OSC B in FM mode)
Right In FM input for OSC B