dspx 1.4.0 → 1.4.2

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 CHANGED
@@ -1614,7 +1614,77 @@ See the [project roadmap](https://github.com/A-KGeorge/dspx/blob/main/ROADMAP.md
1614
1614
 
1615
1615
  ---
1616
1616
 
1617
- ## 🔧 Advanced Features
1617
+ ## �️ State Persistence Resilience
1618
+
1619
+ dspx provides lightweight built-in retry logic for transient failures, with seamless integration for production-grade circuit breakers.
1620
+
1621
+ ### Built-in Features
1622
+
1623
+ - **Automatic Retries**: 3 attempts with exponential backoff (configurable)
1624
+ - **Optional Fallback**: Auto-clear state on persistent failures
1625
+ - **Circuit Breaker Ready**: Disabled by default to allow integration with battle-tested libraries
1626
+
1627
+ ### Default Configuration
1628
+
1629
+ ```typescript
1630
+ import { createDspPipeline } from "dspx";
1631
+
1632
+ const pipeline = createDspPipeline(); // Retries enabled, circuit breaker disabled
1633
+
1634
+ // Save with automatic retries
1635
+ const state = await pipeline.saveState();
1636
+ await redis.set("dsp:state", state);
1637
+
1638
+ // Load with retries (throws on failure)
1639
+ const stateFromRedis = await redis.get("dsp:state");
1640
+ if (stateFromRedis) {
1641
+ await pipeline.loadState(stateFromRedis);
1642
+ }
1643
+ ```
1644
+
1645
+ ### Production-Grade Circuit Breaking with Opossum
1646
+
1647
+ For critical workloads, wrap state persistence with **[opossum](https://www.npmjs.com/package/opossum)**:
1648
+
1649
+ ```bash
1650
+ npm install opossum
1651
+ ```
1652
+
1653
+ ```typescript
1654
+ import CircuitBreaker from "opossum";
1655
+
1656
+ const saveBreaker = new CircuitBreaker(
1657
+ async (state: string | Buffer) => {
1658
+ await redis.set("dsp:state", state);
1659
+ },
1660
+ {
1661
+ timeout: 2000, // Fail if >2s
1662
+ errorThresholdPercentage: 50, // Trip after 50% failures
1663
+ resetTimeout: 30000, // Try recovery after 30s
1664
+ }
1665
+ );
1666
+
1667
+ saveBreaker.fallback(() => {
1668
+ console.warn("Circuit OPEN - skipping state save");
1669
+ });
1670
+
1671
+ // Usage
1672
+ const state = await pipeline.saveState({ format: "toon" });
1673
+ await saveBreaker.fire(state);
1674
+ ```
1675
+
1676
+ **📚 [Full Resilience Documentation](./docs/STATE_RESILIENCE.md)** | **💡 [Opossum Example](./examples/resilience-with-opossum.cjs)**
1677
+
1678
+ Includes examples for:
1679
+
1680
+ - Circuit breaker configuration and monitoring
1681
+ - Prometheus metrics export
1682
+ - Alternative libraries (polly.js, cockatiel)
1683
+ - Production patterns (graceful shutdown, serverless handlers)
1684
+
1685
+ ---
1686
+
1687
+ ## �🔧 Advanced Features
1618
1688
 
1619
1689
  For production deployments, the library provides comprehensive observability and monitoring capabilities:
1620
1690
 
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Configuration for state persistence resilience
3
+ */
4
+ export interface StateResilienceConfig {
5
+ /**
6
+ * Maximum number of retry attempts for saveState/loadState
7
+ * Default: 3
8
+ */
9
+ maxRetries?: number;
10
+ /**
11
+ * Fall back to clearState() when loadState fails
12
+ * Enables cold start recovery
13
+ * Default: false
14
+ */
15
+ fallbackOnLoadFailure?: boolean;
16
+ }
17
+ //# sourceMappingURL=StateResilienceConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateResilienceConfig.d.ts","sourceRoot":"","sources":["../src/ts/StateResilienceConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StateResilienceConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateResilienceConfig.js","sourceRoot":"","sources":["../src/ts/StateResilienceConfig.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import type { ProcessOptions, MovingAverageParams, ExponentialMovingAverageParams, CumulativeMovingAverageParams, KalmanFilterParams, RmsParams, RectifyParams, VarianceParams, ZScoreNormalizeParams, MeanAbsoluteValueParams, WaveformLengthParams, SlopeSignChangeParams, WillisonAmplitudeParams, LinearRegressionParams, LmsFilterParams, InterpolateParams, DecimateParams, ResampleParams, ConvolutionParams, WaveletTransformParams, HilbertEnvelopeParams, PipelineCallbacks, RlsFilterParams, TapCallback, PipelineStateSummary, BeamformerWeightsResult, CspResult, GscPreprocessorParams, ChannelSelectorParams, ChannelSelectParams, ChannelMergeParams, FilterBankParams, ClipDetectionParams, PeakDetectionParams, CspTransformParams, fftParams, stftParams, MelSpectrogramParams, MfccParams } from "./types.js";
2
+ import type { StateResilienceConfig } from "./StateResilienceConfig.js";
2
3
  import { type FilterOptions } from "./filters.js";
3
4
  /**
4
5
  * DSP Processor class that wraps the native C++ DspPipeline
@@ -11,7 +12,8 @@ declare class DspProcessor {
11
12
  private logBuffer;
12
13
  private tapCallbacks;
13
14
  private driftDetector;
14
- constructor(nativeInstance: any);
15
+ private stateResilienceConfig;
16
+ constructor(nativeInstance: any, stateResilienceConfig?: StateResilienceConfig);
15
17
  /**
16
18
  * Generate a Kafka-style topic for a log entry
17
19
  */
@@ -1890,17 +1892,26 @@ declare class DspProcessor {
1890
1892
  * // Free resources when done, pipeline cannot be used after this for processing the input signal since the stages have been disposed
1891
1893
  */
1892
1894
  dispose(): void;
1895
+ /**
1896
+ * Shared helper for retry logic with exponential backoff
1897
+ * @private
1898
+ */
1899
+ private executeWithRetry;
1893
1900
  /**
1894
1901
  * Save the current pipeline state
1895
1902
  * Supports two formats:
1896
1903
  * - JSON (default): Returns a string for text-based storage
1897
1904
  * - TOON: Returns a Buffer for binary serialization (60-70% smaller, faster)
1898
1905
  *
1906
+ * **Resilience Features:**
1907
+ * - Retry with exponential backoff: 3 attempts by default (100ms, 400ms, 1600ms)
1908
+ * - Throws error after all retries exhausted
1909
+ *
1899
1910
  * @param options - Optional configuration with format: 'json' | 'toon'
1900
1911
  * @returns JSON string (default) or Buffer (if format: 'toon')
1901
1912
  *
1902
1913
  * @example
1903
- * // Default JSON format
1914
+ * // Default JSON format with retry
1904
1915
  * const stateJson = await pipeline.saveState();
1905
1916
  * await redis.set('dsp:state', stateJson);
1906
1917
  *
@@ -1908,6 +1919,8 @@ declare class DspProcessor {
1908
1919
  * // TOON binary format (smaller, faster)
1909
1920
  * const stateBinary = await pipeline.saveState({ format: 'toon' });
1910
1921
  * await redis.set('dsp:state', stateBinary);
1922
+ *
1923
+ * @throws Error if all retries fail
1911
1924
  */
1912
1925
  saveState(options?: {
1913
1926
  format?: "json" | "toon";
@@ -1916,17 +1929,30 @@ declare class DspProcessor {
1916
1929
  * Load pipeline state from JSON string or TOON binary Buffer
1917
1930
  * Auto-detects format: Buffer → TOON, string → JSON
1918
1931
  *
1932
+ * **Resilience Features:**
1933
+ * - Retry with exponential backoff: 3 attempts by default (100ms, 400ms, 1600ms)
1934
+ * - Optional fallback: Calls clearState() on failure (enable with fallbackOnLoadFailure: true)
1935
+ * - By default throws error after retries exhausted
1936
+ *
1919
1937
  * @param state - JSON string or TOON Buffer containing the pipeline state
1920
- * @returns Promise that resolves to true if successful
1938
+ * @returns Promise that resolves to true if successful, false if failed and fell back to clearState
1921
1939
  *
1922
1940
  * @example
1923
- * // Load JSON state
1941
+ * // Load JSON state (throws on failure by default)
1924
1942
  * const stateJson = await redis.get('dsp:state');
1925
1943
  * if (stateJson) {
1926
1944
  * await pipeline.loadState(stateJson);
1927
1945
  * }
1928
1946
  *
1929
1947
  * @example
1948
+ * // With automatic fallback enabled
1949
+ * const pipeline = createDspPipeline({ fallbackOnLoadFailure: true });
1950
+ * const success = await pipeline.loadState(stateJson);
1951
+ * if (!success) {
1952
+ * console.log('State load failed, started with fresh state');
1953
+ * }
1954
+ *
1955
+ * @example
1930
1956
  * // Load TOON binary state (auto-detected)
1931
1957
  * const stateBinary = await redis.getBuffer('dsp:state');
1932
1958
  * if (stateBinary) {
@@ -1971,18 +1997,28 @@ declare class DspProcessor {
1971
1997
  }
1972
1998
  /**
1973
1999
  * Create a new DSP pipeline builder
1974
- * @param config - Optional Redis configuration for state persistence
2000
+ * @param stateResilienceConfig - Optional configuration for state persistence resilience
1975
2001
  * @returns A new DspProcessor instance
1976
2002
  *
1977
2003
  * @example
1978
- * // Create pipeline with Redis state persistence
2004
+ * // Create pipeline with default settings (3 retries, no fallback)
1979
2005
  * const pipeline = createDspPipeline();
1980
2006
  *
1981
2007
  * @example
1982
- * // Create pipeline without Redis (state is not persisted)
1983
- * const pipeline = createDspPipeline();
2008
+ * // Custom retry configuration
2009
+ * const pipeline = createDspPipeline({
2010
+ * maxRetries: 5,
2011
+ * fallbackOnLoadFailure: true
2012
+ * });
2013
+ *
2014
+ * @example
2015
+ * // Disable retries
2016
+ * const pipeline = createDspPipeline({
2017
+ * maxRetries: 1,
2018
+ * fallbackOnLoadFailure: false
2019
+ * });
1984
2020
  */
1985
- export declare function createDspPipeline(): DspProcessor;
2021
+ export declare function createDspPipeline(stateResilienceConfig?: StateResilienceConfig): DspProcessor;
1986
2022
  export { DspProcessor };
1987
2023
  import type { PcaResult, IcaResult, WhiteningResult, PcaTransformParams, IcaTransformParams, WhiteningTransformParams } from "./types.js";
1988
2024
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"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"}
package/dist/bindings.js CHANGED
@@ -33,7 +33,7 @@ catch (e) {
33
33
  * Provides a fluent API for building and processing DSP pipelines
34
34
  */
35
35
  class DspProcessor {
36
- constructor(nativeInstance) {
36
+ constructor(nativeInstance, stateResilienceConfig) {
37
37
  this.nativeInstance = nativeInstance;
38
38
  this.stages = [];
39
39
  this.tapCallbacks = [];
@@ -41,6 +41,12 @@ class DspProcessor {
41
41
  // Initialize circular buffer with capacity for typical log volume
42
42
  // (2-3 logs per process call, supports bursts up to 32)
43
43
  this.logBuffer = new CircularLogBuffer(32);
44
+ // Initialize state persistence resilience (simple retry logic only)
45
+ this.stateResilienceConfig = {
46
+ maxRetries: 3,
47
+ fallbackOnLoadFailure: false,
48
+ ...stateResilienceConfig,
49
+ };
44
50
  }
45
51
  /**
46
52
  * Generate a Kafka-style topic for a log entry
@@ -3393,17 +3399,46 @@ class DspProcessor {
3393
3399
  dispose() {
3394
3400
  this.nativeInstance.dispose();
3395
3401
  }
3402
+ /**
3403
+ * Shared helper for retry logic with exponential backoff
3404
+ * @private
3405
+ */
3406
+ async executeWithRetry(operationName, fn) {
3407
+ let lastError;
3408
+ const maxRetries = this.stateResilienceConfig.maxRetries || 3;
3409
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
3410
+ try {
3411
+ return await fn();
3412
+ }
3413
+ catch (error) {
3414
+ lastError = error instanceof Error ? error : new Error(String(error));
3415
+ if (attempt < maxRetries - 1) {
3416
+ // Exponential backoff with jitter: 100ms, 400ms, 1600ms
3417
+ const delay = Math.pow(2, attempt) * 100 + Math.random() * 50;
3418
+ await new Promise((resolve) => setTimeout(resolve, delay));
3419
+ console.warn(`[DspProcessor] ${operationName} attempt ${attempt + 1}/${maxRetries} failed: ${lastError.message}. Retrying in ${delay.toFixed(0)}ms...`);
3420
+ }
3421
+ }
3422
+ }
3423
+ const err = lastError || new Error(`${operationName} failed after all retries`);
3424
+ console.error(`[DspProcessor] ${operationName} failed: ${err.message}`);
3425
+ throw err;
3426
+ }
3396
3427
  /**
3397
3428
  * Save the current pipeline state
3398
3429
  * Supports two formats:
3399
3430
  * - JSON (default): Returns a string for text-based storage
3400
3431
  * - TOON: Returns a Buffer for binary serialization (60-70% smaller, faster)
3401
3432
  *
3433
+ * **Resilience Features:**
3434
+ * - Retry with exponential backoff: 3 attempts by default (100ms, 400ms, 1600ms)
3435
+ * - Throws error after all retries exhausted
3436
+ *
3402
3437
  * @param options - Optional configuration with format: 'json' | 'toon'
3403
3438
  * @returns JSON string (default) or Buffer (if format: 'toon')
3404
3439
  *
3405
3440
  * @example
3406
- * // Default JSON format
3441
+ * // Default JSON format with retry
3407
3442
  * const stateJson = await pipeline.saveState();
3408
3443
  * await redis.set('dsp:state', stateJson);
3409
3444
  *
@@ -3411,25 +3446,40 @@ class DspProcessor {
3411
3446
  * // TOON binary format (smaller, faster)
3412
3447
  * const stateBinary = await pipeline.saveState({ format: 'toon' });
3413
3448
  * await redis.set('dsp:state', stateBinary);
3449
+ *
3450
+ * @throws Error if all retries fail
3414
3451
  */
3415
3452
  async saveState(options) {
3416
- return this.nativeInstance.saveState(options);
3453
+ return this.executeWithRetry("saveState", () => this.nativeInstance.saveState(options));
3417
3454
  }
3418
3455
  /**
3419
3456
  * Load pipeline state from JSON string or TOON binary Buffer
3420
3457
  * Auto-detects format: Buffer → TOON, string → JSON
3421
3458
  *
3459
+ * **Resilience Features:**
3460
+ * - Retry with exponential backoff: 3 attempts by default (100ms, 400ms, 1600ms)
3461
+ * - Optional fallback: Calls clearState() on failure (enable with fallbackOnLoadFailure: true)
3462
+ * - By default throws error after retries exhausted
3463
+ *
3422
3464
  * @param state - JSON string or TOON Buffer containing the pipeline state
3423
- * @returns Promise that resolves to true if successful
3465
+ * @returns Promise that resolves to true if successful, false if failed and fell back to clearState
3424
3466
  *
3425
3467
  * @example
3426
- * // Load JSON state
3468
+ * // Load JSON state (throws on failure by default)
3427
3469
  * const stateJson = await redis.get('dsp:state');
3428
3470
  * if (stateJson) {
3429
3471
  * await pipeline.loadState(stateJson);
3430
3472
  * }
3431
3473
  *
3432
3474
  * @example
3475
+ * // With automatic fallback enabled
3476
+ * const pipeline = createDspPipeline({ fallbackOnLoadFailure: true });
3477
+ * const success = await pipeline.loadState(stateJson);
3478
+ * if (!success) {
3479
+ * console.log('State load failed, started with fresh state');
3480
+ * }
3481
+ *
3482
+ * @example
3433
3483
  * // Load TOON binary state (auto-detected)
3434
3484
  * const stateBinary = await redis.getBuffer('dsp:state');
3435
3485
  * if (stateBinary) {
@@ -3437,7 +3487,18 @@ class DspProcessor {
3437
3487
  * }
3438
3488
  */
3439
3489
  async loadState(state) {
3440
- return this.nativeInstance.loadState(state);
3490
+ try {
3491
+ return await this.executeWithRetry("loadState", () => this.nativeInstance.loadState(state));
3492
+ }
3493
+ catch (error) {
3494
+ // Fallback: Clear state and start fresh (cold start recovery)
3495
+ if (this.stateResilienceConfig.fallbackOnLoadFailure) {
3496
+ console.warn("[DspProcessor] Falling back to clearState() - starting with fresh state");
3497
+ this.clearState();
3498
+ return false; // Indicate fallback was used
3499
+ }
3500
+ throw error;
3501
+ }
3441
3502
  }
3442
3503
  /**
3443
3504
  * Clear all pipeline state (reset all filters to initial state)
@@ -3480,20 +3541,30 @@ class DspProcessor {
3480
3541
  }
3481
3542
  /**
3482
3543
  * Create a new DSP pipeline builder
3483
- * @param config - Optional Redis configuration for state persistence
3544
+ * @param stateResilienceConfig - Optional configuration for state persistence resilience
3484
3545
  * @returns A new DspProcessor instance
3485
3546
  *
3486
3547
  * @example
3487
- * // Create pipeline with Redis state persistence
3548
+ * // Create pipeline with default settings (3 retries, no fallback)
3488
3549
  * const pipeline = createDspPipeline();
3489
3550
  *
3490
3551
  * @example
3491
- * // Create pipeline without Redis (state is not persisted)
3492
- * const pipeline = createDspPipeline();
3552
+ * // Custom retry configuration
3553
+ * const pipeline = createDspPipeline({
3554
+ * maxRetries: 5,
3555
+ * fallbackOnLoadFailure: true
3556
+ * });
3557
+ *
3558
+ * @example
3559
+ * // Disable retries
3560
+ * const pipeline = createDspPipeline({
3561
+ * maxRetries: 1,
3562
+ * fallbackOnLoadFailure: false
3563
+ * });
3493
3564
  */
3494
- export function createDspPipeline() {
3565
+ export function createDspPipeline(stateResilienceConfig) {
3495
3566
  const nativeInstance = new DspAddon.DspPipeline();
3496
- return new DspProcessor(nativeInstance);
3567
+ return new DspProcessor(nativeInstance, stateResilienceConfig);
3497
3568
  }
3498
3569
  export { DspProcessor };
3499
3570
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../src/ts/bindings.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,4 +13,5 @@ export type { ProcessOptions, MovingAverageParams, RmsParams, RectifyParams, Var
13
13
  export type { FilterBankOptions, FilterCoefficients, FilterScale, FilterBankType, } from "./bindings.js";
14
14
  export type { RouteHandler, Route, RouteOptions, RouteMetrics, PatternMatcher, } from "./TopicRouter.js";
15
15
  export type { BackendConfig } from "./backends.js";
16
+ export type { StateResilienceConfig } from "./StateResilienceConfig.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/ts/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,OAAO,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,aAAa,EACb,uBAAuB,EACvB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EAGvB,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,YAAY,EAGZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EAGjB,eAAe,EACf,eAAe,EAGf,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/ts/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,OAAO,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,aAAa,EACb,uBAAuB,EACvB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EAGvB,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,YAAY,EAGZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EAGjB,eAAe,EACf,eAAe,EAGf,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dspx",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "High-performance DSP library with native C++ acceleration and Redis state persistence",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
Binary file
@@ -41,7 +41,7 @@
41
41
  #include "adapters/TimeAlignmentStage.h" // Time Alignment stage
42
42
 
43
43
  #include <iostream>
44
- #include <thread> // For std::this_thread in debug code
44
+ #include <thread> // For std::this_thread in debug code
45
45
 
46
46
  namespace dsp
47
47
  {
@@ -2653,11 +2653,29 @@ namespace dsp
2653
2653
  }
2654
2654
 
2655
2655
  /**
2656
- * Load pipeline state from JSON string or TOON Buffer with inline validation.
2657
- * NEW BEHAVIOR: Only loads state if saved stages match current stages EXACTLY.
2658
- * This prevents pipeline corruption from incompatible state.
2656
+ * Load pipeline state from JSON string or TOON Buffer with validation.
2659
2657
  *
2660
- * If stage types or count don't match, throws an error instead of trying to merge.
2658
+ * RESILIENCE FEATURES:
2659
+ * - Validates stage types and count before loading
2660
+ * - TOON path: Validates upfront, deserializes in-place
2661
+ * - JSON path: Build newStages → Validate → Atomic swap (fully transactional)
2662
+ * - Prevents pipeline corruption from incompatible state
2663
+ *
2664
+ * BEHAVIOR:
2665
+ * - Only loads state if saved stages match current stages EXACTLY (type and count)
2666
+ * - TOON: Validates all stages before deserialization, fails fast on mismatch
2667
+ * - JSON: Builds temporary stages, only swaps if fully successful
2668
+ * - Throws error with detailed message if validation or loading fails
2669
+ *
2670
+ * ERROR HANDLING:
2671
+ * - Stage count mismatch: Abort immediately (TOON may have partial changes)
2672
+ * - Stage type mismatch: Abort immediately (TOON may have partial changes)
2673
+ * - Deserialization error: Throws (TOON may have partial state changes)
2674
+ * - Note: TOON format modifies stages in-place, cannot rollback
2675
+ *
2676
+ * @param info[0] - JSON string or TOON Buffer containing pipeline state
2677
+ * @returns Boolean - true if successful
2678
+ * @throws Error if validation or deserialization fails
2661
2679
  */
2662
2680
  Napi::Value DspPipeline::LoadState(const Napi::CallbackInfo &info)
2663
2681
  {
@@ -2712,28 +2730,42 @@ namespace dsp
2712
2730
 
2713
2731
  if (toonDataPtr != nullptr && toonDataLen > 0)
2714
2732
  {
2733
+ // TOON binary path with upfront validation
2715
2734
  try
2716
2735
  {
2717
2736
  const bool debugToon = std::getenv("DSPX_DEBUG_TOON") != nullptr;
2737
+
2738
+ if (debugToon)
2739
+ {
2740
+ std::cout << "[TOON] Parsing and validating TOON buffer" << std::endl;
2741
+ }
2742
+
2718
2743
  dsp::toon::Deserializer deserializer(toonDataPtr, toonDataLen);
2719
2744
  deserializer.consumeToken(dsp::toon::T_OBJECT_START);
2720
2745
  std::string key = deserializer.readString();
2721
2746
  double timestamp = deserializer.readDouble();
2722
2747
  key = deserializer.readString();
2723
2748
  int32_t savedStageCount = deserializer.readInt32();
2749
+
2750
+ // Validate stage count upfront
2751
+ if (static_cast<size_t>(savedStageCount) != m_stages.size())
2752
+ {
2753
+ throw std::runtime_error("TOON Load: Stage count mismatch. Saved state has " +
2754
+ std::to_string(savedStageCount) + " stages, current has " +
2755
+ std::to_string(m_stages.size()) + ".");
2756
+ }
2757
+
2724
2758
  key = deserializer.readString();
2725
2759
  deserializer.consumeToken(dsp::toon::T_ARRAY_START);
2726
2760
 
2727
- // SIMPLER APPROACH: Validate and load in a single pass
2728
- // For each saved stage, check type matches before deserializing
2761
+ // Validate stage types and deserialize
2729
2762
  size_t stageIdx = 0;
2730
2763
  while (deserializer.peekToken() != dsp::toon::T_ARRAY_END)
2731
2764
  {
2732
- // Check we haven't exceeded current stage count
2733
2765
  if (stageIdx >= m_stages.size())
2734
2766
  {
2735
- throw std::runtime_error("TOON Load: Stage count mismatch. Saved state has more stages than current pipeline (" +
2736
- std::to_string(m_stages.size()) + ").");
2767
+ throw std::runtime_error("TOON Load: Unexpected extra stage in buffer at index " +
2768
+ std::to_string(stageIdx) + ".");
2737
2769
  }
2738
2770
 
2739
2771
  deserializer.consumeToken(dsp::toon::T_OBJECT_START);
@@ -2746,8 +2778,7 @@ namespace dsp
2746
2778
  {
2747
2779
  throw std::runtime_error("TOON Load: Stage type mismatch at index " +
2748
2780
  std::to_string(stageIdx) + ". Expected '" + currentType +
2749
- "', got '" + savedType +
2750
- "'. Cannot load incompatible state.");
2781
+ "', got '" + savedType + "'.");
2751
2782
  }
2752
2783
 
2753
2784
  deserializer.readString(); // "state" key
@@ -2758,25 +2789,19 @@ namespace dsp
2758
2789
  << "]: type='" << savedType << "'" << std::endl;
2759
2790
  }
2760
2791
 
2761
- // Deserialize directly into the existing stage
2792
+ // Deserialize into the existing stage
2762
2793
  m_stages[stageIdx]->deserializeToon(deserializer);
2763
2794
 
2764
2795
  deserializer.consumeToken(dsp::toon::T_OBJECT_END);
2765
2796
  stageIdx++;
2766
2797
  }
2767
2798
 
2768
- // Verify we loaded all current stages
2799
+ // Final validation
2769
2800
  if (stageIdx != m_stages.size())
2770
2801
  {
2771
- throw std::runtime_error("TOON Load: Stage count mismatch. Saved state has " +
2772
- std::to_string(stageIdx) + " stages, current has " +
2773
- std::to_string(m_stages.size()) + ".");
2774
- }
2775
-
2776
- if (debugToon)
2777
- {
2778
- std::cout << "[TOON] Validation passed and loaded " << stageIdx
2779
- << " stages successfully" << std::endl;
2802
+ throw std::runtime_error("TOON Load: Stage count mismatch after parsing. Expected " +
2803
+ std::to_string(m_stages.size()) + " stages, parsed " +
2804
+ std::to_string(stageIdx) + ".");
2780
2805
  }
2781
2806
 
2782
2807
  deserializer.consumeToken(dsp::toon::T_ARRAY_END);
@@ -2784,15 +2809,16 @@ namespace dsp
2784
2809
 
2785
2810
  if (debugToon)
2786
2811
  {
2787
- std::cout << "[TOON] Load complete. Restored state into "
2788
- << stageIdx << " stages" << std::endl;
2812
+ std::cout << "[TOON] Successfully loaded " << stageIdx << " stages." << std::endl;
2789
2813
  }
2814
+
2790
2815
  return Napi::Boolean::New(env, true);
2791
2816
  }
2792
2817
  catch (const std::exception &e)
2793
2818
  {
2794
- Napi::Error::New(env, std::string("TOON Load Failed: ") + e.what()).ThrowAsJavaScriptException();
2795
- return Napi::Boolean::New(env, false);
2819
+ std::string errorMsg = std::string("TOON Load failed: ") + e.what();
2820
+ Napi::Error::New(env, errorMsg).ThrowAsJavaScriptException();
2821
+ return env.Undefined();
2796
2822
  }
2797
2823
  }
2798
2824
 
@@ -2869,6 +2895,7 @@ namespace dsp
2869
2895
  auto newStage = it->second(stageState);
2870
2896
 
2871
2897
  // Restore the full internal buffer state
2898
+ // NOTE: Validation errors here should propagate (fail-fast)
2872
2899
  newStage->deserializeState(stageState);
2873
2900
 
2874
2901
  // Add to our new pipeline
@@ -2876,7 +2903,18 @@ namespace dsp
2876
2903
  }
2877
2904
  catch (const std::exception &e)
2878
2905
  {
2879
- // If reconstruction fails (e.g. missing params), log warning and skip
2906
+ // Check if this is a validation error (contains keywords like "validation", "mismatch")
2907
+ std::string errorMsg = e.what();
2908
+ if (errorMsg.find("validation") != std::string::npos ||
2909
+ errorMsg.find("mismatch") != std::string::npos ||
2910
+ errorMsg.find("Validation") != std::string::npos ||
2911
+ errorMsg.find("Mismatch") != std::string::npos)
2912
+ {
2913
+ // Validation error - propagate it (fail the entire load)
2914
+ throw;
2915
+ }
2916
+
2917
+ // Construction error (e.g., missing params) - log warning and skip
2880
2918
  std::cerr << "Warning: Failed to reconstruct stage " << savedType
2881
2919
  << ": " << e.what() << std::endl;
2882
2920
  }
@@ -18,13 +18,14 @@
18
18
 
19
19
  // Debug assertion macro
20
20
  #ifdef _DEBUG
21
- #define ASSERT_BOUNDS(idx, maxSize, msg) \
22
- if ((idx) >= (maxSize)) { \
23
- std::cerr << "[BOUNDS ERROR] " << msg << ": idx=" << (idx) << ", max=" << (maxSize) << std::endl; \
24
- throw std::out_of_range(msg); \
25
- }
21
+ #define ASSERT_BOUNDS(idx, maxSize, msg) \
22
+ if ((idx) >= (maxSize)) \
23
+ { \
24
+ std::cerr << "[BOUNDS ERROR] " << msg << ": idx=" << (idx) << ", max=" << (maxSize) << std::endl; \
25
+ throw std::out_of_range(msg); \
26
+ }
26
27
  #else
27
- #define ASSERT_BOUNDS(idx, maxSize, msg) ((void)0)
28
+ #define ASSERT_BOUNDS(idx, maxSize, msg) ((void)0)
28
29
  #endif
29
30
 
30
31
  // Helper function to check debug flag
@@ -234,13 +235,58 @@ namespace dsp
234
235
  std::to_string(outIdx) + ", targetTime=" + std::to_string(targetTime));
235
236
 
236
237
  case GapPolicy::ZERO_FILL:
238
+ {
239
+ size_t writeIdx = outIdx * channels;
240
+ ASSERT_BOUNDS(writeIdx + channels - 1, outputSize, "ZERO_FILL output write");
241
+
242
+ #if defined(HAS_AVX2)
243
+ // AVX2: Zero 8 floats at a time
244
+ __m256 zero = _mm256_setzero_ps();
245
+ int ch = 0;
246
+ for (; ch + 8 <= channels; ch += 8)
247
+ {
248
+ _mm256_storeu_ps(&outputBuffer[writeIdx + ch], zero);
249
+ }
250
+ // Scalar remainder
251
+ for (; ch < channels; ++ch)
252
+ {
253
+ outputBuffer[writeIdx + ch] = 0.0f;
254
+ }
255
+ #elif defined(HAS_SSE)
256
+ // SSE: Zero 4 floats at a time
257
+ __m128 zero = _mm_setzero_ps();
258
+ int ch = 0;
259
+ for (; ch + 4 <= channels; ch += 4)
260
+ {
261
+ _mm_storeu_ps(&outputBuffer[writeIdx + ch], zero);
262
+ }
263
+ // Scalar remainder
264
+ for (; ch < channels; ++ch)
265
+ {
266
+ outputBuffer[writeIdx + ch] = 0.0f;
267
+ }
268
+ #elif defined(HAS_NEON)
269
+ // NEON: Zero 4 floats at a time
270
+ float32x4_t zero = vdupq_n_f32(0.0f);
271
+ int ch = 0;
272
+ for (; ch + 4 <= channels; ch += 4)
273
+ {
274
+ vst1q_f32(&outputBuffer[writeIdx + ch], zero);
275
+ }
276
+ // Scalar remainder
277
+ for (; ch < channels; ++ch)
278
+ {
279
+ outputBuffer[writeIdx + ch] = 0.0f;
280
+ }
281
+ #else
282
+ // Scalar fallback
237
283
  for (int ch = 0; ch < channels; ++ch)
238
284
  {
239
- size_t writeIdx = outIdx * channels + ch;
240
- ASSERT_BOUNDS(writeIdx, outputSize, "ZERO_FILL output write");
241
- outputBuffer[writeIdx] = 0.0f;
285
+ outputBuffer[writeIdx + ch] = 0.0f;
242
286
  }
243
- break;
287
+ #endif
288
+ }
289
+ break;
244
290
 
245
291
  case GapPolicy::HOLD:
246
292
  // Hold last valid value before gap
@@ -260,7 +306,7 @@ namespace dsp
260
306
  float t0 = timestamps[gapStart * channels];
261
307
  float t1 = timestamps[gapEnd * channels];
262
308
  float denominator = t1 - t0;
263
-
309
+
264
310
  // Protection against division by zero
265
311
  if (std::abs(denominator) < 1e-6f)
266
312
  {
@@ -632,6 +678,138 @@ namespace dsp
632
678
 
633
679
  size_t centerIdx = findBracketingInterval(targetTime, timestamps, numSamples, channels, searchStart);
634
680
 
681
+ #if defined(HAS_AVX2) || defined(HAS_SSE) || defined(HAS_NEON)
682
+ // SIMD-optimized path: Process 4 samples at a time
683
+ float values[windowSize] = {0};
684
+ float weights[windowSize] = {0};
685
+ int validCount = 0;
686
+
687
+ // Gather values and compute weights
688
+ for (int offset = -windowSize / 2; offset < windowSize / 2; ++offset)
689
+ {
690
+ int sampleIdx = static_cast<int>(centerIdx) + offset;
691
+ if (sampleIdx < 0 || sampleIdx >= static_cast<int>(numSamples))
692
+ continue;
693
+
694
+ float t = timestamps[sampleIdx * channels];
695
+ float v = samples[sampleIdx * channels + channel];
696
+
697
+ // Sinc function: sin(π*x) / (π*x)
698
+ float x = (targetTime - t) * m_estimatedSampleRate / 1000.0f;
699
+ float sinc = (std::abs(x) < 1e-6f) ? 1.0f : std::sin(M_PI * x) / (M_PI * x);
700
+
701
+ // Hamming window
702
+ float window = 0.54f - 0.46f * std::cos(2.0f * M_PI * (offset + windowSize / 2.0f) / windowSize);
703
+
704
+ values[validCount] = v;
705
+ weights[validCount] = sinc * window;
706
+ validCount++;
707
+ }
708
+
709
+ // SIMD accumulation
710
+ float sum = 0.0f;
711
+ float weightSum = 0.0f;
712
+
713
+ #if defined(HAS_AVX2)
714
+ __m256 vsum = _mm256_setzero_ps();
715
+ __m256 wsum = _mm256_setzero_ps();
716
+
717
+ int i = 0;
718
+ for (; i + 8 <= validCount; i += 8)
719
+ {
720
+ __m256 v = _mm256_loadu_ps(&values[i]);
721
+ __m256 w = _mm256_loadu_ps(&weights[i]);
722
+ vsum = _mm256_add_ps(vsum, _mm256_mul_ps(v, w)); // sum += v * w
723
+ wsum = _mm256_add_ps(wsum, w);
724
+ }
725
+
726
+ // Horizontal sum for AVX2
727
+ __m128 vsum_low = _mm256_castps256_ps128(vsum);
728
+ __m128 vsum_high = _mm256_extractf128_ps(vsum, 1);
729
+ __m128 vsum128 = _mm_add_ps(vsum_low, vsum_high);
730
+
731
+ __m128 wsum_low = _mm256_castps256_ps128(wsum);
732
+ __m128 wsum_high = _mm256_extractf128_ps(wsum, 1);
733
+ __m128 wsum128 = _mm_add_ps(wsum_low, wsum_high);
734
+
735
+ // Continue with SSE reduction
736
+ vsum128 = _mm_hadd_ps(vsum128, vsum128);
737
+ vsum128 = _mm_hadd_ps(vsum128, vsum128);
738
+ sum = _mm_cvtss_f32(vsum128);
739
+
740
+ wsum128 = _mm_hadd_ps(wsum128, wsum128);
741
+ wsum128 = _mm_hadd_ps(wsum128, wsum128);
742
+ weightSum = _mm_cvtss_f32(wsum128);
743
+
744
+ // Scalar remainder
745
+ for (; i < validCount; ++i)
746
+ {
747
+ sum += values[i] * weights[i];
748
+ weightSum += weights[i];
749
+ }
750
+ #elif defined(HAS_SSE)
751
+ __m128 vsum = _mm_setzero_ps();
752
+ __m128 wsum = _mm_setzero_ps();
753
+
754
+ int i = 0;
755
+ for (; i + 4 <= validCount; i += 4)
756
+ {
757
+ __m128 v = _mm_loadu_ps(&values[i]);
758
+ __m128 w = _mm_loadu_ps(&weights[i]);
759
+ vsum = _mm_add_ps(vsum, _mm_mul_ps(v, w));
760
+ wsum = _mm_add_ps(wsum, w);
761
+ }
762
+
763
+ // Horizontal sum
764
+ vsum = _mm_hadd_ps(vsum, vsum);
765
+ vsum = _mm_hadd_ps(vsum, vsum);
766
+ sum = _mm_cvtss_f32(vsum);
767
+
768
+ wsum = _mm_hadd_ps(wsum, wsum);
769
+ wsum = _mm_hadd_ps(wsum, wsum);
770
+ weightSum = _mm_cvtss_f32(wsum);
771
+
772
+ // Scalar remainder
773
+ for (; i < validCount; ++i)
774
+ {
775
+ sum += values[i] * weights[i];
776
+ weightSum += weights[i];
777
+ }
778
+ #elif defined(HAS_NEON)
779
+ float32x4_t vsum = vdupq_n_f32(0.0f);
780
+ float32x4_t wsum = vdupq_n_f32(0.0f);
781
+
782
+ int i = 0;
783
+ for (; i + 4 <= validCount; i += 4)
784
+ {
785
+ float32x4_t v = vld1q_f32(&values[i]);
786
+ float32x4_t w = vld1q_f32(&weights[i]);
787
+ vsum = vmlaq_f32(vsum, v, w); // vsum += v * w
788
+ wsum = vaddq_f32(wsum, w);
789
+ }
790
+
791
+ // Horizontal sum
792
+ float32x2_t vsum_low = vget_low_f32(vsum);
793
+ float32x2_t vsum_high = vget_high_f32(vsum);
794
+ float32x2_t vsum_pair = vadd_f32(vsum_low, vsum_high);
795
+ sum = vget_lane_f32(vpadd_f32(vsum_pair, vsum_pair), 0);
796
+
797
+ float32x2_t wsum_low = vget_low_f32(wsum);
798
+ float32x2_t wsum_high = vget_high_f32(wsum);
799
+ float32x2_t wsum_pair = vadd_f32(wsum_low, wsum_high);
800
+ weightSum = vget_lane_f32(vpadd_f32(wsum_pair, wsum_pair), 0);
801
+
802
+ // Scalar remainder
803
+ for (; i < validCount; ++i)
804
+ {
805
+ sum += values[i] * weights[i];
806
+ weightSum += weights[i];
807
+ }
808
+ #endif
809
+
810
+ output = (weightSum > 0.0f) ? (sum / weightSum) : 0.0f;
811
+ #else
812
+ // Scalar fallback
635
813
  float sum = 0.0f;
636
814
  float weightSum = 0.0f;
637
815
 
@@ -645,7 +823,7 @@ namespace dsp
645
823
  float v = samples[sampleIdx * channels + channel];
646
824
 
647
825
  // Sinc function: sin(π*x) / (π*x)
648
- float x = (targetTime - t) * m_estimatedSampleRate / 1000.0f; // Normalize by sample rate
826
+ float x = (targetTime - t) * m_estimatedSampleRate / 1000.0f;
649
827
  float sinc = (std::abs(x) < 1e-6f) ? 1.0f : std::sin(M_PI * x) / (M_PI * x);
650
828
 
651
829
  // Hamming window
@@ -657,6 +835,7 @@ namespace dsp
657
835
  }
658
836
 
659
837
  output = (weightSum > 0.0f) ? (sum / weightSum) : 0.0f;
838
+ #endif
660
839
  searchStart = centerIdx;
661
840
  }
662
841
 
@@ -58,11 +58,11 @@ namespace dsp
58
58
  * TimeAlignmentStage: Production-grade irregular timestamp resampling
59
59
  *
60
60
  * This stage solves the problems identified in Gemini's analysis:
61
- * 1. Time-based coordinate system (not index-based)
62
- * 2. Gap detection and handling policies
63
- * 3. Clock drift compensation
64
- * 4. Proper SIMD optimization for irregular data
65
- * 5. Configurable extrapolation/error handling
61
+ * 1. Time-based coordinate system (not index-based)
62
+ * 2. Gap detection and handling policies
63
+ * 3. Clock drift compensation
64
+ * 4. Proper SIMD optimization for irregular data
65
+ * 5. Configurable extrapolation/error handling
66
66
  *
67
67
  * Usage:
68
68
  * auto stage = TimeAlignmentStage(