▲ 39 r/DSP

You can date a TR-808 from a recording by fitting the shape of its TONE knob

I am modelling a TR-808 from the service notes, stage by stage, and while doing the snare I ran into something I did not expect: two independent ways to tell which production revision a recording came from, one of which is just the response curve of a potentiometer.

Background. The 808 snare is two bridged-T resonators in parallel, one for he shell body and one an octave up, mixed by the TONE control, with the noise ("snappy") path summed in separately. Mid-production Roland changed four parts in that voice. The service notes list them as a PORTION CHANGED

annotation:

C58 .027 to .056

C61 .0068 to .015

R191 8.2k to 10k

R200 47k to zero

The caps are the obvious half. Only one cap of each bridged-T pair changes, so the frequency ratio is sqrt(27/56), not 27/56:

resonator 1: 249.63 Hz -> 173.34 Hz (-6.29 semitones)

resonator 2: 499.00 Hz -> 335.98 Hz (-6.85 semitones)

So an early 808 snare sits about a fifth higher, and because the two shifts differ slightly, the pair goes from an exact octave to a flat one. Q drops a little too (17.4 -> 16.3 and 10.7 -> 9.9), so the shell also rings around 35% longer after the change.

Now the part I thought was neat. R200 sits in series between an op-amp output and one end of the TONE pot. Since 47k is comparable to the pot's 100k, it is not a level trim: it changes the SHAPE of the crossfade law across the whole sweep. Deriving both cases:

R200 = 47k -> TONE spans 16.8 dB

R200 = 0 -> TONE spans 26.8 dB

The recordings I have span 26.4 dB measured. Fitting the derived law against ten measured amplitudes with a single common gain and nothing else fitted gives 1.16 dB mean error for R200 = 0 against 6.62 dB for 47k. That is a clean verdict, and it identifies the machine's revision without looking at the resonator frequencies at all. Then the frequencies agree independently: measured 172.0 and 339.5 Hz against derived 173.3 and 336.0 for the late version.

Two consequences that might be useful to others:

  1. A control law is a fingerprint. We normally treat pots as "the user's problem" and model them as a gain or a simple taper. But when a series resistance is comparable to the pot's own resistance, the law is a property of the circuit, it is measurable from audio, and it carries information the spectrum does not. I would not have thought to look if the two cap values had not sent me to check what else changed with them.

  2. Watch out for manuals describing a different machine than the one in front of you. Roland's own printed spec quotes 476/238 Hz for this voice, which is the early revision. Earlier in the same project I found their printed bass drum tuning (56 Hz, and 62.5 Hz in the prose) disagreeing with both my derivation from the component values and the hardware, which both land at 49.5. Component values have been right every time so far;

printed prose has been wrong twice.

Method note, since it is the part that actually matters: I derive each stage symbolically from the drawn component values, then measure real hardware recordings, and I only trust a number when the two agree. Where a published academic derivation of the same circuit exists I use it as a third reader, and that has caught mistakes in both directions, including three errata in the paper.

Disclosure: I make a drum machine plugin and this work goes into it. Not linking it, this is about the circuit.

reddit.com
u/BeatForge_Dev — 3 days ago
▲ 27 r/JUCE+3 crossposts

After a year of JUCE/C++: BeatForge — REX player + 808/909/303 engines, all DSP hand-written

Been heads-down on this for about a year and figured this crowd would appreciate the guts more than the marketing page.

BeatForge — drum machine, step sequencer and REX loop player. VST3/AU/AAX/Standalone, universal binary. JUCE 9 (migrated last month), everything below the framework is my own code.

Bits that might be interesting to people here:

REX SDK. Wrote a JUCE wrapper around Propellerhead REX SDK 1.9, including drag-and-drop of slices out to the host. Bitwig still has no REX support, which turned out to be a decent reason for the plugin to exist.

Synth engines. ~5k lines of 808/909/modelling done from schematics rather than sample playback — VCA topology, click transients, pitch sweeps, the 909 tom triple-VCO, that sort of rabbit hole.

Antialiasing. Started with blanket 8x oversampling and it was eating CPU for no good reason. Replaced it with ADAA on the memoryless waveshapers (exact tanh with the ln(cosh) antiderivative) and linear-phase minBLEP saws at 1x, then a per-engine oversampling map — most engines run 1x now, only FMKick and the 909 snare need 4x. Built an offline FFT alias-measurement harness to verify it; alias floor sits around -90 dB. Worth noting ADAA-2 blew up on me under heavy drive — catastrophic cancellation, auto-mute and crackle — so everything is bounded ADAA-1.

Realtime discipline. Lock-free atomic slot for deferred time-stretch, ScopedAudioSuspend guards on live mutators, steal-quietest voice allocation. Debug assertions went from ~3150 to 3. auval and pluginval at strictness 10 both clean.

Also. Full undo/redo, NAM master-bus saturation, and a WASM build of the synth engines for the site via Emscripten and a hand-rolled juce_shim.h.

Happy to go into detail on any of it — the ADAA and REX wrapper work especially, since there's not much written about either.

Site + demo: https://www.beatforge.nl

u/BeatForge_Dev — 11 days ago
▲ 23 r/DrumMachine+1 crossposts

Behringer TD-3-MO , Mosky SuperRat Distortion

Some more more TD3 fun, this time I recorded the TD-3-MO thru a Mosky SuperRat (Proco Rat distortion pedal clone) Drums are BeatForge (all synth, no samples) . Added a doubler on the TD-3-MO from Neural Dsp Nolly, and some reverb. Izotope Ozone on the masterbus . What's your favourite distortion to use with the td3 or other 303 clones ?

u/BeatForge_Dev — 2 months ago

Just got the TD-3-MO

it's awesome, of course had to do the Blade theme with it, ran it thru the Audiority Heavy pedal distortion pedal plugin, and this is the result . I recorded it twice and panned left right for some stereo width. Drums are BeatForge (no samples, all synth)

u/BeatForge_Dev — 2 months ago

just got a behringer TD-3-MO

it's awesome, of course had to do the blade theme with it, ran it thru the Audiority Heavy pedal distortion pedal plugin, and this is the result . I recorded it twice and panned left right for some stereo width. Drums are BeatForge

Behringer TD-3-MO blade theme

reddit.com
u/BeatForge_Dev — 2 months ago

Is resoling even worth it ?

With all of my older redwings, the leather insole cracks and becomes uneven way before the soles are worn out, as far as I know the insoles cant be replaced ?

reddit.com
u/BeatForge_Dev — 3 months ago