nodejs-audio-visualizer 2.1.4 → 3.0.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 +6 -5
- package/dist/audio.d.ts +1 -2
- package/dist/audio.js +40 -30
- package/dist/audio.js.map +1 -1
- package/dist/config.d.ts +5 -5
- package/dist/config.js +11 -11
- package/dist/config.js.map +1 -1
- package/dist/dsp.d.ts +15 -1
- package/dist/dsp.js +58 -7
- package/dist/dsp.js.map +1 -1
- package/dist/image.d.ts +3 -1
- package/dist/image.js +64 -18
- package/dist/image.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +38 -47
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/src/audio.ts +35 -33
- package/src/config.ts +15 -12
- package/src/dsp.ts +76 -7
- package/src/image.ts +76 -20
- package/src/index.ts +18 -8
- package/src/tests/audio.test.ts +5 -14
- package/src/tests/config.test.ts +6 -8
- package/src/tests/dsp.test.ts +3 -4
- package/src/tests/image.test.ts +20 -10
- package/src/tests/index.test.ts +1 -1
- package/src/typings.d.ts +7 -0
- package/dist/spectrum.d.ts +0 -1
- package/dist/spectrum.js +0 -72
- package/dist/spectrum.js.map +0 -1
- package/src/spectrum.ts +0 -91
- package/src/tests/snapshots/frameSnapshotSpectrumDown.json +0 -1
- package/src/tests/snapshots/frameSnapshotSpectrumUp.json +0 -1
- package/src/tests/snapshots/frameSnapshotSpectrumUpOpacity50.json +0 -1
package/README.md
CHANGED
|
@@ -14,15 +14,16 @@ const config = {
|
|
|
14
14
|
},
|
|
15
15
|
outVideo: {
|
|
16
16
|
path: 'media/out.mp4',
|
|
17
|
-
fps: 25, // Default value:
|
|
17
|
+
fps: 25, // Default value: 30
|
|
18
18
|
spectrum: { // Audio spectrum configuration. Optional.
|
|
19
|
-
width: '30%', // 30% of background image width. Default value:
|
|
20
|
-
height: '15%', // 15% of background image height. Default value:
|
|
19
|
+
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
|
+
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
21
|
x: 'center', // Available values: 'left', 'center', right'. Also you can use absolute number values. For example, value 300 for 300 pixels x.
|
|
22
22
|
y: 'bottom', // Available values: 'top', 'middle', bottom'. Also you can use absolute number values. For example, value 300 for 300 pixels y.
|
|
23
|
-
rotation: '
|
|
23
|
+
rotation: 'mirror', // Available values: 'up', 'down', 'mirror'. Default value: 'mirror'.
|
|
24
|
+
effect: 'volume', // Available values: 'volume', 'smooth', undefined. Default value: undefined.
|
|
24
25
|
color: '#cccc99', // Default value: inverted color of background image
|
|
25
|
-
opacity: '
|
|
26
|
+
opacity: '70%' // Default value: '80%'.
|
|
26
27
|
}
|
|
27
28
|
},
|
|
28
29
|
tweaks: { // Optional
|
package/dist/audio.d.ts
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
export declare const skipEvery: <T>(skipIndex: number) => (element: T, index: number) => boolean;
|
|
3
3
|
export declare const getPeaks: (spectrums: number[], prevPeaks?: number[] | undefined) => number[];
|
|
4
4
|
export declare const correctPeaks: (spectrums: number[], peaks: number[]) => number[];
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const createSpectrumsProcessor: (busesCount: number) => (frameIndex: number, parseAudioData: () => number[]) => number[];
|
|
5
|
+
export declare const createSpectrumsProcessor: (sampleRate: number, skipFramesCount: number) => (parseAudioData: () => number[]) => number[];
|
|
7
6
|
export declare const bufferToUInt8: (buffer: Buffer, start: number, end: number) => number[];
|
|
8
7
|
export declare const normalizeAudioData: (PCMData: number[]) => number[];
|
|
9
8
|
export declare const spawnFfmpegAudioReader: (filename: string, format: string) => import("child_process").ChildProcessWithoutNullStreams;
|
package/dist/audio.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __spreadArrays = (this && this.__spreadArrays) || function () {
|
|
3
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
4
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
5
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
6
|
+
r[k] = a[j];
|
|
7
|
+
return r;
|
|
8
|
+
};
|
|
2
9
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
10
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
11
|
};
|
|
@@ -35,39 +42,42 @@ exports.correctPeaks = function (spectrums, peaks) {
|
|
|
35
42
|
}
|
|
36
43
|
return resultSpectrum;
|
|
37
44
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
var currValue = spectrums[i];
|
|
45
|
-
var currPrevValue = prevSpectrums[i] || 0;
|
|
46
|
-
var avgValue = (currValue + currPrevValue) / 2;
|
|
47
|
-
resultSpectrum.push(avgValue);
|
|
48
|
-
}
|
|
49
|
-
return resultSpectrum;
|
|
45
|
+
var oldMax = 1;
|
|
46
|
+
var newMin = 0.6;
|
|
47
|
+
var getInterpolationFactor = function (skippedFramesCount, skipFramesCount) {
|
|
48
|
+
var interpolationFactor = 1 - (skippedFramesCount / skipFramesCount);
|
|
49
|
+
var interpolationFactorInRange = (interpolationFactor * (oldMax - newMin)) + newMin;
|
|
50
|
+
return interpolationFactorInRange;
|
|
50
51
|
};
|
|
51
|
-
exports.createSpectrumsProcessor = function (
|
|
52
|
+
exports.createSpectrumsProcessor = function (sampleRate, skipFramesCount) {
|
|
52
53
|
var prevAudioDataNormalized = [];
|
|
53
54
|
var prevPeaks = [];
|
|
54
|
-
var
|
|
55
|
-
var
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
exports.normalizeAudioData(parseAudioData());
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
55
|
+
var skippedFramesCount = 0;
|
|
56
|
+
var targetSpectrum = [];
|
|
57
|
+
var previousSpectrum = [];
|
|
58
|
+
return function (parseAudioData) {
|
|
59
|
+
if (skippedFramesCount === 0) {
|
|
60
|
+
skippedFramesCount = skipFramesCount;
|
|
61
|
+
var audioDataNomrmalized = exports.normalizeAudioData(parseAudioData());
|
|
62
|
+
prevAudioDataNormalized = audioDataNomrmalized;
|
|
63
|
+
var spectrum = dsp_1.getSpectrum(audioDataNomrmalized, sampleRate);
|
|
64
|
+
var peaks = exports.getPeaks(spectrum, prevPeaks);
|
|
65
|
+
var correctedSpectrum = prevPeaks.length === 0 ?
|
|
66
|
+
Array(dsp_1.FREQUENCY_BANDS.length).fill(0) :
|
|
67
|
+
exports.correctPeaks(spectrum, peaks);
|
|
68
|
+
prevPeaks = peaks;
|
|
69
|
+
previousSpectrum = __spreadArrays(targetSpectrum);
|
|
70
|
+
targetSpectrum = correctedSpectrum;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
skippedFramesCount--;
|
|
74
|
+
}
|
|
75
|
+
var interpolationFactor = getInterpolationFactor(skippedFramesCount, skipFramesCount);
|
|
76
|
+
var interpolatedSpectrum = targetSpectrum.map(function (target, i) {
|
|
77
|
+
var prev = previousSpectrum[i] || target;
|
|
78
|
+
return prev + (target - prev) * interpolationFactor;
|
|
79
|
+
});
|
|
80
|
+
return interpolatedSpectrum;
|
|
71
81
|
};
|
|
72
82
|
};
|
|
73
83
|
exports.bufferToUInt8 = function (buffer, start, end) {
|
package/dist/audio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../src/audio.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -2,28 +2,28 @@ import { Config } from './index';
|
|
|
2
2
|
export declare const defaults: {
|
|
3
3
|
fps: number;
|
|
4
4
|
spectrumWidth: string;
|
|
5
|
-
spectrumHeight:
|
|
5
|
+
spectrumHeight: number;
|
|
6
6
|
spectrumX: string;
|
|
7
7
|
spectrumY: string;
|
|
8
8
|
spectrumRotation: string;
|
|
9
|
-
spectrumBusesCount: number;
|
|
10
9
|
spectrumBusMargin: number;
|
|
11
10
|
spectrumOpacity: string;
|
|
12
11
|
};
|
|
13
|
-
export declare
|
|
12
|
+
export declare type SpectrumEffect = 'volume' | 'smooth';
|
|
13
|
+
export declare const rotationAliasValues: readonly ["up", "down", "mirror"];
|
|
14
14
|
export declare const checkIsPercentValue: (value: string) => boolean;
|
|
15
15
|
export declare const getAudioFilePath: (config: Config) => string;
|
|
16
16
|
export declare const getBackgroundImagePath: (config: Config) => string;
|
|
17
17
|
export declare const getOutVideoPath: (config: Config) => string;
|
|
18
18
|
export declare const getFPS: (config: Config) => number;
|
|
19
|
-
export declare const getSpectrumBusesCount: () => number;
|
|
20
19
|
export declare const getSpectrumBusMargin: () => number;
|
|
20
|
+
export declare const getSpectrumEffect: (config: Config) => "smooth" | "volume" | undefined;
|
|
21
21
|
export declare const getSpectrumWidthAbsolute: (config: Config, backgroundImageWidth: number) => number;
|
|
22
22
|
export declare const getSpectrumHeightAbsolute: (config: Config, backgroundImageHeight: number) => number;
|
|
23
23
|
export declare const getSpectrumXAbsolute: (config: Config, spectrumWidth: number, backgroundImageWidth: number) => number;
|
|
24
24
|
export declare const getSpectrumYAbsolute: (config: Config, spectrumHeight: number, backgroundImageHeight: number) => number;
|
|
25
25
|
export declare const checkIsValidRotationAlias: (aliasName: string) => boolean;
|
|
26
|
-
export declare const getSpectrumRotation: (config: Config) => "up" | "down";
|
|
26
|
+
export declare const getSpectrumRotation: (config: Config) => "up" | "down" | "mirror";
|
|
27
27
|
export declare const getSpectrumColor: (config: Config) => string | import("./image").Color | undefined;
|
|
28
28
|
export declare const getSpectrumOpacity: (config: Config) => string;
|
|
29
29
|
export declare const getSpectrumOpacityParsed: (config: Config) => number;
|
package/dist/config.js
CHANGED
|
@@ -4,16 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
var path_1 = __importDefault(require("path"));
|
|
7
|
+
var dsp_1 = require("./dsp");
|
|
7
8
|
exports.defaults = {
|
|
8
|
-
fps:
|
|
9
|
-
spectrumWidth: '
|
|
10
|
-
spectrumHeight:
|
|
9
|
+
fps: 30,
|
|
10
|
+
spectrumWidth: '33%',
|
|
11
|
+
spectrumHeight: 160,
|
|
11
12
|
spectrumX: 'center',
|
|
12
|
-
spectrumY: '
|
|
13
|
-
spectrumRotation: '
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
spectrumOpacity: '100%',
|
|
13
|
+
spectrumY: 'middle',
|
|
14
|
+
spectrumRotation: 'mirror',
|
|
15
|
+
spectrumBusMargin: 12,
|
|
16
|
+
spectrumOpacity: '80%',
|
|
17
17
|
};
|
|
18
18
|
var postitionAliases = [
|
|
19
19
|
{ name: 'left', value: 0 },
|
|
@@ -23,7 +23,7 @@ var postitionAliases = [
|
|
|
23
23
|
{ name: 'middle', value: 0.5 },
|
|
24
24
|
{ name: 'bottom', value: 1 },
|
|
25
25
|
];
|
|
26
|
-
exports.rotationAliasValues = ['up', 'down'];
|
|
26
|
+
exports.rotationAliasValues = ['up', 'down', 'mirror'];
|
|
27
27
|
exports.checkIsPercentValue = function (value) {
|
|
28
28
|
return RegExp(/\d+%/).test(value);
|
|
29
29
|
};
|
|
@@ -39,12 +39,12 @@ exports.getOutVideoPath = function (config) {
|
|
|
39
39
|
exports.getFPS = function (config) {
|
|
40
40
|
return config.outVideo.fps || exports.defaults.fps;
|
|
41
41
|
};
|
|
42
|
-
exports.getSpectrumBusesCount = function () { return exports.defaults.spectrumBusesCount; };
|
|
43
42
|
exports.getSpectrumBusMargin = function () { return exports.defaults.spectrumBusMargin; };
|
|
44
43
|
var getSpectrumWidth = function (config) {
|
|
45
44
|
return (config.outVideo.spectrum && config.outVideo.spectrum.width) ||
|
|
46
45
|
exports.defaults.spectrumWidth;
|
|
47
46
|
};
|
|
47
|
+
exports.getSpectrumEffect = function (config) { var _a; return (_a = config.outVideo.spectrum) === null || _a === void 0 ? void 0 : _a.effect; };
|
|
48
48
|
var getSpectrumSizeAbsolute = function (spectrumSize, backgroundImageSize, fieldName) {
|
|
49
49
|
if (typeof spectrumSize === 'number') {
|
|
50
50
|
return spectrumSize;
|
|
@@ -62,7 +62,7 @@ var getSpectrumSizeValueErrorMessage = function (fieldName, value) {
|
|
|
62
62
|
exports.getSpectrumWidthAbsolute = function (config, backgroundImageWidth) {
|
|
63
63
|
var spectrumWidth = getSpectrumWidth(config);
|
|
64
64
|
var spectrumWidthAbsolute = getSpectrumSizeAbsolute(spectrumWidth, backgroundImageWidth, 'width');
|
|
65
|
-
var spectrumWidthWithoutMargin = Math.trunc(spectrumWidthAbsolute /
|
|
65
|
+
var spectrumWidthWithoutMargin = Math.trunc(spectrumWidthAbsolute / dsp_1.FREQUENCY_BANDS.length) - exports.defaults.spectrumBusMargin / 2;
|
|
66
66
|
if (spectrumWidthWithoutMargin <= 0) {
|
|
67
67
|
throw new Error("Spectrum width '" + spectrumWidth + "' is too small.");
|
|
68
68
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAAA,8CAAwB;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/dsp.d.ts
CHANGED
|
@@ -1,2 +1,16 @@
|
|
|
1
|
+
export interface SpectrumPoint {
|
|
2
|
+
frequency: number;
|
|
3
|
+
magnitude: number;
|
|
4
|
+
}
|
|
5
|
+
export interface FrequencyBus {
|
|
6
|
+
startFreq: number;
|
|
7
|
+
endFreq: number;
|
|
8
|
+
magnitude: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const FREQUENCY_BANDS: {
|
|
11
|
+
name: string;
|
|
12
|
+
start: number;
|
|
13
|
+
end: number;
|
|
14
|
+
}[];
|
|
1
15
|
export declare const brutForceFFTSignalLength: (PCMDataLength: number) => number;
|
|
2
|
-
export declare const getSpectrum: (PCMData: number[]) => number[];
|
|
16
|
+
export declare const getSpectrum: (PCMData: number[], sampleRate: number) => number[];
|
package/dist/dsp.js
CHANGED
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var
|
|
3
|
+
var fft_js_1 = require("fft-js");
|
|
4
|
+
// Common frequency bands (in Hz)
|
|
5
|
+
exports.FREQUENCY_BANDS = [
|
|
6
|
+
{ name: 'Sub Bass 1', start: 20, end: 30 },
|
|
7
|
+
{ name: 'Sub Bass 2', start: 30, end: 40 },
|
|
8
|
+
{ name: 'Sub Bass 3', start: 50, end: 60 },
|
|
9
|
+
{ name: 'Sub Bass 4', start: 20, end: 60 },
|
|
10
|
+
{ name: 'Bass 1', start: 60, end: 107.5 },
|
|
11
|
+
{ name: 'Bass 2', start: 107.5, end: 155 },
|
|
12
|
+
{ name: 'Bass 3', start: 155, end: 202.5 },
|
|
13
|
+
{ name: 'Bass 4', start: 202.5, end: 250 },
|
|
14
|
+
{ name: 'Low Mids 1', start: 250, end: 312.5 },
|
|
15
|
+
{ name: 'Low Mids 2', start: 312.5, end: 375 },
|
|
16
|
+
{ name: 'Low Mids 3', start: 375, end: 437.5 },
|
|
17
|
+
{ name: 'Low Mids 4', start: 437.5, end: 500 },
|
|
18
|
+
{ name: 'Mids 1', start: 500, end: 875 },
|
|
19
|
+
{ name: 'Mids 2', start: 875, end: 1250 },
|
|
20
|
+
{ name: 'Mids 3', start: 1250, end: 1625 },
|
|
21
|
+
{ name: 'Mids 4', start: 1625, end: 2000 },
|
|
22
|
+
{ name: 'High Mids 1', start: 2000, end: 2500 },
|
|
23
|
+
{ name: 'High Mids 2', start: 2500, end: 3000 },
|
|
24
|
+
{ name: 'High Mids 3', start: 3000, end: 3500 },
|
|
25
|
+
{ name: 'High Mids 4', start: 3500, end: 4000 },
|
|
26
|
+
{ name: 'Presence 1', start: 4000, end: 5000 },
|
|
27
|
+
{ name: 'Presence 2', start: 5000, end: 6000 },
|
|
28
|
+
{ name: 'Brilliance 1', start: 6000, end: 13000 },
|
|
29
|
+
{ name: 'Brilliance 2', start: 13000, end: 20000 },
|
|
30
|
+
];
|
|
31
|
+
var combineToBuses = function (spectrum) {
|
|
32
|
+
return exports.FREQUENCY_BANDS.map(function (band) {
|
|
33
|
+
var pointsInBand = spectrum.filter(function (point) {
|
|
34
|
+
return point.frequency >= band.start && point.frequency < band.end;
|
|
35
|
+
});
|
|
36
|
+
// If no points found in this band, return zero magnitude
|
|
37
|
+
if (pointsInBand.length === 0) {
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
// Average the magnitudes in this frequency band
|
|
41
|
+
var avgMagnitude = pointsInBand.reduce(function (sum, point) {
|
|
42
|
+
return sum + point.magnitude;
|
|
43
|
+
}, 0) / pointsInBand.length;
|
|
44
|
+
return avgMagnitude;
|
|
45
|
+
});
|
|
46
|
+
};
|
|
4
47
|
exports.brutForceFFTSignalLength = function (PCMDataLength) {
|
|
5
48
|
var exponent = 1;
|
|
6
49
|
while (true) {
|
|
@@ -11,16 +54,24 @@ exports.brutForceFFTSignalLength = function (PCMDataLength) {
|
|
|
11
54
|
exponent++;
|
|
12
55
|
}
|
|
13
56
|
};
|
|
14
|
-
exports.getSpectrum = function (PCMData) {
|
|
57
|
+
exports.getSpectrum = function (PCMData, sampleRate) {
|
|
15
58
|
var signalLength = exports.brutForceFFTSignalLength(PCMData.length);
|
|
16
59
|
var signalStartIndex = Math.trunc(PCMData.length / 2 - signalLength / 2);
|
|
17
60
|
var signal = PCMData.slice(signalStartIndex, signalStartIndex + signalLength);
|
|
18
|
-
|
|
19
|
-
var
|
|
61
|
+
// Use fft-js to compute the FFT
|
|
62
|
+
var phasors = fft_js_1.fft(signal);
|
|
63
|
+
var frequencies = fft_js_1.util.fftFreq(phasors, sampleRate);
|
|
64
|
+
var magnitudes = fft_js_1.util.fftMag(phasors);
|
|
65
|
+
// Create combined spectrum array with both frequency and magnitude
|
|
66
|
+
var spectrum = frequencies.map(function (freq, i) { return ({
|
|
67
|
+
frequency: freq,
|
|
68
|
+
magnitude: magnitudes[i]
|
|
69
|
+
}); });
|
|
70
|
+
// Apply frequency-dependent scaling
|
|
20
71
|
for (var i = 0; i < spectrum.length; i++) {
|
|
21
|
-
|
|
22
|
-
spectrum[i] *= -1 * Math.log((signalLength / 2 - i) * (0.5 / signalLength / 2)) * signalLength;
|
|
72
|
+
spectrum[i].magnitude *= -1 * Math.log((signalLength / 2 - i) * (0.5 / signalLength / 2)) * signalLength;
|
|
23
73
|
}
|
|
24
|
-
|
|
74
|
+
// Combine frequencies into buses
|
|
75
|
+
return combineToBuses(spectrum);
|
|
25
76
|
};
|
|
26
77
|
//# sourceMappingURL=dsp.js.map
|
package/dist/dsp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsp.js","sourceRoot":"","sources":["../src/dsp.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"dsp.js","sourceRoot":"","sources":["../src/dsp.ts"],"names":[],"mappings":"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"}
|
package/dist/image.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { RotationAliasName } from './index';
|
|
3
3
|
import { BmpDecoder } from 'bmp-js';
|
|
4
4
|
import { EncodedBmp } from './bpmEncoder';
|
|
5
|
+
import { SpectrumEffect } from './config';
|
|
5
6
|
export interface Color {
|
|
6
7
|
red: number;
|
|
7
8
|
green: number;
|
|
@@ -39,8 +40,9 @@ interface CreateVisualizerFrameProps {
|
|
|
39
40
|
margin: number;
|
|
40
41
|
color: Color | string;
|
|
41
42
|
opacity: number;
|
|
43
|
+
spectrumEffect?: SpectrumEffect;
|
|
42
44
|
}
|
|
43
|
-
export declare const
|
|
45
|
+
export declare const createVisualizerFrameGenerator: () => ({ backgroundImageBuffer, spectrum, size, position, rotation, margin, color, opacity, spectrumEffect, }: CreateVisualizerFrameProps) => EncodedBmp;
|
|
44
46
|
export declare const convertToBmp: (filePath: string) => Promise<Buffer>;
|
|
45
47
|
export declare const parseImage: (buffer: Buffer) => BmpDecoder;
|
|
46
48
|
export declare const getImageColor: (image: BmpDecoder) => Color;
|
package/dist/image.js
CHANGED
|
@@ -86,6 +86,24 @@ exports.drawRect = function (_a) {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
|
+
var getRectY = function (rotation, top, height, rectHeight) {
|
|
90
|
+
switch (rotation) {
|
|
91
|
+
case 'up':
|
|
92
|
+
return top + height - rectHeight;
|
|
93
|
+
case 'mirror':
|
|
94
|
+
return top + Math.trunc((height - rectHeight) / 2);
|
|
95
|
+
default:
|
|
96
|
+
return top;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
var minRectHeight = 2;
|
|
100
|
+
var getRectHeight = function (height, spectrumValue) {
|
|
101
|
+
var rectHeight = Math.trunc(height * spectrumValue);
|
|
102
|
+
if (rectHeight < minRectHeight) {
|
|
103
|
+
return minRectHeight;
|
|
104
|
+
}
|
|
105
|
+
return rectHeight;
|
|
106
|
+
};
|
|
89
107
|
var drawSpectrum = function (_a) {
|
|
90
108
|
var imageDstBuffer = _a.imageDstBuffer, spectrum = _a.spectrum, size = _a.size, position = _a.position, rotation = _a.rotation, margin = _a.margin, color = _a.color, opacity = _a.opacity;
|
|
91
109
|
var busWidth = Math.trunc(size.width / spectrum.length);
|
|
@@ -98,8 +116,8 @@ var drawSpectrum = function (_a) {
|
|
|
98
116
|
throw new Error('Spectrum values must be in range from 0 to 1');
|
|
99
117
|
}
|
|
100
118
|
var rectX = left + busWidth * spectrumX;
|
|
101
|
-
var rectHeight =
|
|
102
|
-
var rectY = (rotation
|
|
119
|
+
var rectHeight = getRectHeight(height, spectrumValue);
|
|
120
|
+
var rectY = getRectY(rotation, top, height, rectHeight);
|
|
103
121
|
exports.drawRect({
|
|
104
122
|
imageDstBuffer: imageDstBuffer,
|
|
105
123
|
position: { x: rectX + margin, y: rectY },
|
|
@@ -109,22 +127,50 @@ var drawSpectrum = function (_a) {
|
|
|
109
127
|
});
|
|
110
128
|
}
|
|
111
129
|
};
|
|
112
|
-
exports.
|
|
113
|
-
var
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
130
|
+
exports.createVisualizerFrameGenerator = function () {
|
|
131
|
+
var prevSpectrum = null;
|
|
132
|
+
return function (_a) {
|
|
133
|
+
var backgroundImageBuffer = _a.backgroundImageBuffer, spectrum = _a.spectrum, size = _a.size, position = _a.position, rotation = _a.rotation, margin = _a.margin, color = _a.color, opacity = _a.opacity, spectrumEffect = _a.spectrumEffect;
|
|
134
|
+
var imageDstBuffer = Object.assign({}, backgroundImageBuffer);
|
|
135
|
+
imageDstBuffer.data = Buffer.from(backgroundImageBuffer.data);
|
|
136
|
+
var rgbSpectrumColor = (typeof color === 'string') ? hexToRgb(color) : color;
|
|
137
|
+
if (spectrumEffect === 'volume') {
|
|
138
|
+
drawSpectrum({
|
|
139
|
+
imageDstBuffer: imageDstBuffer,
|
|
140
|
+
spectrum: spectrum,
|
|
141
|
+
size: size,
|
|
142
|
+
position: { x: position.x + 2, y: position.y + 2 },
|
|
143
|
+
rotation: rotation,
|
|
144
|
+
margin: margin,
|
|
145
|
+
color: rgbSpectrumColor,
|
|
146
|
+
opacity: opacity * 0.5,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
if (spectrumEffect === 'smooth' && prevSpectrum) {
|
|
150
|
+
drawSpectrum({
|
|
151
|
+
imageDstBuffer: imageDstBuffer,
|
|
152
|
+
spectrum: prevSpectrum,
|
|
153
|
+
size: size,
|
|
154
|
+
position: position,
|
|
155
|
+
rotation: rotation,
|
|
156
|
+
margin: margin,
|
|
157
|
+
color: rgbSpectrumColor,
|
|
158
|
+
opacity: opacity * 0.3,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
drawSpectrum({
|
|
162
|
+
imageDstBuffer: imageDstBuffer,
|
|
163
|
+
spectrum: spectrum,
|
|
164
|
+
size: size,
|
|
165
|
+
position: position,
|
|
166
|
+
rotation: rotation,
|
|
167
|
+
margin: margin,
|
|
168
|
+
color: rgbSpectrumColor,
|
|
169
|
+
opacity: opacity,
|
|
170
|
+
});
|
|
171
|
+
prevSpectrum = spectrum;
|
|
172
|
+
return imageDstBuffer;
|
|
173
|
+
};
|
|
128
174
|
};
|
|
129
175
|
exports.convertToBmp = function (filePath) { return __awaiter(void 0, void 0, void 0, function () {
|
|
130
176
|
return __generator(this, function (_a) {
|
package/dist/image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iCAA4C;AAE5C,8CAAwB;
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { rotationAliasValues } from './config';
|
|
2
|
+
import { rotationAliasValues, SpectrumEffect } from './config';
|
|
3
3
|
import { Color } from './image';
|
|
4
4
|
export declare const PCM_FORMAT: {
|
|
5
5
|
bit: number;
|
|
@@ -22,6 +22,7 @@ export interface Config {
|
|
|
22
22
|
x?: number | PositionAliasName;
|
|
23
23
|
y?: number | PositionAliasName;
|
|
24
24
|
rotation?: RotationAliasName;
|
|
25
|
+
effect?: SpectrumEffect;
|
|
25
26
|
color?: Color | string;
|
|
26
27
|
opacity?: string;
|
|
27
28
|
};
|