RING MODULATOR — signal-flow flowchart
RING MODULATOR — signal-flow flowchart
Image rep algo 54 · slots 54 · unit 0 (I-RAM load 84) · family am · confidence high.
ring modulator: audio-rate quadrature AM
46 words, 6 class-A coefficient multiplies (0 named), 0 instructions still opaque, 15 of 46 not yet decoded. Landmarks detected: 2 LFO phase word(s), 1 DRAM read/write word(s), 2 waveshaper LUT selector(s).
flowchart TD
N0["Stereo input (L / R)"]
N1["LFO phase accumulator<br/>phase += f/44100 (Q0.23), wrap at 0x7FFFFF<br/>+ waveform lookup (LUT)"]
N0 --> N1
N2["controls: PHASE, LFO WAVEFORM"]
N1 -.-> N2
N3["VOLUME<br/>output level"]
N1 --> N3
N4["REV SEND<br/>to reverb bus"]
N3 --> N4
N5["Output (RETURN to kernel epilogue)"]
N4 --> N5
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,N5 io;
class N1 measured;
class N2,N3,N4 ctrl;
Classic-topology match
Most likely textbook topology: Amplitude / carrier modulation (auto-pan L/R gain, ring-mod carrier×signal, vibrato).
An LFO or carrier multiplies the signal: auto-pan = LFO→L/R gains; ring-mod = table carrier × signal; vibrato = LFO→delay/pitch.
Instruction hint: the modulating multiply is a class-A MAC whose operand is the LFO/carrier cell; ring-mod adds a class-6 table (the carrier).
UI parameters (MEASURED, notes/kn5000-dsp-paramlist.md): OSC SPEED, PHASE, LFO WAVEFORM, VOLUME, REV SEND.
Per-instruction detail: ../disasm/prog54_ring_modulator.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/.