Contents

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

jcm_ltp

JCM800 2203 long-tailed-pair phase inverter on its own, without the power stage or the feedback loop.

Status: simulated. Commit 2bdbf91 ran this block and committed its CSVs.

LTspice version: LTspice 24, the only detail 2bdbf91 records; the exact build is not recorded by that commit.

How the schematic is written

jcm_ltp.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. Tube subcircuits are instantiated as X lines against ../models/12ax7_koren.sub, whose pin order is P G K.

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 – a B-source computing V(pa) - V(pb) so the differential output is probed without loading the plates.
  • Input node: g1
  • Source: V1 g1 0 SINE(0 {AMP} 1k) AC 1
  • Input level(s): AMP is stepped over 10 mV, 100 mV and 1 V.

Stepped control

.step param AMP list 10m 100m 1

This block has no control, so the input level is stepped instead. setting 0/1/2 corresponds to 10 mV / 100 mV / 1 V.

Components

Ref Value Nodes Spec reference
V1 SINE(0 {AMP} 1k) AC 1 g1 - 0 D6d block 5 stimulus
XA 12AX7_KOREN P=pa G=g1 K=tail D6b.3 Triode12AX7
XB 12AX7_KOREN P=pb G=g2 K=tail D6b.3 Triode12AX7
Rpa 82 kΩ B - pa D6d block 5: 82 kΩ plate
Rpb 100 kΩ B - pb D6d block 5: 100 kΩ plate
Rg1 1 MΩ g1 - 0 D6d block 5: 1 MΩ grid reference
Rg2 1 MΩ g2 - 0 D6d block 5: 1 MΩ grid reference
Rtail_a 470 Ω tail - tj D6d block 5: 470 Ω tail
Rtail_b 10 kΩ tj - 0 D6d block 5: 10 kΩ tail
Bout V = V(pa) - V(pb) out - 0 differential probe
Vplate 360 V B - 0 B+ per the D6a brief

Judgment calls

  • tj, the junction of the 470 Ω and 10 kΩ tail resistors, is the node global NFB is injected into in jcm_pp_ot_nfb. Here it simply returns to ground through the 10 kΩ.
  • The pair self-biases: with both grid references at ground the cathodes float up to whatever the tail resistance and the tubes agree on. That is the real arrangement, so no negative tail supply is added.
  • Rg1 is redundant while V1 drives g1 directly, but it is kept so the netlist matches the amp and so the node is still referenced if the source is removed.

Note on the AC runs

AMP scales only the SINE(...) stimulus; the AC 1 magnitude is fixed. Stepping AMP therefore produces three identical AC sweeps (setting 0, 1 and 2) in <block>_ac.csv. Only the transient CSV carries three genuinely different runs. That is intentional: the acceptance criterion for this block is a transient null, and keeping one .step line for both analyses keeps the export path uniform.