@aelionsdk/audio 1.1.0-rc.1 → 1.2.0-rc.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
@@ -8,7 +8,7 @@ Audio scheduling and deterministic PCM processing primitives for AelionSDK.
8
8
  npm install @aelionsdk/audio@next
9
9
  ```
10
10
 
11
- `next` currently resolves to `1.1.0-rc.1`. Product applications should prefer
11
+ `next` currently resolves to `1.2.0-rc.2`. Product applications should prefer
12
12
  `@aelionsdk/sdk`; use this package directly when building a custom audio host,
13
13
  analysis pipeline or renderer integration.
14
14
 
@@ -18,6 +18,8 @@ analysis pipeline or renderer integration.
18
18
  - streaming resampling and pitch-preserving time stretch;
19
19
  - SharedArrayBuffer and transferable PCM queues;
20
20
  - AudioWorklet clocks, device state and video scheduling.
21
+ - bounded beat and audio-energy change analysis. Audio analysis does not claim
22
+ pixel-based video scene detection.
21
23
 
22
24
  Queue and clock instances own browser and buffer resources. Stop producers,
23
25
  cancel pending work and dispose the owning session or primitive when playback
@@ -0,0 +1,75 @@
1
+ /** A bounded PCM source for offline analysis, mirroring the waveform readFrames contract. */
2
+ export interface AnalysisSource {
3
+ readonly sampleRate: number;
4
+ readonly channelCount: number;
5
+ readonly totalFrames: number;
6
+ readonly readFrames: (startFrame: number, frameCount: number, signal?: AbortSignal) => Promise<Float32Array>;
7
+ readonly signal?: AbortSignal;
8
+ readonly onProgress?: (progress: number) => void;
9
+ }
10
+ /** A single detected beat. */
11
+ export interface BeatMarker {
12
+ /** Beat start frame. */
13
+ readonly frame: number;
14
+ /** Frame-based duration (estimated from the analysis window). */
15
+ readonly frameCount: number;
16
+ /** Normalized beat strength, 0..1. */
17
+ readonly strength: number;
18
+ }
19
+ /** Result of beat detection over a PCM source. */
20
+ export interface BeatDetectionResult {
21
+ readonly sampleRate: number;
22
+ readonly totalFrames: number;
23
+ readonly beats: readonly BeatMarker[];
24
+ }
25
+ /** A candidate boundary inferred from a discontinuity in audio energy. */
26
+ export interface AudioEnergyBoundary {
27
+ /** Audio frame where the energy change is detected. */
28
+ readonly frame: number;
29
+ /** Normalized change magnitude, 0..1. */
30
+ readonly magnitude: number;
31
+ }
32
+ /** Result of audio-energy change detection over a PCM source. */
33
+ export interface AudioEnergyChangeDetectionResult {
34
+ readonly sampleRate: number;
35
+ readonly totalFrames: number;
36
+ readonly changes: readonly AudioEnergyBoundary[];
37
+ }
38
+ /** @deprecated Use AudioEnergyBoundary; audio alone cannot detect video scenes. */
39
+ export type SceneBoundary = AudioEnergyBoundary;
40
+ /** @deprecated Use AudioEnergyChangeDetectionResult. */
41
+ export interface SceneDetectionResult {
42
+ readonly sampleRate: number;
43
+ readonly totalFrames: number;
44
+ readonly scenes: readonly AudioEnergyBoundary[];
45
+ }
46
+ /**
47
+ * Detect beats from an interleaved PCM source using a bounded energy-envelope
48
+ * onset detector. The signal is processed in fixed windows, computing a local
49
+ * RMS envelope; an onset is flagged where the envelope rises above the local
50
+ * noise floor by `minimumOnsetDb`. Bounded memory: only the current window and
51
+ * a rolling floor are retained.
52
+ */
53
+ export declare function detectBeats(options: AnalysisSource & {
54
+ readonly minimumOnsetDb?: number;
55
+ }): Promise<BeatDetectionResult>;
56
+ /**
57
+ * Detect audio-energy discontinuities as editing candidates. This function
58
+ * does not inspect video pixels and therefore deliberately makes no claim to
59
+ * detect scene boundaries.
60
+ */
61
+ export declare function detectAudioEnergyChanges(options: AnalysisSource & {
62
+ readonly minimumJumpDb?: number;
63
+ }): Promise<AudioEnergyChangeDetectionResult>;
64
+ /**
65
+ * @deprecated Audio-only input cannot detect video scenes. Use
66
+ * `detectAudioEnergyChanges` and treat the result as editing candidates.
67
+ */
68
+ export declare function detectScenes(options: AnalysisSource & {
69
+ readonly minimumJumpDb?: number;
70
+ }): Promise<{
71
+ sampleRate: number;
72
+ totalFrames: number;
73
+ scenes: readonly AudioEnergyBoundary[];
74
+ }>;
75
+ //# sourceMappingURL=analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,CACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,iEAAiE;AACjE,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAClD;AAED,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAEhD,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACjD;AAmBD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,GAAG;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7D,OAAO,CAAC,mBAAmB,CAAC,CAkC9B;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,GAAG;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,OAAO,CAAC,gCAAgC,CAAC,CA+B3C;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG;IAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE;;;;GAO/F"}
@@ -0,0 +1,111 @@
1
+ import { throwIfAborted } from '@aelionsdk/core';
2
+ const MIN_CHANGE_DB = 6;
3
+ function validateSource(options, threshold, label) {
4
+ if (!Number.isSafeInteger(options.sampleRate) || options.sampleRate <= 0) {
5
+ throw new RangeError(`${label} sampleRate must be a positive safe integer`);
6
+ }
7
+ if (!Number.isSafeInteger(options.channelCount) || options.channelCount <= 0) {
8
+ throw new RangeError(`${label} channelCount must be a positive safe integer`);
9
+ }
10
+ if (!Number.isSafeInteger(options.totalFrames) || options.totalFrames < 0) {
11
+ throw new RangeError(`${label} totalFrames must be a non-negative safe integer`);
12
+ }
13
+ if (!Number.isFinite(threshold) || threshold < 0) {
14
+ throw new RangeError(`${label} threshold must be a non-negative finite number`);
15
+ }
16
+ }
17
+ /**
18
+ * Detect beats from an interleaved PCM source using a bounded energy-envelope
19
+ * onset detector. The signal is processed in fixed windows, computing a local
20
+ * RMS envelope; an onset is flagged where the envelope rises above the local
21
+ * noise floor by `minimumOnsetDb`. Bounded memory: only the current window and
22
+ * a rolling floor are retained.
23
+ */
24
+ export async function detectBeats(options) {
25
+ const sampleRate = options.sampleRate;
26
+ const channelCount = options.channelCount;
27
+ const totalFrames = options.totalFrames;
28
+ const minimumOnsetDb = options.minimumOnsetDb ?? MIN_CHANGE_DB;
29
+ validateSource(options, minimumOnsetDb, 'Beat detection');
30
+ const windowFrames = Math.max(1, Math.round(sampleRate / 20));
31
+ const beats = [];
32
+ let previousDb = 0;
33
+ let floor = 0;
34
+ let lastBeatFrame = -windowFrames;
35
+ for (let startFrame = 0; startFrame < totalFrames; startFrame += windowFrames) {
36
+ throwIfAborted(options.signal, 'Beat detection');
37
+ const frameCount = Math.min(windowFrames, totalFrames - startFrame);
38
+ const pcm = await options.readFrames(startFrame, frameCount, options.signal);
39
+ if (pcm.length !== frameCount * channelCount) {
40
+ throw new RangeError('Beat source returned an unexpected PCM length');
41
+ }
42
+ let squares = 0;
43
+ for (const sample of pcm)
44
+ squares += sample * sample;
45
+ const envelope = Math.sqrt(squares / Math.max(1, frameCount * channelCount));
46
+ const db = 20 * Math.log10(Math.max(1e-9, envelope));
47
+ floor = floor === 0 ? db : Math.max(-120, floor * 0.95 + db * 0.05);
48
+ const onset = db - floor > minimumOnsetDb && db > previousDb;
49
+ if (onset && startFrame - lastBeatFrame >= windowFrames) {
50
+ const strength = Math.min(1, Math.max(0, (db - floor) / 24));
51
+ beats.push({ frame: startFrame, frameCount, strength });
52
+ lastBeatFrame = startFrame;
53
+ }
54
+ previousDb = db;
55
+ options.onProgress?.((startFrame + frameCount) / totalFrames);
56
+ }
57
+ if (totalFrames === 0)
58
+ options.onProgress?.(1);
59
+ return { sampleRate, totalFrames, beats };
60
+ }
61
+ /**
62
+ * Detect audio-energy discontinuities as editing candidates. This function
63
+ * does not inspect video pixels and therefore deliberately makes no claim to
64
+ * detect scene boundaries.
65
+ */
66
+ export async function detectAudioEnergyChanges(options) {
67
+ const sampleRate = options.sampleRate;
68
+ const channelCount = options.channelCount;
69
+ const totalFrames = options.totalFrames;
70
+ const minimumJumpDb = options.minimumJumpDb ?? MIN_CHANGE_DB;
71
+ validateSource(options, minimumJumpDb, 'Audio energy analysis');
72
+ const windowFrames = Math.max(1, Math.round(sampleRate / 10));
73
+ const changes = [];
74
+ let previousDb = 0;
75
+ for (let startFrame = 0; startFrame < totalFrames; startFrame += windowFrames) {
76
+ throwIfAborted(options.signal, 'Scene detection');
77
+ const frameCount = Math.min(windowFrames, totalFrames - startFrame);
78
+ const pcm = await options.readFrames(startFrame, frameCount, options.signal);
79
+ if (pcm.length !== frameCount * channelCount) {
80
+ throw new RangeError('Scene source returned an unexpected PCM length');
81
+ }
82
+ let squares = 0;
83
+ for (const sample of pcm)
84
+ squares += sample * sample;
85
+ const envelope = Math.sqrt(squares / Math.max(1, frameCount * channelCount));
86
+ const db = 20 * Math.log10(Math.max(1e-9, envelope));
87
+ if (startFrame > 0) {
88
+ const jump = Math.abs(db - previousDb);
89
+ if (jump >= minimumJumpDb) {
90
+ changes.push({ frame: startFrame, magnitude: Math.min(1, jump / 24) });
91
+ }
92
+ }
93
+ previousDb = db;
94
+ options.onProgress?.((startFrame + frameCount) / totalFrames);
95
+ }
96
+ if (totalFrames === 0)
97
+ options.onProgress?.(1);
98
+ return { sampleRate, totalFrames, changes };
99
+ }
100
+ /**
101
+ * @deprecated Audio-only input cannot detect video scenes. Use
102
+ * `detectAudioEnergyChanges` and treat the result as editing candidates.
103
+ */
104
+ export async function detectScenes(options) {
105
+ const result = await detectAudioEnergyChanges(options);
106
+ return {
107
+ sampleRate: result.sampleRate,
108
+ totalFrames: result.totalFrames,
109
+ scenes: result.changes,
110
+ };
111
+ }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './ir-mixer.js';
2
2
  export * from './processing.js';
3
+ export * from './analysis.js';
3
4
  export * from './pcm-ring.js';
4
5
  export * from './worklet-clock.js';
5
6
  export * from './video-scheduler.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './ir-mixer.js';
2
2
  export * from './processing.js';
3
+ export * from './analysis.js';
3
4
  export * from './pcm-ring.js';
4
5
  export * from './worklet-clock.js';
5
6
  export * from './video-scheduler.js';
@@ -76,6 +76,7 @@ export interface BuildWaveformPeaksOptions {
76
76
  readonly onProgress?: (progress: number) => void;
77
77
  }
78
78
  export declare function buildWaveformPeaks(options: BuildWaveformPeaksOptions): Promise<WaveformPeakResult>;
79
+ /** A contiguous range of audio frames. */
79
80
  export interface AudioFrameRange {
80
81
  readonly startFrame: number;
81
82
  readonly frameCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"processing.d.ts","sourceRoot":"","sources":["../src/processing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processing.d.ts","sourceRoot":"","sources":["../src/processing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aelionsdk/audio",
3
- "version": "1.1.0-rc.1",
3
+ "version": "1.2.0-rc.2",
4
4
  "description": "AudioWorklet clock, PCM buffering and audio mixing for AelionSDK",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,8 +34,8 @@
34
34
  "provenance": true
35
35
  },
36
36
  "dependencies": {
37
- "@aelionsdk/core": "1.1.0-rc.1",
38
- "@aelionsdk/render-ir": "1.1.0-rc.1"
37
+ "@aelionsdk/core": "1.2.0-rc.2",
38
+ "@aelionsdk/render-ir": "1.2.0-rc.2"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -b",