nodejs-audio-visualizer 5.5.2 → 5.6.3

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.
Files changed (48) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +84 -83
  3. package/dist/audio.d.ts +13 -13
  4. package/dist/audio.js +128 -128
  5. package/dist/beats.d.ts +39 -44
  6. package/dist/beats.js +220 -313
  7. package/dist/beats.js.map +1 -1
  8. package/dist/bpmEncoder.d.ts +14 -14
  9. package/dist/bpmEncoder.js +97 -97
  10. package/dist/config.d.ts +81 -80
  11. package/dist/config.js +392 -391
  12. package/dist/config.js.map +1 -1
  13. package/dist/dsp.d.ts +16 -16
  14. package/dist/dsp.js +76 -76
  15. package/dist/highlight.d.ts +91 -91
  16. package/dist/highlight.js +606 -606
  17. package/dist/image.d.ts +107 -97
  18. package/dist/image.js +614 -545
  19. package/dist/image.js.map +1 -1
  20. package/dist/index.d.ts +98 -96
  21. package/dist/index.js +673 -667
  22. package/dist/index.js.map +1 -1
  23. package/dist/subtitleConvert.d.ts +3 -3
  24. package/dist/subtitleConvert.js +61 -61
  25. package/dist/video.d.ts +171 -171
  26. package/dist/video.js +743 -743
  27. package/dist/waitForEventLoop.d.ts +1 -1
  28. package/dist/waitForEventLoop.js +5 -5
  29. package/package.json +62 -61
  30. package/src/audio.ts +129 -129
  31. package/src/beats.ts +279 -396
  32. package/src/bpmEncoder.ts +97 -97
  33. package/src/config.ts +504 -501
  34. package/src/dsp.ts +95 -95
  35. package/src/highlight.ts +617 -617
  36. package/src/image.ts +791 -707
  37. package/src/index.ts +896 -885
  38. package/src/subtitleConvert.ts +63 -63
  39. package/src/tests/audio.test.ts +102 -102
  40. package/src/tests/beats.test.ts +134 -134
  41. package/src/tests/config.test.ts +568 -553
  42. package/src/tests/dsp.test.ts +24 -24
  43. package/src/tests/highlight.test.ts +397 -397
  44. package/src/tests/image.test.ts +371 -319
  45. package/src/tests/index.test.ts +180 -180
  46. package/src/tests/subtitleConvert.test.ts +23 -23
  47. package/src/typings.d.ts +28 -6
  48. package/src/waitForEventLoop.ts +2 -2
package/dist/image.d.ts CHANGED
@@ -1,97 +1,107 @@
1
- /// <reference types="node" />
2
- import { RotationAliasName } from './index';
3
- import { BmpDecoder } from 'bmp-js';
4
- import { EncodedBmp } from './bpmEncoder';
5
- import { SpectrumEffect } from './config';
6
- export interface Color {
7
- red: number;
8
- green: number;
9
- blue: number;
10
- }
11
- interface Position {
12
- x: number;
13
- y: number;
14
- }
15
- interface Size {
16
- width: number;
17
- height: number;
18
- }
19
- interface MixColorProps {
20
- color: Color;
21
- colorOpacity: number;
22
- backgroundColor: Color;
23
- }
24
- export declare const mixValues: (value1: number, value1Opacity: number, value2: number) => number;
25
- export declare const mixColors: ({ color, colorOpacity, backgroundColor, }: MixColorProps) => Color;
26
- interface DrawRectPorps {
27
- imageDstBuffer: EncodedBmp;
28
- position: Position;
29
- size: Size;
30
- color: Color;
31
- opacity: number;
32
- }
33
- export declare const drawRect: ({ imageDstBuffer, position, size, color, opacity, }: DrawRectPorps) => void;
34
- interface FillRectProps {
35
- imageDstBuffer: EncodedBmp;
36
- points: [Position, Position, Position, Position];
37
- color: Color;
38
- opacity: number;
39
- }
40
- /**
41
- * Fills a quadrilateral (4-sided polygon) using scan-line algorithm
42
- * Only the outer edges are anti-aliased
43
- */
44
- export declare const fillRect: ({ imageDstBuffer, points, color, opacity, }: FillRectProps) => void;
45
- export interface CommonVisualizerFrameProps {
46
- backgroundImageBuffer: EncodedBmp;
47
- spectrum: number[];
48
- }
49
- export interface CreateVisualizerFrameProps {
50
- size: Size;
51
- position: Position;
52
- rotation: RotationAliasName;
53
- margin: number;
54
- color: Color | string;
55
- opacity: number;
56
- spectrumEffect?: SpectrumEffect;
57
- }
58
- export interface CreatePolarVisualizerFrameProps {
59
- centerX: number;
60
- centerY: number;
61
- innerRadius: number;
62
- maxBarLength: number;
63
- barWidth: number;
64
- color: Color | string;
65
- opacity: number;
66
- spectrumEffect?: SpectrumEffect;
67
- }
68
- export declare const createSpectrumVisualizerFrameGenerator: () => ({ backgroundImageBuffer, spectrum, size, position, rotation, margin, color, opacity, spectrumEffect, }: CommonVisualizerFrameProps & CreateVisualizerFrameProps) => EncodedBmp;
69
- export declare const createPolarVisualizerFrameGenerator: () => ({ backgroundImageBuffer, spectrum, centerX, centerY, innerRadius, maxBarLength, barWidth, color, opacity, spectrumEffect, }: CommonVisualizerFrameProps & CreatePolarVisualizerFrameProps) => EncodedBmp;
70
- export declare const convertToBmp: (filePath: string, targetWidth?: number | undefined, targetHeight?: number | undefined) => Promise<Buffer>;
71
- export declare const parseImage: (buffer: Buffer) => BmpDecoder;
72
- export declare const getImageColor: (image: BmpDecoder) => Color;
73
- export declare const getVideoFrameColor: (bgrBuffer: Buffer, width: number, height: number) => Color;
74
- export declare const invertColor: (color: Color) => {
75
- red: number;
76
- green: number;
77
- blue: number;
78
- };
79
- /** Pixel shift strength for the cut frame and the frames after it. */
80
- export declare const CUT_SHAKE_AMPLITUDE_BY_OFFSET: readonly [14, 9, 5, 3, 1];
81
- export declare const CUT_SHAKE_PEAK_AMPLITUDE = 14;
82
- export declare const MIN_CUT_SHAKE_FRAMES = 3;
83
- export declare const SHAKE_DURATION_BEAT_FRACTION: number;
84
- /** Camera shake starts this many seconds after the cut instead of on the cut frame. */
85
- export declare const CAMERA_SHAKE_DELAY_SECONDS = 0.1;
86
- /**
87
- * When auto-edit produces no cuts (e.g. a single continuous-shot video with no detected
88
- * scene changes), camera shake falls back to every Nth beat of the tempo grid instead.
89
- */
90
- export declare const CAMERA_SHAKE_EVERY_BEATS = 2;
91
- export declare const buildCutShakeAmplitudes: (periodFrames: number) => number[];
92
- export declare const getCutShakeOffset: (frameIndex: number, cutFrames: ReadonlySet<number>, amplitudes?: readonly number[], delayFrames?: number) => {
93
- x: number;
94
- y: number;
95
- };
96
- export declare const applyCameraShake: (imageDstBuffer: EncodedBmp, width: number, height: number, offsetX: number, offsetY: number) => void;
97
- export {};
1
+ /// <reference types="node" />
2
+ import { RotationAliasName } from './index';
3
+ import { BmpDecoder } from 'bmp-js';
4
+ import { EncodedBmp } from './bpmEncoder';
5
+ import { SpectrumEffect } from './config';
6
+ export interface Color {
7
+ red: number;
8
+ green: number;
9
+ blue: number;
10
+ }
11
+ interface Position {
12
+ x: number;
13
+ y: number;
14
+ }
15
+ interface Size {
16
+ width: number;
17
+ height: number;
18
+ }
19
+ interface MixColorProps {
20
+ color: Color;
21
+ colorOpacity: number;
22
+ backgroundColor: Color;
23
+ }
24
+ export declare const mixValues: (value1: number, value1Opacity: number, value2: number) => number;
25
+ export declare const mixColors: ({ color, colorOpacity, backgroundColor, }: MixColorProps) => Color;
26
+ interface DrawRectPorps {
27
+ imageDstBuffer: EncodedBmp;
28
+ position: Position;
29
+ size: Size;
30
+ color: Color;
31
+ opacity: number;
32
+ }
33
+ export declare const drawRect: ({ imageDstBuffer, position, size, color, opacity, }: DrawRectPorps) => void;
34
+ interface FillRectProps {
35
+ imageDstBuffer: EncodedBmp;
36
+ points: [Position, Position, Position, Position];
37
+ color: Color;
38
+ opacity: number;
39
+ }
40
+ /**
41
+ * Fills a quadrilateral (4-sided polygon) using scan-line algorithm
42
+ * Only the outer edges are anti-aliased
43
+ */
44
+ export declare const fillRect: ({ imageDstBuffer, points, color, opacity, }: FillRectProps) => void;
45
+ export interface CommonVisualizerFrameProps {
46
+ backgroundImageBuffer: EncodedBmp;
47
+ spectrum: number[];
48
+ }
49
+ export interface CreateVisualizerFrameProps {
50
+ size: Size;
51
+ position: Position;
52
+ rotation: RotationAliasName;
53
+ margin: number;
54
+ color: Color | string;
55
+ opacity: number;
56
+ spectrumEffect?: SpectrumEffect;
57
+ }
58
+ export interface CreatePolarVisualizerFrameProps {
59
+ centerX: number;
60
+ centerY: number;
61
+ innerRadius: number;
62
+ maxBarLength: number;
63
+ barWidth: number;
64
+ color: Color | string;
65
+ opacity: number;
66
+ spectrumEffect?: SpectrumEffect;
67
+ }
68
+ export declare const createSpectrumVisualizerFrameGenerator: () => ({ backgroundImageBuffer, spectrum, size, position, rotation, margin, color, opacity, spectrumEffect, }: CommonVisualizerFrameProps & CreateVisualizerFrameProps) => EncodedBmp;
69
+ export declare const createPolarVisualizerFrameGenerator: () => ({ backgroundImageBuffer, spectrum, centerX, centerY, innerRadius, maxBarLength, barWidth, color, opacity, spectrumEffect, }: CommonVisualizerFrameProps & CreatePolarVisualizerFrameProps) => EncodedBmp;
70
+ export declare const convertToBmp: (filePath: string, targetWidth?: number | undefined, targetHeight?: number | undefined) => Promise<Buffer>;
71
+ export declare const parseImage: (buffer: Buffer) => BmpDecoder;
72
+ export declare const getImageColor: (image: BmpDecoder) => Color;
73
+ export declare const getVideoFrameColor: (bgrBuffer: Buffer, width: number, height: number) => Color;
74
+ export declare const invertColor: (color: Color) => {
75
+ red: number;
76
+ green: number;
77
+ blue: number;
78
+ };
79
+ /** Pixel shift strength for the cut frame and the frames after it. */
80
+ export declare const CUT_SHAKE_AMPLITUDE_BY_OFFSET: readonly [14, 9, 5, 3, 1];
81
+ export declare const CUT_SHAKE_PEAK_AMPLITUDE = 14;
82
+ export declare const MIN_CUT_SHAKE_FRAMES = 3;
83
+ export declare const SHAKE_DURATION_BEAT_FRACTION: number;
84
+ /** Camera shake starts this many seconds after the cut instead of on the cut frame. */
85
+ export declare const CAMERA_SHAKE_DELAY_SECONDS = 0.1;
86
+ /**
87
+ * When auto-edit produces no cuts (e.g. a single continuous-shot video with no detected
88
+ * scene changes), camera shake falls back to every Nth beat of the tempo grid instead.
89
+ */
90
+ export declare const CAMERA_SHAKE_EVERY_BEATS = 2;
91
+ export declare const buildCutShakeAmplitudes: (periodFrames: number) => number[];
92
+ export declare const getCutShakeOffset: (frameIndex: number, cutFrames: ReadonlySet<number>, amplitudes?: readonly number[], delayFrames?: number) => {
93
+ x: number;
94
+ y: number;
95
+ };
96
+ export declare const applyCameraShake: (imageDstBuffer: EncodedBmp, width: number, height: number, offsetX: number, offsetY: number) => void;
97
+ /** Scale of the cut frame; the zoom then eases out back to 1 (no zoom). */
98
+ export declare const CUT_ZOOM_PEAK_SCALE = 1.15;
99
+ export declare const MIN_CUT_ZOOM_FRAMES = 3;
100
+ export declare const ZOOM_DURATION_BEAT_FRACTION: number;
101
+ /** Frame count used when the tempo is unknown. */
102
+ export declare const DEFAULT_CUT_ZOOM_FRAMES = 6;
103
+ export declare const buildCutZoomScales: (periodFrames: number) => number[];
104
+ export declare const getCutZoomScale: (frameIndex: number, cutFrames: ReadonlySet<number>, scales: readonly number[]) => number;
105
+ /** Scales the frame around its center by `scale` (> 1 zooms in), with bilinear sampling. */
106
+ export declare const applyCutZoom: (imageDstBuffer: EncodedBmp, width: number, height: number, scale: number) => void;
107
+ export {};