Goal: add a shared post-voice effect insert with four physical processing stages. Done: a stereo master effects chain sits after the master analogue block and before the master gain, carrying a 12AX7 tube cascade, bucket-brigade device delay, Dattorro plate reverb, and Jiles-Atherton tape saturation. All four stages are bypassed at shipped defaults; the full-12-preset render is byte-identical to the pre-effects baseline when defaults are active.
The effects chain
The Eidolon voice path ends at the master analogue block: a 4× oversampled stage that models a virtual-earth summing network, a synth driver, and the Soundcraft 600 line path, then converts back to the plugin output domain. Week 6 inserts a stereo effects chain immediately after that return and before the master gain multiply, modeling a console outboard insert on the mix bus return.
The fixed chain order is: 12AX7 tube cascade, then BBD delay, then Dattorro plate reverb, then Jiles-Atherton tape saturation. The tube adds harmonic warmth to the dry signal before the spatial stages; delay feeds into reverb so each repeat excites the tail; tape colors the fully-spatialized result last, and each stage carries an independent bypass flag. The compiler sees all four stages bypassed at their default parameter values: the processor's 12-preset regression render is byte-identical to the pre-effects build at those defaults.
The per-voice wavefolders run inside the voice loop at four times the host sample rate, before the filters and the VCA, and are synthesis stages rather than post-mix effects. A post-mix bus wavefolder was considered and removed: its top-octave coloration conflicted with the tape stage above it, and removing it simplified the chain without an audible gap.
BBD delay
A bucket-brigade device is an analogue shift register: voltage is sampled at one end on each clock edge, pushed through a fixed number of charge-storage stages, and exits the far end a fixed number of clock cycles later. The delay time is therefore set by the clock frequency, not by an arbitrary read-head position on a memory line.
Eidolon's delay uses two stereo rails, each modeled as four cascaded 2048-stage BBDs (8192 stages per rail). The clock rate is derived from the target delay time: f_clock = 8192 / (2 × t_seconds). A lower clock rate produces a longer delay and also narrows the usable sample rate bandwidth, because the BBD's inherent sample-and-hold output attenuates high frequencies as the clock slows. Longer delays are physically darker.
Each rail has a matched anti-alias filter before the BBD input and a reconstruction filter after the held output. The anti-alias filter is a four-pole section tracking at 0.40 times the clock frequency; the reconstruction filter is a six-pole section tracking at 0.30 times the clock frequency. This cutoff tracks the clock so that the reconstruction filter's passband always covers the audible range at the current delay time while suppressing clock-rate images.
Clock noise is a separate layer: an LCG broadband source, shaped by an expander that opens during active audio and closes when the signal falls below a threshold, models the hiss floor characteristic of rotating oxide on a physical BBD. Compander coloration shapes the dynamic range as the signal enters and exits the BBD stages, and a saturation layer in the charge-transfer path adds harmonic density under high levels.
Stereo motion comes from a cross-feedback matrix in which the left and right rails exchange delayed output: each rail's feedback input is the other rail's previous held-output. At nonzero feedback the result is a ping-pong pattern where echoes alternate channels. The feedback gain defaults to 0.35, producing two to three audible repeats at typical settings.
A capability extension adds independent control over: clock modulation rate and depth, feedback tone (a variable-fc low-pass in the feedback path), self-oscillation gain, multi-head modes (dual, triple, and Echorec-style rotating head), input ducking, and stereo offset between the two rails.
Dattorro plate reverb
A plate reverberator drives a large steel plate with a transducer; sound waves travel across it at high speed, and pickups at different positions capture the spreading and reflection as a dense, smooth tail. The character is brighter and more diffuse than a spring, with a longer and more evenly distributed density buildup.
Eidolon implements the Dattorro 1997 algorithm, an allpass-based feedback network calibrated to reproduce the decay and spectral behavior of a physical plate. The algorithm combines an input diffuser with two coupled feedback loops. Each loop contains allpass sections for diffusion and delay lines for the loop travel time, with modulated allpass stages that slowly vary the path length to prevent metallic flutter echo; the two loops output to opposite stereo channels.
The Dattorro plate is the only master reverb; the spring model was removed in a later pass (see Reflection). The decay control sets the RT60: the time for the reverb tail to fall by 60 dB. A tone control applies a complementary tilt to the return: bass and treble in opposite directions, unity at center. Diffusion scales the input allpass stages; higher diffusion builds density faster. A modulation depth control sets the depth of the allpass modulation that prevents flutter echo.
The reverb's wet output is inherently stereo: summed to mono, the two loop outputs partially cancel. This is a property of the algorithm; the dry signal and the mix level are unaffected, so the behavior is predictable and disclosed in the evidence below.
12AX7 tube cascade
A triode tube conducts current in proportion to grid voltage, but its transfer characteristic is nonlinear: the grid increasingly throttles current at high levels, asymmetrically rounding the positive and negative excursions of the signal; the 12AX7 is a dual-triode with high voltage gain and a characteristic warm-sounding compression under drive.
Eidolon's tube stage models the 12AX7 triode equation biased at a specific quiescent operating point; the stages parameter selects a one-stage or two-stage cascade. Cascading a second stage applies the nonlinearity twice, increasing harmonic density and compression without simply squaring the drive.
Power supply sag adds a second layer. A real tube amplifier's power supply rail droops under sustained high-level transients; as the rail drops, the biasing shifts and the compression deepens. The sag model tracks signal envelope and adjusts the operating point over a time constant, producing a characteristic dynamic compression that is slower than the audio signal and acts most strongly on the attack of dense chords.
The FMV tone stack is a passive EQ topology used by Fender, Marshall, and Vox amplifiers since the 1950s. It places bass, mid, and treble controls in a resistor-capacitor network before the amplifier stage. Because the network is passive, its controls interact: increasing treble pulls down the mid, and the bass control has a presence peak at its extremes. The three style choices (Fender, Marshall, Mesa) use different component ratios that shift where the cut regions fall and how strongly the controls interact.
Tube type selects between 12AX7, 12AT7, 12AU7, and EL34, each parameterized with different gain factors and headroom. 12AX7 has the highest gain and earliest onset; 12AU7 is the cleanest and most linear; EL34 is a pentode topology with a harder-clipping character typical of power amplifier stages.
Tape saturation
Magnetic tape records audio by aligning ferromagnetic particles along an oxide coating. The alignment is not linear: the relationship between the applied field and the resulting magnetization follows a hysteresis loop, and domains resist change, retaining a residual magnetization even after the applied field returns to zero. The result is that transient attacks record differently than the sustain body, and high-frequency content saturates earlier than low-frequency content.
Eidolon uses the Jiles-Atherton differential equation to model the ferromagnetic hysteresis loop. The model treats magnetization as the sum of a reversible anhysteretic term and an irreversible pinning term, with coupling between them. The ODE is solved sample by sample at four times the host rate using a one-step Newton-Raphson forward-Euler method.
Wow is slow pitch modulation and flutter is a faster version of the same effect, both from unevenness in the tape transport mechanism. Eidolon models both as sinusoidal frequency modulation applied to the time-variant delay of the tape path. The approved voicing uses a shallow wow depth (0.06) and flutter depth (0.08), which is perceptible on sustained tones without disrupting pitch clarity.
The head bump is a low-frequency resonance that arises at the contact point between the tape and the playback head. The gap in the head creates an acoustic resonance in the 50 to 200 Hz range depending on tape speed. At 15 ips (the approved voicing), the bump falls around 80 to 100 Hz, adding presence to the low-mid register.
Tape hiss is a broadband noise floor from the random magnetic alignment of unrecorded tape. The approved voicing sets hiss at a low level (0.15) to add texture without masking the signal. Bias controls the DC offset applied to the recording field before the signal is added. Under-biased tape (negative bias, as in the approved voicing at −0.35) saturates earlier and introduces grit into the top octave.
The tape formulation selects between three oxide types: A, B, and C. Formulation B (ferric vintage, the approved voicing) uses the Jiles-Atherton constants calibrated to a characterful RE-201-influenced model: lower saturation magnetization, smaller anisotropy field, and lower reversibility than Formulation A. The practical effect is a softer, denser onset into saturation.
Evidence
Each section below was rendered from a fresh EidolonProcessor at Eidolon commit dd3a4b2, 48 kHz, 128-sample blocks, preset 12 (Juno Chorus pad). The same musical phrase plays through every section: a voiced-chord progression (for sustained body), a motif-based staccato arpeggio with gaps of at least 0.45 seconds (so the 375 ms delay repeat is audible between plucks), and a final chord followed by a silent tail. Two independent renders produced byte-identical WAVs for all six conditions. The plots retain raw dBFS. The listening copies apply one constant gain only to the louder member of each comparison.
BBD delay
Dattorro plate reverb
12AX7 tube cascade
Tape saturation
Full rack
Reflection
A production-null requirement set early drove the design: all 12 presets must render byte-identically when effects are bypassed. That forced the bypass path before any state mutation or parameter smoothing, and shaped the default design, the state migration, and the testing order. The same requirement confirmed chain placement: inserting after the master analogue block and before the master gain was the smallest seam where a shared stereo effect could sit without reopening any calibrated circuit.
The reverb changed from a spring target to the Dattorro plate algorithm, selected for its broader diffuse sound and well-documented coefficient derivation. The spring model was removed entirely in a later pass; the plate is now the only master reverb. The lesson: two algorithms with equivalent documentation and auditability can occupy the same architectural slot.
The BBD reconstruction fix (sixth-order low-pass tracking at 0.30 times the clock frequency) and the clock hiss model took the most iteration. A simple fractional-delay interpolator at host rate would not have produced the correct high-frequency rolloff relationship between delay time and bandwidth, and a flat noise floor would not have shown the expander's compression-unlocking behavior. Getting both right required reading the original BBD modeling papers rather than treating the delay as a lookup table with a filter on top.
References
- Jon Dattorro. Effect Design, Part 1: Reverberator and Other Filters. Journal of the Audio Engineering Society, 45(9), 1997. Free PDF, Stanford CCRMA. (Plate reverberator algorithm, allpass diffusion structure, and coefficient derivation.)
- Martin Holters and Julian Parker. A Combined Model for a BBD and its Input/Output Filters. DAFx-18, 2018. Open PDF. (BBD event-rate transport, anti-alias and reconstruction filter design, and sample-and-hold rolloff.)
- Colin Raffel and Julius O. Smith. Practical Modeling of Bucket-Brigade Device Circuits. DAFx-10, 2010. Free author-hosted PDF. (BBD compander behavior and clock-noise modeling.)
- BOSS. DM-101 Delay Machine. Official product page. (Device count, stereo modes, and Pan-mode lineage; proprietary component values are not published.)
- D. C. Jiles and D. L. Atherton. Theory of ferromagnetic hysteresis. Journal of Magnetism and Magnetic Materials, 61(1–2):48–60, 1986. (Definitive statement of the Jiles-Atherton differential hysteresis model; derivation of the anhysteretic and irreversible pinning terms used in the tape saturation ODE.)