@vessel-dsp/compiler 0.8.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/compile.d.ts.map +1 -1
  2. package/dist/compile.js +46 -0
  3. package/dist/compile.js.map +1 -1
  4. package/dist/device-laws.d.ts +20 -0
  5. package/dist/device-laws.d.ts.map +1 -1
  6. package/dist/device-laws.js +185 -17
  7. package/dist/device-laws.js.map +1 -1
  8. package/dist/diagnostics.d.ts +1 -1
  9. package/dist/diagnostics.d.ts.map +1 -1
  10. package/dist/diagnostics.js +1 -1
  11. package/dist/diagnostics.js.map +1 -1
  12. package/dist/fixtures/circuits.d.ts +87 -4
  13. package/dist/fixtures/circuits.d.ts.map +1 -1
  14. package/dist/fixtures/circuits.js +397 -4
  15. package/dist/fixtures/circuits.js.map +1 -1
  16. package/dist/fixtures/expected.d.ts +10 -0
  17. package/dist/fixtures/expected.d.ts.map +1 -1
  18. package/dist/fixtures/expected.js +48 -0
  19. package/dist/fixtures/expected.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/latch-seed.d.ts +76 -14
  25. package/dist/latch-seed.d.ts.map +1 -1
  26. package/dist/latch-seed.js +184 -41
  27. package/dist/latch-seed.js.map +1 -1
  28. package/dist/lower.d.ts.map +1 -1
  29. package/dist/lower.js +90 -14
  30. package/dist/lower.js.map +1 -1
  31. package/dist/netlist.d.ts.map +1 -1
  32. package/dist/netlist.js +96 -3
  33. package/dist/netlist.js.map +1 -1
  34. package/dist/part-catalog.d.ts.map +1 -1
  35. package/dist/part-catalog.js +307 -41
  36. package/dist/part-catalog.js.map +1 -1
  37. package/dist/partition.d.ts.map +1 -1
  38. package/dist/partition.js +7 -4
  39. package/dist/partition.js.map +1 -1
  40. package/dist/stamp-partition.d.ts +6 -0
  41. package/dist/stamp-partition.d.ts.map +1 -1
  42. package/dist/stamp-partition.js +6 -0
  43. package/dist/stamp-partition.js.map +1 -1
  44. package/dist/types.d.ts +256 -5
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +1 -1
@@ -1476,11 +1476,11 @@ export declare const packagedOptocoupler: string;
1476
1476
  * placeholders and VTL5C2's own datasheet -- cited in the packet's own
1477
1477
  * `SelectedLaneLedCurrentToResistanceLaw` property (R@1mA=5.5k, R@10mA=800, R@40mA=200,
1478
1478
  * dark>=1M) -- was never fit to a law at all. `part-catalog.ts`'s dedicated VTL5C2 entry carries
1479
- * that fit now (`ldrPowerLawCoefficientOhms`/`ldrPowerLawExponent`); this fixture is what keeps it
1480
- * pinned, since nothing else in this suite exercises it.
1479
+ * those three anchors as a measured table now (`ldrTableCurrentAmps`/`ldrTableOhms`); this
1480
+ * fixture is what keeps it pinned, since nothing else in this suite exercises it.
1481
1481
  *
1482
1482
  * **Bias.** `R_LED` (7k2 from the 9 V rail) puts the LED within a few percent of the datasheet's
1483
- * 1 mA anchor -- close enough that a regression in the fit or an accidental fallback to the generic
1483
+ * 1 mA anchor -- close enough that a regression in the table or an accidental fallback to the generic
1484
1484
  * exponential moves the verdict, not so exact that the fixture is fragile to the diode law's own
1485
1485
  * rounding. `RLOAD` (10k from output to ground) turns the LDR into a divider so its resistance is
1486
1486
  * what decides the gain, rather than leaving `ldrA`/`ldrB` floating in series with nothing to load
@@ -1488,7 +1488,7 @@ export declare const packagedOptocoupler: string;
1488
1488
  *
1489
1489
  * **What this proves and what it cannot** -- same limit `emitOptocoupler`'s own comment states for
1490
1490
  * every optocoupler resident: the from-source deck's LDR side is a `B`-source that *restates* the
1491
- * runtime's own formula (now the power law, when the device carries one) rather than deriving it
1491
+ * runtime's own formula (now the table, when the device carries one) rather than deriving it
1492
1492
  * independently, so ngspice cannot catch an error shared between the restatement and the runtime.
1493
1493
  * What it grades independently is the pin mapping, the part-specific `ldrMinOhms`/`ldrMaxOhms`
1494
1494
  * clamp, and -- because `source-to-spice.ts` reads the law fields off the same compiled program,
@@ -1674,6 +1674,31 @@ export declare const bufferedMechanicalDpdt: string;
1674
1674
  * requirements `findBistableLatches` states, so this is derived `buffered` by the latch.
1675
1675
  */
1676
1676
  export declare const flipFlopBypassLatched: string;
1677
+ /**
1678
+ * Flip-flop with a control in exactly one gated path, so the engaged side derives
1679
+ * from connectivity rather than the fallback: `Q_FF1`'s collector steers the effect
1680
+ * FET (`Q_GATE_FX`), whose drain reaches the `Drive` pot one resistor away, while
1681
+ * `Q_FF2`'s dry FET (`Q_GATE_DRY`) reaches nothing any control varies. The latch is
1682
+ * therefore `connectivity`-provenance with `Q_FF1` off when engaged and `Q_FF2` on,
1683
+ * which is what the polarity test in `latch-seed.test.ts` asserts through the seed
1684
+ * and the steering stamps of a compiled program. The `Drive` wiper is loaded by
1685
+ * `R_WIPER` because a floating wiper is a structural refusal, not a test detail.
1686
+ */
1687
+ export declare const flipFlopEngagedPolarity: string;
1688
+ /**
1689
+ * Flip-flop nobody can read out (no control in either gated path, so the side
1690
+ * falls back) with a CHECK LED whose cathode sits directly on `Q_FF2`'s collector.
1691
+ * The LED resolves the side the derivation cannot: provenance `effect-status-led`,
1692
+ * `Q_FF2` ON when engaged, seed on base 24 rather than the fallback's 23.
1693
+ */
1694
+ export declare const flipFlopLedSeed: string;
1695
+ /**
1696
+ * `flipFlopEngagedPolarity` with a CHECK LED whose cathode sits directly on the
1697
+ * *gating* member's collector (`Q_FF1`): connectivity holds `Q_FF2` ON when engaged
1698
+ * while the LED indicates `Q_FF1`. The detector keeps the connectivity answer and
1699
+ * raises `latch-engaged-disagrees` naming both — never a silent choice.
1700
+ */
1701
+ export declare const flipFlopLedDisagrees: string;
1677
1702
  /**
1678
1703
  * The same JFET gates driven by two BJTs that are **not** cross-coupled (an inverter chain), so
1679
1704
  * the latch detector finds nothing and the `buffered` verdict rests on the JFET-plus-BJTs
@@ -1749,6 +1774,64 @@ export declare const pt2399ClockDerivedDelay: string;
1749
1774
  * whole tremolo depends on.
1750
1775
  */
1751
1776
  export declare const linearVcaCell: (controlVolts: number, comVolts?: number) => string;
1777
+ /**
1778
+ * Synthetic stand-in for the CS-3 VCA stage: bare-pin uPC1252H2 in strict datasheet pin
1779
+ * order (the CS-3 `IC3` shell's own spelling: `pin1`..`pin8` with `role: pin`, so every
1780
+ * terminal folds to a null role token and the entry binds positionally). Input jack 1
1781
+ * through Rin 14.2k into the VCA input (node 3, ground-referenced current input),
1782
+ * VCA output (node 4) into Ro 14.3k to ground, both GC pins on the DC control node
1783
+ * (node 5, CS-3 node 70's role), ref/GND/ISET/Vc on ground (node 0).
1784
+ *
1785
+ * Rin is 14.2k rather than the pedal's R9 10k so the cell's input current per source
1786
+ * volt matches the pedal's engine-measured 0.7x buffer loss (0.7/10k = 1/14.3k), and
1787
+ * Ro is 14.3k (= Rin + 100) so the input divider times the input impedance times the
1788
+ * load is exactly unity: renders read the law's own voltage gain, and session
1789
+ * comparisons read the law rather than either divider. The law reads the smoothed
1790
+ * SUSTAIN-coupled rest plus the smoothed log-domain envelope (attack 0.5 ms /
1791
+ * release 50 ms with depth-varying release), so one static-control program serves
1792
+ * the transfer proofs below: sweep the DC control for the external path, sweep the
1793
+ * input amplitude for the internal path, and pin control at the pedal's GC rest
1794
+ * offsets to reproduce the re-traced CS-3's operating conditions per SUSTAIN setting.
1795
+ */
1796
+ export declare const dbxVcaCell: (controlVolts: number) => string;
1797
+ /**
1798
+ * Pedal-program stand-in for the session-8 release work: the `dbxVcaCell` VCA
1799
+ * stage (same Rin/Ro transimpedance, loaded at LEVEL 1 by the full 50k LEVEL
1800
+ * track to an exact, hand-computed factor) with a SUSTAIN-coupled control
1801
+ * node and a LEVEL output divider, i.e. the law in its pedal biasing rather
1802
+ * than the bare cell. The control node is dialed to the engine-measured V70
1803
+ * for the SUSTAIN setting (4.6325 + sustainPos*0.0403 V, the rest span the v4
1804
+ * fit is joint against); the SUSTAIN-to-V70 divider itself lives in the
1805
+ * packet, the law reads its result. LEVEL is a linear 50k pot to ground
1806
+ * (wiper to the output jack); release tests run it at 1. Unlike the cell,
1807
+ * this program exercises the law end-to-end (control path plus output stage)
1808
+ * under the session-8 stimulus: history, gap, pip, probe.
1809
+ */
1810
+ export declare const dbxVcaPedalChain: (sustainPos: number, levelPos: number) => string;
1811
+ /**
1812
+ * The same VCA stage spelled the way `boss-lm-2`'s `IC1_UPC1252H2` spells it: every pin
1813
+ * carries a role suffix (`pin1_input` ... `pin8_output`), so each terminal folds to a
1814
+ * real role token and the entry binds by clean role bijection instead of positionally.
1815
+ * Same nodes and numbers as `dbxVcaCell`; the law and its transfer proof live there.
1816
+ */
1817
+ export declare const dbxVcaNamedCell: (controlVolts: number) => string;
1818
+ /**
1819
+ * Synthetic stand-in for the re-traced CS-3 detector/sustain buffer: bare-pin BA718 in
1820
+ * strict datasheet pin order (`pin1`..`pin9` with `role: pin`), channel A as a follower
1821
+ * buffering the input into channel B as a second follower driving the output jack. Both
1822
+ * followers run at mid-rail (the render drives 4.5 V +/- 0.05), inside the 9 V / ground
1823
+ * rails on pins 1+9 / pin 5. Compiling this fixture proves the 9-pin dual admission:
1824
+ * the entry must expand to two `ideal-opamp` sections (pins [3,2,1] and [5,6,7] in the
1825
+ * [+, -, out] order) instead of opening with registry-arity-mismatch.
1826
+ */
1827
+ export declare const ba718DualCell: () => string;
1828
+ /**
1829
+ * The older BA718 5-pin single-section capture: channel 1's five pins in declaration
1830
+ * order (VCC, OUT1, I1, IN1, VEE) as a follower buffering the input to the output jack.
1831
+ * The 9-pin dual entry must not shadow it: `identify` tells the two apart by arity, so
1832
+ * this still expands to exactly one `ideal-opamp` section.
1833
+ */
1834
+ export declare const ba718SingleCell: () => string;
1752
1835
  /**
1753
1836
  * Bypass-engagement contract: the switchedDivider graph (a shunt switch the signal routes
1754
1837
  * around, so the connectivity default is open/0) steered by control SW1, with audio.bypass
@@ -1 +1 @@
1
- {"version":3,"file":"circuits.d.ts","sourceRoot":"","sources":["../../src/fixtures/circuits.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,EAAE,IAAI,MAAM,KAAG,MAKjE,CAAC;AAgEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAgD3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,QA4BxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kBAAkB,QAgC9B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,QAIpC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,QAIzC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,QAI1C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,QAIhC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAiDpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAIjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,QAgDrB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,QAyCtB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,QA6CxC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAiErC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,QAoBxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAgBjC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAgEhC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,YAAY,QAyExB,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,UAAU,QAOtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAO7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAO5B,CAAC;AACF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAYnC,CAAC;AAGF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QA8E9B,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,QAStC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAgI3B,CAAC;AAoCF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,QA4BjC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,QAiD7B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,QAIpC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,QA4BlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QA6E3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAGxC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,mCAAmC,QAG/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4CAA4C,QAIvD,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,QAGzC,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,oCAAoC,QAGhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QA6E9B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,QAwH7B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,QA2OjC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,QA4OvC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,QAkH/B,CAAC;AAEF,0FAA0F;AAK1F,eAAO,MAAM,qBAAqB,QAQjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAkK9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAI/B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,QAiM3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAuM3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,QA6QlC,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAI1C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oCAAoC,QAkHhD,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,QAyH7B,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,QAI/B,CAAC;AAGF,8EAA8E;AAC9E,eAAO,MAAM,YAAY,QAgLxB,CAAC;AACF;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,QAuM1B,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,SAAS,QAgDrB,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,WAAW,QA0BvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,QA8E3B,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,SAAS,QAIrB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAIzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAyB3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QA8B9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAgDlC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QA4E5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAEA,CAAC;AAEvC,6CAA6C;AAC7C,eAAO,MAAM,SAAS,8CAA8C,CAAC;AAErE,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,QAG5B,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAG7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAsB5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,QAGpC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,QAwCvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QA0D3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,QAiE3B,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,QAG/B,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,QAgU7B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B,QAgExC,CAAC;AAqLF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAKhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,QAKhD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,QAwCvC,CAAC;AAEF;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,QA4BzC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,QAsBvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,QA+BnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAwCpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAc9B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAwC/B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,QAuBvB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,QAkHhC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,QA8G3B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,QAwC9B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,QAkKhC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,QAsTnC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAgC3B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,QAmDlC,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB,QAwN5B,CAAC;AAEF;;;;;;GAMG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,QAIvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,QAIxC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,QAIzC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,QAI3C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,QAI1C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,QA+CxC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,8BAA8B,QA2B1C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iCAAiC,QA4B7C,CAAC;AAiBF,eAAO,MAAM,uBAAuB,QAAkC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QAAgC,CAAC;AACnE,eAAO,MAAM,mBAAmB,QAA8B,CAAC;AAC/D,eAAO,MAAM,cAAc,QAAyB,CAAC;AACrD,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,QAAsB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAkC,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAA0B,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAA0B,CAAC;AAEtD,2EAA2E;AAK3E,eAAO,MAAM,WAAW,QAUvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAmC7B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,QAgF1B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAQ1B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,QA2F7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC,QAuB7C,CAAC;AAuBF,eAAO,MAAM,iBAAiB,QAQ7B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,QAoIlC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,QAoHrC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAkBpC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,QAI/B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,QA8I3B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,QAyC7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,QAgE9B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC,QAgK/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qCAAqC,QA8LjD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,QAoR1C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,QAoJ9C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,QA+I1C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,QAuB3C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QA2B1C,CAAC;AAGJ;;;;;;;;;GASG;AACH,eAAO,MAAM,gCAAgC,QAwI5C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QAuBzC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gCAAgC,QAuB5C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC,QAkG/C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,QAyGxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAyG3B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,QAsH5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,aAAa,QA2LzB,CAAC;AAoFF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,eAAe,QA6C3B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAIrC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,QA4G5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,QAoF5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,QAqIjC,CAAC;AAEF,eAAO,MAAM,gCAAgC,QAI5C,CAAC;AAEF,eAAO,MAAM,iCAAiC,QAI7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,4BAA4B,QAYxC,CAAC;AAEF,eAAO,MAAM,aAAa,QAoGzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAoG5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,QAoGzB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,QAoG5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QAwcpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qCAAqC,QAIjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAIpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QA2BpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mCAAmC,QAI/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oCAAoC,QAIhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oCAAoC,QAoHhD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,QAoLhC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,QA+GjC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,QA6I7B,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,QAQ/B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,QAsLjC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,QAqFzB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,QA8EvB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,QA2KhC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,QA8EhC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QAsG9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,mBAAmB,QAoJ/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,yBAAyB,QAyGrC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,iBAAiB,QA2K7B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,g7EAsI9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,iBAAiB,QA0R7B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,QA0R3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,gBAAgB,QAmG5B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,QAIpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,KAAG,MA+DzC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAiGpC,CAAC;AA8EF,+GAA+G;AAC/G,eAAO,MAAM,cAAc,QAI1B,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,YAAY,QAIxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAalC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAiBjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAgBnC,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,yBAAyB,QAIrC,CAAC;AAuBF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAS4E,CAAC;AAE1G,sFAAsF;AACtF,eAAO,MAAM,UAAU,QAGtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAmB5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QASjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAG5B,CAAC;AA4BF,eAAO,MAAM,oBAAoB,QAkCwE,CAAC;AAE1G;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,QAWlC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAwCnC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,GACzB,cAAc,MAAM,EACpB,iBAAY,KACV,MAkDF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAChC,SAAS,CAAC,GAAG,CAAC,EACd,qBAAmB,EACnB,4BAA0B,KACxB,MA4FF,CAAC"}
1
+ {"version":3,"file":"circuits.d.ts","sourceRoot":"","sources":["../../src/fixtures/circuits.ts"],"names":[],"mappings":"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"}
@@ -12231,11 +12231,11 @@ wires: []
12231
12231
  * placeholders and VTL5C2's own datasheet -- cited in the packet's own
12232
12232
  * `SelectedLaneLedCurrentToResistanceLaw` property (R@1mA=5.5k, R@10mA=800, R@40mA=200,
12233
12233
  * dark>=1M) -- was never fit to a law at all. `part-catalog.ts`'s dedicated VTL5C2 entry carries
12234
- * that fit now (`ldrPowerLawCoefficientOhms`/`ldrPowerLawExponent`); this fixture is what keeps it
12235
- * pinned, since nothing else in this suite exercises it.
12234
+ * those three anchors as a measured table now (`ldrTableCurrentAmps`/`ldrTableOhms`); this
12235
+ * fixture is what keeps it pinned, since nothing else in this suite exercises it.
12236
12236
  *
12237
12237
  * **Bias.** `R_LED` (7k2 from the 9 V rail) puts the LED within a few percent of the datasheet's
12238
- * 1 mA anchor -- close enough that a regression in the fit or an accidental fallback to the generic
12238
+ * 1 mA anchor -- close enough that a regression in the table or an accidental fallback to the generic
12239
12239
  * exponential moves the verdict, not so exact that the fixture is fragile to the diode law's own
12240
12240
  * rounding. `RLOAD` (10k from output to ground) turns the LDR into a divider so its resistance is
12241
12241
  * what decides the gain, rather than leaving `ldrA`/`ldrB` floating in series with nothing to load
@@ -12243,7 +12243,7 @@ wires: []
12243
12243
  *
12244
12244
  * **What this proves and what it cannot** -- same limit `emitOptocoupler`'s own comment states for
12245
12245
  * every optocoupler resident: the from-source deck's LDR side is a `B`-source that *restates* the
12246
- * runtime's own formula (now the power law, when the device carries one) rather than deriving it
12246
+ * runtime's own formula (now the table, when the device carries one) rather than deriving it
12247
12247
  * independently, so ngspice cannot catch an error shared between the restatement and the runtime.
12248
12248
  * What it grades independently is the pin mapping, the part-specific `ldrMinOhms`/`ldrMaxOhms`
12249
12249
  * clamp, and -- because `source-to-spice.ts` reads the law fields off the same compiled program,
@@ -13726,6 +13726,147 @@ export const flipFlopBypassLatched = bypassFixture("Flip-Flop Bypass Latched Fix
13726
13726
  jfet("Q_GATE_IN", 1, 25, 10) +
13727
13727
  jfet("Q_GATE_OUT", 11, 26, 2) +
13728
13728
  bypassCore(10, 11));
13729
+ /**
13730
+ * Flip-flop with a control in exactly one gated path, so the engaged side derives
13731
+ * from connectivity rather than the fallback: `Q_FF1`'s collector steers the effect
13732
+ * FET (`Q_GATE_FX`), whose drain reaches the `Drive` pot one resistor away, while
13733
+ * `Q_FF2`'s dry FET (`Q_GATE_DRY`) reaches nothing any control varies. The latch is
13734
+ * therefore `connectivity`-provenance with `Q_FF1` off when engaged and `Q_FF2` on,
13735
+ * which is what the polarity test in `latch-seed.test.ts` asserts through the seed
13736
+ * and the steering stamps of a compiled program. The `Drive` wiper is loaded by
13737
+ * `R_WIPER` because a floating wiper is a structural refusal, not a test detail.
13738
+ */
13739
+ export const flipFlopEngagedPolarity = `${header("Flip-Flop Engaged Polarity Fixture")}audio:
13740
+ input: JIN
13741
+ output: JOUT
13742
+ bypass:
13743
+ switch: SW1
13744
+ engagedPosition: 0
13745
+ deviceInterface:
13746
+ controls:
13747
+ - id: Bypass
13748
+ label: BYPASS
13749
+ kind: footswitch
13750
+ role: bypass
13751
+ - id: Drive
13752
+ label: DRIVE
13753
+ kind: knob
13754
+ role: drive
13755
+ components:
13756
+ ${jacks}${supply9(9) +
13757
+ resistor("R_C1", 9, 21, "10k") +
13758
+ resistor("R_C2", 9, 22, "10k") +
13759
+ bjt("Q_FF1", 21, 23, 0) +
13760
+ bjt("Q_FF2", 22, 24, 0) +
13761
+ resistor("R_X1", 21, 24, "47k") +
13762
+ resistor("R_X2", 22, 23, "47k") +
13763
+ momentaryToGround("SW1", 30) +
13764
+ capacitor("C_SW", 30, 23, "1u") +
13765
+ resistor("R_G1", 21, 25, "1meg") +
13766
+ resistor("R_G2", 22, 26, "1meg") +
13767
+ jfet("Q_GATE_FX", 1, 25, 10) +
13768
+ jfet("Q_GATE_DRY", 11, 26, 2) +
13769
+ resistor("R_FX1", 1, 41, "1k") +
13770
+ part("VR_FX", "potentiometer", "Circuit.Potentiometer", [
13771
+ ["end1", "end", 41],
13772
+ ["wiper", "wiper", 40],
13773
+ ["end2", "end", 0],
13774
+ ], { Resistance: "10k", ControlId: "Drive" }) +
13775
+ resistor("R_WIPER", 40, 2, "100k") +
13776
+ bypassCore(10, 11)}`;
13777
+ /**
13778
+ * Flip-flop nobody can read out (no control in either gated path, so the side
13779
+ * falls back) with a CHECK LED whose cathode sits directly on `Q_FF2`'s collector.
13780
+ * The LED resolves the side the derivation cannot: provenance `effect-status-led`,
13781
+ * `Q_FF2` ON when engaged, seed on base 24 rather than the fallback's 23.
13782
+ */
13783
+ export const flipFlopLedSeed = `${header("Flip-Flop LED Seed Fixture")}audio:
13784
+ input: JIN
13785
+ output: JOUT
13786
+ bypass:
13787
+ switch: SW1
13788
+ engagedPosition: 0
13789
+ deviceInterface:
13790
+ controls:
13791
+ - id: Bypass
13792
+ label: BYPASS
13793
+ kind: footswitch
13794
+ role: bypass
13795
+ - id: D_LED
13796
+ label: CHECK
13797
+ kind: led
13798
+ role: effect-status
13799
+ components:
13800
+ ${jacks}${supply9(9) +
13801
+ resistor("R_C1", 9, 21, "10k") +
13802
+ resistor("R_C2", 9, 22, "10k") +
13803
+ bjt("Q_FF1", 21, 23, 0) +
13804
+ bjt("Q_FF2", 22, 24, 0) +
13805
+ resistor("R_X1", 21, 24, "47k") +
13806
+ resistor("R_X2", 22, 23, "47k") +
13807
+ momentaryToGround("SW1", 30) +
13808
+ capacitor("C_SW", 30, 23, "1u") +
13809
+ resistor("R_G1", 21, 25, "1meg") +
13810
+ resistor("R_G2", 22, 26, "1meg") +
13811
+ jfet("Q_GATE_FX", 1, 25, 10) +
13812
+ jfet("Q_GATE_DRY", 11, 26, 2) +
13813
+ part("D_LED", "led", "Circuit.LED", [
13814
+ ["anode", "anode", 9],
13815
+ ["cathode", "cathode", 22],
13816
+ ], { Color: "red" }) +
13817
+ bypassCore(10, 11)}`;
13818
+ /**
13819
+ * `flipFlopEngagedPolarity` with a CHECK LED whose cathode sits directly on the
13820
+ * *gating* member's collector (`Q_FF1`): connectivity holds `Q_FF2` ON when engaged
13821
+ * while the LED indicates `Q_FF1`. The detector keeps the connectivity answer and
13822
+ * raises `latch-engaged-disagrees` naming both — never a silent choice.
13823
+ */
13824
+ export const flipFlopLedDisagrees = `${header("Flip-Flop LED Disagrees Fixture")}audio:
13825
+ input: JIN
13826
+ output: JOUT
13827
+ bypass:
13828
+ switch: SW1
13829
+ engagedPosition: 0
13830
+ deviceInterface:
13831
+ controls:
13832
+ - id: Bypass
13833
+ label: BYPASS
13834
+ kind: footswitch
13835
+ role: bypass
13836
+ - id: Drive
13837
+ label: DRIVE
13838
+ kind: knob
13839
+ role: drive
13840
+ - id: D_LED
13841
+ label: CHECK
13842
+ kind: led
13843
+ role: effect-status
13844
+ components:
13845
+ ${jacks}${supply9(9) +
13846
+ resistor("R_C1", 9, 21, "10k") +
13847
+ resistor("R_C2", 9, 22, "10k") +
13848
+ bjt("Q_FF1", 21, 23, 0) +
13849
+ bjt("Q_FF2", 22, 24, 0) +
13850
+ resistor("R_X1", 21, 24, "47k") +
13851
+ resistor("R_X2", 22, 23, "47k") +
13852
+ momentaryToGround("SW1", 30) +
13853
+ capacitor("C_SW", 30, 23, "1u") +
13854
+ resistor("R_G1", 21, 25, "1meg") +
13855
+ resistor("R_G2", 22, 26, "1meg") +
13856
+ jfet("Q_GATE_FX", 1, 25, 10) +
13857
+ jfet("Q_GATE_DRY", 11, 26, 2) +
13858
+ resistor("R_FX1", 1, 41, "1k") +
13859
+ part("VR_FX", "potentiometer", "Circuit.Potentiometer", [
13860
+ ["end1", "end", 41],
13861
+ ["wiper", "wiper", 40],
13862
+ ["end2", "end", 0],
13863
+ ], { Resistance: "10k", ControlId: "Drive" }) +
13864
+ resistor("R_WIPER", 40, 2, "100k") +
13865
+ part("D_LED", "led", "Circuit.LED", [
13866
+ ["anode", "anode", 9],
13867
+ ["cathode", "cathode", 21],
13868
+ ], { Color: "red" }) +
13869
+ bypassCore(10, 11)}`;
13729
13870
  /**
13730
13871
  * The same JFET gates driven by two BJTs that are **not** cross-coupled (an inverter chain), so
13731
13872
  * the latch detector finds nothing and the `buffered` verdict rests on the JFET-plus-BJTs
@@ -13994,6 +14135,258 @@ export const linearVcaCell = (controlVolts, comVolts = 0) => {
13994
14135
  part("VCTRL", "voltage-source", "Circuit.VoltageSource", [["plus", "positive", 5], ["minus", "negative", com]], { Voltage: `${controlVolts}` }) +
13995
14136
  comSource);
13996
14137
  };
14138
+ /**
14139
+ * Synthetic stand-in for the CS-3 VCA stage: bare-pin uPC1252H2 in strict datasheet pin
14140
+ * order (the CS-3 `IC3` shell's own spelling: `pin1`..`pin8` with `role: pin`, so every
14141
+ * terminal folds to a null role token and the entry binds positionally). Input jack 1
14142
+ * through Rin 14.2k into the VCA input (node 3, ground-referenced current input),
14143
+ * VCA output (node 4) into Ro 14.3k to ground, both GC pins on the DC control node
14144
+ * (node 5, CS-3 node 70's role), ref/GND/ISET/Vc on ground (node 0).
14145
+ *
14146
+ * Rin is 14.2k rather than the pedal's R9 10k so the cell's input current per source
14147
+ * volt matches the pedal's engine-measured 0.7x buffer loss (0.7/10k = 1/14.3k), and
14148
+ * Ro is 14.3k (= Rin + 100) so the input divider times the input impedance times the
14149
+ * load is exactly unity: renders read the law's own voltage gain, and session
14150
+ * comparisons read the law rather than either divider. The law reads the smoothed
14151
+ * SUSTAIN-coupled rest plus the smoothed log-domain envelope (attack 0.5 ms /
14152
+ * release 50 ms with depth-varying release), so one static-control program serves
14153
+ * the transfer proofs below: sweep the DC control for the external path, sweep the
14154
+ * input amplitude for the internal path, and pin control at the pedal's GC rest
14155
+ * offsets to reproduce the re-traced CS-3's operating conditions per SUSTAIN setting.
14156
+ */
14157
+ export const dbxVcaCell = (controlVolts) => `${header("dbx VCA Cell")}components:
14158
+ - id: JIN
14159
+ kind: jack
14160
+ name: VCA_IN
14161
+ sourceTypeName: Circuit.Input
14162
+ origin:
14163
+ x: -200
14164
+ y: 0
14165
+ rotation: 0
14166
+ flipped: false
14167
+ terminals:
14168
+ - name: tip
14169
+ node: 1
14170
+ position:
14171
+ x: -200
14172
+ y: 0
14173
+ properties: {}
14174
+ - id: JOUT
14175
+ kind: jack
14176
+ name: VCA_OUT
14177
+ sourceTypeName: Circuit.Output
14178
+ origin:
14179
+ x: 200
14180
+ y: 0
14181
+ rotation: 0
14182
+ flipped: false
14183
+ terminals:
14184
+ - name: tip
14185
+ node: 4
14186
+ position:
14187
+ x: 200
14188
+ y: 0
14189
+ properties: {}
14190
+ ` +
14191
+ resistor("RIN", 1, 3, "14.2k") +
14192
+ resistor("RO", 4, 0, "14.3k") +
14193
+ part("U1", "ic", "Circuit.IC", [["pin1", "pin", 3], ["pin2", "pin", 5], ["pin3", "pin", 5], ["pin4", "pin", 0], ["pin5", "pin", 0], ["pin6", "pin", 0], ["pin7", "pin", 0], ["pin8", "pin", 4]], { PartNumber: "uPC1252H2" }) +
14194
+ part("VCTRL", "voltage-source", "Circuit.VoltageSource", [["plus", "positive", 5], ["minus", "negative", 0]], { Voltage: `${controlVolts}` });
14195
+ /**
14196
+ * Pedal-program stand-in for the session-8 release work: the `dbxVcaCell` VCA
14197
+ * stage (same Rin/Ro transimpedance, loaded at LEVEL 1 by the full 50k LEVEL
14198
+ * track to an exact, hand-computed factor) with a SUSTAIN-coupled control
14199
+ * node and a LEVEL output divider, i.e. the law in its pedal biasing rather
14200
+ * than the bare cell. The control node is dialed to the engine-measured V70
14201
+ * for the SUSTAIN setting (4.6325 + sustainPos*0.0403 V, the rest span the v4
14202
+ * fit is joint against); the SUSTAIN-to-V70 divider itself lives in the
14203
+ * packet, the law reads its result. LEVEL is a linear 50k pot to ground
14204
+ * (wiper to the output jack); release tests run it at 1. Unlike the cell,
14205
+ * this program exercises the law end-to-end (control path plus output stage)
14206
+ * under the session-8 stimulus: history, gap, pip, probe.
14207
+ */
14208
+ export const dbxVcaPedalChain = (sustainPos, levelPos) => {
14209
+ const controlVolts = 4.6325 + sustainPos * 0.0403;
14210
+ return (`${header("dbx VCA Pedal Chain")}deviceInterface:
14211
+ controls:
14212
+ - id: Level
14213
+ label: Level
14214
+ kind: knob
14215
+ role: output-level
14216
+ taper: linear
14217
+ components:
14218
+ - id: JIN
14219
+ kind: jack
14220
+ name: PEDAL_IN
14221
+ sourceTypeName: Circuit.Input
14222
+ origin:
14223
+ x: -200
14224
+ y: 0
14225
+ rotation: 0
14226
+ flipped: false
14227
+ terminals:
14228
+ - name: tip
14229
+ node: 1
14230
+ position:
14231
+ x: -200
14232
+ y: 0
14233
+ properties: {}
14234
+ - id: JOUT
14235
+ kind: jack
14236
+ name: PEDAL_OUT
14237
+ sourceTypeName: Circuit.Output
14238
+ origin:
14239
+ x: 200
14240
+ y: 0
14241
+ rotation: 0
14242
+ flipped: false
14243
+ terminals:
14244
+ - name: tip
14245
+ node: 2
14246
+ position:
14247
+ x: 200
14248
+ y: 0
14249
+ properties: {}
14250
+ ` +
14251
+ resistor("RIN", 1, 3, "14.2k") +
14252
+ resistor("RO", 4, 0, "14.3k") +
14253
+ part("U1", "ic", "Circuit.IC", [["pin1", "pin", 3], ["pin2", "pin", 5], ["pin3", "pin", 5], ["pin4", "pin", 0], ["pin5", "pin", 0], ["pin6", "pin", 0], ["pin7", "pin", 0], ["pin8", "pin", 4]], { PartNumber: "uPC1252H2" }) +
14254
+ part("VCTRL", "voltage-source", "Circuit.VoltageSource", [["plus", "positive", 5], ["minus", "negative", 0]], { Voltage: `${controlVolts}` }) +
14255
+ part("VRLEVEL", "potentiometer", "Circuit.Potentiometer", [["end1", "end", 4], ["wiper", "wiper", 2], ["end2", "end", 0]], { Resistance: "50k", ControlId: "Level", Wipe: `${levelPos}` }));
14256
+ };
14257
+ /**
14258
+ * The same VCA stage spelled the way `boss-lm-2`'s `IC1_UPC1252H2` spells it: every pin
14259
+ * carries a role suffix (`pin1_input` ... `pin8_output`), so each terminal folds to a
14260
+ * real role token and the entry binds by clean role bijection instead of positionally.
14261
+ * Same nodes and numbers as `dbxVcaCell`; the law and its transfer proof live there.
14262
+ */
14263
+ export const dbxVcaNamedCell = (controlVolts) => `${header("dbx VCA Named Cell")}components:
14264
+ - id: JIN
14265
+ kind: jack
14266
+ name: VCA_IN
14267
+ sourceTypeName: Circuit.Input
14268
+ origin:
14269
+ x: -200
14270
+ y: 0
14271
+ rotation: 0
14272
+ flipped: false
14273
+ terminals:
14274
+ - name: tip
14275
+ node: 1
14276
+ position:
14277
+ x: -200
14278
+ y: 0
14279
+ properties: {}
14280
+ - id: JOUT
14281
+ kind: jack
14282
+ name: VCA_OUT
14283
+ sourceTypeName: Circuit.Output
14284
+ origin:
14285
+ x: 200
14286
+ y: 0
14287
+ rotation: 0
14288
+ flipped: false
14289
+ terminals:
14290
+ - name: tip
14291
+ node: 4
14292
+ position:
14293
+ x: 200
14294
+ y: 0
14295
+ properties: {}
14296
+ ` +
14297
+ resistor("RIN", 1, 3, "14.2k") +
14298
+ resistor("RO", 4, 0, "14.3k") +
14299
+ part("U1", "ic", "Circuit.IC", [["pin1_input", "pin", 3], ["pin2_gc2", "pin", 5], ["pin3_gc1", "pin", 5], ["pin4_symmetry", "pin", 0], ["pin5_iset", "pin", 0], ["pin6_ground_reference", "pin", 0], ["pin7_vcc", "pin", 0], ["pin8_output", "pin", 4]], { PartNumber: "uPC1252H2" }) +
14300
+ part("VCTRL", "voltage-source", "Circuit.VoltageSource", [["plus", "positive", 5], ["minus", "negative", 0]], { Voltage: `${controlVolts}` });
14301
+ /**
14302
+ * Synthetic stand-in for the re-traced CS-3 detector/sustain buffer: bare-pin BA718 in
14303
+ * strict datasheet pin order (`pin1`..`pin9` with `role: pin`), channel A as a follower
14304
+ * buffering the input into channel B as a second follower driving the output jack. Both
14305
+ * followers run at mid-rail (the render drives 4.5 V +/- 0.05), inside the 9 V / ground
14306
+ * rails on pins 1+9 / pin 5. Compiling this fixture proves the 9-pin dual admission:
14307
+ * the entry must expand to two `ideal-opamp` sections (pins [3,2,1] and [5,6,7] in the
14308
+ * [+, -, out] order) instead of opening with registry-arity-mismatch.
14309
+ */
14310
+ export const ba718DualCell = () => `${header("BA718 Dual Cell")}components:
14311
+ - id: JIN
14312
+ kind: jack
14313
+ name: BUF_IN
14314
+ sourceTypeName: Circuit.Input
14315
+ origin:
14316
+ x: -200
14317
+ y: 0
14318
+ rotation: 0
14319
+ flipped: false
14320
+ terminals:
14321
+ - name: tip
14322
+ node: 1
14323
+ position:
14324
+ x: -200
14325
+ y: 0
14326
+ properties: {}
14327
+ - id: JOUT
14328
+ kind: jack
14329
+ name: BUF_OUT
14330
+ sourceTypeName: Circuit.Output
14331
+ origin:
14332
+ x: 200
14333
+ y: 0
14334
+ rotation: 0
14335
+ flipped: false
14336
+ terminals:
14337
+ - name: tip
14338
+ node: 5
14339
+ position:
14340
+ x: 200
14341
+ y: 0
14342
+ properties: {}
14343
+ ` +
14344
+ resistor("RIN", 1, 3, "10k") +
14345
+ part("U1", "ic", "Circuit.OpAmp", [["pin1", "pin", 6], ["pin2", "pin", 4], ["pin3", "pin", 4], ["pin4", "pin", 3], ["pin5", "pin", 0], ["pin6", "pin", 4], ["pin7", "pin", 5], ["pin8", "pin", 5], ["pin9", "pin", 6]], { PartNumber: "BA718" }) +
14346
+ part("V9", "voltage-source", "Circuit.VoltageSource", [["plus", "positive", 6], ["minus", "negative", 0]], { Voltage: "9" });
14347
+ /**
14348
+ * The older BA718 5-pin single-section capture: channel 1's five pins in declaration
14349
+ * order (VCC, OUT1, I1, IN1, VEE) as a follower buffering the input to the output jack.
14350
+ * The 9-pin dual entry must not shadow it: `identify` tells the two apart by arity, so
14351
+ * this still expands to exactly one `ideal-opamp` section.
14352
+ */
14353
+ export const ba718SingleCell = () => `${header("BA718 Single Cell")}components:
14354
+ - id: JIN
14355
+ kind: jack
14356
+ name: BUF_IN
14357
+ sourceTypeName: Circuit.Input
14358
+ origin:
14359
+ x: -200
14360
+ y: 0
14361
+ rotation: 0
14362
+ flipped: false
14363
+ terminals:
14364
+ - name: tip
14365
+ node: 1
14366
+ position:
14367
+ x: -200
14368
+ y: 0
14369
+ properties: {}
14370
+ - id: JOUT
14371
+ kind: jack
14372
+ name: BUF_OUT
14373
+ sourceTypeName: Circuit.Output
14374
+ origin:
14375
+ x: 200
14376
+ y: 0
14377
+ rotation: 0
14378
+ flipped: false
14379
+ terminals:
14380
+ - name: tip
14381
+ node: 5
14382
+ position:
14383
+ x: 200
14384
+ y: 0
14385
+ properties: {}
14386
+ ` +
14387
+ resistor("RIN", 1, 3, "10k") +
14388
+ part("U1", "ic", "Circuit.OpAmp", [["pin1", "pin", 6], ["pin2", "pin", 5], ["pin3", "pin", 5], ["pin4", "pin", 3], ["pin5", "pin", 0]], { PartNumber: "BA718" }) +
14389
+ part("V9", "voltage-source", "Circuit.VoltageSource", [["plus", "positive", 6], ["minus", "negative", 0]], { Voltage: "9" });
13997
14390
  /**
13998
14391
  * Bypass-engagement contract: the switchedDivider graph (a shunt switch the signal routes
13999
14392
  * around, so the connectivity default is open/0) steered by control SW1, with audio.bypass