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 +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.js +11 -0
- package/dist/config.js.map +1 -1
- package/dist/highlight.d.ts +27 -2
- package/dist/highlight.js +201 -66
- package/dist/highlight.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.js +139 -70
- package/dist/index.js.map +1 -1
- package/dist/video.d.ts +19 -0
- package/dist/video.js +62 -3
- package/dist/video.js.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +11 -0
- package/src/highlight.ts +203 -37
- package/src/index.ts +83 -14
- package/src/tests/config.test.ts +19 -0
- package/src/tests/highlight.test.ts +136 -0
- package/src/tests/video.test.ts +80 -1
- package/src/video.ts +81 -0
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
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
|
|
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
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
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:
|
|
363
|
-
highlightFrames:
|
|
364
|
-
spectrums: spectrums
|
|
493
|
+
startFrame: fullRun.startFrame,
|
|
494
|
+
highlightFrames: fullRun.highlightFrames,
|
|
495
|
+
spectrums: fullRun.spectrums,
|
|
365
496
|
beatFrameIndices: fullRun.beatFrameIndices,
|
|
366
497
|
beatIntensities: fullRun.beatIntensities,
|
|
367
|
-
audioSeekSeconds:
|
|
368
|
-
audioDurationSeconds:
|
|
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
|
-
|
|
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
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
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[] =
|
|
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
|
|