nodejs-audio-visualizer 5.3.0 → 5.4.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/video.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../src/video.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../src/video.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodejs-audio-visualizer",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/config.ts CHANGED
@@ -84,6 +84,17 @@ export const getBackgroundVideoPaths = (config: Config): string[] | undefined =>
84
84
  return rawPaths.map(rawPath => path.resolve(rawPath));
85
85
  };
86
86
 
87
+ export const getHookVideoPath = (config: Config): string | undefined => {
88
+ const raw = config.video?.hookPath;
89
+ if (raw === undefined) {
90
+ return undefined;
91
+ }
92
+ if (typeof raw !== 'string' || raw.trim() === '') {
93
+ throw new Error(`Invalid video.hookPath: expected non-empty string, got '${String(raw)}'.`);
94
+ }
95
+ return path.resolve(raw);
96
+ };
97
+
87
98
  export const getAutoEditVideo = (config: Config) =>
88
99
  config.video?.autoEdit === true;
89
100
 
package/src/highlight.ts CHANGED
@@ -20,6 +20,12 @@ const BEATS_PER_BAR = 4;
20
20
  const OFF_BAR_PENALTY = 3;
21
21
  /** Grid beats past the analyzed tempo region snap to a detected onset within this share of a beat. */
22
22
  const GRID_ONSET_SNAP_SHARE = 0.2;
23
+ /** Seconds of audio compared before and after a frame to score it as a drop. */
24
+ export const DROP_WINDOW_SEC = 4;
25
+ /** Share of the track's biggest energy rise a peak needs to count as a drop. */
26
+ const MIN_DROP_SCORE_SHARE = 0.5;
27
+ /** With a tempo grid, a drop moves onto a beat within this share of a beat, so the hook ends on the beat. */
28
+ const DROP_BEAT_SNAP_SHARE = 0.2;
23
29
 
24
30
  /** Tempo grid used to snap highlight cuts to beats (subset of `TempoEstimate`). */
25
31
  export interface HighlightBeatGrid {
@@ -32,6 +38,8 @@ export interface HighlightBeatGrid {
32
38
  export interface HighlightAudioSegment {
33
39
  seekSeconds: number;
34
40
  durationSeconds: number;
41
+ /** Silence played before the audio, for a lead-in reaching back past the track start. */
42
+ delaySeconds?: number;
35
43
  }
36
44
 
37
45
  /** One auto-highlight segment before concatenation (for separate output files). */
@@ -42,16 +50,27 @@ export interface HighlightRun {
42
50
  beatFrameIndices: number[];
43
51
  beatIntensities: number[];
44
52
  audioSegment: HighlightAudioSegment;
53
+ /** Frames from the run start to the detected drop (or window start); set when a lead-in was requested. */
54
+ leadInFrames?: number;
45
55
  }
46
56
 
57
+ /**
58
+ * `seg.startFrame` may be negative (a lead-in reaching back past the track start): those
59
+ * frames get silent spectrums and are played as silence before the audio.
60
+ */
47
61
  function buildHighlightRun(
48
62
  fps: number,
49
- seg: { startFrame: number; highlightFrames: number },
63
+ seg: { startFrame: number; highlightFrames: number; leadInFrames?: number },
50
64
  spectrums: number[][],
51
65
  beatEvents: BeatFrameEvent[],
52
66
  ): HighlightRun {
53
- const { startFrame, highlightFrames } = seg;
54
- const spectrumsSlice = spectrums.slice(startFrame, startFrame + highlightFrames);
67
+ const { startFrame, highlightFrames, leadInFrames } = seg;
68
+ const silentFrames = Math.max(0, -startFrame);
69
+ const silentSpectrum = new Array<number>(spectrums[0]?.length ?? 0).fill(0);
70
+ const spectrumsSlice = [
71
+ ...Array.from({ length: silentFrames }, () => silentSpectrum.slice()),
72
+ ...spectrums.slice(startFrame + silentFrames, startFrame + highlightFrames),
73
+ ];
55
74
  const beatsInWindow = beatEvents
56
75
  .filter(b => b.frameIndex >= startFrame && b.frameIndex < startFrame + highlightFrames)
57
76
  .sort((a, b) => a.frameIndex - b.frameIndex);
@@ -64,9 +83,11 @@ function buildHighlightRun(
64
83
  beatFrameIndices,
65
84
  beatIntensities,
66
85
  audioSegment: {
67
- seekSeconds: startFrame / fps,
68
- durationSeconds: highlightFrames / fps,
86
+ seekSeconds: (startFrame + silentFrames) / fps,
87
+ durationSeconds: (highlightFrames - silentFrames) / fps,
88
+ ...(silentFrames > 0 && { delaySeconds: silentFrames / fps }),
69
89
  },
90
+ ...(leadInFrames !== undefined && { leadInFrames }),
70
91
  };
71
92
  }
72
93
 
@@ -184,6 +205,107 @@ async function findBestHighlightStart(
184
205
  return bestStart;
185
206
  }
186
207
 
208
+ /**
209
+ * Scores each frame by the rise in mean energy from the `dropWindowFrames` before it to the
210
+ * `dropWindowFrames` after it, and picks the best drop, i.e. a frame whose rise is the biggest
211
+ * within `dropWindowFrames` on either side, such that the lead-in before it plus `mainFrames`
212
+ * after it fit in the track and miss the excluded ranges. Frames rather than beat candidates are
213
+ * scored so the drop lands on the actual energy onset (a beat grid can be off by a fraction of a
214
+ * beat), and only peaks count so a frame just past a drop is never taken for one. Peaks rising
215
+ * less than `MIN_DROP_SCORE_SHARE` of the biggest one are not drops. The window
216
+ * starts exactly `leadInFrames` before the drop, so the whole lead-in plays. Drops too close to
217
+ * the track start for the full lead-in are only used (with the window starting before the track,
218
+ * i.e. at a negative frame) when no other drop fits.
219
+ */
220
+ function findBestDropSegment(
221
+ energies: Float64Array,
222
+ totalFrames: number,
223
+ mainFrames: number,
224
+ leadInFrames: number,
225
+ dropWindowFrames: number,
226
+ excludeRanges: Array<{ start: number; endExclusive: number }>,
227
+ ): { startFrame: number; dropFrame: number } | null {
228
+ const prefix = new Float64Array(totalFrames + 1);
229
+ for (let i = 0; i < totalFrames; i++) {
230
+ prefix[i + 1] = prefix[i] + energies[i];
231
+ }
232
+ const meanEnergy = (from: number, to: number) => {
233
+ const a = Math.max(0, from);
234
+ const b = Math.min(totalFrames, to);
235
+ return b > a ? (prefix[b] - prefix[a]) / (b - a) : 0;
236
+ };
237
+ const scores = new Float64Array(totalFrames);
238
+ for (let f = 0; f < totalFrames; f++) {
239
+ scores[f] = meanEnergy(f, f + dropWindowFrames) - meanEnergy(f - dropWindowFrames, f);
240
+ }
241
+ const dropFrames: number[] = [];
242
+ for (let f = 1; f < totalFrames; f++) {
243
+ if (!(scores[f] > 0)) {
244
+ continue;
245
+ }
246
+ let isPeak = true;
247
+ const from = Math.max(0, f - dropWindowFrames);
248
+ const to = Math.min(totalFrames - 1, f + dropWindowFrames);
249
+ for (let g = from; g <= to && isPeak; g++) {
250
+ // Ties go to the earliest frame, where the rise starts.
251
+ isPeak = scores[g] < scores[f] || (scores[g] === scores[f] && g >= f);
252
+ }
253
+ if (isPeak) {
254
+ dropFrames.push(f);
255
+ }
256
+ }
257
+ const maxScore = dropFrames.reduce((max, f) => Math.max(max, scores[f]), 0);
258
+ const strongDropFrames = dropFrames.filter(f => scores[f] >= maxScore * MIN_DROP_SCORE_SHARE);
259
+
260
+ const findBest = (allowBeforeTrackStart: boolean) => {
261
+ let best: { startFrame: number; dropFrame: number } | null = null;
262
+ let bestScore = -Infinity;
263
+ for (const dropFrame of strongDropFrames) {
264
+ const startFrame = dropFrame - leadInFrames;
265
+ if (startFrame < 0 && !allowBeforeTrackStart) {
266
+ continue;
267
+ }
268
+ if (
269
+ dropFrame + mainFrames > totalFrames ||
270
+ rangesOverlap(startFrame, dropFrame + mainFrames, excludeRanges)
271
+ ) {
272
+ continue;
273
+ }
274
+ if (scores[dropFrame] > bestScore) {
275
+ bestScore = scores[dropFrame];
276
+ best = { startFrame, dropFrame };
277
+ }
278
+ }
279
+ return best;
280
+ };
281
+ return findBest(false) ?? findBest(true);
282
+ }
283
+
284
+ /**
285
+ * Moves a drop (and its window start with it) onto the nearest beat within `DROP_BEAT_SNAP_SHARE`
286
+ * of a beat. Only done with a tempo grid: raw onsets alone are too unreliable to override the
287
+ * energy onset. A lead-in that fit in the track is never pushed back past its start.
288
+ */
289
+ export function snapDropToBeat(
290
+ drop: { startFrame: number; dropFrame: number },
291
+ beatFrames: number[],
292
+ periodFrames?: number,
293
+ ): void {
294
+ if (!periodFrames || !(periodFrames > 0) || !isFinite(periodFrames)) {
295
+ return;
296
+ }
297
+ const beat = nearestOnset(beatFrames, drop.dropFrame);
298
+ if (beat === null || Math.abs(beat - drop.dropFrame) > periodFrames * DROP_BEAT_SNAP_SHARE) {
299
+ return;
300
+ }
301
+ const startFrame = drop.startFrame + (beat - drop.dropFrame);
302
+ if (startFrame < 0 && drop.startFrame >= 0) {
303
+ return;
304
+ }
305
+ drop.startFrame = startFrame;
306
+ drop.dropFrame = beat;
307
+ }
308
+
187
309
  function nearestOnset(sortedOnsets: number[], frame: number): number | null {
188
310
  let lo = 0;
189
311
  let hi = sortedOnsets.length;
@@ -269,12 +391,14 @@ export function snapSegmentToBeats(
269
391
  beatFrames: number[],
270
392
  maxShiftFrames: number,
271
393
  periodFrames?: number,
394
+ /** Keep the start where it is and only move the end. */
395
+ lockStart = false,
272
396
  ): { startFrame: number; highlightFrames: number } {
273
397
  const rawStart = seg.startFrame;
274
398
  const rawEnd = seg.startFrame + seg.highlightFrames;
275
399
  const near = (target: number, max: number) =>
276
400
  beatFrames.filter(f => Math.abs(f - target) <= maxShiftFrames && f >= 0 && f <= max);
277
- const startCands = near(rawStart, totalFrames - 1);
401
+ const startCands = lockStart ? [rawStart] : near(rawStart, totalFrames - 1);
278
402
  const endCands = near(rawEnd, totalFrames);
279
403
  if (startCands.length === 0) {
280
404
  startCands.push(rawStart);
@@ -314,6 +438,14 @@ export function snapSegmentToBeats(
314
438
  * Picks up to `segmentCount` non-overlapping ~15s windows with highest summed spectral energy each,
315
439
  * moves their boundaries onto beats (see `snapSegmentToBeats`), sorts them chronologically,
316
440
  * concatenates spectrums, and remaps beat indices.
441
+ *
442
+ * With `leadInFrames` (e.g. a hook video's length), each window is instead built around a detected
443
+ * drop: it starts `leadInFrames` before the drop, so the whole lead-in plays and ends on the drop
444
+ * (see `HighlightRun.leadInFrames`), and runs ~15s past the drop, so the lead-in is added on top of
445
+ * the ~15s rather than taken out of it. With a tempo grid, the drop is moved onto a nearby beat
446
+ * (see `snapDropToBeat`), so the hook ends on the beat. When no drop fits, the lead-in is put before the energy
447
+ * window instead. The lead-in is never shortened: where it reaches back past the track start,
448
+ * the run starts at a negative frame and that part is silent (see `buildHighlightRun`).
317
449
  */
318
450
  export async function computeHighlightSlice(
319
451
  fps: number,
@@ -322,6 +454,7 @@ export async function computeHighlightSlice(
322
454
  beatEvents: BeatFrameEvent[],
323
455
  segmentCount = 1,
324
456
  beatGrid?: HighlightBeatGrid | null,
457
+ leadInFrames?: number,
325
458
  ): Promise<{
326
459
  startFrame: number;
327
460
  highlightFrames: number;
@@ -350,23 +483,21 @@ export async function computeHighlightSlice(
350
483
  }
351
484
 
352
485
  if (totalFrames <= highlightFramesTarget) {
353
- const audioSegments: HighlightAudioSegment[] = [
354
- {
355
- seekSeconds: 0,
356
- durationSeconds: totalFrames / fps,
357
- },
358
- ];
359
- const fullSeg = { startFrame: 0, highlightFrames: totalFrames };
486
+ // The whole track follows the lead-in, which is silent as it all comes before the track start.
487
+ const leadIn = leadInFrames !== undefined && leadInFrames > 0 ? leadInFrames : 0;
488
+ const fullSeg = leadIn > 0
489
+ ? { startFrame: -leadIn, highlightFrames: leadIn + totalFrames, leadInFrames: leadIn }
490
+ : { startFrame: 0, highlightFrames: totalFrames };
360
491
  const fullRun = buildHighlightRun(fps, fullSeg, spectrums, beatEvents);
361
492
  return {
362
- startFrame: 0,
363
- highlightFrames: totalFrames,
364
- spectrums: spectrums.slice(),
493
+ startFrame: fullRun.startFrame,
494
+ highlightFrames: fullRun.highlightFrames,
495
+ spectrums: fullRun.spectrums,
365
496
  beatFrameIndices: fullRun.beatFrameIndices,
366
497
  beatIntensities: fullRun.beatIntensities,
367
- audioSeekSeconds: 0,
368
- audioDurationSeconds: totalFrames / fps,
369
- audioSegments,
498
+ audioSeekSeconds: fullRun.audioSegment.seekSeconds,
499
+ audioDurationSeconds: fullRun.audioSegment.durationSeconds,
500
+ audioSegments: [fullRun.audioSegment],
370
501
  runs: [fullRun],
371
502
  };
372
503
  }
@@ -374,12 +505,48 @@ export async function computeHighlightSlice(
374
505
  const highlightFrames = highlightFramesTarget;
375
506
  const energies = await buildFrameEnergies(spectrums, totalFrames);
376
507
  const excludeRanges: Array<{ start: number; endExclusive: number }> = [];
377
- const rawSegments: Array<{ startFrame: number; highlightFrames: number }> = [];
508
+ const rawSegments: Array<{ startFrame: number; highlightFrames: number; leadInFrames?: number }> = [];
378
509
  const beatFrames = buildBeatCandidates(fps, totalFrames, beatEvents, beatGrid);
379
510
  const maxShiftFrames = Math.round(MAX_BEAT_SNAP_SEC * fps);
511
+ const useDrops = leadInFrames !== undefined && leadInFrames > 0;
512
+ const dropWindowFrames = Math.round(DROP_WINDOW_SEC * fps);
380
513
 
381
514
  const n = Math.max(1, Math.floor(segmentCount));
382
515
  for (let k = 0; k < n; k++) {
516
+ const drop = useDrops
517
+ ? findBestDropSegment(
518
+ energies,
519
+ totalFrames,
520
+ highlightFrames,
521
+ leadInFrames as number,
522
+ dropWindowFrames,
523
+ excludeRanges,
524
+ )
525
+ : null;
526
+ if (drop) {
527
+ snapDropToBeat(drop, beatFrames, beatGrid?.periodFrames);
528
+ // Only the part from the drop on is ~15s; its end is snapped to a beat.
529
+ const main = snapSegmentToBeats(
530
+ { startFrame: drop.dropFrame, highlightFrames },
531
+ totalFrames,
532
+ beatFrames,
533
+ maxShiftFrames,
534
+ beatGrid?.periodFrames,
535
+ true,
536
+ );
537
+ const dropLeadIn = drop.dropFrame - drop.startFrame;
538
+ rawSegments.push({
539
+ startFrame: drop.startFrame,
540
+ highlightFrames: dropLeadIn + main.highlightFrames,
541
+ leadInFrames: dropLeadIn,
542
+ });
543
+ excludeRanges.push({
544
+ start: drop.startFrame - maxShiftFrames,
545
+ endExclusive: main.startFrame + main.highlightFrames + maxShiftFrames,
546
+ });
547
+ await waitForEventLoop();
548
+ continue;
549
+ }
383
550
  const startFrame = await findBestHighlightStart(
384
551
  energies,
385
552
  totalFrames,
@@ -396,7 +563,16 @@ export async function computeHighlightSlice(
396
563
  maxShiftFrames,
397
564
  beatGrid?.periodFrames,
398
565
  );
399
- rawSegments.push(snapped);
566
+ // The whole lead-in plays before the window, even over an earlier window (each highlight with
567
+ // a lead-in is its own output) or before the track start (as silence).
568
+ const windowLeadIn = useDrops ? leadInFrames as number : 0;
569
+ rawSegments.push(windowLeadIn > 0
570
+ ? {
571
+ startFrame: snapped.startFrame - windowLeadIn,
572
+ highlightFrames: windowLeadIn + snapped.highlightFrames,
573
+ leadInFrames: windowLeadIn,
574
+ }
575
+ : snapped);
400
576
  // Padded so the next raw window, once snapped, cannot reach back into this one.
401
577
  excludeRanges.push({
402
578
  start: snapped.startFrame - maxShiftFrames,
@@ -415,25 +591,15 @@ export async function computeHighlightSlice(
415
591
  const beatIntensities: number[] = [];
416
592
  let outOffset = 0;
417
593
 
418
- for (const seg of rawSegments) {
419
- const chunk = spectrums.slice(seg.startFrame, seg.startFrame + seg.highlightFrames);
420
- slicedSpectrums.push(...chunk);
421
-
422
- const beatsInSeg = beatEvents
423
- .filter(b => b.frameIndex >= seg.startFrame && b.frameIndex < seg.startFrame + seg.highlightFrames)
424
- .sort((a, b) => a.frameIndex - b.frameIndex);
425
- for (const b of beatsInSeg) {
426
- beatFrameIndices.push(b.frameIndex - seg.startFrame + outOffset);
427
- beatIntensities.push(b.intensity);
428
- }
429
- outOffset += seg.highlightFrames;
594
+ for (const run of runs) {
595
+ slicedSpectrums.push(...run.spectrums);
596
+ beatFrameIndices.push(...run.beatFrameIndices.map(frameIndex => frameIndex + outOffset));
597
+ beatIntensities.push(...run.beatIntensities);
598
+ outOffset += run.highlightFrames;
430
599
  }
431
600
 
432
601
  const totalHighlightFrames = slicedSpectrums.length;
433
- const audioSegments: HighlightAudioSegment[] = rawSegments.map(seg => ({
434
- seekSeconds: seg.startFrame / fps,
435
- durationSeconds: seg.highlightFrames / fps,
436
- }));
602
+ const audioSegments: HighlightAudioSegment[] = runs.map(run => run.audioSegment);
437
603
 
438
604
  const first = audioSegments[0] ?? { seekSeconds: 0, durationSeconds: 0 };
439
605