nodejs-audio-visualizer 3.0.0 → 4.1.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
@@ -1,21 +1,27 @@
1
1
  # nodejs-audio-visualizer
2
2
  Audio visualizer generator for Node.js with simple configuration.
3
- Supports PNG, JPG for images and MP3, WAV for audio.
3
+ Supports PNG, JPG for images, MP4/MOV/AVI/MKV for background videos, and MP3, WAV for audio.
4
4
 
5
5
  ## Example
6
6
  ```javascript
7
7
  const renderAudioVisualizer = require('nodejs-audio-visualizer').renderAudioVisualizer;
8
8
  const config = {
9
9
  image: {
10
- path: 'media/background.png' // Supports PNG and JPG images
10
+ path: 'media/background.png' // Supports PNG and JPG images. Use either 'image' or 'video', not both.
11
11
  },
12
+ // OR use a video as background:
13
+ // video: {
14
+ // path: 'media/background.mp4', // Supports MP4, MOV, AVI, MKV. Loops automatically if shorter than audio.
15
+ // autoEdit: true, // Optional. Detects scene cuts and advances between them on each beat so the background edits with the music; omit or false for one continuous play-through from the start.
16
+ // },
12
17
  audio: {
13
18
  path: 'media/audio.wav' // Supports MP3 and WAV audio
14
19
  },
15
20
  outVideo: {
16
21
  path: 'media/out.mp4',
17
22
  fps: 25, // Default value: 30
18
- spectrum: { // Audio spectrum configuration. Optional.
23
+ resolution: { width: 1920, height: 1080 }, // Optional. Output frame size in pixels. Omit to keep the background image or video at its native resolution; when set, video frames are scaled to this size and images are resized (center-cropped first if landscape/portrait does not match the target aspect).
24
+ spectrum: { // Audio spectrum configuration (linear bar visualizer). Optional. If neither 'spectrum' nor 'polar' is specified, 'polar' is used by default.
19
25
  width: '30%', // 30% of background image width. Default value: 33%. Also you can use absolute values. For example, value 300 for 300 pixels width.
20
26
  height: '15%', // 15% of background image height. Default value: 160. Also you can use absolute values. For example, value 300 for 300 pixels height.
21
27
  x: 'center', // Available values: 'left', 'center', right'. Also you can use absolute number values. For example, value 300 for 300 pixels x.
@@ -24,6 +30,16 @@ const config = {
24
30
  effect: 'volume', // Available values: 'volume', 'smooth', undefined. Default value: undefined.
25
31
  color: '#cccc99', // Default value: inverted color of background image
26
32
  opacity: '70%' // Default value: '80%'.
33
+ },
34
+ polar: { // Polar/circular audio spectrum configuration (DEFAULT). Optional. Use either 'spectrum' or 'polar', not both.
35
+ x: 'center', // Available values: 'left', 'center', 'right'. Also you can use absolute number values. Default value: 'center'.
36
+ y: 'middle', // Available values: 'top', 'middle', 'bottom'. Also you can use absolute number values. Default value: 'middle'.
37
+ innerRadius: 100, // Inner radius of the circular spectrum in pixels. Default value: 100.
38
+ maxBarLength: 160, // Maximum bar length in pixels. Default value: 160.
39
+ barWidth: 15, // Width of each bar in pixels. Default value: 15.
40
+ effect: 'volume', // Available values: 'volume', 'smooth', undefined. Default value: undefined.
41
+ color: '#cccc99', // Default value: inverted color of background image
42
+ opacity: '70%' // Default value: '80%'.
27
43
  }
28
44
  },
29
45
  tweaks: { // Optional
@@ -0,0 +1,19 @@
1
+ export interface BeatInfo {
2
+ isBeat: boolean;
3
+ intensity: number;
4
+ energy: number;
5
+ threshold: number;
6
+ }
7
+ export interface BeatDetectorOptions {
8
+ /** Number of past frames to average for adaptive threshold (~1.5s by default) */
9
+ historySize?: number;
10
+ /** Energy must exceed average * this multiplier to trigger a beat */
11
+ thresholdMultiplier?: number;
12
+ /** How fast the beat intensity fades between beats (0-1, lower = faster fade) */
13
+ decayRate?: number;
14
+ /** Minimum frames between consecutive beats (~150ms by default) */
15
+ cooldownFrames?: number;
16
+ /** How many low-frequency spectrum bands contribute to energy (sub-bass + bass) */
17
+ bassEndIndex?: number;
18
+ }
19
+ export declare const createBeatDetector: (fps: number, options?: BeatDetectorOptions | undefined) => (spectrum: number[]) => BeatInfo;
package/dist/beats.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBeatDetector = function (fps, options) {
4
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
5
+ var historySize = (_b = (_a = options) === null || _a === void 0 ? void 0 : _a.historySize, (_b !== null && _b !== void 0 ? _b : Math.round(fps * 1.5)));
6
+ var thresholdMultiplier = (_d = (_c = options) === null || _c === void 0 ? void 0 : _c.thresholdMultiplier, (_d !== null && _d !== void 0 ? _d : 1.4));
7
+ var decayRate = (_f = (_e = options) === null || _e === void 0 ? void 0 : _e.decayRate, (_f !== null && _f !== void 0 ? _f : 0.85));
8
+ var cooldownFrames = (_h = (_g = options) === null || _g === void 0 ? void 0 : _g.cooldownFrames, (_h !== null && _h !== void 0 ? _h : Math.round(fps * 0.15)));
9
+ var bassEndIndex = (_k = (_j = options) === null || _j === void 0 ? void 0 : _j.bassEndIndex, (_k !== null && _k !== void 0 ? _k : 8));
10
+ var energyHistory = [];
11
+ var framesSinceLastBeat = cooldownFrames;
12
+ var decayingIntensity = 0;
13
+ return function (spectrum) {
14
+ var bassSpectrum = spectrum.slice(0, Math.min(bassEndIndex, spectrum.length));
15
+ var energy = bassSpectrum.reduce(function (sum, val) { return sum + val * val; }, 0) / bassSpectrum.length;
16
+ energyHistory.push(energy);
17
+ if (energyHistory.length > historySize) {
18
+ energyHistory.shift();
19
+ }
20
+ var avgEnergy = energyHistory.reduce(function (sum, e) { return sum + e; }, 0) / energyHistory.length;
21
+ var variance = energyHistory.reduce(function (sum, e) { return sum + Math.pow((e - avgEnergy), 2); }, 0) / energyHistory.length;
22
+ var stdDev = Math.sqrt(variance);
23
+ var threshold = avgEnergy + stdDev * thresholdMultiplier;
24
+ framesSinceLastBeat++;
25
+ var hasEnoughHistory = energyHistory.length >= Math.round(historySize / 3);
26
+ var isAboveThreshold = energy > threshold && hasEnoughHistory;
27
+ var isCooldownOver = framesSinceLastBeat >= cooldownFrames;
28
+ var isBeat = isAboveThreshold && isCooldownOver;
29
+ if (isBeat) {
30
+ framesSinceLastBeat = 0;
31
+ decayingIntensity = Math.min(1, (energy - threshold) / (stdDev + 1e-6));
32
+ }
33
+ else {
34
+ decayingIntensity *= decayRate;
35
+ }
36
+ return {
37
+ isBeat: isBeat,
38
+ intensity: decayingIntensity,
39
+ energy: energy,
40
+ threshold: threshold,
41
+ };
42
+ };
43
+ };
44
+ //# sourceMappingURL=beats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beats.js","sourceRoot":"","sources":["../src/beats.ts"],"names":[],"mappings":";;AAoBa,QAAA,kBAAkB,GAAG,UAAC,GAAW,EAAE,OAA6B;;IAC3E,IAAM,WAAW,eAAG,OAAO,0CAAE,WAAW,uCAAI,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,EAAA,CAAC;IAClE,IAAM,mBAAmB,eAAG,OAAO,0CAAE,mBAAmB,uCAAI,GAAG,EAAA,CAAC;IAChE,IAAM,SAAS,eAAG,OAAO,0CAAE,SAAS,uCAAI,IAAI,EAAA,CAAC;IAC7C,IAAM,cAAc,eAAG,OAAO,0CAAE,cAAc,uCAAI,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAA,CAAC;IACzE,IAAM,YAAY,eAAG,OAAO,0CAAE,YAAY,uCAAI,CAAC,EAAA,CAAC;IAEhD,IAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,mBAAmB,GAAG,cAAc,CAAC;IACzC,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,OAAO,UAAC,QAAkB;QACxB,IAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,IAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,GAAG,GAAG,GAAG,GAAG,EAAf,CAAe,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QAE3F,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,aAAa,CAAC,MAAM,GAAG,WAAW,EAAE;YACtC,aAAa,CAAC,KAAK,EAAE,CAAC;SACvB;QAED,IAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,GAAG,GAAG,CAAC,EAAP,CAAO,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QACtF,IAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,GAAG,GAAG,SAAA,CAAC,CAAC,GAAG,SAAS,CAAC,EAAI,CAAC,CAAA,EAA1B,CAA0B,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QACxG,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnC,IAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,mBAAmB,CAAC;QAE3D,mBAAmB,EAAE,CAAC;QAEtB,IAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,IAAI,gBAAgB,CAAC;QAChE,IAAM,cAAc,GAAG,mBAAmB,IAAI,cAAc,CAAC;QAC7D,IAAM,MAAM,GAAG,gBAAgB,IAAI,cAAc,CAAC;QAElD,IAAI,MAAM,EAAE;YACV,mBAAmB,GAAG,CAAC,CAAC;YACxB,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;SACzE;aAAM;YACL,iBAAiB,IAAI,SAAS,CAAC;SAChC;QAED,OAAO;YACL,MAAM,QAAA;YACN,SAAS,EAAE,iBAAiB;YAC5B,MAAM,QAAA;YACN,SAAS,WAAA;SACV,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -8,3 +8,7 @@ export declare const createBpmEncoder: (imgData: {
8
8
  width: number;
9
9
  height: number;
10
10
  }) => (buffer: Buffer) => EncodedBmp;
11
+ export declare const createBgrFrameEncoder: (imgData: {
12
+ width: number;
13
+ height: number;
14
+ }) => (bgrBuffer: Buffer) => EncodedBmp;
@@ -1,56 +1,51 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ var writeBmpHeader = function (buffer, width, height, rgbSize) {
4
+ var headerInfoSize = 40;
5
+ var offset = 54;
6
+ var fileSize = rgbSize + offset;
7
+ var pos = 0;
8
+ buffer.write('BM', pos, 2);
9
+ pos += 2;
10
+ buffer.writeUInt32LE(fileSize, pos);
11
+ pos += 4;
12
+ buffer.writeUInt32LE(0, pos);
13
+ pos += 4;
14
+ buffer.writeUInt32LE(offset, pos);
15
+ pos += 4;
16
+ buffer.writeUInt32LE(headerInfoSize, pos);
17
+ pos += 4;
18
+ buffer.writeUInt32LE(width, pos);
19
+ pos += 4;
20
+ buffer.writeInt32LE(-height, pos);
21
+ pos += 4;
22
+ buffer.writeUInt16LE(1, pos);
23
+ pos += 2;
24
+ buffer.writeUInt16LE(24, pos);
25
+ pos += 2;
26
+ buffer.writeUInt32LE(0, pos);
27
+ pos += 4;
28
+ buffer.writeUInt32LE(rgbSize, pos);
29
+ pos += 4;
30
+ buffer.writeUInt32LE(0, pos);
31
+ pos += 4;
32
+ buffer.writeUInt32LE(0, pos);
33
+ pos += 4;
34
+ buffer.writeUInt32LE(0, pos);
35
+ pos += 4;
36
+ buffer.writeUInt32LE(0, pos);
37
+ pos += 4;
38
+ return offset;
39
+ };
3
40
  exports.createBpmEncoder = function (imgData) {
4
41
  var width = imgData.width;
5
42
  var height = imgData.height;
6
43
  var extraBytes = width % 4;
7
44
  var rgbSize = height * (3 * width + extraBytes);
8
- var headerInfoSize = 40;
9
- /******************header***********************/
10
- var flag = 'BM';
11
- var reserved = 0;
12
45
  var offset = 54;
13
- var fileSize = rgbSize + offset;
14
- var planes = 1;
15
- var bitPP = 24;
16
- var compress = 0;
17
- var hr = 0;
18
- var vr = 0;
19
- var colors = 0;
20
- var importantColors = 0;
21
46
  return function (buffer) {
22
47
  var tempBuffer = Buffer.alloc(offset + rgbSize);
23
- var pos = 0;
24
- tempBuffer.write(flag, pos, 2);
25
- pos += 2;
26
- tempBuffer.writeUInt32LE(fileSize, pos);
27
- pos += 4;
28
- tempBuffer.writeUInt32LE(reserved, pos);
29
- pos += 4;
30
- tempBuffer.writeUInt32LE(offset, pos);
31
- pos += 4;
32
- tempBuffer.writeUInt32LE(headerInfoSize, pos);
33
- pos += 4;
34
- tempBuffer.writeUInt32LE(width, pos);
35
- pos += 4;
36
- tempBuffer.writeInt32LE(-height, pos);
37
- pos += 4;
38
- tempBuffer.writeUInt16LE(planes, pos);
39
- pos += 2;
40
- tempBuffer.writeUInt16LE(bitPP, pos);
41
- pos += 2;
42
- tempBuffer.writeUInt32LE(compress, pos);
43
- pos += 4;
44
- tempBuffer.writeUInt32LE(rgbSize, pos);
45
- pos += 4;
46
- tempBuffer.writeUInt32LE(hr, pos);
47
- pos += 4;
48
- tempBuffer.writeUInt32LE(vr, pos);
49
- pos += 4;
50
- tempBuffer.writeUInt32LE(colors, pos);
51
- pos += 4;
52
- tempBuffer.writeUInt32LE(importantColors, pos);
53
- pos += 4;
48
+ var pos = writeBmpHeader(tempBuffer, width, height, rgbSize);
54
49
  var i = 0;
55
50
  var rowBytes = 3 * width + extraBytes;
56
51
  for (var y = 0; y < height; y++) {
@@ -73,4 +68,31 @@ exports.createBpmEncoder = function (imgData) {
73
68
  };
74
69
  };
75
70
  };
71
+ exports.createBgrFrameEncoder = function (imgData) {
72
+ var width = imgData.width;
73
+ var height = imgData.height;
74
+ var extraBytes = width % 4;
75
+ var rowBytes = 3 * width + extraBytes;
76
+ var rgbSize = height * rowBytes;
77
+ var offset = 54;
78
+ var tempBuffer = Buffer.alloc(offset + rgbSize);
79
+ var pos = writeBmpHeader(tempBuffer, width, height, rgbSize);
80
+ return function (bgrBuffer) {
81
+ if (extraBytes === 0) {
82
+ bgrBuffer.copy(tempBuffer, pos, 0, width * height * 3);
83
+ }
84
+ else {
85
+ for (var y = 0; y < height; y++) {
86
+ var srcOffset = y * width * 3;
87
+ var dstOffset = pos + y * rowBytes;
88
+ bgrBuffer.copy(tempBuffer, dstOffset, srcOffset, srcOffset + width * 3);
89
+ }
90
+ }
91
+ return {
92
+ shiftPos: pos,
93
+ rowBytes: rowBytes,
94
+ data: tempBuffer
95
+ };
96
+ };
97
+ };
76
98
  //# sourceMappingURL=bpmEncoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bpmEncoder.js","sourceRoot":"","sources":["../src/bpmEncoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bpmEncoder.js","sourceRoot":"","sources":["../src/bpmEncoder.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -8,14 +8,25 @@ export declare const defaults: {
8
8
  spectrumRotation: string;
9
9
  spectrumBusMargin: number;
10
10
  spectrumOpacity: string;
11
+ polarX: string;
12
+ polarY: string;
13
+ polarInnerRadius: number;
14
+ polarMaxBarLength: number;
15
+ polarBarWidth: number;
11
16
  };
12
17
  export declare type SpectrumEffect = 'volume' | 'smooth';
13
18
  export declare const rotationAliasValues: readonly ["up", "down", "mirror"];
14
19
  export declare const checkIsPercentValue: (value: string) => boolean;
15
20
  export declare const getAudioFilePath: (config: Config) => string;
16
- export declare const getBackgroundImagePath: (config: Config) => string;
21
+ export declare const getBackgroundImagePath: (config: Config) => string | undefined;
22
+ export declare const getBackgroundVideoPath: (config: Config) => string | undefined;
23
+ export declare const getAutoEditVideo: (config: Config) => boolean;
17
24
  export declare const getOutVideoPath: (config: Config) => string;
18
25
  export declare const getFPS: (config: Config) => number;
26
+ export declare const getOutputResolution: (config: Config) => {
27
+ width: number;
28
+ height: number;
29
+ } | undefined;
19
30
  export declare const getSpectrumBusMargin: () => number;
20
31
  export declare const getSpectrumEffect: (config: Config) => "smooth" | "volume" | undefined;
21
32
  export declare const getSpectrumWidthAbsolute: (config: Config, backgroundImageWidth: number) => number;
@@ -30,3 +41,12 @@ export declare const getSpectrumOpacityParsed: (config: Config) => number;
30
41
  export declare const getFfmpeg_cfr: (config: Config) => string | undefined;
31
42
  export declare const getFfmpeg_preset: (config: Config) => string | undefined;
32
43
  export declare const getFrame_processing_delay: (config: Config) => number | undefined;
44
+ export declare const getPolarXAbsolute: (config: Config, backgroundImageWidth: number) => number;
45
+ export declare const getPolarYAbsolute: (config: Config, backgroundImageHeight: number) => number;
46
+ export declare const getPolarInnerRadius: (config: Config) => number;
47
+ export declare const getPolarMaxBarLength: (config: Config) => number;
48
+ export declare const getPolarBarWidth: (config: Config) => number;
49
+ export declare const getPolarEffect: (config: Config) => "smooth" | "volume" | undefined;
50
+ export declare const getPolarColor: (config: Config) => string | import("./image").Color | undefined;
51
+ export declare const getPolarOpacity: (config: Config) => string;
52
+ export declare const getPolarOpacityParsed: (config: Config) => number;
package/dist/config.js CHANGED
@@ -14,6 +14,11 @@ exports.defaults = {
14
14
  spectrumRotation: 'mirror',
15
15
  spectrumBusMargin: 12,
16
16
  spectrumOpacity: '80%',
17
+ polarX: 'center',
18
+ polarY: 'middle',
19
+ polarInnerRadius: 100,
20
+ polarMaxBarLength: 160,
21
+ polarBarWidth: 15,
17
22
  };
18
23
  var postitionAliases = [
19
24
  { name: 'left', value: 0 },
@@ -31,14 +36,21 @@ exports.getAudioFilePath = function (config) {
31
36
  return path_1.default.resolve(config.audio.path);
32
37
  };
33
38
  exports.getBackgroundImagePath = function (config) {
34
- return path_1.default.resolve(config.image.path);
39
+ return config.image ? path_1.default.resolve(config.image.path) : undefined;
35
40
  };
41
+ exports.getBackgroundVideoPath = function (config) {
42
+ return config.video ? path_1.default.resolve(config.video.path) : undefined;
43
+ };
44
+ exports.getAutoEditVideo = function (config) { var _a; return ((_a = config.video) === null || _a === void 0 ? void 0 : _a.autoEdit) === true; };
36
45
  exports.getOutVideoPath = function (config) {
37
46
  return path_1.default.resolve(config.outVideo.path);
38
47
  };
39
48
  exports.getFPS = function (config) {
40
49
  return config.outVideo.fps || exports.defaults.fps;
41
50
  };
51
+ exports.getOutputResolution = function (config) {
52
+ return config.outVideo.resolution;
53
+ };
42
54
  exports.getSpectrumBusMargin = function () { return exports.defaults.spectrumBusMargin; };
43
55
  var getSpectrumWidth = function (config) {
44
56
  return (config.outVideo.spectrum && config.outVideo.spectrum.width) ||
@@ -182,4 +194,91 @@ exports.getFfmpeg_preset = function (config) {
182
194
  exports.getFrame_processing_delay = function (config) {
183
195
  return config.tweaks && config.tweaks.frame_processing_delay;
184
196
  };
197
+ // Polar visualizer config getters
198
+ var getPolarX = function (config) {
199
+ return parseNumberIfPossible((config.outVideo.polar && config.outVideo.polar.x) ||
200
+ exports.defaults.polarX);
201
+ };
202
+ var getPolarY = function (config) {
203
+ return parseNumberIfPossible((config.outVideo.polar && config.outVideo.polar.y) ||
204
+ exports.defaults.polarY);
205
+ };
206
+ exports.getPolarXAbsolute = function (config, backgroundImageWidth) {
207
+ var polarX = getPolarX(config);
208
+ if (typeof polarX !== 'string') {
209
+ return polarX;
210
+ }
211
+ try {
212
+ var polarXParsed = parsePositionAlias(polarX);
213
+ if (polarXParsed.value === 0) {
214
+ var polarLength = exports.getPolarMaxBarLength(config);
215
+ var polarRadius = exports.getPolarInnerRadius(config);
216
+ return polarRadius + polarLength;
217
+ }
218
+ if (polarXParsed.value === 1) {
219
+ var polarLength = exports.getPolarMaxBarLength(config);
220
+ var polarRadius = exports.getPolarInnerRadius(config);
221
+ return backgroundImageWidth - polarRadius - polarLength;
222
+ }
223
+ return polarXParsed.value * backgroundImageWidth;
224
+ }
225
+ catch (_a) {
226
+ throw new Error("Invalid polar x value: " + polarX + ". Valid values: " + getValidPositionAliasValues() + ".");
227
+ }
228
+ };
229
+ exports.getPolarYAbsolute = function (config, backgroundImageHeight) {
230
+ var polarY = getPolarY(config);
231
+ if (typeof polarY !== 'string') {
232
+ return polarY;
233
+ }
234
+ try {
235
+ var polarYParsed = parsePositionAlias(polarY);
236
+ if (polarYParsed.value === 0) {
237
+ var polarLength = exports.getPolarMaxBarLength(config);
238
+ var polarRadius = exports.getPolarInnerRadius(config);
239
+ return polarRadius + polarLength;
240
+ }
241
+ if (polarYParsed.value === 1) {
242
+ var polarLength = exports.getPolarMaxBarLength(config);
243
+ var polarRadius = exports.getPolarInnerRadius(config);
244
+ return backgroundImageHeight - polarRadius - polarLength;
245
+ }
246
+ return polarYParsed.value * backgroundImageHeight;
247
+ }
248
+ catch (_a) {
249
+ throw new Error("Invalid polar y value: " + polarY + ". Valid values: " + getValidPositionAliasValues() + ".");
250
+ }
251
+ };
252
+ exports.getPolarInnerRadius = function (config) {
253
+ return (config.outVideo.polar && config.outVideo.polar.innerRadius) ||
254
+ exports.defaults.polarInnerRadius;
255
+ };
256
+ exports.getPolarMaxBarLength = function (config) {
257
+ return (config.outVideo.polar && config.outVideo.polar.maxBarLength) ||
258
+ exports.defaults.polarMaxBarLength;
259
+ };
260
+ exports.getPolarBarWidth = function (config) {
261
+ return (config.outVideo.polar && config.outVideo.polar.barWidth) ||
262
+ exports.defaults.polarBarWidth;
263
+ };
264
+ exports.getPolarEffect = function (config) { var _a; return (_a = config.outVideo.polar) === null || _a === void 0 ? void 0 : _a.effect; };
265
+ exports.getPolarColor = function (config) {
266
+ return config.outVideo.polar && config.outVideo.polar.color;
267
+ };
268
+ exports.getPolarOpacity = function (config) {
269
+ return (config.outVideo.polar && config.outVideo.polar.opacity) ||
270
+ exports.defaults.spectrumOpacity;
271
+ };
272
+ exports.getPolarOpacityParsed = function (config) {
273
+ var polarOpacity = exports.getPolarOpacity(config);
274
+ if (!exports.checkIsPercentValue(polarOpacity)) {
275
+ throw new Error("Invalid polar opacity value: '" + polarOpacity + "'. Use string percent value, for example '80%'.");
276
+ }
277
+ var percentValue = parseInt(polarOpacity);
278
+ if ((percentValue < 0) ||
279
+ (percentValue > 100)) {
280
+ throw new Error("Invalid polar opacity value: '" + polarOpacity + "'. Percent values must be in range from '0%' to '100%'.");
281
+ }
282
+ return percentValue / 100;
283
+ };
185
284
  //# sourceMappingURL=config.js.map
@@ -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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"}
package/dist/image.d.ts CHANGED
@@ -31,9 +31,22 @@ interface DrawRectPorps {
31
31
  opacity: number;
32
32
  }
33
33
  export declare const drawRect: ({ imageDstBuffer, position, size, color, opacity, }: DrawRectPorps) => void;
34
- interface CreateVisualizerFrameProps {
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 {
35
46
  backgroundImageBuffer: EncodedBmp;
36
47
  spectrum: number[];
48
+ }
49
+ export interface CreateVisualizerFrameProps {
37
50
  size: Size;
38
51
  position: Position;
39
52
  rotation: RotationAliasName;
@@ -42,10 +55,22 @@ interface CreateVisualizerFrameProps {
42
55
  opacity: number;
43
56
  spectrumEffect?: SpectrumEffect;
44
57
  }
45
- export declare const createVisualizerFrameGenerator: () => ({ backgroundImageBuffer, spectrum, size, position, rotation, margin, color, opacity, spectrumEffect, }: CreateVisualizerFrameProps) => EncodedBmp;
46
- export declare const convertToBmp: (filePath: string) => Promise<Buffer>;
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>;
47
71
  export declare const parseImage: (buffer: Buffer) => BmpDecoder;
48
72
  export declare const getImageColor: (image: BmpDecoder) => Color;
73
+ export declare const getVideoFrameColor: (bgrBuffer: Buffer, width: number, height: number) => Color;
49
74
  export declare const invertColor: (color: Color) => {
50
75
  red: number;
51
76
  green: number;