ROOM REVERB 1 — signal-flow flowchart
ROOM REVERB 1 — signal-flow flowchart
Image rep algo 16 · slots 16,17,18,19,20,21,22,23,24,25,26,27 · unit 1 (I-RAM load 200) · family reverb · confidence SOLVED.
reverb tank: all-pass diffuser ladders of 5 and 4 stages + damping (algorithm decoded to the bit; the per-word roles of the 6-word core are narrowed to two surviving assignments); the ONLY unit-1 image, shared by the 12 reverb presets algos 16-27
133 words, 33 class-A coefficient multiplies (33 named), 0 instructions still opaque, 9 of 133 not yet decoded. Landmarks detected: 4 C-format immediate load(s), 13 DRAM read/write word(s), 9 all-pass marker(s).
flowchart TD
N0["Stereo input (L / R)"]
N1["Input scaling triple<br/>C-RAM[0x90..92] = 0.250 0.500 0.500"]
N0 --> N1
N2["Pre-delay + delay buffers (external DRAM)<br/>13 read/write word(s); lengths tiled in the param stream"]
N1 --> N2
N3["controls: REVERB TIME, PRE DELAY"]
N2 -.-> N3
N4["Damping one-pole filter #1<br/>C-RAM[0x93..95] (op 0x76)"]
N2 --> N4
N5["Diffuser ladder A — 5 all-pass<br/>C-RAM[0x98..9C] descending gains 0.75…0.40<br/>one-multiplier all-pass, software-pipelined"]
N4 --> N5
N6["REVERB TIME sets the ladder gains"]
N5 -.-> N6
N7["Damping one-pole filter #2<br/>C-RAM[0x9E..A0] (op 0x76)"]
N5 --> N7
N8["Diffuser ladder B — 4 all-pass<br/>C-RAM[0xA1..A4] descending gains"]
N7 --> N8
N9["Damping one-pole filter #3<br/>C-RAM[0xA6..A8] (op 0x76)"]
N8 --> N9
N10["Stereo output tails L / R<br/>C-RAM[0xA9..B0] (op 0x66 / ER.LEVEL)"]
N9 --> N10
N11["controls: HIGH DAMP GAIN, ER.LEVEL, VOLUME"]
N10 -.-> N11
N12["Output (the only unit-1 image; shared by all 12 reverb presets)"]
N10 --> N12
classDef io fill:#e8eef7,stroke:#33475b,stroke-width:1px,color:#111;
classDef proven fill:#d7f0d7,stroke:#2e7d32,stroke-width:2px,color:#111;
classDef measured fill:#dbe9fb,stroke:#1565c0,stroke-width:1.5px,color:#111;
classDef inferred fill:#fdf0d5,stroke:#b8860b,stroke-width:1.5px,color:#111;
classDef open fill:#eeeeee,stroke:#888,stroke-width:1px,color:#333,stroke-dasharray:5 5;
classDef ctrl fill:#f3e8fb,stroke:#6a1b9a,stroke-width:1px,color:#111;
class N0,N12 io;
class N1,N4,N5,N7,N8,N9,N10 measured;
class N2 inferred;
class N3,N6,N11 ctrl;
Classic-topology match
Most likely textbook topology: All-pass diffuser ladder + comb (Schroeder/Moorer reverb tank).
A chain of all-pass sections (single coefficient/stage on the KN5000) over the external delay-DRAM — the most DRAM-heavy program; ER taps at 6000/12000/18000/24000 samples.
Instruction hint: the diffuser feed/feedback gains are class-A MACs on delay-read taps; the all-pass z⁻¹ updates are the bqp pair (ACT 0x0D/0x0E).
UI parameters (MEASURED, notes/kn5000-dsp-paramlist.md): REVERB TIME, PRE DELAY, HIGH DAMP GAIN, ER.LEVEL, VOLUME.
Per-instruction detail: ../disasm/prog16_room_reverb_1.dsm. Confidence legend and method: README.md. Narrative: the MAME development blog, KN5000 effects-DSP series (Parts 78-84). Reference: the project docs site, /effects-dsp/.