TR-909: analog drum voices and sampled metallic sounds
Keeping the 909 voice architecture separate from the 808 and from modern procedural approximations.
Technical research · edition 2 · reviewed 2026-10-24

Prismal Labs native editor capture, illustrating the corresponding software project. View full-size image
What we found
The 909 work exposed an architectural mismatch in generic drum models: its analog body/attack paths and its stored metallic waveforms need different treatment. Quantizing a synthesized metal source does not turn it into the missing original sample, and restarting noise at every hit changes the behavior of a shared running generator.
The useful result was a separation of body, attack and noise lifetimes, plus a clear evidence boundary for the sampled voices. We corrected the kick toward a reset rounded-triangle body with an independent VCA, while retaining the distinction between authored shaping and a component-calibrated circuit.
The hardware topology determines the model boundary
The service notes show two snare triangle VCOs with reset/pitch excitation, separate envelope paths, and filtered snappy branches. Bass, snare and toms share a continuously running noise generator built from two cascaded shift registers. Hi-hat, crash and ride use stored digital waveforms and separate envelope/control paths. The hi-hat path includes an antilog conversion; its address selection differs between open and closed triggering. Roland service notes, printed pp.5–6
The original owner's manual gives snare Tune/Tone/Snappy, tom Tune/Decay, hi-hat Decay and cymbal pitch adjustment. Extra wire-decay, impact, noise-filter and coupling controls in our products are not a stock 909 panel. The current Roland web specification says hi-hat Tune, while the original owner's manual describes Decay; prefer the original document and circuit for that mapping. Original owner's manual, Controls in the Sound Section, modern specification page
Do not relabel a six-sine metallic model as a sampled 909 merely by applying six-bit quantization. Original waveforms are an essential missing input. A procedural source can exercise clock/decoder/envelope architecture, but the result must retain its substitute label. Avoid guessing shift-register taps or clock rate from register length alone.
Evidence: research/drums/HARDWARE_REVIEW_V2.md.
What changed in the kick model
Primary source: Roland TR-909 service notes, June 15 1984, circuit descriptions and sheet 11 bass circuit (R909-SVC). The scan shows a reset oscillator, triangle shaping, multiple envelopes and separate pulse/noise attack routing. The new body is a rounded triangle with half-wave symmetry. Its VCA decay is independent of the attack envelope. Noise advances in the engine and is not reseeded by each hit.
The cubic rounding, attack mix and 0.33 ms pulse pole are authored behavioral approximations. They are not a fitted diode/transistor transfer or a verified complete component simulation. The engine noise is a deterministic white-noise surrogate; the service circuit's exact shift-register clock and tap sequence remain to be modeled. Original pitch/envelope ranges and board revisions still need controlled recordings. No hardware-null or listening-match pass is claimed.
Evidence: research/drums/808-909-SR16-IMPLEMENTATION.md.
Why separate attack and body controls matter
Roland's original owner manual gives the bass drum separate level, attack, decay and tune controls, and describes decay remaining effective when tuning changes. Roland also confirms that the 909 combines analog kick/snare/tom generation with sampled cymbals. Neither source supports treating its bass drum as a cymbal-style PCM voice. TR-909 owner manual, sound controls, Roland TR-909 overview
Design inference: maintain independent fundamental, pitch movement, body T60 and attack amount; add more upper-body energy than the 808-inspired mode. A harmonic body plus filtered transient is an economical approximation. Do not claim that it reproduces every hardware revision. Service-note prose often uses the snare as its worked example; its exact oscillator and envelope values should not be transferred blindly to the bass drum.
Evidence: Drums/KickGenerator/RESEARCH.md.
Control mapping findings
The original manual specifies Snare Tune/Tone/Snappy, Tom Tune/Decay, hi-hat Decay, and separate cymbal pitch controls. The cymbal paragraph calls that pitch axis Tone. Prefer that original document over modern software panels and the conflicting web specification's hi-hat Tune wording. Owner's manual, Controls in the Sound Section p.8
| Product / stock voice | Stock sound controls besides Level | Existing candidate IDs | Prior shaping axes (optional) | Current implementation requirement |
|---|---|---|---|---|
| Kick | Tune, Attack, Decay | 101 Tune, 106 Attack, 102 Decay | 126 Attack time and other shaping | No missing stock axis. Keep Attack time visibly marked as an extension even when it is convenient on the main panel. |
| Snare | Tune, Tone, Snappy | 126 Pitch; 129 Snappy after independent-noise correction | 127 Ring, 128 Wire decay, 130 Wire tone | Add 909 Tone with its actual circuit binding. Neither wire-decay-only nor noise-cutoff-only behavior alone establishes that mapping. Trace the schematic before defining its coupled branches. |
| Tom / low, mid, high | Tune and Decay for each voice | 129 Pitch, 130 Ring for one selected voice | 131 Strike, 132 Head coupling, 133 Bend | Add articulation plus independent tuning/decay storage for the three actual profiles. Keep MIDI selection separate from chromatic transposition. |
| Hi-hat / closed, open | Closed/Open Decay | 129 Open decay, 130 Closed decay are envelope-axis candidates | 131 Metal pitch, 132 Edge noise, 133 Sizzle | Add explicit articulation. Bind envelope controls to finite sample/envelope playback, not six synthesized sine partials. No stock hi-hat Tune claim. |
| Cymbal / crash, ride | Pitch for each voice | 129 Pitch expresses a pitch axis but currently tunes synthesized modes | 130 Ring, 131 Strike, 132 Sizzle, 133 Brightness | Add Crash/Ride selection and independent source-clock tuning for each source. Define the playback-clock range explicitly in the current schema. |
| Clap | None | Common output trim only | 125 Room decay, 126 Burst spacing, 127 Clap tone, 128 Attack | Distinct 909 clap profile; these four axes remain extensions. |
| Rim / rimshot | None | Common output trim only | 129 Pitch, 130 Ring, 131 Strike, 132 Overtone ratio, 133 Texture | Distinct 909 rimshot profile; no stock tuning claim. |
Original hi-hat/crash/ride waveforms remain missing. New source-clock controls can test a finite procedural source, but that source must remain visibly marked procedural. Quantization alone does not supply the original recordings.
Evidence: research/drums/MODEL_CONTROL_MIGRATION_PLAN.md.
Applying the findings
Structure a hybrid drum engine around source identity, source lifetime, excitation, amplitude control and reconstruction. Give each layer an explicit state-reset policy. A body oscillator may reset on a trigger while the machine noise source continues; a sampled cymbal instead needs a finite stored waveform and its own playback/envelope path.
For a behavioral prototype, keep the noise source running and vary excitation/envelopes independently. For a hardware reconstruction, replace that surrogate only when the shift-register taps, clock and output shaping are supported by evidence. Test repeated hits at several spacings to expose phase/noise reset differences, then compare sampled voices at their original playback rate before adding transposition.
Limits and open questions
The cubic triangle rounding, attack mix and 0.33 ms pole are authored approximations. The research did not establish the complete noise sequence or original digital waveforms. Modern web control lists can disagree with the original owner's manual; the hat Decay mapping follows the original document. No hardware-null or listening-match result is claimed.
Research illustrations

Prismal Labs native editor capture, illustrating the corresponding software project. View full-size image
Primary references
Research provenance
The methods and results above are drawn from these retained research records. Dates and product versions inside the article identify the scope of each experiment; publication review does not mean the hardware or numerical tests were rerun.
research/drums/HARDWARE_REVIEW_V2.md— SHA-2564b556e1ed4bedcd8d3649d781a7c1bd8fab0693939519ce27e387c11a0e60e42research/drums/808-909-SR16-IMPLEMENTATION.md— SHA-25603aaf74cf9e0b8a534e15b5dff0d27a4e52d4137a39ee44c2e4ef907fb606dcdDrums/KickGenerator/RESEARCH.md— SHA-256a7c3c9ddc146287920e2953bcec6ec0a967bab546843b8376d2370ed3668ca8eresearch/drums/MODEL_CONTROL_MIGRATION_PLAN.md— SHA-25679850a171c8ff6481addbaed4d6700c75821dc00427d755aa4dd333e09dd2af5
Related projects
KickGenerator · SnareGenerator · HiHatGenerator · TomGenerator · CymbalGenerator · ClapGenerator · RimGenerator
