Design Rationale


The Evergreen State College · Summer 2026 · 12 credits
Student: Travis Inskeep · Faculty Sponsor: Jessica Carey

Eidolon · Independent Learning ContractDESIGN

Eidolon builds analog character from many small, inspectable mechanisms placed at specific points in the signal path, not from one effect at the end. This page states what each mechanism is, where it comes from, and its status in the engine.

The thesis

Each mechanism is ordinary signal processing that can be read, measured, and switched off for comparison. There is no machine-learning model. The mechanisms are of three kinds: published device equations, such as the amplifier and the console's voltage staging; algorithms modeled on a circuit family, such as the wavefolders and the filter's Character modes; and two generic saturation curves, which I kept by ear after a physically modeled replacement lost in a listening comparison.

References

ReferenceWhat Eidolon takes from it
ARP 2600A CA3080 transconductance amplifier model running its full hyperbolic-tangent curve, with a small offset for even harmonics and a bleed 60 dB down when closed. Filter key tracking at 100% by default, adjustable from −100% to +200%.
Soundcraft 600The master output path: the 10 dB pad to internal level, the virtual-earth mix bus, the 10 dB make-up amplifier, rail limits, and slew. Its published distortion rises with frequency, below 0.005% at 1 kHz and below 0.02% at 20 kHz. That distortion, and the distortion of the synth's own summing bus and output driver, is not implemented yet.
Sequential Prophet-5Voice variation: fixed per-voice offsets to tuning, cutoff, envelope times, and gain, drawn from a seed, plus slow pitch drift. Splitting variation into offsets and drift is my modeling choice.
Schwa OlgaSlight waveform variation every cycle, in all three oscillator engines. Unlike Olga, each note starts at a fixed per-voice phase, spread by a golden-ratio sequence. Random start phases occasionally aligned into a click at a chord's onset.
Buchla 259, Serge, Lockhart, Doepfer A-137-1Four wavefolder topologies (Buchla, Serge with a Lockhart variant, Bent, WaveMult), a low-pass gate filter mode, and dynamics re-applied after folding.
Moog sawtooth model (Pekonen et al.)In the Bézier engine, the sawtooth's ramp curvature follows the paper's frequency-dependent coefficient, scaled by Warmth.
Pines diode VCAThe amplifier's second stage, a diode-amplifier model solved with the Wright omega function. Its distortion rises as its gain falls. Placing it after the CA3080 is my design choice, not a historical circuit.

The signal chain

Each voice runs at four times the host sample rate through the amplifier, then filters back down before the voices sum. Amber stages are nonlinear or noise.

  1. 3 × OscillatorBézier, additive, or wavetable engine, each band-limited at the source. The Bézier engine uses minBLEP corrections.
  2. Per-oscillator saturationA generic curve with antiderivative antialiasing, kept by ear.
  3. Wavefolder A → BFour topologies, each bypassable. Dynamics re-applied after folding.
  4. Pre-filter saturationA second generic curve with antiderivative antialiasing. It sets how hard the filters are driven.
  5. Filter A → Filter BOne state-variable filter design used twice in series: LP, HP, BP, or low-pass gate, two or four poles. Character (Clean, Warm, Bright, Aggressive, Vintage) sets how its internal state saturates. An optional shaper between the filters offers six saturation types.
  6. Voice noisePink and white noise at a set dBFS level, scaled by the amplifier envelope. It measures at or below the circuit's thermal noise budget, about −145 dBFS per hertz.
  7. Hybrid amplifierCA3080 tanh with antiderivative antialiasing, into the Pines diode model. The last nonlinearity in each voice.
  8. Width, gain, and decimationPer-voice mid-side width and one fixed gain, then filtering back to the host rate.
  9. Voice sum → master analogue block → outputThe synth's summing bus, output driver, and the Soundcraft 600 line path, staged in volts at four times the rate. An effects rack follows (tube, bucket-brigade delay, plate reverb, tape), off by default. A constant bus noise at −110 dBFS and the master gain close the path.

Structural or linear stageNonlinear or noise stage

Design decisions

DecisionWhy
Coloration distributed across the chain, each mechanism switchableEach can be heard and measured on its own
One filter design, used twice in seriesCharacter changes without rebuilding the filter
Per-voice offsets from a fixed seed, with slow driftVoices differ like an analog polysynth's, and every render is reproducible
A drift floor that cannot be switched offEvery voice keeps some pitch movement; Warmth can still go to zero
Noise injected before the amplifierThe envelope scales it, so it falls away between notes
A physically staged console path, not a generic limiterHeadroom, rails, and slew follow the Soundcraft 600's documented line path
Band-limited oscillators, colored downstreamAn aliasing source would compound through every later nonlinearity

Five rules are fixed, each from a specific failure: inject noise before the amplifier; retire a voice when its envelope finishes, not when its output drops; never reset the oversampling filters at a note's start; scale every voice by one fixed factor, not by the number sounding; prime a nonlinearity's memory at note onset.

Method

Build from published theory, measure at a named point in the signal path, then listen. A change that alters the sound must pass a level-matched listening comparison before it is accepted. Measured baselines are loosened only with a written justification. All per-voice randomness comes from fixed seeds, so a given sequence of notes always renders identically.

Sources

Eidolon · Design Rationale · The Evergreen State College