@vessel-dsp/runtime 0.7.0 → 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/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/reference-runtime.d.ts +87 -0
- package/dist/reference-runtime.d.ts.map +1 -1
- package/dist/reference-runtime.js +243 -0
- package/dist/reference-runtime.js.map +1 -1
- package/dist/wasm/v2_dsp.wasm +0 -0
- package/dist/worklet/v2-audio-worklet.js +143 -1
- package/package.json +64 -64
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { ChainRuntime } from "./chain";
|
|
|
2
2
|
export { bypassNotModelledAdvisories, chainAdvisories, seamScale, type ChainAdvisory, } from "./chain-advisories";
|
|
3
3
|
export { dacScaleFactor, outputConversionFullScale, outputDbfs } from "./chain-scale";
|
|
4
4
|
export { processorSlot, programSlot, resolveBypassMode, slotContract, type ChainSlot, type ExternalProcessor, type SlotContract, type StageCoverage, } from "./chain-slot";
|
|
5
|
-
export { DEFAULT_NEWTON_MAX_ITERATIONS, ldrTableResistanceOhms, ReferenceRuntime, RuntimeError, type RuntimeNodeVoltageSnapshot, } from "./reference-runtime";
|
|
5
|
+
export { dbxVcaGainDb, dbxVcaRestTerms, dbxVcaEnvelopeTerms, dbxVcaKneeVolts, dbxVcaReleaseTc, dbxVcaPrimeTarget, dbxVcaShutdownTarget, dbxVcaVictimTc, dbxVcaGainLinear, dbxVcaEnvelopeK, DEFAULT_NEWTON_MAX_ITERATIONS, ldrTableResistanceOhms, ReferenceRuntime, RuntimeError, type RuntimeNodeVoltageSnapshot, } from "./reference-runtime";
|
|
6
6
|
export type { SupplyAddress, SupplyInfo } from "./supply";
|
|
7
7
|
export { SETTLE_DEFAULTS, measureInputAttributable, measureSharedWindow, settledRender, settledSweepVerified, type SettleOptions, } from "./settle";
|
|
8
8
|
export { supplyGroundConflicts, type SupplyGroundConflict } from "./supply-ground";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACN,2BAA2B,EAC3B,eAAe,EACf,SAAS,EACT,KAAK,aAAa,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EACN,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,KAAK,0BAA0B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EACN,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,KAAK,aAAa,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMpE,OAAO,EACN,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,aAAa,GAClB,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACN,2BAA2B,EAC3B,eAAe,EACf,SAAS,EACT,KAAK,aAAa,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EACN,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,KAAK,0BAA0B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EACN,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,KAAK,aAAa,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMpE,OAAO,EACN,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,aAAa,GAClB,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { ChainRuntime } from "./chain.js";
|
|
|
8
8
|
export { bypassNotModelledAdvisories, chainAdvisories, seamScale, } from "./chain-advisories.js";
|
|
9
9
|
export { dacScaleFactor, outputConversionFullScale, outputDbfs } from "./chain-scale.js";
|
|
10
10
|
export { processorSlot, programSlot, resolveBypassMode, slotContract, } from "./chain-slot.js";
|
|
11
|
-
export { DEFAULT_NEWTON_MAX_ITERATIONS, ldrTableResistanceOhms, ReferenceRuntime, RuntimeError, } from "./reference-runtime.js";
|
|
11
|
+
export { dbxVcaGainDb, dbxVcaRestTerms, dbxVcaEnvelopeTerms, dbxVcaKneeVolts, dbxVcaReleaseTc, dbxVcaPrimeTarget, dbxVcaShutdownTarget, dbxVcaVictimTc, dbxVcaGainLinear, dbxVcaEnvelopeK, DEFAULT_NEWTON_MAX_ITERATIONS, ldrTableResistanceOhms, ReferenceRuntime, RuntimeError, } from "./reference-runtime.js";
|
|
12
12
|
export { SETTLE_DEFAULTS, measureInputAttributable, measureSharedWindow, settledRender, settledSweepVerified, } from "./settle.js";
|
|
13
13
|
export { supplyGroundConflicts } from "./supply-ground.js";
|
|
14
14
|
export { taperFraction } from "./taper.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,oFAAoF;AACpF,sFAAsF;AACtF,mFAAmF;AACnF,kDAAkD;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACN,2BAA2B,EAC3B,eAAe,EACf,SAAS,GAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EACN,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,GAKZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,GAEZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GAEpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAA6B,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAErE,+EAA+E;AAC/E,kFAAkF;AAClF,8EAA8E;AAC9E,gFAAgF;AAChF,oEAAoE;AACpE,OAAO,EACN,oBAAoB,EACpB,sBAAsB,GAMtB,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,oFAAoF;AACpF,sFAAsF;AACtF,mFAAmF;AACnF,kDAAkD;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACN,2BAA2B,EAC3B,eAAe,EACf,SAAS,GAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EACN,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,GAKZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,6BAA6B,EAC7B,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,GAEZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GAEpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAA6B,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAErE,+EAA+E;AAC/E,kFAAkF;AAClF,8EAA8E;AAC9E,gFAAgF;AAChF,oEAAoE;AACpE,OAAO,EACN,oBAAoB,EACpB,sBAAsB,GAMtB,MAAM,+BAA+B,CAAC"}
|
|
@@ -186,6 +186,93 @@ export declare const DEFAULT_NEWTON_MAX_ITERATIONS = 1024;
|
|
|
186
186
|
* never reaches here from a compiled program.
|
|
187
187
|
*/
|
|
188
188
|
export declare function ldrTableResistanceOhms(currentsAmps: readonly number[], ohms: readonly number[], currentAmps: number, minOhms: number, maxOhms: number): number;
|
|
189
|
+
/**
|
|
190
|
+
* A dbx-style VCA's control in dB: `-termsVolts / 0.0059`, clamped to
|
|
191
|
+
* `[minGainDb, maxGainDb]`.
|
|
192
|
+
*
|
|
193
|
+
* The 5.9 mV/dB divisor is the NEC uPC1252 feature line (and `boss-lm-2`'s
|
|
194
|
+
* control deck); the +-30 dB clamp is the datasheet's Av range. `termsVolts`
|
|
195
|
+
* is the smoothed SUSTAIN-coupled rest plus the smoothed log-domain
|
|
196
|
+
* envelope -- see `dbxVcaRestTerms` and `dbxVcaEnvelopeTerms`. Pure so the
|
|
197
|
+
* compiler tests and the console-parity instruments can call it directly.
|
|
198
|
+
* The stamp path below evaluates the same expression inline with the clamp
|
|
199
|
+
* test deciding the derivative.
|
|
200
|
+
*/
|
|
201
|
+
export declare function dbxVcaGainDb(termsVolts: number, minGainDb: number, maxGainDb: number): number;
|
|
202
|
+
/** dB to linear voltage gain. Pure companion to `dbxVcaGainDb` above. */
|
|
203
|
+
export declare function dbxVcaGainLinear(gainDb: number): number;
|
|
204
|
+
/**
|
|
205
|
+
* The SUSTAIN-coupled rest term in volts: `sustainGain * (vControl -
|
|
206
|
+
* sustainRef)`. Session-fitted (inverted, amplified): rest gain rises with
|
|
207
|
+
* the GC node, opposite to a naive control-follows-detector reading, because
|
|
208
|
+
* that is what the session threshold curves demand (sus-min flat -13.2 dB,
|
|
209
|
+
* centre +5.68 dB, sus-max +14.28 dB at 10 mV in).
|
|
210
|
+
*/
|
|
211
|
+
export declare function dbxVcaRestTerms(vControl: number, sustainGain: number, sustainRef: number): number;
|
|
212
|
+
/**
|
|
213
|
+
* The log-domain envelope term in volts: `max(0, slope * ln(|iIn| * 1e6) +
|
|
214
|
+
* kneeVolts)`, with `iIn` in amps (the 1e6 keeps the log argument
|
|
215
|
+
* dimensionless against a 1 uA reference). Below the knee the pedal holds
|
|
216
|
+
* rest gain; above it each input decade adds the same dB of reduction; the
|
|
217
|
+
* knee tracks SUSTAIN (see the law docs). `Math.log(0)` is -Infinity and
|
|
218
|
+
* `Math.max(0, -Infinity)` is 0, so silence reads exactly zero -- but an
|
|
219
|
+
* explicit guard keeps that from depending on log-edge behavior.
|
|
220
|
+
*/
|
|
221
|
+
export declare function dbxVcaEnvelopeTerms(inputAmps: number, slopeVoltsPerNeper: number, kneeVolts: number): number;
|
|
222
|
+
/**
|
|
223
|
+
* The detector knee in volts at one GC voltage: a SUSTAIN-tracked threshold
|
|
224
|
+
* (`kneeBaseVolts` at 4.65 V rising `kneeTrack` volts per GC volt), so
|
|
225
|
+
* sus-min stays flat to 300 mV while centre and sus-max engage progressively.
|
|
226
|
+
* Pure so the threshold shape is unit-testable.
|
|
227
|
+
*/
|
|
228
|
+
export declare function dbxVcaKneeVolts(vControl: number, kneeBaseVolts: number, kneeTrack: number): number;
|
|
229
|
+
/**
|
|
230
|
+
* Depth-varying release time constant in seconds: `min(maxSeconds,
|
|
231
|
+
* baseSeconds * slowdown^(depth01^shape))`, where depth01 is the held
|
|
232
|
+
* suppression depth normalized to [0, 1]. Fast near the top (base rate:
|
|
233
|
+
* session-3 immediacy), minutes-slow from deep suppression. The shape
|
|
234
|
+
* exponent bends the mid-depth curve down (shape 8: ~52 ms at half depth
|
|
235
|
+
* instead of 2.45 s) with both curve endpoints pinned; the H1 base-attack
|
|
236
|
+
* ceiling caps the deep release at `maxSeconds` (default unbounded, law
|
|
237
|
+
* fits 1.0 s) so pegged in-stream depths recover across dips -- surgical
|
|
238
|
+
* to depths above ~0.89, where no fitted bar operates. Pure so the curve
|
|
239
|
+
* is unit-testable; the production slowdown is a fit hook for the
|
|
240
|
+
* hot-start + 60 s take, which does not exist yet -- see the law docs.
|
|
241
|
+
*/
|
|
242
|
+
export declare function dbxVcaReleaseTc(depth01: number, baseSeconds: number, slowdown: number, shape?: number, maxSeconds?: number): number;
|
|
243
|
+
/**
|
|
244
|
+
* Silence priming target, 1 or 0: 1 when the rectified input sits below the
|
|
245
|
+
* presence floor (`primeRefCurrent`), else 0. The prime follower chases this
|
|
246
|
+
* with `primeRiseSeconds` upward (a gap builds prime over seconds) and
|
|
247
|
+
* `primeFallSeconds` downward (signal disarms in fractions of a second), so a
|
|
248
|
+
* post-gap transient edge pumps the shutdown while render onsets and
|
|
249
|
+
* continuous tones never do (priming starts at zero). Pure so the gate is
|
|
250
|
+
* unit-testable.
|
|
251
|
+
*/
|
|
252
|
+
export declare function dbxVcaPrimeTarget(inputAmps: number, refCurrentAmps: number): number;
|
|
253
|
+
/**
|
|
254
|
+
* Post-gap gulp target in volts: `shutdownGain * max(0, peakTarget -
|
|
255
|
+
* edgeThreshVolts)^2 * primed01`, where `peakTarget` is the instantaneous
|
|
256
|
+
* log-domain target. After a silence gap the prime is high, so a hot peak
|
|
257
|
+
* dumps a recharge gulp (D6 conducting hard into the depleted C8); under
|
|
258
|
+
* continuous signal the prime is zero and the gulp is zero, and render
|
|
259
|
+
* onsets never pump (priming starts at zero). The square is the D6 diode
|
|
260
|
+
* exponential over the operating range; the absolute threshold is the diode
|
|
261
|
+
* forward drop plus topped-C8 headroom, which is why sine ripple never
|
|
262
|
+
* pumps. Pure so the fit is unit-testable.
|
|
263
|
+
*/
|
|
264
|
+
export declare function dbxVcaShutdownTarget(peakTargetVolts: number, edgeThreshVolts: number, primed01: number, gainPerVolt: number): number;
|
|
265
|
+
/**
|
|
266
|
+
* Victim-dependent shutdown bleed time constant in seconds: `fastSeconds`
|
|
267
|
+
* once the prime has disarmed (`primed01` below 0.05, i.e. sustained signal
|
|
268
|
+
* present), `slowSeconds` while primed (R-only, frozen over takes but
|
|
269
|
+
* finite). The discharge path conducts only once signal has dislodged the
|
|
270
|
+
* prime; while a post-gap transient holds the prime the crush holds with it,
|
|
271
|
+
* then clears in a fraction of a second under the probe tone. Pure so the
|
|
272
|
+
* curve is unit-testable.
|
|
273
|
+
*/
|
|
274
|
+
export declare function dbxVcaVictimTc(primed01: number, fastSeconds: number, slowSeconds: number): number;
|
|
275
|
+
export declare function dbxVcaEnvelopeK(tcSeconds: number, sampleRate: number): number;
|
|
189
276
|
/**
|
|
190
277
|
* A delay-tap read length, pure over its inputs (board-p3 row 4). Factored
|
|
191
278
|
* out of the interpreter so every mode is unit-testable without a program:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-runtime.d.ts","sourceRoot":"","sources":["../src/reference-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reference-runtime.d.ts","sourceRoot":"","sources":["../src/reference-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -348,6 +348,126 @@ export function ldrTableResistanceOhms(currentsAmps, ohms, currentAmps, minOhms,
|
|
|
348
348
|
const raw = Math.exp(lnR0 + (lnI - lnI0) * slope);
|
|
349
349
|
return Math.min(Math.max(raw, minOhms), maxOhms);
|
|
350
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* A dbx-style VCA's control in dB: `-termsVolts / 0.0059`, clamped to
|
|
353
|
+
* `[minGainDb, maxGainDb]`.
|
|
354
|
+
*
|
|
355
|
+
* The 5.9 mV/dB divisor is the NEC uPC1252 feature line (and `boss-lm-2`'s
|
|
356
|
+
* control deck); the +-30 dB clamp is the datasheet's Av range. `termsVolts`
|
|
357
|
+
* is the smoothed SUSTAIN-coupled rest plus the smoothed log-domain
|
|
358
|
+
* envelope -- see `dbxVcaRestTerms` and `dbxVcaEnvelopeTerms`. Pure so the
|
|
359
|
+
* compiler tests and the console-parity instruments can call it directly.
|
|
360
|
+
* The stamp path below evaluates the same expression inline with the clamp
|
|
361
|
+
* test deciding the derivative.
|
|
362
|
+
*/
|
|
363
|
+
export function dbxVcaGainDb(termsVolts, minGainDb, maxGainDb) {
|
|
364
|
+
const raw = -termsVolts / 0.0059;
|
|
365
|
+
return Math.min(maxGainDb, Math.max(minGainDb, raw));
|
|
366
|
+
}
|
|
367
|
+
/** dB to linear voltage gain. Pure companion to `dbxVcaGainDb` above. */
|
|
368
|
+
export function dbxVcaGainLinear(gainDb) {
|
|
369
|
+
return Math.pow(10, gainDb / 20);
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* The SUSTAIN-coupled rest term in volts: `sustainGain * (vControl -
|
|
373
|
+
* sustainRef)`. Session-fitted (inverted, amplified): rest gain rises with
|
|
374
|
+
* the GC node, opposite to a naive control-follows-detector reading, because
|
|
375
|
+
* that is what the session threshold curves demand (sus-min flat -13.2 dB,
|
|
376
|
+
* centre +5.68 dB, sus-max +14.28 dB at 10 mV in).
|
|
377
|
+
*/
|
|
378
|
+
export function dbxVcaRestTerms(vControl, sustainGain, sustainRef) {
|
|
379
|
+
return sustainGain * (vControl - sustainRef);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* The log-domain envelope term in volts: `max(0, slope * ln(|iIn| * 1e6) +
|
|
383
|
+
* kneeVolts)`, with `iIn` in amps (the 1e6 keeps the log argument
|
|
384
|
+
* dimensionless against a 1 uA reference). Below the knee the pedal holds
|
|
385
|
+
* rest gain; above it each input decade adds the same dB of reduction; the
|
|
386
|
+
* knee tracks SUSTAIN (see the law docs). `Math.log(0)` is -Infinity and
|
|
387
|
+
* `Math.max(0, -Infinity)` is 0, so silence reads exactly zero -- but an
|
|
388
|
+
* explicit guard keeps that from depending on log-edge behavior.
|
|
389
|
+
*/
|
|
390
|
+
export function dbxVcaEnvelopeTerms(inputAmps, slopeVoltsPerNeper, kneeVolts) {
|
|
391
|
+
const absIn = Math.abs(inputAmps);
|
|
392
|
+
if (!(absIn > 0))
|
|
393
|
+
return 0;
|
|
394
|
+
return Math.max(0, slopeVoltsPerNeper * Math.log(absIn * 1e6) + kneeVolts);
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* The detector knee in volts at one GC voltage: a SUSTAIN-tracked threshold
|
|
398
|
+
* (`kneeBaseVolts` at 4.65 V rising `kneeTrack` volts per GC volt), so
|
|
399
|
+
* sus-min stays flat to 300 mV while centre and sus-max engage progressively.
|
|
400
|
+
* Pure so the threshold shape is unit-testable.
|
|
401
|
+
*/
|
|
402
|
+
export function dbxVcaKneeVolts(vControl, kneeBaseVolts, kneeTrack) {
|
|
403
|
+
return kneeBaseVolts + kneeTrack * (vControl - 4.65);
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Depth-varying release time constant in seconds: `min(maxSeconds,
|
|
407
|
+
* baseSeconds * slowdown^(depth01^shape))`, where depth01 is the held
|
|
408
|
+
* suppression depth normalized to [0, 1]. Fast near the top (base rate:
|
|
409
|
+
* session-3 immediacy), minutes-slow from deep suppression. The shape
|
|
410
|
+
* exponent bends the mid-depth curve down (shape 8: ~52 ms at half depth
|
|
411
|
+
* instead of 2.45 s) with both curve endpoints pinned; the H1 base-attack
|
|
412
|
+
* ceiling caps the deep release at `maxSeconds` (default unbounded, law
|
|
413
|
+
* fits 1.0 s) so pegged in-stream depths recover across dips -- surgical
|
|
414
|
+
* to depths above ~0.89, where no fitted bar operates. Pure so the curve
|
|
415
|
+
* is unit-testable; the production slowdown is a fit hook for the
|
|
416
|
+
* hot-start + 60 s take, which does not exist yet -- see the law docs.
|
|
417
|
+
*/
|
|
418
|
+
export function dbxVcaReleaseTc(depth01, baseSeconds, slowdown, shape = 1, maxSeconds = Number.POSITIVE_INFINITY) {
|
|
419
|
+
const depth = Math.min(1, Math.max(0, depth01));
|
|
420
|
+
return Math.min(maxSeconds, baseSeconds * Math.pow(slowdown, Math.pow(depth, shape)));
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Silence priming target, 1 or 0: 1 when the rectified input sits below the
|
|
424
|
+
* presence floor (`primeRefCurrent`), else 0. The prime follower chases this
|
|
425
|
+
* with `primeRiseSeconds` upward (a gap builds prime over seconds) and
|
|
426
|
+
* `primeFallSeconds` downward (signal disarms in fractions of a second), so a
|
|
427
|
+
* post-gap transient edge pumps the shutdown while render onsets and
|
|
428
|
+
* continuous tones never do (priming starts at zero). Pure so the gate is
|
|
429
|
+
* unit-testable.
|
|
430
|
+
*/
|
|
431
|
+
export function dbxVcaPrimeTarget(inputAmps, refCurrentAmps) {
|
|
432
|
+
return Math.abs(inputAmps) > refCurrentAmps ? 0 : 1;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Post-gap gulp target in volts: `shutdownGain * max(0, peakTarget -
|
|
436
|
+
* edgeThreshVolts)^2 * primed01`, where `peakTarget` is the instantaneous
|
|
437
|
+
* log-domain target. After a silence gap the prime is high, so a hot peak
|
|
438
|
+
* dumps a recharge gulp (D6 conducting hard into the depleted C8); under
|
|
439
|
+
* continuous signal the prime is zero and the gulp is zero, and render
|
|
440
|
+
* onsets never pump (priming starts at zero). The square is the D6 diode
|
|
441
|
+
* exponential over the operating range; the absolute threshold is the diode
|
|
442
|
+
* forward drop plus topped-C8 headroom, which is why sine ripple never
|
|
443
|
+
* pumps. Pure so the fit is unit-testable.
|
|
444
|
+
*/
|
|
445
|
+
export function dbxVcaShutdownTarget(peakTargetVolts, edgeThreshVolts, primed01, gainPerVolt) {
|
|
446
|
+
const excess = peakTargetVolts - edgeThreshVolts;
|
|
447
|
+
if (!(excess > 0) || !(primed01 > 0))
|
|
448
|
+
return 0;
|
|
449
|
+
const primed = Math.min(1, primed01);
|
|
450
|
+
return gainPerVolt * excess * excess * primed;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Victim-dependent shutdown bleed time constant in seconds: `fastSeconds`
|
|
454
|
+
* once the prime has disarmed (`primed01` below 0.05, i.e. sustained signal
|
|
455
|
+
* present), `slowSeconds` while primed (R-only, frozen over takes but
|
|
456
|
+
* finite). The discharge path conducts only once signal has dislodged the
|
|
457
|
+
* prime; while a post-gap transient holds the prime the crush holds with it,
|
|
458
|
+
* then clears in a fraction of a second under the probe tone. Pure so the
|
|
459
|
+
* curve is unit-testable.
|
|
460
|
+
*/
|
|
461
|
+
export function dbxVcaVictimTc(primed01, fastSeconds, slowSeconds) {
|
|
462
|
+
const primed = Math.min(1, Math.max(0, primed01));
|
|
463
|
+
return primed > 0.05 ? slowSeconds : fastSeconds;
|
|
464
|
+
}
|
|
465
|
+
export function dbxVcaEnvelopeK(tcSeconds, sampleRate) {
|
|
466
|
+
const denom = tcSeconds * sampleRate;
|
|
467
|
+
if (!(denom > 0))
|
|
468
|
+
return 1;
|
|
469
|
+
return 1 - Math.exp(-1 / denom);
|
|
470
|
+
}
|
|
351
471
|
/**
|
|
352
472
|
* The budget a block falls back to for the length of a probation, once one of its samples has
|
|
353
473
|
* shown that more iterations could not help that sample.
|
|
@@ -950,6 +1070,9 @@ const IMPLEMENTED_OPERATORS = {
|
|
|
950
1070
|
comparator: true,
|
|
951
1071
|
// Linear-control VCA cell. Reads the control node, draws nothing.
|
|
952
1072
|
"linear-vca": true,
|
|
1073
|
+
// dbx-style VCA cell (uPC1252H2). Bounded sigmoidal gain in the
|
|
1074
|
+
// control voltage. Reads the control node, draws nothing.
|
|
1075
|
+
"dbx-vca": true,
|
|
953
1076
|
};
|
|
954
1077
|
/**
|
|
955
1078
|
* Which of a program's declared operators this runtime cannot execute.
|
|
@@ -6837,6 +6960,126 @@ export class ReferenceRuntime {
|
|
|
6837
6960
|
}
|
|
6838
6961
|
break;
|
|
6839
6962
|
}
|
|
6963
|
+
case "dbx-vca": {
|
|
6964
|
+
// dbx-style VCA gain cell (uPC1252H2): the output current is
|
|
6965
|
+
// the input current times an exponential dB-linear gain over
|
|
6966
|
+
// the smoothed SUSTAIN-coupled rest plus the smoothed
|
|
6967
|
+
// log-domain envelope plus the victim-dependent shutdown,
|
|
6968
|
+
// evaluated per Newton iterate with all four followers held.
|
|
6969
|
+
//
|
|
6970
|
+
// Slot 0 smooths the GC control itself (SUSTAIN moves and
|
|
6971
|
+
// audio rejection: the pedal's GC node carries tens of
|
|
6972
|
+
// millivolts of audio, and reading it raw pumps the gain at
|
|
6973
|
+
// audio rate). The rest term and the SUSTAIN-tracked knee
|
|
6974
|
+
// both read the held control. Slot 1 smooths the rectified
|
|
6975
|
+
// log-domain input (the knee makes sus-min flat while
|
|
6976
|
+
// centre and sus-max engage progressively). The release TC
|
|
6977
|
+
// varies with suppression depth (fast near top, minutes-slow
|
|
6978
|
+
// from deep suppression); attack stays fast.
|
|
6979
|
+
//
|
|
6980
|
+
// Slot 2 is the silence prime (1 in silence, 0 under signal;
|
|
6981
|
+
// slow to rise, fast to fall). Slot 3 is the shutdown: a
|
|
6982
|
+
// fast peak-holder pumped only by post-gap transient edges
|
|
6983
|
+
// (the envelope has decayed, so the first post-gap peak dumps
|
|
6984
|
+
// a recharge gulp) and bled victim-dependently (fast under
|
|
6985
|
+
// sustained signal, frozen in silence). Render onsets and
|
|
6986
|
+
// continuous tones never pump (priming starts at zero), so
|
|
6987
|
+
// the v4 threshold fit is structurally untouched. With
|
|
6988
|
+
// everything held there is no live control derivative (the
|
|
6989
|
+
// control row carries no stamp).
|
|
6990
|
+
const dbxBaseIdx = stamp.stateIndex;
|
|
6991
|
+
const ctrlKey = `${block.id}_dbxc_${dbxBaseIdx}`;
|
|
6992
|
+
if (this.elapsedSamples !==
|
|
6993
|
+
(this.lastShiftedSample.get(ctrlKey) ?? -1)) {
|
|
6994
|
+
this.lastShiftedSample.set(ctrlKey, this.elapsedSamples);
|
|
6995
|
+
const vCtrlNow = solution[stamp.control] ?? 0.0;
|
|
6996
|
+
const ctrlPrev = state[dbxBaseIdx] ?? 0.0;
|
|
6997
|
+
const ctrlTc = vCtrlNow > ctrlPrev ? stamp.attackSeconds : stamp.releaseSeconds;
|
|
6998
|
+
const ctrlK = dbxVcaEnvelopeK(ctrlTc, this.sampleRate);
|
|
6999
|
+
state[dbxBaseIdx] = ctrlPrev + (vCtrlNow - ctrlPrev) * ctrlK;
|
|
7000
|
+
}
|
|
7001
|
+
const vCtrlHeld = state[dbxBaseIdx] ?? 0.0;
|
|
7002
|
+
const restHeld = dbxVcaRestTerms(vCtrlHeld, stamp.sustainGain, stamp.sustainRef);
|
|
7003
|
+
const kneeHeld = dbxVcaKneeVolts(vCtrlHeld, stamp.kneeBaseVolts, stamp.kneeTrack);
|
|
7004
|
+
const vInInstDbx = (solution[stamp.plus] ?? 0.0) - (solution[stamp.minus] ?? 0.0);
|
|
7005
|
+
const iInInstDbx = vInInstDbx * stamp.inputSiemens;
|
|
7006
|
+
const primeKey = `${block.id}_dbxp_${dbxBaseIdx}`;
|
|
7007
|
+
if (this.elapsedSamples !==
|
|
7008
|
+
(this.lastShiftedSample.get(primeKey) ?? -1)) {
|
|
7009
|
+
this.lastShiftedSample.set(primeKey, this.elapsedSamples);
|
|
7010
|
+
const primeTarget = dbxVcaPrimeTarget(iInInstDbx, stamp.primeRefCurrent);
|
|
7011
|
+
const primePrev = state[dbxBaseIdx + 2] ?? 0.0;
|
|
7012
|
+
const primeTc = primeTarget > primePrev
|
|
7013
|
+
? stamp.primeRiseSeconds
|
|
7014
|
+
: stamp.primeFallSeconds;
|
|
7015
|
+
const primeK = dbxVcaEnvelopeK(primeTc, this.sampleRate);
|
|
7016
|
+
state[dbxBaseIdx + 2] = primePrev + (primeTarget - primePrev) * primeK;
|
|
7017
|
+
}
|
|
7018
|
+
const primeHeld = state[dbxBaseIdx + 2] ?? 0.0;
|
|
7019
|
+
const envKey = `${block.id}_dbxe_${dbxBaseIdx}`;
|
|
7020
|
+
if (this.elapsedSamples !==
|
|
7021
|
+
(this.lastShiftedSample.get(envKey) ?? -1)) {
|
|
7022
|
+
this.lastShiftedSample.set(envKey, this.elapsedSamples);
|
|
7023
|
+
const envTarget = dbxVcaEnvelopeTerms(iInInstDbx, stamp.envelopeSlope, kneeHeld);
|
|
7024
|
+
const envPrev = state[dbxBaseIdx + 1] ?? 0.0;
|
|
7025
|
+
const envDepth = Math.min(1, Math.max(0, envPrev / 0.15));
|
|
7026
|
+
const envTc = envTarget > envPrev
|
|
7027
|
+
? stamp.attackSeconds
|
|
7028
|
+
: dbxVcaReleaseTc(envDepth, stamp.releaseSeconds, stamp.releaseSlowdown, stamp.releaseShape, stamp.releaseMaxSeconds);
|
|
7029
|
+
const envK = dbxVcaEnvelopeK(envTc, this.sampleRate);
|
|
7030
|
+
state[dbxBaseIdx + 1] = envPrev + (envTarget - envPrev) * envK;
|
|
7031
|
+
}
|
|
7032
|
+
const envHeld = state[dbxBaseIdx + 1] ?? 0.0;
|
|
7033
|
+
const shutKey = `${block.id}_dbxs_${dbxBaseIdx}`;
|
|
7034
|
+
if (this.elapsedSamples !==
|
|
7035
|
+
(this.lastShiftedSample.get(shutKey) ?? -1)) {
|
|
7036
|
+
this.lastShiftedSample.set(shutKey, this.elapsedSamples);
|
|
7037
|
+
const peakTarget = dbxVcaEnvelopeTerms(iInInstDbx, stamp.envelopeSlope, kneeHeld);
|
|
7038
|
+
const shutTarget = dbxVcaShutdownTarget(peakTarget, stamp.shutdownEdgeVolts, primeHeld, stamp.shutdownGain);
|
|
7039
|
+
const shutPrev = state[dbxBaseIdx + 3] ?? 0.0;
|
|
7040
|
+
const shutTc = shutTarget > shutPrev
|
|
7041
|
+
? stamp.shutdownAttackSeconds
|
|
7042
|
+
: dbxVcaVictimTc(primeHeld, stamp.shutdownFastSeconds, stamp.shutdownSlowSeconds);
|
|
7043
|
+
const shutK = dbxVcaEnvelopeK(shutTc, this.sampleRate);
|
|
7044
|
+
state[dbxBaseIdx + 3] = shutPrev + (shutTarget - shutPrev) * shutK;
|
|
7045
|
+
}
|
|
7046
|
+
const shutHeld = state[dbxBaseIdx + 3] ?? 0.0;
|
|
7047
|
+
const termsHeld = restHeld + envHeld;
|
|
7048
|
+
// Same closed form as `dbxVcaGainDb`: rest plus envelope terms
|
|
7049
|
+
// through 5.9 mV/dB, clamped to the datasheet range. At a clamp rail
|
|
7050
|
+
// the rail decides the gain (derivative zero); the terms are
|
|
7051
|
+
// held anyway, so the control row carries no stamp. The shutdown
|
|
7052
|
+
// rides OUTSIDE the linear clamp: a post-gap transient crushes
|
|
7053
|
+
// toward mute (session 1/2 pips annihilated at -57 dB, session 8
|
|
7054
|
+
// at -67 dB absolute), past any linear Av range, so it adds its
|
|
7055
|
+
// dB after the clamp with only a -100 dB mute floor for safety.
|
|
7056
|
+
const rawDb = -termsHeld / 0.0059;
|
|
7057
|
+
const gainDb = Math.min(stamp.maxGainDb, Math.max(stamp.minGainDb, rawDb));
|
|
7058
|
+
const totalDb = Math.max(-100, gainDb - shutHeld / 0.0059);
|
|
7059
|
+
const gain = dbxVcaGainLinear(totalDb);
|
|
7060
|
+
const vPlus = solution[stamp.plus] ?? 0.0;
|
|
7061
|
+
const vMinus = solution[stamp.minus] ?? 0.0;
|
|
7062
|
+
const vIn = vPlus - vMinus;
|
|
7063
|
+
const iIn = vIn * stamp.inputSiemens;
|
|
7064
|
+
const iOut = iIn * gain;
|
|
7065
|
+
const gIn = gain * stamp.inputSiemens;
|
|
7066
|
+
// Leaving-positive KCL (see the diode): the stamp's physical
|
|
7067
|
+
// current ENTERS the output node, so every term below is
|
|
7068
|
+
// negated once.
|
|
7069
|
+
const leaving = -iOut;
|
|
7070
|
+
const equivalent = leaving - (-gIn * vPlus + gIn * vMinus);
|
|
7071
|
+
if (stamp.output !== 0) {
|
|
7072
|
+
if (stamp.plus !== 0) {
|
|
7073
|
+
matrix[stamp.output][stamp.plus] += -gIn;
|
|
7074
|
+
}
|
|
7075
|
+
if (stamp.minus !== 0) {
|
|
7076
|
+
matrix[stamp.output][stamp.minus] += gIn;
|
|
7077
|
+
}
|
|
7078
|
+
rhs[stamp.output] =
|
|
7079
|
+
(rhs[stamp.output] ?? 0) - equivalent;
|
|
7080
|
+
}
|
|
7081
|
+
break;
|
|
7082
|
+
}
|
|
6840
7083
|
case "spring-reverb": {
|
|
6841
7084
|
// Two ports, both ordinary stamps; everything mechanical lives in the state
|
|
6842
7085
|
// advanced once per sample by `advanceSpringReverb`.
|