Pulse Train — Stage II is a browser instrument, but nothing in it is make-believe DSP. Every node below is documented three ways: the actual technique the JavaScript uses, the math that technique is an implementation of, and a real chip — a real part number, from a real manufacturer, that a hardware version of this same node would reasonably be built from.
Organized the same way the instrument itself now is — Sources, Modulation, Character, Time, Master — thirteen nodes, three views each.
Tone, Tone II, and Rhythm are the only nodes with nothing patched into their own in by default — everything downstream is shaping something one of these three already produced.
A single OscillatorNode per voice, undistorted sine, hard-clipped only as a feedback-loop safety net. Whatever's patched into in sums directly into the oscillator's own frequency AudioParam — linear FM, not exponential. A second oscillator, locked to the first by the ratio knob, gives each Tone a second output.
Linear FM: the modulator adds directly to carrier frequency in Hz, not to its exponent — so FM depth is felt the same at 40Hz as at 2000Hz, unlike 1V/oct analog FM.
TL074Texas Instruments$0.70
quad op-amp integrator core
LM13700Texas Instruments$1.70
exponential converter + sine shaper
LM311Texas Instruments≈$0.50
Schmitt-trigger comparator for the triangle/square core
Highpassed noise gated by a near-instant attack / fast decay envelope — a click, not a tone. Fires on its own clock and again on any rising edge detected at its in, the same edge-trigger technique used for Sonar back on Signal Chain.
A rectangular envelope of width w; the edge detector is a simple rising-edge threshold crossing, exactly what a Schmitt trigger does in hardware.
TLC555Texas Instruments≈$0.40
monostable timer, fires one fixed-width pulse per trigger
LM311Texas Instruments≈$0.50
edge-detect comparator on the external trigger input
LFO is the one node whose own out, patched straight to the speakers, is nearly silent — it exists entirely to feed the cv jacks that sit next to the ordinary in on eight other nodes.
A plain OscillatorNode (sine/triangle/square/sawtooth) through a GainNode set by depth. Each of the eight cv jacks it can patch into is actually a second, fixed-gain node wired permanently to a real target — an oscillator's frequency, a delay's delayTime, a gain's own gain — so one shared depth knob still reads as a sensible amount whether it lands on a pitch input or a volume input.
The target AudioParam's own held value (param₀, set by its knob) and the incoming modulation sum directly — exactly the superposition already at work wherever Ring or Field drive an AudioParam internally, just exposed as a patchable source instead of hardwired.
TL074Texas Instruments$0.70
op-amp relaxation-oscillator core, the same integrator/comparator topology as Tone's, just tuned to sub-audio rates and without the exponential converter
each fixed per-destination scale is, in real modular hardware, exactly what an attenuverter does — an inverting op-amp stage with a bipolar gain trim between a CV output and whatever it's patched into.
Crush, Ring, Drive, and Field don't generate anything — each takes a signal and does one specific, well-defined thing to its waveform, spectrum, or stereo position.
A WaveShaper curve pre-computed as a staircase — 1024 samples, each rounded to one of 2^bits flat bands — quantizes amplitude resolution. A second stage, an audio-rate square oscillator driving a GainNode, chops the result on and off.
Bit-depth quantization: b controls how many discrete amplitude levels survive. This is inherently digital math — there's no continuous-voltage circuit that "rounds," only ones that approximate it.
CD4066BTexas Instruments≈$0.70
bilateral switch for the audio-rate gate stage
the bit-mask itself has no honest discrete-analog equivalent — it runs on a small control MCU's ADC/DAC, the same way it runs on the CPU in the browser.
An oscillator's output connects directly into a GainNode's own gain AudioParam — the input signal literally multiplies a second, independent oscillator, true four-quadrant ring modulation rather than a tremolo-style one-sided amplitude wobble.
Multiplying two signals shifts the input's spectrum up and down by the carrier frequency — sum and difference sidebands, with neither the original fundamental nor the carrier surviving in the output.
LM13700Texas Instruments$1.70
cross-coupled OTA pair biased as a 4-quadrant multiplier
AD633Analog Devices$18.35
laser-trimmed multiplier — cleaner, pricier upgrade path
Ported from Signal Chain unchanged. A WaveShaper curve computed from tanh, normalized so the curve always reaches ±1 at the input extremes no matter how hard drive is turned up, followed by a lowpass for tone.
tanh is an odd function — its expansion contains only odd-order terms, so saturating a sine adds only odd harmonics (3rd, 5th, 7th…), the same harmonic signature associated with "warm" tube-style overdrive.
TL074Texas Instruments$0.70
op-amp gain stage with a diode pair across the feedback path — the textbook soft-clip circuit behind most real overdrive pedals, diode forward-conduction standing in for tanh's smooth compression
A sine LFO runs through a second staircase WaveShaper — the same quantization curve as Crush, just applied to a control signal instead of audio — before driving a StereoPannerNode's pan AudioParam, so the pan position jumps between fixed steps instead of sweeping smoothly.
The same quantization function as Crush's Q(x,b), reused on a control-rate signal instead of an audio-rate one — one function, two very different-sounding jobs depending on what it's applied to.
CD4051BTexas Instruments≈$0.70
8-channel analog mux, stepped between discrete pan taps
SN74HC393Texas Instruments≈$0.60
binary counter clocking the mux — a literal hardware staircase
Freeze, Comb, Shimmer, and Space are all, underneath, the same operation — delay a copy of the signal and mix it back in — run at wildly different time scales and feedback amounts.
A DelayNode with its own output fed back into its input through a gain stage set as high as 98% — not the usual 80–90% an echo tops out at — so a struck signal barely decays, cycling almost indefinitely instead of fading into a handful of discrete repeats.
A feedback comb / IIR delay. Stable only for |β| < 1 — at β = 0.98 the impulse response decays by roughly 2% per pass, audible as a very slow fade rather than silence.
V3205 ×2CoolAudio$8.25 ea
4096-stage bucket-brigade delay, cascaded for length
LM13700Texas Instruments$1.70
OTA sets the feedback level the same way feedback.gain does
The identical feedback-delay structure as Freeze, at a completely different time scale: delay times short enough to be inaudible as separate echoes (down to half a millisecond). The freq knob sets delay time to 1/freq internally, so it reads as a pitch, not a duration.
Same recurrence as Freeze, but at these delay times the ear stops hearing discrete echoes and starts hearing a comb-shaped frequency response — peaks and nulls spaced at harmonics of 1/D.
V3207CoolAudio$5.35
1024-stage bucket-brigade delay, 51.2ms max — short enough range for comb-filter time scales without cascading multiple chips
Ported from Signal Chain unchanged. About as plain as a chorus circuit gets: a short (~18ms) DelayNode, with a slow sine LFO wobbling the delayTime AudioParam itself rather than mixing in a second pitch-shifted voice.
A time-varying delay is a disguised frequency shift: the instantaneous pitch shift is proportional to dτ/dt, the rate of change of delay time — which is exactly why modulating delay time, not mixing pitched copies, is how real chorus circuits work too.
V3207CoolAudio$5.35
same BBD family as Comb, clocked by a VCO instead of a fixed oscillator so the LFO modulates clock rate — the classic analog-chorus circuit (Boss CE-1/CE-2 lineage) built from exactly this part family
A real ConvolverNode, but against a synthesized impulse response rather than a room recording: filtered noise shaped by an exponential decay envelope, regenerated whenever size moves, then convolved against the input.
Direct convolution against an exponentially-decaying noise impulse response — the mathematically "correct" way to simulate a space, at the cost of no closed-form circuit that performs a true convolution.
FV-1Spin Semiconductor≈$5.50
a complete stereo reverb DSP with its own ADC/DAC on one chip — not literal block convolution, but the closest real, affordable hardware gets to the same perceptual result
Output isn't one more patchable unit — its compressor and hard-clip stage are always in the signal path, and Gate and Kill live inline inside it rather than as separate nodes, so nothing can route around them.
A sawtooth run through a threshold WaveShaper becomes a variable-duty pulse; scaled to ±0.5 and summed onto the master GainNode's own gain AudioParam (base 1 when off, 0.5 when engaged), it swings the entire mix between silent and full on every cycle.
Amplitude modulation by a rectangular wave of adjustable duty cycle — mute and unmute, at audio or sub-audio rate, literally rendered as a square wave.
CD4066BTexas Instruments≈$0.70
bilateral switch chopping the master bus, PWM-driven by the control MCU for variable duty cycle
A single GainNode held at 1, ramped to 0 in ~3ms on pointerdown or a held key, and back to 1 on release — momentary, not toggled, the same gesture as a hand on a mixer's mute button.
A binary gate identical in form to Gate's g(t), just driven by a person's hand instead of an oscillator.
small N-ch MOSFETdiscrete≈$0.50
shunts the master bus to ground while a footswitch is held — about as close to "one transistor" as any function on this board gets
A DynamicsCompressorNode as a limiter, a GainNode ceiling for the volume knob, and a fixed hard-clip WaveShaper as a safety net against feedback-loop overload — always active, not something a footswitch can bypass.
Master gain G followed by a fixed clamp — the same clipping family as Drive's tanh, but hard-edged and non-adjustable, a safety rail rather than a character control.
LM13700Texas Instruments$1.70
OTA-based master VCA under the volume control voltage
TPS7A4701 / TPS7A3301Texas Instruments≈$4.70
precision low-noise ±12V regulators — clean rails for every OTA and BBD on the board