@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.
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +46 -0
- package/dist/compile.js.map +1 -1
- package/dist/device-laws.d.ts +20 -0
- package/dist/device-laws.d.ts.map +1 -1
- package/dist/device-laws.js +185 -17
- package/dist/device-laws.js.map +1 -1
- package/dist/diagnostics.d.ts +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +1 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/fixtures/circuits.d.ts +87 -4
- package/dist/fixtures/circuits.d.ts.map +1 -1
- package/dist/fixtures/circuits.js +397 -4
- package/dist/fixtures/circuits.js.map +1 -1
- package/dist/fixtures/expected.d.ts +10 -0
- package/dist/fixtures/expected.d.ts.map +1 -1
- package/dist/fixtures/expected.js +48 -0
- package/dist/fixtures/expected.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/latch-seed.d.ts +76 -14
- package/dist/latch-seed.d.ts.map +1 -1
- package/dist/latch-seed.js +184 -41
- package/dist/latch-seed.js.map +1 -1
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +90 -14
- package/dist/lower.js.map +1 -1
- package/dist/netlist.d.ts.map +1 -1
- package/dist/netlist.js +96 -3
- package/dist/netlist.js.map +1 -1
- package/dist/part-catalog.d.ts.map +1 -1
- package/dist/part-catalog.js +307 -41
- package/dist/part-catalog.js.map +1 -1
- package/dist/partition.d.ts.map +1 -1
- package/dist/partition.js +7 -4
- package/dist/partition.js.map +1 -1
- package/dist/stamp-partition.d.ts +6 -0
- package/dist/stamp-partition.d.ts.map +1 -1
- package/dist/stamp-partition.js +6 -0
- package/dist/stamp-partition.js.map +1 -1
- package/dist/types.d.ts +256 -5
- package/dist/types.d.ts.map +1 -1
- 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
|
-
*
|
|
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
|
|
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
|
|
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":"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"}
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|