nodejs-audio-visualizer 5.1.0 → 5.2.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.
Files changed (50) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +3 -2
  3. package/dist/audio.d.ts +13 -13
  4. package/dist/audio.js +128 -128
  5. package/dist/beats.d.ts +39 -39
  6. package/dist/beats.js +220 -220
  7. package/dist/bpmEncoder.d.ts +14 -14
  8. package/dist/bpmEncoder.js +97 -97
  9. package/dist/config.d.ts +78 -77
  10. package/dist/config.js +377 -369
  11. package/dist/config.js.map +1 -1
  12. package/dist/dsp.d.ts +16 -16
  13. package/dist/dsp.js +76 -76
  14. package/dist/highlight.d.ts +34 -34
  15. package/dist/highlight.js +334 -334
  16. package/dist/image.d.ts +97 -92
  17. package/dist/image.js +545 -538
  18. package/dist/image.js.map +1 -1
  19. package/dist/index.d.ts +87 -79
  20. package/dist/index.js +597 -566
  21. package/dist/index.js.map +1 -1
  22. package/dist/subtitleConvert.d.ts +3 -3
  23. package/dist/subtitleConvert.js +61 -61
  24. package/dist/video.d.ts +150 -120
  25. package/dist/video.js +677 -582
  26. package/dist/video.js.map +1 -1
  27. package/dist/waitForEventLoop.d.ts +1 -1
  28. package/dist/waitForEventLoop.js +5 -5
  29. package/package.json +62 -62
  30. package/src/audio.ts +129 -129
  31. package/src/beats.ts +279 -279
  32. package/src/bpmEncoder.ts +97 -97
  33. package/src/config.ts +487 -476
  34. package/src/dsp.ts +95 -95
  35. package/src/highlight.ts +291 -291
  36. package/src/image.ts +707 -700
  37. package/src/index.ts +79 -37
  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 +534 -496
  42. package/src/tests/dsp.test.ts +24 -24
  43. package/src/tests/highlight.test.ts +178 -178
  44. package/src/tests/image.test.ts +319 -308
  45. package/src/tests/index.test.ts +180 -180
  46. package/src/tests/subtitleConvert.test.ts +23 -23
  47. package/src/tests/video.test.ts +535 -447
  48. package/src/typings.d.ts +28 -28
  49. package/src/video.ts +856 -722
  50. package/src/waitForEventLoop.ts +2 -2
package/dist/image.d.ts CHANGED
@@ -1,92 +1,97 @@
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 fires on every Nth beat of the tempo grid (half a bar of 4/4). */
85
- export declare const CAMERA_SHAKE_EVERY_BEATS = 2;
86
- export declare const buildCutShakeAmplitudes: (periodFrames: number) => number[];
87
- export declare const getCutShakeOffset: (frameIndex: number, cutFrames: ReadonlySet<number>, amplitudes?: readonly number[]) => {
88
- x: number;
89
- y: number;
90
- };
91
- export declare const applyCameraShake: (imageDstBuffer: EncodedBmp, width: number, height: number, offsetX: number, offsetY: number) => void;
92
- 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
+ export {};