Contents

<!– Generated by hand for SushiDSP phase D6a. –>

jcm_fmv

JCM800 2203 FMV tone stack, unloaded.

Status: simulated. jcm_fmv_ac.csv and jcm_fmv_tran.csv are committed and were regenerated on 2026-09-06 from the corrected netlist below.

LTspice version: FileVersion 26.0.2.1, ProductVersion 26.0.1.1.

How the schematic is written

jcm_fmv.asc carries the whole circuit as SPICE directive text on the sheet rather than as placed symbols with wires. Directive lines are netlisted verbatim by LTspice, so node names are explicit and the netlist cannot depend on symbol pin geometry that could not be checked without running the tool.

Analyses

Both analysis lines live on the sheet as comments and tools/spice/export.py enables exactly one of them per run:

  • ;ac dec 40 10 20k
  • ;tran 0 40m 20m 1u (40 ms run, the last 20 ms saved as steady state)

.options plotwinsize=0 keeps the raw file uncompressed.

Probe and stimulus

  • Probed node: out (the treble-pot wiper, i.e. the stack’s output).
  • Input node: in
  • Source: V1 in 0 SINE(0 {AMP} 1k) AC 1
  • Input level(s): AMP = 1 V fixed. The stack is passive, so the level only scales the result.

Stepped control

.step param MID list 0.1 0.5 0.9

MID is stepped because the ~-10 dB mid scoop is D6d’s acceptance criterion for this block; BASS and TREBLE are held at 0.5. The other two sweeps are produced by editing the .step line to name BASS or TREBLE.

Components

Ref Value Nodes Spec reference
V1 SINE(0 {AMP} 1k) AC 1 in - 0 D6d block 4 stimulus
C1 470 pF in - t1 D6d block 4: 470 pF treble cap
Rtreb_a {220k*(1-TREBLE)} t1 - out 220 kΩ treble pot, upper section
Rtreb_b {220k*TREBLE} out - b1 220 kΩ treble pot, lower section
R1 33 kΩ in - n2 D6d block 4: 33 kΩ slope resistor
C2 22 nF n2 - b1 D6d block 4: 22 nF bass cap
Rbass {1Meg*BASS} b1 - n4 1 MΩ bass pot as a rheostat
C3 22 nF n2 - n4 D6d block 4: 22 nF mid cap
Rmid {25k*MID} n4 - 0 25 kΩ mid pot as a rheostat

Judgment calls and open questions

  • The treble pot’s return node was wrong until 2026-09-06. Rtreb_b ran from the wiper to n2, the slope-resistor node. That left a purely resistive path from in through R1 and the treble pot to the probe, so the stack passed DC and the sweep read -1.37 dB at 10 Hz where an FMV stack reads zero. Rtreb_b now returns to b1, the far side of the bass cap and the top of the bass pot, which is where an FMV stack puts it. The values were always D6d’s verbatim (33 kΩ, 470 pF, 22 nF, 22 nF, 220 kΩ / 1 MΩ / 25 kΩ pots); only the connectivity changed.
  • The 1 MΩ master volume was removed on the same date. It sat across the probe and cost a flat 1.14 dB, which the FmvToneStack closed form does not model. The deck now measures the unloaded stack; the master volume’s loading is a recorded simplification, and reinstating it means adding a load term to FmvComponents.
  • The stack is driven from an ideal source. In the amp it is driven by the cathode follower (jcm_cf), whose output impedance is low but not zero; the two blocks are deliberately measured separately so the null test isolates each one.
  • The mid pot is a rheostat, so its top node is its wiper. FmvToneStack used to carry Yeh & Smith’s closed form, which taps the mid cap at the wiper of a three-terminal pot, and that cost up to 0.13 dB at MID = 0.1. DA2 rederived the coefficients from this netlist, so the model and the deck now describe the same circuit and the residual against the sweep is 0.014 dB at MID 0.1, 0.005 dB at 0.5 and 0.003 dB at 0.9.