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/README.md CHANGED
@@ -12,6 +12,7 @@ const config = {
12
12
  // OR use a video as background (optional):
13
13
  // video: {
14
14
  // path: 'media/background.mp4', // Supports MP4, MOV, AVI, MKV. Loops automatically if shorter than audio. Can also be an array of paths, e.g. ['media/bg1.mp4', 'media/bg2.mp4']: with autoEdit false the videos play one after another (looping the sequence as needed), and with autoHighlight producing several videos each one starts with a different video from the array; with autoEdit true, cuts switch (shuffle) between the given videos instead of auto-detecting scene changes. Videos in an array should share the same resolution and frame rate for best results, especially when outVideo.resolution is not set.
15
+ // hookPath: 'media/hook.mp4', // Optional. Video played once before the 'path' video(s). Plays in full; with audio.autoHighlight, each highlight is chosen so the hook ends on a detected drop (the biggest jump in energy on a beat) and 'path' starts with it and plays for ~15s (the hook is added before the ~15s, not counted in it); the whole hook always plays (when the drop is closer to the track start than the hook's length, silence is added before the track), and if no drop fits, the hook plays before the loudest ~15s window instead. The hook's sound, if it has any, is mixed over the track, which fades in from silence to full volume while the hook plays. With several highlight videos, each one opens with the hook.
15
16
  // autoEdit: true, // Optional. Detects scene cuts and advances between them on the detected BPM beat grid about every 2–4 beats so the background edits with the music; omit or false for one continuous play-through from the start. When enabled, a brief camera shake starts 0.1s after each cut and decays over about one-third of a beat (if the video has no detected scene changes, and so no cuts, it shakes every 2 beats instead).
16
17
  // cameraShake: false, // Optional. With autoEdit: set to false to disable the camera shake applied on cuts (default true).
17
18
  // },
package/dist/config.d.ts CHANGED
@@ -27,6 +27,7 @@ export declare const getAudioAutoHighlight: (config: Config) => boolean;
27
27
  export declare const getAudioAutoHighlightCount: (config: Config) => number;
28
28
  export declare const getBackgroundImagePath: (config: Config) => string | undefined;
29
29
  export declare const getBackgroundVideoPaths: (config: Config) => string[] | undefined;
30
+ export declare const getHookVideoPath: (config: Config) => string | undefined;
30
31
  export declare const getAutoEditVideo: (config: Config) => boolean;
31
32
  export declare const getCameraShakeEnabled: (config: Config) => boolean;
32
33
  export declare const getOutVideoPath: (config: Config) => string;
package/dist/config.js CHANGED
@@ -69,6 +69,17 @@ exports.getBackgroundVideoPaths = function (config) {
69
69
  }
70
70
  return rawPaths.map(function (rawPath) { return path_1.default.resolve(rawPath); });
71
71
  };
72
+ exports.getHookVideoPath = function (config) {
73
+ var _a;
74
+ var raw = (_a = config.video) === null || _a === void 0 ? void 0 : _a.hookPath;
75
+ if (raw === undefined) {
76
+ return undefined;
77
+ }
78
+ if (typeof raw !== 'string' || raw.trim() === '') {
79
+ throw new Error("Invalid video.hookPath: expected non-empty string, got '" + String(raw) + "'.");
80
+ }
81
+ return path_1.default.resolve(raw);
82
+ };
72
83
  exports.getAutoEditVideo = function (config) { var _a; return ((_a = config.video) === null || _a === void 0 ? void 0 : _a.autoEdit) === true; };
73
84
  exports.getCameraShakeEnabled = function (config) { var _a; return ((_a = config.video) === null || _a === void 0 ? void 0 : _a.cameraShake) !== false; };
74
85
  exports.getOutVideoPath = function (config) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface BeatFrameEvent {
9
9
  * therefore differ from `HIGHLIGHT_DURATION_SEC` by up to twice this value.
10
10
  */
11
11
  export declare const MAX_BEAT_SNAP_SEC = 1.5;
12
+ /** Seconds of audio compared before and after a frame to score it as a drop. */
13
+ export declare const DROP_WINDOW_SEC = 4;
12
14
  /** Tempo grid used to snap highlight cuts to beats (subset of `TempoEstimate`). */
13
15
  export interface HighlightBeatGrid {
14
16
  periodFrames: number;
@@ -19,6 +21,8 @@ export interface HighlightBeatGrid {
19
21
  export interface HighlightAudioSegment {
20
22
  seekSeconds: number;
21
23
  durationSeconds: number;
24
+ /** Silence played before the audio, for a lead-in reaching back past the track start. */
25
+ delaySeconds?: number;
22
26
  }
23
27
  /** One auto-highlight segment before concatenation (for separate output files). */
24
28
  export interface HighlightRun {
@@ -28,7 +32,18 @@ export interface HighlightRun {
28
32
  beatFrameIndices: number[];
29
33
  beatIntensities: number[];
30
34
  audioSegment: HighlightAudioSegment;
35
+ /** Frames from the run start to the detected drop (or window start); set when a lead-in was requested. */
36
+ leadInFrames?: number;
31
37
  }
38
+ /**
39
+ * Moves a drop (and its window start with it) onto the nearest beat within `DROP_BEAT_SNAP_SHARE`
40
+ * of a beat. Only done with a tempo grid: raw onsets alone are too unreliable to override the
41
+ * energy onset. A lead-in that fit in the track is never pushed back past its start.
42
+ */
43
+ export declare function snapDropToBeat(drop: {
44
+ startFrame: number;
45
+ dropFrame: number;
46
+ }, beatFrames: number[], periodFrames?: number): void;
32
47
  /**
33
48
  * Beat frames (sorted, unique, within [0, totalFrames]) where a highlight may start or end.
34
49
  * With a tempo grid: tracked beats from the analyzed region, then the regular grid beyond it
@@ -44,7 +59,9 @@ export declare function buildBeatCandidates(fps: number, totalFrames: number, be
44
59
  export declare function snapSegmentToBeats(seg: {
45
60
  startFrame: number;
46
61
  highlightFrames: number;
47
- }, totalFrames: number, beatFrames: number[], maxShiftFrames: number, periodFrames?: number): {
62
+ }, totalFrames: number, beatFrames: number[], maxShiftFrames: number, periodFrames?: number,
63
+ /** Keep the start where it is and only move the end. */
64
+ lockStart?: boolean): {
48
65
  startFrame: number;
49
66
  highlightFrames: number;
50
67
  };
@@ -52,8 +69,16 @@ export declare function snapSegmentToBeats(seg: {
52
69
  * Picks up to `segmentCount` non-overlapping ~15s windows with highest summed spectral energy each,
53
70
  * moves their boundaries onto beats (see `snapSegmentToBeats`), sorts them chronologically,
54
71
  * concatenates spectrums, and remaps beat indices.
72
+ *
73
+ * With `leadInFrames` (e.g. a hook video's length), each window is instead built around a detected
74
+ * drop: it starts `leadInFrames` before the drop, so the whole lead-in plays and ends on the drop
75
+ * (see `HighlightRun.leadInFrames`), and runs ~15s past the drop, so the lead-in is added on top of
76
+ * the ~15s rather than taken out of it. With a tempo grid, the drop is moved onto a nearby beat
77
+ * (see `snapDropToBeat`), so the hook ends on the beat. When no drop fits, the lead-in is put before the energy
78
+ * window instead. The lead-in is never shortened: where it reaches back past the track start,
79
+ * the run starts at a negative frame and that part is silent (see `buildHighlightRun`).
55
80
  */
56
- export declare function computeHighlightSlice(fps: number, totalFrames: number, spectrums: number[][], beatEvents: BeatFrameEvent[], segmentCount?: number, beatGrid?: HighlightBeatGrid | null): Promise<{
81
+ export declare function computeHighlightSlice(fps: number, totalFrames: number, spectrums: number[][], beatEvents: BeatFrameEvent[], segmentCount?: number, beatGrid?: HighlightBeatGrid | null, leadInFrames?: number): Promise<{
57
82
  startFrame: number;
58
83
  highlightFrames: number;
59
84
  spectrums: number[][];
package/dist/highlight.js CHANGED
@@ -1,5 +1,16 @@
1
1
  "use strict";
2
2
  /** Output length per segment when `audio.autoHighlight` is true (seconds). */
3
+ var __assign = (this && this.__assign) || function () {
4
+ __assign = Object.assign || function(t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
+ t[p] = s[p];
9
+ }
10
+ return t;
11
+ };
12
+ return __assign.apply(this, arguments);
13
+ };
3
14
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
15
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
16
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -36,6 +47,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
47
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
48
  }
38
49
  };
50
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
51
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
52
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
53
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
54
+ r[k] = a[j];
55
+ return r;
56
+ };
39
57
  Object.defineProperty(exports, "__esModule", { value: true });
40
58
  var waitForEventLoop_1 = require("./waitForEventLoop");
41
59
  exports.HIGHLIGHT_DURATION_SEC = 15;
@@ -50,25 +68,30 @@ var BEATS_PER_BAR = 4;
50
68
  var OFF_BAR_PENALTY = 3;
51
69
  /** Grid beats past the analyzed tempo region snap to a detected onset within this share of a beat. */
52
70
  var GRID_ONSET_SNAP_SHARE = 0.2;
71
+ /** Seconds of audio compared before and after a frame to score it as a drop. */
72
+ exports.DROP_WINDOW_SEC = 4;
73
+ /** Share of the track's biggest energy rise a peak needs to count as a drop. */
74
+ var MIN_DROP_SCORE_SHARE = 0.5;
75
+ /** With a tempo grid, a drop moves onto a beat within this share of a beat, so the hook ends on the beat. */
76
+ var DROP_BEAT_SNAP_SHARE = 0.2;
77
+ /**
78
+ * `seg.startFrame` may be negative (a lead-in reaching back past the track start): those
79
+ * frames get silent spectrums and are played as silence before the audio.
80
+ */
53
81
  function buildHighlightRun(fps, seg, spectrums, beatEvents) {
54
- var startFrame = seg.startFrame, highlightFrames = seg.highlightFrames;
55
- var spectrumsSlice = spectrums.slice(startFrame, startFrame + highlightFrames);
82
+ var _a, _b;
83
+ var startFrame = seg.startFrame, highlightFrames = seg.highlightFrames, leadInFrames = seg.leadInFrames;
84
+ var silentFrames = Math.max(0, -startFrame);
85
+ var silentSpectrum = new Array((_b = (_a = spectrums[0]) === null || _a === void 0 ? void 0 : _a.length, (_b !== null && _b !== void 0 ? _b : 0))).fill(0);
86
+ var spectrumsSlice = __spreadArrays(Array.from({ length: silentFrames }, function () { return silentSpectrum.slice(); }), spectrums.slice(startFrame + silentFrames, startFrame + highlightFrames));
56
87
  var beatsInWindow = beatEvents
57
88
  .filter(function (b) { return b.frameIndex >= startFrame && b.frameIndex < startFrame + highlightFrames; })
58
89
  .sort(function (a, b) { return a.frameIndex - b.frameIndex; });
59
90
  var beatFrameIndices = beatsInWindow.map(function (b) { return b.frameIndex - startFrame; });
60
91
  var beatIntensities = beatsInWindow.map(function (b) { return b.intensity; });
61
- return {
62
- startFrame: startFrame,
63
- highlightFrames: highlightFrames,
64
- spectrums: spectrumsSlice,
65
- beatFrameIndices: beatFrameIndices,
66
- beatIntensities: beatIntensities,
67
- audioSegment: {
68
- seekSeconds: startFrame / fps,
69
- durationSeconds: highlightFrames / fps,
70
- },
71
- };
92
+ return __assign({ startFrame: startFrame,
93
+ highlightFrames: highlightFrames, spectrums: spectrumsSlice, beatFrameIndices: beatFrameIndices,
94
+ beatIntensities: beatIntensities, audioSegment: __assign({ seekSeconds: (startFrame + silentFrames) / fps, durationSeconds: (highlightFrames - silentFrames) / fps }, (silentFrames > 0 && { delaySeconds: silentFrames / fps })) }, (leadInFrames !== undefined && { leadInFrames: leadInFrames }));
72
95
  }
73
96
  function frameEnergy(spectrum) {
74
97
  var s = 0;
@@ -225,6 +248,94 @@ function findBestHighlightStart(energies, totalFrames, windowFrames, excludeRang
225
248
  });
226
249
  });
227
250
  }
251
+ /**
252
+ * Scores each frame by the rise in mean energy from the `dropWindowFrames` before it to the
253
+ * `dropWindowFrames` after it, and picks the best drop, i.e. a frame whose rise is the biggest
254
+ * within `dropWindowFrames` on either side, such that the lead-in before it plus `mainFrames`
255
+ * after it fit in the track and miss the excluded ranges. Frames rather than beat candidates are
256
+ * scored so the drop lands on the actual energy onset (a beat grid can be off by a fraction of a
257
+ * beat), and only peaks count so a frame just past a drop is never taken for one. Peaks rising
258
+ * less than `MIN_DROP_SCORE_SHARE` of the biggest one are not drops. The window
259
+ * starts exactly `leadInFrames` before the drop, so the whole lead-in plays. Drops too close to
260
+ * the track start for the full lead-in are only used (with the window starting before the track,
261
+ * i.e. at a negative frame) when no other drop fits.
262
+ */
263
+ function findBestDropSegment(energies, totalFrames, mainFrames, leadInFrames, dropWindowFrames, excludeRanges) {
264
+ var _a;
265
+ var prefix = new Float64Array(totalFrames + 1);
266
+ for (var i = 0; i < totalFrames; i++) {
267
+ prefix[i + 1] = prefix[i] + energies[i];
268
+ }
269
+ var meanEnergy = function (from, to) {
270
+ var a = Math.max(0, from);
271
+ var b = Math.min(totalFrames, to);
272
+ return b > a ? (prefix[b] - prefix[a]) / (b - a) : 0;
273
+ };
274
+ var scores = new Float64Array(totalFrames);
275
+ for (var f = 0; f < totalFrames; f++) {
276
+ scores[f] = meanEnergy(f, f + dropWindowFrames) - meanEnergy(f - dropWindowFrames, f);
277
+ }
278
+ var dropFrames = [];
279
+ for (var f = 1; f < totalFrames; f++) {
280
+ if (!(scores[f] > 0)) {
281
+ continue;
282
+ }
283
+ var isPeak = true;
284
+ var from = Math.max(0, f - dropWindowFrames);
285
+ var to = Math.min(totalFrames - 1, f + dropWindowFrames);
286
+ for (var g = from; g <= to && isPeak; g++) {
287
+ // Ties go to the earliest frame, where the rise starts.
288
+ isPeak = scores[g] < scores[f] || (scores[g] === scores[f] && g >= f);
289
+ }
290
+ if (isPeak) {
291
+ dropFrames.push(f);
292
+ }
293
+ }
294
+ var maxScore = dropFrames.reduce(function (max, f) { return Math.max(max, scores[f]); }, 0);
295
+ var strongDropFrames = dropFrames.filter(function (f) { return scores[f] >= maxScore * MIN_DROP_SCORE_SHARE; });
296
+ var findBest = function (allowBeforeTrackStart) {
297
+ var best = null;
298
+ var bestScore = -Infinity;
299
+ for (var _i = 0, strongDropFrames_1 = strongDropFrames; _i < strongDropFrames_1.length; _i++) {
300
+ var dropFrame = strongDropFrames_1[_i];
301
+ var startFrame = dropFrame - leadInFrames;
302
+ if (startFrame < 0 && !allowBeforeTrackStart) {
303
+ continue;
304
+ }
305
+ if (dropFrame + mainFrames > totalFrames ||
306
+ rangesOverlap(startFrame, dropFrame + mainFrames, excludeRanges)) {
307
+ continue;
308
+ }
309
+ if (scores[dropFrame] > bestScore) {
310
+ bestScore = scores[dropFrame];
311
+ best = { startFrame: startFrame, dropFrame: dropFrame };
312
+ }
313
+ }
314
+ return best;
315
+ };
316
+ return _a = findBest(false), (_a !== null && _a !== void 0 ? _a : findBest(true));
317
+ }
318
+ /**
319
+ * Moves a drop (and its window start with it) onto the nearest beat within `DROP_BEAT_SNAP_SHARE`
320
+ * of a beat. Only done with a tempo grid: raw onsets alone are too unreliable to override the
321
+ * energy onset. A lead-in that fit in the track is never pushed back past its start.
322
+ */
323
+ function snapDropToBeat(drop, beatFrames, periodFrames) {
324
+ if (!periodFrames || !(periodFrames > 0) || !isFinite(periodFrames)) {
325
+ return;
326
+ }
327
+ var beat = nearestOnset(beatFrames, drop.dropFrame);
328
+ if (beat === null || Math.abs(beat - drop.dropFrame) > periodFrames * DROP_BEAT_SNAP_SHARE) {
329
+ return;
330
+ }
331
+ var startFrame = drop.startFrame + (beat - drop.dropFrame);
332
+ if (startFrame < 0 && drop.startFrame >= 0) {
333
+ return;
334
+ }
335
+ drop.startFrame = startFrame;
336
+ drop.dropFrame = beat;
337
+ }
338
+ exports.snapDropToBeat = snapDropToBeat;
228
339
  function nearestOnset(sortedOnsets, frame) {
229
340
  var lo = 0;
230
341
  var hi = sortedOnsets.length;
@@ -300,13 +411,16 @@ exports.buildBeatCandidates = buildBeatCandidates;
300
411
  * preferring lengths that span whole bars when the beat period is known.
301
412
  * Boundaries without a nearby beat stay where they are.
302
413
  */
303
- function snapSegmentToBeats(seg, totalFrames, beatFrames, maxShiftFrames, periodFrames) {
414
+ function snapSegmentToBeats(seg, totalFrames, beatFrames, maxShiftFrames, periodFrames,
415
+ /** Keep the start where it is and only move the end. */
416
+ lockStart) {
417
+ if (lockStart === void 0) { lockStart = false; }
304
418
  var rawStart = seg.startFrame;
305
419
  var rawEnd = seg.startFrame + seg.highlightFrames;
306
420
  var near = function (target, max) {
307
421
  return beatFrames.filter(function (f) { return Math.abs(f - target) <= maxShiftFrames && f >= 0 && f <= max; });
308
422
  };
309
- var startCands = near(rawStart, totalFrames - 1);
423
+ var startCands = lockStart ? [rawStart] : near(rawStart, totalFrames - 1);
310
424
  var endCands = near(rawEnd, totalFrames);
311
425
  if (startCands.length === 0) {
312
426
  startCands.push(rawStart);
@@ -347,14 +461,22 @@ exports.snapSegmentToBeats = snapSegmentToBeats;
347
461
  * Picks up to `segmentCount` non-overlapping ~15s windows with highest summed spectral energy each,
348
462
  * moves their boundaries onto beats (see `snapSegmentToBeats`), sorts them chronologically,
349
463
  * concatenates spectrums, and remaps beat indices.
464
+ *
465
+ * With `leadInFrames` (e.g. a hook video's length), each window is instead built around a detected
466
+ * drop: it starts `leadInFrames` before the drop, so the whole lead-in plays and ends on the drop
467
+ * (see `HighlightRun.leadInFrames`), and runs ~15s past the drop, so the lead-in is added on top of
468
+ * the ~15s rather than taken out of it. With a tempo grid, the drop is moved onto a nearby beat
469
+ * (see `snapDropToBeat`), so the hook ends on the beat. When no drop fits, the lead-in is put before the energy
470
+ * window instead. The lead-in is never shortened: where it reaches back past the track start,
471
+ * the run starts at a negative frame and that part is silent (see `buildHighlightRun`).
350
472
  */
351
- function computeHighlightSlice(fps, totalFrames, spectrums, beatEvents, segmentCount, beatGrid) {
473
+ function computeHighlightSlice(fps, totalFrames, spectrums, beatEvents, segmentCount, beatGrid, leadInFrames) {
352
474
  if (segmentCount === void 0) { segmentCount = 1; }
353
- var _a, _b, _c, _d;
475
+ var _a, _b, _c, _d, _e, _f;
354
476
  return __awaiter(this, void 0, void 0, function () {
355
- var highlightFramesTarget, audioSegments_1, fullSeg, fullRun, highlightFrames, energies, excludeRanges, rawSegments, beatFrames, maxShiftFrames, n, k, startFrame, snapped, runs, slicedSpectrums, beatFrameIndices, beatIntensities, outOffset, _loop_1, _i, rawSegments_1, seg, totalHighlightFrames, audioSegments, first;
356
- return __generator(this, function (_e) {
357
- switch (_e.label) {
477
+ var highlightFramesTarget, leadIn, fullSeg, fullRun, highlightFrames, energies, excludeRanges, rawSegments, beatFrames, maxShiftFrames, useDrops, dropWindowFrames, n, k, drop, main, dropLeadIn, startFrame, snapped, windowLeadIn, runs, slicedSpectrums, beatFrameIndices, beatIntensities, outOffset, _i, runs_1, run_1, totalHighlightFrames, audioSegments, first;
478
+ return __generator(this, function (_g) {
479
+ switch (_g.label) {
358
480
  case 0:
359
481
  highlightFramesTarget = Math.ceil(exports.HIGHLIGHT_DURATION_SEC * fps);
360
482
  if (totalFrames <= 0) {
@@ -371,57 +493,83 @@ function computeHighlightSlice(fps, totalFrames, spectrums, beatEvents, segmentC
371
493
  }];
372
494
  }
373
495
  if (totalFrames <= highlightFramesTarget) {
374
- audioSegments_1 = [
375
- {
376
- seekSeconds: 0,
377
- durationSeconds: totalFrames / fps,
378
- },
379
- ];
380
- fullSeg = { startFrame: 0, highlightFrames: totalFrames };
496
+ leadIn = leadInFrames !== undefined && leadInFrames > 0 ? leadInFrames : 0;
497
+ fullSeg = leadIn > 0
498
+ ? { startFrame: -leadIn, highlightFrames: leadIn + totalFrames, leadInFrames: leadIn }
499
+ : { startFrame: 0, highlightFrames: totalFrames };
381
500
  fullRun = buildHighlightRun(fps, fullSeg, spectrums, beatEvents);
382
501
  return [2 /*return*/, {
383
- startFrame: 0,
384
- highlightFrames: totalFrames,
385
- spectrums: spectrums.slice(),
502
+ startFrame: fullRun.startFrame,
503
+ highlightFrames: fullRun.highlightFrames,
504
+ spectrums: fullRun.spectrums,
386
505
  beatFrameIndices: fullRun.beatFrameIndices,
387
506
  beatIntensities: fullRun.beatIntensities,
388
- audioSeekSeconds: 0,
389
- audioDurationSeconds: totalFrames / fps,
390
- audioSegments: audioSegments_1,
507
+ audioSeekSeconds: fullRun.audioSegment.seekSeconds,
508
+ audioDurationSeconds: fullRun.audioSegment.durationSeconds,
509
+ audioSegments: [fullRun.audioSegment],
391
510
  runs: [fullRun],
392
511
  }];
393
512
  }
394
513
  highlightFrames = highlightFramesTarget;
395
514
  return [4 /*yield*/, buildFrameEnergies(spectrums, totalFrames)];
396
515
  case 1:
397
- energies = _e.sent();
516
+ energies = _g.sent();
398
517
  excludeRanges = [];
399
518
  rawSegments = [];
400
519
  beatFrames = buildBeatCandidates(fps, totalFrames, beatEvents, beatGrid);
401
520
  maxShiftFrames = Math.round(exports.MAX_BEAT_SNAP_SEC * fps);
521
+ useDrops = leadInFrames !== undefined && leadInFrames > 0;
522
+ dropWindowFrames = Math.round(exports.DROP_WINDOW_SEC * fps);
402
523
  n = Math.max(1, Math.floor(segmentCount));
403
524
  k = 0;
404
- _e.label = 2;
525
+ _g.label = 2;
405
526
  case 2:
406
- if (!(k < n)) return [3 /*break*/, 5];
407
- return [4 /*yield*/, findBestHighlightStart(energies, totalFrames, highlightFrames, excludeRanges)];
527
+ if (!(k < n)) return [3 /*break*/, 7];
528
+ drop = useDrops
529
+ ? findBestDropSegment(energies, totalFrames, highlightFrames, leadInFrames, dropWindowFrames, excludeRanges)
530
+ : null;
531
+ if (!drop) return [3 /*break*/, 4];
532
+ snapDropToBeat(drop, beatFrames, (_a = beatGrid) === null || _a === void 0 ? void 0 : _a.periodFrames);
533
+ main = snapSegmentToBeats({ startFrame: drop.dropFrame, highlightFrames: highlightFrames }, totalFrames, beatFrames, maxShiftFrames, (_b = beatGrid) === null || _b === void 0 ? void 0 : _b.periodFrames, true);
534
+ dropLeadIn = drop.dropFrame - drop.startFrame;
535
+ rawSegments.push({
536
+ startFrame: drop.startFrame,
537
+ highlightFrames: dropLeadIn + main.highlightFrames,
538
+ leadInFrames: dropLeadIn,
539
+ });
540
+ excludeRanges.push({
541
+ start: drop.startFrame - maxShiftFrames,
542
+ endExclusive: main.startFrame + main.highlightFrames + maxShiftFrames,
543
+ });
544
+ return [4 /*yield*/, waitForEventLoop_1.waitForEventLoop()];
408
545
  case 3:
409
- startFrame = _e.sent();
546
+ _g.sent();
547
+ return [3 /*break*/, 6];
548
+ case 4: return [4 /*yield*/, findBestHighlightStart(energies, totalFrames, highlightFrames, excludeRanges)];
549
+ case 5:
550
+ startFrame = _g.sent();
410
551
  if (startFrame === null) {
411
- return [3 /*break*/, 5];
552
+ return [3 /*break*/, 7];
412
553
  }
413
- snapped = snapSegmentToBeats({ startFrame: startFrame, highlightFrames: highlightFrames }, totalFrames, beatFrames, maxShiftFrames, (_a = beatGrid) === null || _a === void 0 ? void 0 : _a.periodFrames);
414
- rawSegments.push(snapped);
554
+ snapped = snapSegmentToBeats({ startFrame: startFrame, highlightFrames: highlightFrames }, totalFrames, beatFrames, maxShiftFrames, (_c = beatGrid) === null || _c === void 0 ? void 0 : _c.periodFrames);
555
+ windowLeadIn = useDrops ? leadInFrames : 0;
556
+ rawSegments.push(windowLeadIn > 0
557
+ ? {
558
+ startFrame: snapped.startFrame - windowLeadIn,
559
+ highlightFrames: windowLeadIn + snapped.highlightFrames,
560
+ leadInFrames: windowLeadIn,
561
+ }
562
+ : snapped);
415
563
  // Padded so the next raw window, once snapped, cannot reach back into this one.
416
564
  excludeRanges.push({
417
565
  start: snapped.startFrame - maxShiftFrames,
418
566
  endExclusive: snapped.startFrame + snapped.highlightFrames + maxShiftFrames,
419
567
  });
420
- _e.label = 4;
421
- case 4:
568
+ _g.label = 6;
569
+ case 6:
422
570
  k++;
423
571
  return [3 /*break*/, 2];
424
- case 5:
572
+ case 7:
425
573
  rawSegments.sort(function (a, b) { return a.startFrame - b.startFrame; });
426
574
  runs = rawSegments.map(function (seg) {
427
575
  return buildHighlightRun(fps, seg, spectrums, beatEvents);
@@ -430,31 +578,18 @@ function computeHighlightSlice(fps, totalFrames, spectrums, beatEvents, segmentC
430
578
  beatFrameIndices = [];
431
579
  beatIntensities = [];
432
580
  outOffset = 0;
433
- _loop_1 = function (seg) {
434
- var chunk = spectrums.slice(seg.startFrame, seg.startFrame + seg.highlightFrames);
435
- slicedSpectrums.push.apply(slicedSpectrums, chunk);
436
- var beatsInSeg = beatEvents
437
- .filter(function (b) { return b.frameIndex >= seg.startFrame && b.frameIndex < seg.startFrame + seg.highlightFrames; })
438
- .sort(function (a, b) { return a.frameIndex - b.frameIndex; });
439
- for (var _i = 0, beatsInSeg_1 = beatsInSeg; _i < beatsInSeg_1.length; _i++) {
440
- var b = beatsInSeg_1[_i];
441
- beatFrameIndices.push(b.frameIndex - seg.startFrame + outOffset);
442
- beatIntensities.push(b.intensity);
443
- }
444
- outOffset += seg.highlightFrames;
445
- };
446
- for (_i = 0, rawSegments_1 = rawSegments; _i < rawSegments_1.length; _i++) {
447
- seg = rawSegments_1[_i];
448
- _loop_1(seg);
581
+ for (_i = 0, runs_1 = runs; _i < runs_1.length; _i++) {
582
+ run_1 = runs_1[_i];
583
+ slicedSpectrums.push.apply(slicedSpectrums, run_1.spectrums);
584
+ beatFrameIndices.push.apply(beatFrameIndices, run_1.beatFrameIndices.map(function (frameIndex) { return frameIndex + outOffset; }));
585
+ beatIntensities.push.apply(beatIntensities, run_1.beatIntensities);
586
+ outOffset += run_1.highlightFrames;
449
587
  }
450
588
  totalHighlightFrames = slicedSpectrums.length;
451
- audioSegments = rawSegments.map(function (seg) { return ({
452
- seekSeconds: seg.startFrame / fps,
453
- durationSeconds: seg.highlightFrames / fps,
454
- }); });
455
- first = (_b = audioSegments[0], (_b !== null && _b !== void 0 ? _b : { seekSeconds: 0, durationSeconds: 0 }));
589
+ audioSegments = runs.map(function (run) { return run.audioSegment; });
590
+ first = (_d = audioSegments[0], (_d !== null && _d !== void 0 ? _d : { seekSeconds: 0, durationSeconds: 0 }));
456
591
  return [2 /*return*/, {
457
- startFrame: (_d = (_c = rawSegments[0]) === null || _c === void 0 ? void 0 : _c.startFrame, (_d !== null && _d !== void 0 ? _d : 0)),
592
+ startFrame: (_f = (_e = rawSegments[0]) === null || _e === void 0 ? void 0 : _e.startFrame, (_f !== null && _f !== void 0 ? _f : 0)),
458
593
  highlightFrames: totalHighlightFrames,
459
594
  spectrums: slicedSpectrums,
460
595
  beatFrameIndices: beatFrameIndices,
@@ -1 +1 @@
1
- {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../src/highlight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../src/highlight.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -26,6 +26,14 @@ export interface Config {
26
26
  * videos instead of auto-detecting scene changes within a single video.
27
27
  */
28
28
  path: string | string[];
29
+ /**
30
+ * Video played once, always in full, before the `path` video(s). When `audio.autoHighlight`
31
+ * is true, each highlight is chosen so the hook ends on a detected drop and `path` starts with it,
32
+ * playing ~15s from the drop (the hook comes on top of the ~15s rather than being counted in it).
33
+ * If the drop is closer to the track start than the hook's length, the track is preceded by silence.
34
+ * The hook's sound, if any, is mixed over the track, which fades in from silence to full volume while the hook plays.
35
+ */
36
+ hookPath?: string;
29
37
  autoEdit?: boolean;
30
38
  /** When `autoEdit` is true, disables the brief camera shake applied on cuts, or every 2 beats when there are no cuts (default true). */
31
39
  cameraShake?: boolean;