@vessel-dsp/runtime 0.4.0 → 0.5.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/README.md +3 -3
- package/dist/reference-runtime.d.ts +26 -0
- package/dist/reference-runtime.d.ts.map +1 -1
- package/dist/reference-runtime.js +215 -24
- package/dist/reference-runtime.js.map +1 -1
- package/dist/v2-wasm-engine.d.ts +2 -1
- package/dist/v2-wasm-engine.d.ts.map +1 -1
- package/dist/v2-wasm-engine.js +2 -1
- package/dist/v2-wasm-engine.js.map +1 -1
- package/dist/wasm/v2_dsp.wasm +0 -0
- package/dist/worklet/v2-audio-worklet.js +99 -15
- package/package.json +2 -2
package/dist/v2-wasm-engine.d.ts
CHANGED
|
@@ -99,7 +99,8 @@ export declare class V2WasmEngine {
|
|
|
99
99
|
* `newtonStartHistory` decisions: `seedsUsed` counts standard-pass solves that started
|
|
100
100
|
* from an extrapolated solution (order > 0), `oneIterationSolves` those that converged in
|
|
101
101
|
* exactly one iteration -- the saving itself, attributable on the shipping console.
|
|
102
|
-
* Counted since `prepare()`/`reset()
|
|
102
|
+
* Counted since `prepare()`/`reset()`; both stay 0 at `oversample` 1, where the predictor
|
|
103
|
+
* does not run. `predictorOrder(blockIdx)` reads the order the
|
|
103
104
|
* block's next solve will seed from (0 = previous solution, 1 = linear, 2 = quadratic;
|
|
104
105
|
* -1 for a bad index), so a decision can be compared against the reference per sample.
|
|
105
106
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-wasm-engine.d.ts","sourceRoot":"","sources":["../src/v2-wasm-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK1D,wBAAsB,eAAe,iBAQpC;AAED,qBAAa,YAAY;IAExB,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD;;;;;OAKG;IACH,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO;IAKP;;;;;OAKG;WAEiB,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAaxE,OAAO,IAAI,IAAI;IAOf,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAiBnC,OAAO,CACb,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAChH,IAAI;IAmBP;;;;;OAKG;IACI,cAAc,IAAI,MAAM,GAAG,IAAI;IAKtC;;;;;OAKG;IACI,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAKlC,KAAK,IAAI,IAAI;IAIb,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQrD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAS5C;;;;;;OAMG;IACI,WAAW,IAAI,SAAS,UAAU,EAAE;IAmB3C;;;;;;;;;;;OAWG;IACI,SAAS,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA+FvF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIpC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAsB7D,qBAAqB,IAAI,MAAM;IAI/B,gBAAgB,IAAI,OAAO;IAI3B,gBAAgB,IAAI,MAAM;IAI1B,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI7D,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIzD,YAAY,IAAI,MAAM;IAK7B;;;;;;;;;;;;;;OAcG;IACH
|
|
1
|
+
{"version":3,"file":"v2-wasm-engine.d.ts","sourceRoot":"","sources":["../src/v2-wasm-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK1D,wBAAsB,eAAe,iBAQpC;AAED,qBAAa,YAAY;IAExB,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD;;;;;OAKG;IACH,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO;IAKP;;;;;OAKG;WAEiB,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAaxE,OAAO,IAAI,IAAI;IAOf,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAiBnC,OAAO,CACb,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAChH,IAAI;IAmBP;;;;;OAKG;IACI,cAAc,IAAI,MAAM,GAAG,IAAI;IAKtC;;;;;OAKG;IACI,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAKlC,KAAK,IAAI,IAAI;IAIb,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQrD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAS5C;;;;;;OAMG;IACI,WAAW,IAAI,SAAS,UAAU,EAAE;IAmB3C;;;;;;;;;;;OAWG;IACI,SAAS,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA+FvF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIpC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAsB7D,qBAAqB,IAAI,MAAM;IAI/B,gBAAgB,IAAI,OAAO;IAI3B,gBAAgB,IAAI,MAAM;IAI1B,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI7D,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIzD,YAAY,IAAI,MAAM;IAK7B;;;;;;;;;;;;;;OAcG;IACH;;;;;;;;;OASG;IACI,qBAAqB,IAAI;QAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,wGAAwG;QACxG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KACjC;IAQM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI3C,oBAAoB,IAAI;QAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAC/B;CAUD"}
|
package/dist/v2-wasm-engine.js
CHANGED
|
@@ -317,7 +317,8 @@ export class V2WasmEngine {
|
|
|
317
317
|
* `newtonStartHistory` decisions: `seedsUsed` counts standard-pass solves that started
|
|
318
318
|
* from an extrapolated solution (order > 0), `oneIterationSolves` those that converged in
|
|
319
319
|
* exactly one iteration -- the saving itself, attributable on the shipping console.
|
|
320
|
-
* Counted since `prepare()`/`reset()
|
|
320
|
+
* Counted since `prepare()`/`reset()`; both stay 0 at `oversample` 1, where the predictor
|
|
321
|
+
* does not run. `predictorOrder(blockIdx)` reads the order the
|
|
321
322
|
* block's next solve will seed from (0 = previous solution, 1 = linear, 2 = quadratic;
|
|
322
323
|
* -1 for a bad index), so a decision can be compared against the reference per sample.
|
|
323
324
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-wasm-engine.js","sourceRoot":"","sources":["../src/v2-wasm-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"v2-wasm-engine.js","sourceRoot":"","sources":["../src/v2-wasm-engine.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAG5D,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGlF,8DAA8D;AAC9D,IAAI,eAAe,GAAwB,IAAI,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,iEAAiE;QACjE,aAAa;QACb,MAAM,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,eAAe,GAAG,cAAc,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,MAAM,OAAO,YAAY;IACxB,8DAA8D;IACtD,GAAG,CAAM;IACjB,8DAA8D;IACtD,MAAM,CAAM;IACZ,KAAK,GAAW,CAAC,CAAC;IAClB,MAAM,GAAW,CAAC,CAAC;IACnB,gBAAgB,GAAW,CAAC,CAAC;IAC7B,iBAAiB,GAAW,CAAC,CAAC;IAC9B,cAAc,GAAwB,IAAI,CAAC;IAC3C,eAAe,GAAwB,IAAI,CAAC;IACpD;;;;;OAKG;IACK,OAAO,GAAmB,IAAI,CAAC;IAEvC,YAAoB,GAAQ,EAAE,MAAW;QACxC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,8DAA8D;IACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAiB,EAAE,GAAS;QACtD,GAAG,KAAK,MAAM,eAAe,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,OAAO;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAEM,WAAW,CAAC,OAAgB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,4CAA4C,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,6FAA6F;QAC7F,8FAA8F;QAC9F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IAC5C,CAAC;IAEM,OAAO,CACb,UAAgH,EAAE;QAElH,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;QACzC,iFAAiF;QACjF,iFAAiF;QACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;QAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACjD,qEAAqE;QACrE,iEAAiE;QACjE,sEAAsE;QACtE,oEAAoE;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,YAAY,CACrB,0DAA0D,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CACtF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACI,cAAc;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC;QAC9E,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACI,iBAAiB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC;QAChF,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACjC,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAEM,UAAU,CAAC,SAAiB,EAAE,QAAgB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEM,UAAU,CAAC,SAAiB;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;gBAAE,SAAS;YACnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,SAAS;gBACzC,KAAK,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;oBACvD,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CAAC,SAAmC,EAAE,KAAa,EAAE,UAAkB;QACtF,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,YAAY,CAAC,8BAA8B,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,YAAY,CAAC,gBAAgB,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,YAAY,CACrB,qBAAqB,MAAM,CAAC,UAAU,CAAC,0CAA0C,CACjF,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,KAAK,GACV,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;gBACpC,OAAO,CAAC,UAAU,IAAI,CAAC;gBACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;gBAC9C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,YAAY,CAAC,kCAAkC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC1B,MAAM,IAAI,YAAY,CACrB,0BAA0B,OAAO,CAAC,UAAU,MAAM,KAAK,CAAC,EAAE,wBAAwB,CAClF,CAAC;YACH,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;oBAC7E,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACP,CAAC;YACF,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,YAAY,CACrB,0BAA0B,OAAO,CAAC,UAAU,MAAM,KAAK,CAAC,EAAE,wCAAwC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAC/H,CAAC;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,KAAK,EAAE,IAAI,KAAK,KAAK;gBAAE,SAAS;YACpC,IAAI,cAAc,GAAG,IAAI,CAAC;YAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC5E,QAAQ,GAAG,IAAI,CAAC;oBAChB,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;wBAC9D,cAAc,GAAG,KAAK,CAAC;oBACxB,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,QAAQ,IAAI,cAAc;gBAAE,SAAS;YAC1C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,qBAEjB,CAAC;QACb,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,IAAI,YAAY,CAAC,oGAAoG,CAAC,CAAC;QAC9H,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAChG,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,YAAY,CACrB,0BAA0B,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,WAAW,gCAAgC,IAAI,GAAG,CACpH,CAAC;YACH,CAAC;YACD,qEAAqE;YACrE,sEAAsE;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;wBAC3E,KAA2B,CAAC,KAAK,GAAG,KAAK,CAAC;wBAC1C,KAAgC,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC3D,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAEM,aAAa,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,YAAY,CAAC,KAAmB,EAAE,MAAoB;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,qFAAqF;QACrF,qFAAqF;QACrF,6EAA6E;QAC7E,gFAAgF;QAChF,0DAA0D;QAC1D,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAqB,CAAC;QAC/D,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,KAAK,UAAU,EAAE,EAAE,CAAC;YACpF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxF,IAAI,CAAC,eAAe,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,CAAC,cAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,eAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,qBAAqB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAEM,qBAAqB,CAAC,QAAgB,EAAE,IAAY;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAEM,aAAa,CAAC,QAAgB,EAAE,QAAgB;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAEM,YAAY;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH;;;;;;;;;OASG;IACI,qBAAqB;QAM3B,OAAO;YACN,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/D,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7E,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC;SACtE,CAAC;IACH,CAAC;IAEM,iBAAiB,CAAC,QAAgB;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAEM,oBAAoB;QAQ1B,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5D,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC;YAClE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC;YAChE,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/E,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/E,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3E,CAAC;IACH,CAAC;CACD"}
|
package/dist/wasm/v2_dsp.wasm
CHANGED
|
Binary file
|
|
@@ -1339,7 +1339,10 @@ var OPAMP_FOLD_STREAK = 6;
|
|
|
1339
1339
|
function opAmpHalfSwing(railHigh, railLow) {
|
|
1340
1340
|
return Math.max((railHigh - railLow) / 2, 1e-9);
|
|
1341
1341
|
}
|
|
1342
|
-
var
|
|
1342
|
+
var OPAMP_DEFAULT_GAIN_BANDWIDTH_HZ = 1e6;
|
|
1343
|
+
function opAmpGainBandwidthHz(stamp) {
|
|
1344
|
+
return stamp.gainBandwidthHz ?? OPAMP_DEFAULT_GAIN_BANDWIDTH_HZ;
|
|
1345
|
+
}
|
|
1343
1346
|
var OPAMP_POLE_BAND = 8;
|
|
1344
1347
|
function boundOpAmpRaw(raw, halfSwing) {
|
|
1345
1348
|
const limit = OPAMP_POLE_BAND * halfSwing;
|
|
@@ -1850,6 +1853,8 @@ var ReferenceRuntime = class {
|
|
|
1850
1853
|
limiterTrace = typeof process !== "undefined" && process.env?.VESSEL_LIMITER_TRACE === "1";
|
|
1851
1854
|
limitedIterationCount = 0;
|
|
1852
1855
|
limitedIterationPerSample = [];
|
|
1856
|
+
/** Fold reseeds taken so far (diagnostic, read past `private` by the stall study's tracer). */
|
|
1857
|
+
foldReseedCount = 0;
|
|
1853
1858
|
/** Series ohms of whatever drives the input jack -- see `prepare()`'s option. */
|
|
1854
1859
|
inputSourceOhms = 0;
|
|
1855
1860
|
/**
|
|
@@ -1942,6 +1947,19 @@ var ReferenceRuntime = class {
|
|
|
1942
1947
|
* and the fold reseed (which reads the caller's `start`, the previous solution) are
|
|
1943
1948
|
* untouched, so what converges is still the circuit's equations at the shipped
|
|
1944
1949
|
* tolerances -- a different first iterate, the same fixed point.
|
|
1950
|
+
*
|
|
1951
|
+
* **It runs only when `prepare()` was given `oversample > 1`; at factor 1 (the default)
|
|
1952
|
+
* it neither seeds nor records, so the ring stays empty and the solve is the one runtime
|
|
1953
|
+
* 0.3.1 ran.** It shipped in 0.4.0 at every factor and was gated here in 0.4.1 because at
|
|
1954
|
+
* factor 1 it buys little and moves the output more than that saving is worth: iterations
|
|
1955
|
+
* fall 2.9 % across the pedal corpus and 10.1 % across the amps (1 kHz 0.1 V, cap 64),
|
|
1956
|
+
* against `boss-dm-2` moving 6.2 % of its cold-start peak (0.5-0.8 % of the settled peak)
|
|
1957
|
+
* and `boss-mt-2` stalling the WASM console permanently from 2.752 s of two-tone drive
|
|
1958
|
+
* (it does not stall with the predictor off). Above 1 it stays on for every factor, the
|
|
1959
|
+
* held path included (iterations on the profile packets: 2x -6..-15 %, 3x 0..-1 %, 4x
|
|
1960
|
+
* -39..-47 %, 5x/6x -8..-24 %, 8x -44..-50 %; output movement at most 6e-6 relative RMS).
|
|
1961
|
+
* The factor is fixed by `prepare()` (which also clears the ring), so there is no mid-run
|
|
1962
|
+
* switch to reason about.
|
|
1945
1963
|
*/
|
|
1946
1964
|
newtonStartHistory = /* @__PURE__ */ new Map();
|
|
1947
1965
|
blockNewtonCensus = /* @__PURE__ */ new Map();
|
|
@@ -3997,7 +4015,7 @@ var ReferenceRuntime = class {
|
|
|
3997
4015
|
const { matrix, rhs, solutionA, solutionB } = scratch;
|
|
3998
4016
|
const sparse = dc ? void 0 : this.sparseSchedules.get(block.id);
|
|
3999
4017
|
const blockIndex = this.blockIndexById.get(block.id) ?? 0;
|
|
4000
|
-
const predictorPass = !dc && sourceScale === 1 && gmin === GMIN_SIEMENS && !block.linear;
|
|
4018
|
+
const predictorPass = this.oversample > 1 && !dc && sourceScale === 1 && gmin === GMIN_SIEMENS && !block.linear;
|
|
4001
4019
|
const seed = (predictorPass ? this.predictedNewtonStart(block.id, size) : null) ?? start;
|
|
4002
4020
|
for (let index = 0; index < size; index += 1) {
|
|
4003
4021
|
solutionA[index] = seed[index] ?? 0;
|
|
@@ -4012,7 +4030,9 @@ var ReferenceRuntime = class {
|
|
|
4012
4030
|
let bestDelta = Number.POSITIVE_INFINITY;
|
|
4013
4031
|
let noImprovement = 0;
|
|
4014
4032
|
let foldStreak = 0;
|
|
4015
|
-
let
|
|
4033
|
+
let foldReseeds = 0;
|
|
4034
|
+
let lastWorstNode = -1;
|
|
4035
|
+
let lastWorstSign = 0;
|
|
4016
4036
|
for (let iteration = 0; iteration < iterations; iteration += 1) {
|
|
4017
4037
|
used = iteration + 1;
|
|
4018
4038
|
this.limitedIterate = false;
|
|
@@ -4140,6 +4160,12 @@ var ReferenceRuntime = class {
|
|
|
4140
4160
|
}
|
|
4141
4161
|
}
|
|
4142
4162
|
}
|
|
4163
|
+
const damping = dc ? 1 : this.opAmpStepDamping(block, blockIndex, current, next, dt, dc);
|
|
4164
|
+
if (damping < 1) {
|
|
4165
|
+
for (let i = 0; i < size; i++) {
|
|
4166
|
+
next[i] = current[i] + damping * (next[i] - current[i]);
|
|
4167
|
+
}
|
|
4168
|
+
}
|
|
4143
4169
|
if (relaxing) {
|
|
4144
4170
|
for (let i = 0; i < size; i++) {
|
|
4145
4171
|
next[i] = current[i] + alpha * (next[i] - current[i]);
|
|
@@ -4148,6 +4174,10 @@ var ReferenceRuntime = class {
|
|
|
4148
4174
|
const delta = maxAbsDifference(next, current);
|
|
4149
4175
|
worstNode = worstDifferenceIndex(next, current);
|
|
4150
4176
|
worstDelta = delta;
|
|
4177
|
+
const worstSign = Math.sign((next[worstNode] ?? 0) - (current[worstNode] ?? 0));
|
|
4178
|
+
const reversed = dc || worstNode === lastWorstNode && worstSign !== 0 && lastWorstSign !== 0 && worstSign !== lastWorstSign;
|
|
4179
|
+
lastWorstNode = worstNode;
|
|
4180
|
+
lastWorstSign = worstSign;
|
|
4151
4181
|
if (delta < bestDelta * 0.999) {
|
|
4152
4182
|
bestDelta = delta;
|
|
4153
4183
|
noImprovement = 0;
|
|
@@ -4160,7 +4190,7 @@ var ReferenceRuntime = class {
|
|
|
4160
4190
|
}
|
|
4161
4191
|
}
|
|
4162
4192
|
} else {
|
|
4163
|
-
noImprovement += 1;
|
|
4193
|
+
noImprovement += reversed ? 1 : 0;
|
|
4164
4194
|
if (!relaxing) {
|
|
4165
4195
|
if (noImprovement >= NEWTON_NON_CONTRACTING_LIMIT && iteration >= NEWTON_RELAXATION_EARLIEST_ITERATION) {
|
|
4166
4196
|
relaxing = true;
|
|
@@ -4191,13 +4221,15 @@ var ReferenceRuntime = class {
|
|
|
4191
4221
|
}
|
|
4192
4222
|
const limitedOpamp = this.limitedOpamp;
|
|
4193
4223
|
foldStreak = limitedOpamp?.folded === true ? foldStreak + 1 : 0;
|
|
4194
|
-
if (!dc &&
|
|
4195
|
-
|
|
4224
|
+
if (!dc && limitedOpamp !== null && foldStreak >= OPAMP_FOLD_STREAK) {
|
|
4225
|
+
foldReseeds += 1;
|
|
4226
|
+
this.foldReseedCount += 1;
|
|
4196
4227
|
foldStreak = 0;
|
|
4197
4228
|
const wasHigh = (start[limitedOpamp.output] ?? limitedOpamp.centre) >= limitedOpamp.centre;
|
|
4198
|
-
|
|
4229
|
+
const toHigh = foldReseeds % 2 === 1 ? wasHigh : !wasHigh;
|
|
4230
|
+
current[limitedOpamp.output] = toHigh ? limitedOpamp.railHigh : limitedOpamp.railLow;
|
|
4199
4231
|
this.opampHistory.set(limitedOpamp.key, {
|
|
4200
|
-
differential:
|
|
4232
|
+
differential: toHigh ? limitedOpamp.band : -limitedOpamp.band,
|
|
4201
4233
|
step: 0,
|
|
4202
4234
|
cap: limitedOpamp.maxStep
|
|
4203
4235
|
});
|
|
@@ -4237,6 +4269,53 @@ var ReferenceRuntime = class {
|
|
|
4237
4269
|
}
|
|
4238
4270
|
return { solution: current, converged, used, worstNode, worstDelta };
|
|
4239
4271
|
}
|
|
4272
|
+
/**
|
|
4273
|
+
* The factor the Newton update is scaled by so that no railed op-amp's differential moves
|
|
4274
|
+
* further than its step cap and no op-amp output node moves further than one full swing:
|
|
4275
|
+
* the smallest `cap / |requested differential step|` and `2 * halfSwing / |requested output
|
|
4276
|
+
* step|` over the block's railed op-amps, or 1. `current` is the iterate the rows were
|
|
4277
|
+
* stamped at and `next` the undamped solve. The history read here is the one the stamps
|
|
4278
|
+
* wrote this iteration, so `differential` is the point each row's tangent was taken at and
|
|
4279
|
+
* `cap` the step the next evaluation will allow; a request inside both bounds scales nothing.
|
|
4280
|
+
* Mirrored in `Engine.cpp` (`opAmpStepDamping`); the two must agree to the operation.
|
|
4281
|
+
*/
|
|
4282
|
+
opAmpStepDamping(block, blockIndex, current, next, dt, dc) {
|
|
4283
|
+
let damping = 1;
|
|
4284
|
+
for (const stamp of block.stamps) {
|
|
4285
|
+
if (stamp.kind !== "ideal-opamp" || stamp.railHigh === null || stamp.railLow === null) {
|
|
4286
|
+
continue;
|
|
4287
|
+
}
|
|
4288
|
+
const history = this.opampHistory.get(
|
|
4289
|
+
packHistoryKey3(blockIndex, stamp.plus, stamp.minus, stamp.output)
|
|
4290
|
+
);
|
|
4291
|
+
if (history === void 0) continue;
|
|
4292
|
+
const halfSwing = opAmpHalfSwing(stamp.railHigh, stamp.railLow);
|
|
4293
|
+
const alpha = dc ? 1 : opAmpPoleAlpha(
|
|
4294
|
+
stamp.openLoopGain,
|
|
4295
|
+
opAmpGainBandwidthHz(stamp),
|
|
4296
|
+
dt,
|
|
4297
|
+
this.sampleRate
|
|
4298
|
+
);
|
|
4299
|
+
const effectiveGain = alpha * stamp.openLoopGain;
|
|
4300
|
+
const linearWidth = halfSwing / effectiveGain;
|
|
4301
|
+
const band = OPAMP_DIFFERENTIAL_BAND * linearWidth;
|
|
4302
|
+
const nextDifferential = clamp(
|
|
4303
|
+
(next[stamp.plus] ?? 0) - (next[stamp.minus] ?? 0),
|
|
4304
|
+
-band,
|
|
4305
|
+
band
|
|
4306
|
+
);
|
|
4307
|
+
const magnitude = Math.abs(nextDifferential - history.differential);
|
|
4308
|
+
if (magnitude > history.cap) {
|
|
4309
|
+
damping = Math.min(damping, history.cap / magnitude);
|
|
4310
|
+
}
|
|
4311
|
+
const swing = 2 * halfSwing;
|
|
4312
|
+
const outputStep = Math.abs((next[stamp.output] ?? 0) - (current[stamp.output] ?? 0));
|
|
4313
|
+
if (outputStep > swing) {
|
|
4314
|
+
damping = Math.min(damping, swing / outputStep);
|
|
4315
|
+
}
|
|
4316
|
+
}
|
|
4317
|
+
return damping;
|
|
4318
|
+
}
|
|
4240
4319
|
/**
|
|
4241
4320
|
* Build-order step 6, vertical slice: the part of a block's matrix that is the same for
|
|
4242
4321
|
* every Newton iteration of this sample -- every stamp `newtonPortRowsOf` calls linear,
|
|
@@ -4451,7 +4530,7 @@ var ReferenceRuntime = class {
|
|
|
4451
4530
|
full[portRows[p]] = y[p];
|
|
4452
4531
|
}
|
|
4453
4532
|
};
|
|
4454
|
-
const predictorPass = !dc && sourceScale === 1 && gmin === GMIN_SIEMENS && !block.linear;
|
|
4533
|
+
const predictorPass = this.oversample > 1 && !dc && sourceScale === 1 && gmin === GMIN_SIEMENS && !block.linear;
|
|
4455
4534
|
const seed = (predictorPass ? this.predictedNewtonStart(block.id, size) : null) ?? start;
|
|
4456
4535
|
for (let p = 0; p < portCount; p += 1) {
|
|
4457
4536
|
scratch.yCurrent[p] = seed[portRows[p]] ?? 0;
|
|
@@ -5060,7 +5139,7 @@ var ReferenceRuntime = class {
|
|
|
5060
5139
|
const key = packHistoryKey3(blockIndex, stamp.plus, stamp.minus, stamp.output);
|
|
5061
5140
|
const alpha = opAmpPoleAlpha(
|
|
5062
5141
|
stamp.openLoopGain,
|
|
5063
|
-
|
|
5142
|
+
opAmpGainBandwidthHz(stamp),
|
|
5064
5143
|
dt,
|
|
5065
5144
|
this.sampleRate
|
|
5066
5145
|
);
|
|
@@ -5705,26 +5784,29 @@ var ReferenceRuntime = class {
|
|
|
5705
5784
|
);
|
|
5706
5785
|
const alpha = dc ? 1 : opAmpPoleAlpha(
|
|
5707
5786
|
stamp.openLoopGain,
|
|
5708
|
-
|
|
5787
|
+
opAmpGainBandwidthHz(stamp),
|
|
5709
5788
|
dt,
|
|
5710
5789
|
this.sampleRate
|
|
5711
5790
|
);
|
|
5712
5791
|
const effectiveGain = alpha * stamp.openLoopGain;
|
|
5713
5792
|
const linearWidth = halfSwing / effectiveGain;
|
|
5714
5793
|
const previous = this.opampHistory.get(opampKey);
|
|
5715
|
-
const previousDifferential = previous?.differential ?? 0;
|
|
5716
5794
|
const rawDifferential = (solution[stamp.plus] ?? 0) - (solution[stamp.minus] ?? 0);
|
|
5717
5795
|
const band = OPAMP_DIFFERENTIAL_BAND * linearWidth;
|
|
5718
5796
|
const bounded = clamp(rawDifferential, -band, band);
|
|
5797
|
+
const previousDifferential = previous?.differential ?? bounded;
|
|
5719
5798
|
const step = bounded - previousDifferential;
|
|
5720
5799
|
const maxStep = OPAMP_MAX_DIFFERENTIAL_STEP * linearWidth;
|
|
5721
5800
|
const reversing = previous !== void 0 && previous.step !== 0 && step !== 0 && Math.sign(step) !== Math.sign(previous.step);
|
|
5722
5801
|
const previousCap = previous?.cap ?? maxStep;
|
|
5723
5802
|
const cap = reversing ? Math.max(previousCap / 2, linearWidth / 64) : Math.min(maxStep, previousCap * 1.2);
|
|
5724
5803
|
const limited = Math.abs(step) > cap;
|
|
5804
|
+
const folded = cap <= linearWidth / 8 && Math.abs(step) >= linearWidth / 256;
|
|
5725
5805
|
if (limited) {
|
|
5726
5806
|
this.limitedIterate = true;
|
|
5727
5807
|
this.limitedBy = `opamp +=${stamp.plus} -=${stamp.minus} out=${stamp.output}`;
|
|
5808
|
+
}
|
|
5809
|
+
if (limited || folded) {
|
|
5728
5810
|
this.limitedOpamp = {
|
|
5729
5811
|
key: opampKey,
|
|
5730
5812
|
output: stamp.output,
|
|
@@ -5733,7 +5815,7 @@ var ReferenceRuntime = class {
|
|
|
5733
5815
|
railLow: stamp.railLow,
|
|
5734
5816
|
band,
|
|
5735
5817
|
maxStep,
|
|
5736
|
-
folded
|
|
5818
|
+
folded
|
|
5737
5819
|
};
|
|
5738
5820
|
}
|
|
5739
5821
|
const differential = limited ? previousDifferential + Math.sign(step) * cap : bounded;
|
|
@@ -5750,10 +5832,11 @@ var ReferenceRuntime = class {
|
|
|
5750
5832
|
clamp(scaled, -OPAMP_SATURATION_BAND, OPAMP_SATURATION_BAND)
|
|
5751
5833
|
);
|
|
5752
5834
|
const slope = effectiveGain * (1 - derivativeShape * derivativeShape);
|
|
5835
|
+
const linearisedAt = limited ? differential : rawDifferential;
|
|
5753
5836
|
matrix[row][stamp.output] += 1;
|
|
5754
5837
|
matrix[row][stamp.plus] -= slope;
|
|
5755
5838
|
matrix[row][stamp.minus] += slope;
|
|
5756
|
-
rhs[row] = output - slope *
|
|
5839
|
+
rhs[row] = output - slope * linearisedAt;
|
|
5757
5840
|
break;
|
|
5758
5841
|
}
|
|
5759
5842
|
case "vccs": {
|
|
@@ -6909,7 +6992,8 @@ var V2WasmEngine = class _V2WasmEngine {
|
|
|
6909
6992
|
* `newtonStartHistory` decisions: `seedsUsed` counts standard-pass solves that started
|
|
6910
6993
|
* from an extrapolated solution (order > 0), `oneIterationSolves` those that converged in
|
|
6911
6994
|
* exactly one iteration -- the saving itself, attributable on the shipping console.
|
|
6912
|
-
* Counted since `prepare()`/`reset()
|
|
6995
|
+
* Counted since `prepare()`/`reset()`; both stay 0 at `oversample` 1, where the predictor
|
|
6996
|
+
* does not run. `predictorOrder(blockIdx)` reads the order the
|
|
6913
6997
|
* block's next solve will seed from (0 = previous solution, 1 = linear, 2 = quadratic;
|
|
6914
6998
|
* -1 for a bad index), so a decision can be compared against the reference per sample.
|
|
6915
6999
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vessel-dsp/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Real-time MNA simulation runtime and solver console for VesselDSP Program ROMs.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"guitar-pedal",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"generate-kernels": "bun scripts/generate-kernels.ts"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@vessel-dsp/compiler": "0.
|
|
61
|
+
"@vessel-dsp/compiler": "0.5.0"
|
|
62
62
|
},
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|