@remotion/media-utils 2.6.15 → 2.6.16

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 (107) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/.turbo/turbo-lint.log +11 -11
  3. package/dist/create-smooth-svg-path.d.ts +5 -0
  4. package/dist/create-smooth-svg-path.d.ts.map +1 -0
  5. package/dist/create-smooth-svg-path.js +30 -0
  6. package/dist/create-smooth-svg-path.js.map +1 -0
  7. package/dist/smooth-path.d.ts +5 -0
  8. package/dist/smooth-path.d.ts.map +1 -0
  9. package/dist/smooth-path.js +30 -0
  10. package/dist/smooth-path.js.map +1 -0
  11. package/dist/visualize-audio-waveform.d.ts +2 -4
  12. package/dist/visualize-audio-waveform.d.ts.map +1 -1
  13. package/dist/visualize-audio-waveform.js +11 -16
  14. package/dist/visualize-audio-waveform.js.map +1 -1
  15. package/package.json +5 -5
  16. package/dist/audio-buffer-to-wav.d.ts +0 -15
  17. package/dist/audio-buffer-to-wav.d.ts.map +0 -1
  18. package/dist/audio-buffer-to-wav.js +0 -91
  19. package/dist/audio-buffer-to-wav.js.map +0 -1
  20. package/dist/audio-url-helpers.d.ts +0 -2
  21. package/dist/audio-url-helpers.d.ts.map +0 -1
  22. package/dist/audio-url-helpers.js +0 -17
  23. package/dist/audio-url-helpers.js.map +0 -1
  24. package/dist/cjs/audio-buffer/audio-buffer-to-wav.d.ts +0 -7
  25. package/dist/cjs/audio-buffer/audio-buffer-to-wav.d.ts.map +0 -1
  26. package/dist/cjs/audio-buffer/audio-buffer-to-wav.js +0 -96
  27. package/dist/cjs/audio-buffer/audio-buffer-to-wav.js.map +0 -1
  28. package/dist/cjs/audio-buffer/audio-url-helpers.d.ts +0 -2
  29. package/dist/cjs/audio-buffer/audio-url-helpers.d.ts.map +0 -1
  30. package/dist/cjs/audio-buffer/audio-url-helpers.js +0 -18
  31. package/dist/cjs/audio-buffer/audio-url-helpers.js.map +0 -1
  32. package/dist/cjs/fft/complex.d.ts +0 -5
  33. package/dist/cjs/fft/complex.d.ts.map +0 -1
  34. package/dist/cjs/fft/complex.js +0 -22
  35. package/dist/cjs/fft/complex.js.map +0 -1
  36. package/dist/cjs/fft/exponent.d.ts +0 -2
  37. package/dist/cjs/fft/exponent.d.ts.map +0 -1
  38. package/dist/cjs/fft/exponent.js +0 -14
  39. package/dist/cjs/fft/exponent.js.map +0 -1
  40. package/dist/cjs/fft/fft-freq.d.ts +0 -2
  41. package/dist/cjs/fft/fft-freq.d.ts.map +0 -1
  42. package/dist/cjs/fft/fft-freq.js +0 -14
  43. package/dist/cjs/fft/fft-freq.js.map +0 -1
  44. package/dist/cjs/fft/fft.d.ts +0 -2
  45. package/dist/cjs/fft/fft.d.ts.map +0 -1
  46. package/dist/cjs/fft/fft.js +0 -34
  47. package/dist/cjs/fft/fft.js.map +0 -1
  48. package/dist/cjs/fft/get-visualization.d.ts +0 -9
  49. package/dist/cjs/fft/get-visualization.d.ts.map +0 -1
  50. package/dist/cjs/fft/get-visualization.js +0 -32
  51. package/dist/cjs/fft/get-visualization.js.map +0 -1
  52. package/dist/cjs/fft/mag.d.ts +0 -2
  53. package/dist/cjs/fft/mag.d.ts.map +0 -1
  54. package/dist/cjs/fft/mag.js +0 -12
  55. package/dist/cjs/fft/mag.js.map +0 -1
  56. package/dist/cjs/fft/max-value-cached.d.ts +0 -3
  57. package/dist/cjs/fft/max-value-cached.d.ts.map +0 -1
  58. package/dist/cjs/fft/max-value-cached.js +0 -27
  59. package/dist/cjs/fft/max-value-cached.js.map +0 -1
  60. package/dist/cjs/fft/smoothing.d.ts +0 -2
  61. package/dist/cjs/fft/smoothing.d.ts.map +0 -1
  62. package/dist/cjs/fft/smoothing.js +0 -30
  63. package/dist/cjs/fft/smoothing.js.map +0 -1
  64. package/dist/cjs/fft/to-int-16.d.ts +0 -2
  65. package/dist/cjs/fft/to-int-16.d.ts.map +0 -1
  66. package/dist/cjs/fft/to-int-16.js +0 -6
  67. package/dist/cjs/fft/to-int-16.js.map +0 -1
  68. package/dist/cjs/get-audio-data.d.ts +0 -3
  69. package/dist/cjs/get-audio-data.d.ts.map +0 -1
  70. package/dist/cjs/get-audio-data.js +0 -31
  71. package/dist/cjs/get-audio-data.js.map +0 -1
  72. package/dist/cjs/get-audio-duration.d.ts +0 -2
  73. package/dist/cjs/get-audio-duration.d.ts.map +0 -1
  74. package/dist/cjs/get-audio-duration.js +0 -25
  75. package/dist/cjs/get-audio-duration.js.map +0 -1
  76. package/dist/cjs/get-video-metadata.d.ts +0 -3
  77. package/dist/cjs/get-video-metadata.d.ts.map +0 -1
  78. package/dist/cjs/get-video-metadata.js +0 -38
  79. package/dist/cjs/get-video-metadata.js.map +0 -1
  80. package/dist/cjs/get-wave-form-samples.d.ts +0 -2
  81. package/dist/cjs/get-wave-form-samples.d.ts.map +0 -1
  82. package/dist/cjs/get-wave-form-samples.js +0 -28
  83. package/dist/cjs/get-wave-form-samples.js.map +0 -1
  84. package/dist/cjs/get-waveform-portion.d.ts +0 -13
  85. package/dist/cjs/get-waveform-portion.d.ts.map +0 -1
  86. package/dist/cjs/get-waveform-portion.js +0 -18
  87. package/dist/cjs/get-waveform-portion.js.map +0 -1
  88. package/dist/cjs/index.d.ts +0 -10
  89. package/dist/cjs/index.d.ts.map +0 -1
  90. package/dist/cjs/index.js +0 -29
  91. package/dist/cjs/index.js.map +0 -1
  92. package/dist/cjs/is-remote-asset.d.ts +0 -2
  93. package/dist/cjs/is-remote-asset.d.ts.map +0 -1
  94. package/dist/cjs/is-remote-asset.js +0 -6
  95. package/dist/cjs/is-remote-asset.js.map +0 -1
  96. package/dist/cjs/types.d.ts +0 -16
  97. package/dist/cjs/types.d.ts.map +0 -1
  98. package/dist/cjs/types.js +0 -3
  99. package/dist/cjs/types.js.map +0 -1
  100. package/dist/cjs/use-audio-metadata.d.ts +0 -3
  101. package/dist/cjs/use-audio-metadata.d.ts.map +0 -1
  102. package/dist/cjs/use-audio-metadata.js +0 -34
  103. package/dist/cjs/use-audio-metadata.js.map +0 -1
  104. package/dist/cjs/visualize-audio.d.ts +0 -12
  105. package/dist/cjs/visualize-audio.d.ts.map +0 -1
  106. package/dist/cjs/visualize-audio.js +0 -44
  107. package/dist/cjs/visualize-audio.js.map +0 -1
@@ -1,5 +1,5 @@
1
- @remotion/media-utils:build: cache hit, replaying output 95236531fe0cc935
2
- @remotion/media-utils:build: 
3
- @remotion/media-utils:build: > @remotion/media-utils@2.6.14 build /Users/jonathanburger/remotion/packages/media-utils
4
- @remotion/media-utils:build: > tsc -d
5
- @remotion/media-utils:build: 
1
+ @remotion/media-utils:build: cache hit, replaying output b3d09cc4130bff24
2
+ @remotion/media-utils:build: 
3
+ @remotion/media-utils:build: > @remotion/media-utils@2.6.15 build /Users/jonathanburger/remotion/packages/media-utils
4
+ @remotion/media-utils:build: > tsc -d
5
+ @remotion/media-utils:build: 
@@ -1,11 +1,11 @@
1
- @remotion/media-utils:lint: cache hit, replaying output 5863c07baddbf386
2
- @remotion/media-utils:lint: 
3
- @remotion/media-utils:lint: > @remotion/media-utils@2.6.14 lint /Users/jonathanburger/remotion/packages/media-utils
4
- @remotion/media-utils:lint: > eslint src --ext ts,tsx
5
- @remotion/media-utils:lint: 
6
- @remotion/media-utils:lint: 
7
- @remotion/media-utils:lint: /Users/jonathanburger/remotion/packages/media-utils/src/get-video-metadata.ts
8
- @remotion/media-utils:lint:  6:77 warning Async arrow function has no 'await' expression require-await
9
- @remotion/media-utils:lint: 
10
- @remotion/media-utils:lint: ✖ 1 problem (0 errors, 1 warning)
11
- @remotion/media-utils:lint: 
1
+ @remotion/media-utils:lint: cache hit, replaying output 3451a35f8fc63bce
2
+ @remotion/media-utils:lint: 
3
+ @remotion/media-utils:lint: > @remotion/media-utils@2.6.15 lint /Users/jonathanburger/remotion/packages/media-utils
4
+ @remotion/media-utils:lint: > eslint src --ext ts,tsx
5
+ @remotion/media-utils:lint: 
6
+ @remotion/media-utils:lint: 
7
+ @remotion/media-utils:lint: /Users/jonathanburger/remotion/packages/media-utils/src/get-video-metadata.ts
8
+ @remotion/media-utils:lint:  6:77 warning Async arrow function has no 'await' expression require-await
9
+ @remotion/media-utils:lint: 
10
+ @remotion/media-utils:lint: ✖ 1 problem (0 errors, 1 warning)
11
+ @remotion/media-utils:lint: 
@@ -0,0 +1,5 @@
1
+ export declare const createSmoothSvgPath: (points: [
2
+ number,
3
+ number
4
+ ][]) => string | null;
5
+ //# sourceMappingURL=create-smooth-svg-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-smooth-svg-path.d.ts","sourceRoot":"","sources":["../src/create-smooth-svg-path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,WAAY;IAAC,MAAM;IAAE,MAAM;CAAC,EAAE,kBA6B7D,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSmoothSvgPath = void 0;
4
+ const createSmoothSvgPath = (points) => {
5
+ return points.reduce((acc, point, i, a) => {
6
+ if (i === 0) {
7
+ return `M ${point[0]},${point[1]}`;
8
+ }
9
+ const p0 = a[i - 2] || a[i - 1];
10
+ const x0 = p0[0];
11
+ const y0 = p0[1];
12
+ const p1 = a[i - 1];
13
+ const x1 = p1[0];
14
+ const y1 = p1[1];
15
+ const x = point[0];
16
+ const y = point[1];
17
+ const cp1x = (2 * x0 + x1) / 3;
18
+ const cp1y = (2 * y0 + y1) / 3;
19
+ const cp2x = (x0 + 2 * x1) / 3;
20
+ const cp2y = (y0 + 2 * y1) / 3;
21
+ const cp3x = (x0 + 4 * x1 + x) / 6;
22
+ const cp3y = (y0 + 4 * y1 + y) / 6;
23
+ if (i === a.length - 1) {
24
+ return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y} C${x},${y} ${x},${y} ${x},${y}`;
25
+ }
26
+ return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y}`;
27
+ }, '');
28
+ };
29
+ exports.createSmoothSvgPath = createSmoothSvgPath;
30
+ //# sourceMappingURL=create-smooth-svg-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-smooth-svg-path.js","sourceRoot":"","sources":["../src/create-smooth-svg-path.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,MAA0B,EAAE,EAAE;IACjE,OAAO,MAAM,CAAC,MAAM,CACnB,CAAC,GAAkB,EAAE,KAAuB,EAAE,CAAS,EAAE,CAAC,EAAE,EAAE;QAC7D,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACnC;QAED,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACjG;QAED,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACnE,CAAC,EACD,EAAE,CACF,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B"}
@@ -0,0 +1,5 @@
1
+ export declare const createSmoothSvgPath: (points: [
2
+ number,
3
+ number
4
+ ][]) => string | null;
5
+ //# sourceMappingURL=smooth-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smooth-path.d.ts","sourceRoot":"","sources":["../src/smooth-path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,WAAY;IAAC,MAAM;IAAE,MAAM;CAAC,EAAE,kBA6B7D,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSmoothSvgPath = void 0;
4
+ const createSmoothSvgPath = (points) => {
5
+ return points.reduce((acc, point, i, a) => {
6
+ if (i === 0) {
7
+ return `M ${point[0]},${point[1]}`;
8
+ }
9
+ const p0 = a[i - 2] || a[i - 1];
10
+ const x0 = p0[0];
11
+ const y0 = p0[1];
12
+ const p1 = a[i - 1];
13
+ const x1 = p1[0];
14
+ const y1 = p1[1];
15
+ const x = point[0];
16
+ const y = point[1];
17
+ const cp1x = (2 * x0 + x1) / 3;
18
+ const cp1y = (2 * y0 + y1) / 3;
19
+ const cp2x = (x0 + 2 * x1) / 3;
20
+ const cp2y = (y0 + 2 * y1) / 3;
21
+ const cp3x = (x0 + 4 * x1 + x) / 6;
22
+ const cp3y = (y0 + 4 * y1 + y) / 6;
23
+ if (i === a.length - 1) {
24
+ return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y} C${x},${y} ${x},${y} ${x},${y}`;
25
+ }
26
+ return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y}`;
27
+ }, '');
28
+ };
29
+ exports.createSmoothSvgPath = createSmoothSvgPath;
30
+ //# sourceMappingURL=smooth-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smooth-path.js","sourceRoot":"","sources":["../src/smooth-path.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,MAA0B,EAAE,EAAE;IACjE,OAAO,MAAM,CAAC,MAAM,CACnB,CAAC,GAAkB,EAAE,KAAuB,EAAE,CAAS,EAAE,CAAC,EAAE,EAAE;QAC7D,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACnC;QAED,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACjG;QAED,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACnE,CAAC,EACD,EAAE,CACF,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B"}
@@ -3,11 +3,9 @@ declare type FnParameters = {
3
3
  audioData: AudioData;
4
4
  frame: number;
5
5
  fps: number;
6
- waveformDuration: number;
6
+ windowInSeconds: number;
7
7
  numberOfSamples: number;
8
8
  };
9
- export declare const visualizeAudioWaveform: ({ smoothing, ...parameters }: FnParameters & {
10
- smoothing?: boolean | undefined;
11
- }) => number[];
9
+ export declare const visualizeAudioWaveform: ({ ...parameters }: FnParameters) => number[];
12
10
  export {};
13
11
  //# sourceMappingURL=visualize-audio-waveform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"visualize-audio-waveform.d.ts","sourceRoot":"","sources":["../src/visualize-audio-waveform.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAIlC,aAAK,YAAY,GAAG;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACxB,CAAC;AAuCF,eAAO,MAAM,sBAAsB;;cAalC,CAAC"}
1
+ {"version":3,"file":"visualize-audio-waveform.d.ts","sourceRoot":"","sources":["../src/visualize-audio-waveform.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAIlC,aAAK,YAAY,GAAG;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACxB,CAAC;AA2CF,eAAO,MAAM,sBAAsB,sBAAqB,YAAY,aAGnE,CAAC"}
@@ -3,35 +3,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.visualizeAudioWaveform = void 0;
4
4
  const get_waveform_portion_1 = require("./get-waveform-portion");
5
5
  const cache = {};
6
- const visualizeAudioWaveformFrame = ({ audioData, frame, fps, numberOfSamples, waveformDuration, }) => {
7
- if (waveformDuration * audioData.sampleRate < numberOfSamples) {
8
- throw new TypeError(waveformDuration +
6
+ const visualizeAudioWaveformFrame = ({ audioData, frame, fps, numberOfSamples, windowInSeconds, }) => {
7
+ if (windowInSeconds * audioData.sampleRate < numberOfSamples) {
8
+ throw new TypeError(windowInSeconds +
9
9
  's audiodata does not have ' +
10
10
  numberOfSamples +
11
- ' bars. Increase waveformDuration or decrease numberOfSamples');
11
+ ' bars. Increase windowInSeconds or decrease numberOfSamples');
12
12
  }
13
13
  const cacheKey = audioData.resultId + frame + fps + numberOfSamples + 'waveform';
14
14
  if (cache[cacheKey]) {
15
15
  return cache[cacheKey];
16
16
  }
17
- const startTimeInSeconds = frame / fps < waveformDuration
18
- ? 0
19
- : frame / fps + waveformDuration / 2 >= audioData.durationInSeconds
20
- ? audioData.durationInSeconds - waveformDuration
21
- : frame / fps - waveformDuration / 2;
17
+ const time = frame / fps;
18
+ const max = audioData.durationInSeconds - windowInSeconds / 2;
19
+ const min = windowInSeconds / 2;
20
+ const startTimeInSeconds = Math.min(max, Math.max(min, time - windowInSeconds / 2));
22
21
  return (0, get_waveform_portion_1.getWaveformPortion)({
23
22
  audioData,
24
23
  startTimeInSeconds,
25
- durationInSeconds: waveformDuration,
24
+ durationInSeconds: windowInSeconds,
26
25
  numberOfSamples,
27
- normalize: false,
26
+ normalize: true,
28
27
  });
29
28
  };
30
- const visualizeAudioWaveform = ({ smoothing = true, ...parameters }) => {
31
- if (smoothing) {
32
- // TODO: Add bezier manipulation?
33
- console.log('nice');
34
- }
29
+ const visualizeAudioWaveform = ({ ...parameters }) => {
35
30
  const data = visualizeAudioWaveformFrame(parameters);
36
31
  return data.map((value) => value.amplitude);
37
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"visualize-audio-waveform.js","sourceRoot":"","sources":["../src/visualize-audio-waveform.ts"],"names":[],"mappings":";;;AAAA,iEAA+D;AAG/D,MAAM,KAAK,GAA2B,EAAE,CAAC;AAUzC,MAAM,2BAA2B,GAAG,CAAC,EACpC,SAAS,EACT,KAAK,EACL,GAAG,EACH,eAAe,EACf,gBAAgB,GACF,EAAE,EAAE;IAClB,IAAI,gBAAgB,GAAG,SAAS,CAAC,UAAU,GAAG,eAAe,EAAE;QAC9D,MAAM,IAAI,SAAS,CAClB,gBAAgB;YACf,4BAA4B;YAC5B,eAAe;YACf,8DAA8D,CAC/D,CAAC;KACF;IAED,MAAM,QAAQ,GACb,SAAS,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,GAAG,eAAe,GAAG,UAAU,CAAC;IACjE,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;KACvB;IAED,MAAM,kBAAkB,GACvB,KAAK,GAAG,GAAG,GAAG,gBAAgB;QAC7B,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,gBAAgB,GAAG,CAAC,IAAI,SAAS,CAAC,iBAAiB;YACnE,CAAC,CAAC,SAAS,CAAC,iBAAiB,GAAG,gBAAgB;YAChD,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,gBAAgB,GAAG,CAAC,CAAC;IACvC,OAAO,IAAA,yCAAkB,EAAC;QACzB,SAAS;QACT,kBAAkB;QAClB,iBAAiB,EAAE,gBAAgB;QACnC,eAAe;QACf,SAAS,EAAE,KAAK;KAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,EACtC,SAAS,GAAG,IAAI,EAChB,GAAG,UAAU,EAGb,EAAE,EAAE;IACJ,IAAI,SAAS,EAAE;QACd,iCAAiC;QACjC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACpB;IAED,MAAM,IAAI,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC,CAAC;AAbW,QAAA,sBAAsB,0BAajC"}
1
+ {"version":3,"file":"visualize-audio-waveform.js","sourceRoot":"","sources":["../src/visualize-audio-waveform.ts"],"names":[],"mappings":";;;AAAA,iEAA+D;AAG/D,MAAM,KAAK,GAA2B,EAAE,CAAC;AAUzC,MAAM,2BAA2B,GAAG,CAAC,EACpC,SAAS,EACT,KAAK,EACL,GAAG,EACH,eAAe,EACf,eAAe,GACD,EAAE,EAAE;IAClB,IAAI,eAAe,GAAG,SAAS,CAAC,UAAU,GAAG,eAAe,EAAE;QAC7D,MAAM,IAAI,SAAS,CAClB,eAAe;YACd,4BAA4B;YAC5B,eAAe;YACf,6DAA6D,CAC9D,CAAC;KACF;IAED,MAAM,QAAQ,GACb,SAAS,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,GAAG,eAAe,GAAG,UAAU,CAAC;IACjE,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;KACvB;IAED,MAAM,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC;IAEzB,MAAM,GAAG,GAAG,SAAS,CAAC,iBAAiB,GAAG,eAAe,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,eAAe,GAAG,CAAC,CAAC;IAEhC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAClC,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,eAAe,GAAG,CAAC,CAAC,CACzC,CAAC;IAEF,OAAO,IAAA,yCAAkB,EAAC;QACzB,SAAS;QACT,kBAAkB;QAClB,iBAAiB,EAAE,eAAe;QAClC,eAAe;QACf,SAAS,EAAE,IAAI;KACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,EAAC,GAAG,UAAU,EAAe,EAAE,EAAE;IACvE,MAAM,IAAI,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC,CAAC;AAHW,QAAA,sBAAsB,0BAGjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/media-utils",
3
- "version": "2.6.15",
3
+ "version": "2.6.16",
4
4
  "description": "Utility functions for audio and video",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -18,11 +18,11 @@
18
18
  "url": "https://github.com/remotion-dev/remotion/issues"
19
19
  },
20
20
  "dependencies": {
21
- "remotion": "2.6.15"
21
+ "remotion": "2.6.16"
22
22
  },
23
23
  "peerDependencies": {
24
- "react": "^17.0.1",
25
- "react-dom": "^17.0.1"
24
+ "react": ">=16.8.0",
25
+ "react-dom": ">=16.8.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@jonny/eslint-config": "^2.1.251",
@@ -44,5 +44,5 @@
44
44
  "publishConfig": {
45
45
  "access": "public"
46
46
  },
47
- "gitHead": "b175877d7ce5e0bbcb9d923cc98546fd6c748b44"
47
+ "gitHead": "96b2a8f042ece45305601b1f240b56f35fc9fcd4"
48
48
  }
@@ -1,15 +0,0 @@
1
- declare function audioBufferToWav(buffer: AudioBuffer, opt: {
2
- float32: boolean;
3
- }): ArrayBuffer;
4
- declare function encodeWAV({ samples, format, sampleRate, numChannels, bitDepth, }: {
5
- samples: Float32Array;
6
- format: 3 | 1;
7
- sampleRate: number;
8
- numChannels: number;
9
- bitDepth: 32 | 16;
10
- }): ArrayBuffer;
11
- declare function interleave(inputL: Float32Array, inputR: Float32Array): Float32Array;
12
- declare function writeFloat32(output: DataView, offset: number, input: Float32Array): void;
13
- declare function floatTo16BitPCM(output: DataView, offset: number, input: Float32Array): void;
14
- declare function writeString(view: DataView, offset: number, string: string): void;
15
- //# sourceMappingURL=audio-buffer-to-wav.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-buffer-to-wav.d.ts","sourceRoot":"","sources":["../src/audio-buffer-to-wav.ts"],"names":[],"mappings":"AAEA,iBAAS,gBAAgB,CACxB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE;IACJ,OAAO,EAAE,OAAO,CAAC;CACjB,eAqBD;AAED,iBAAS,SAAS,CAAC,EAClB,OAAO,EACP,MAAM,EACN,UAAU,EACV,WAAW,EACX,QAAQ,GACR,EAAE;IACF,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC;CAClB,eAyCA;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,gBAc7D;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,QAI1E;AAED,iBAAS,eAAe,CACvB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,QAMnB;AAED,iBAAS,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAIlE"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- module.exports = audioBufferToWav;
3
- function audioBufferToWav(buffer, opt) {
4
- const numChannels = buffer.numberOfChannels;
5
- const { sampleRate } = buffer;
6
- const format = opt.float32 ? 3 : 1;
7
- const bitDepth = format === 3 ? 32 : 16;
8
- let result;
9
- if (numChannels === 2) {
10
- result = interleave(buffer.getChannelData(0), buffer.getChannelData(1));
11
- }
12
- else {
13
- result = buffer.getChannelData(0);
14
- }
15
- return encodeWAV({
16
- samples: result,
17
- format,
18
- sampleRate,
19
- numChannels,
20
- bitDepth,
21
- });
22
- }
23
- function encodeWAV({ samples, format, sampleRate, numChannels, bitDepth, }) {
24
- const bytesPerSample = bitDepth / 8;
25
- const blockAlign = numChannels * bytesPerSample;
26
- const buffer = new ArrayBuffer(44 + samples.length * bytesPerSample);
27
- const view = new DataView(buffer);
28
- /* RIFF identifier */
29
- writeString(view, 0, 'RIFF');
30
- /* RIFF chunk length */
31
- view.setUint32(4, 36 + samples.length * bytesPerSample, true);
32
- /* RIFF type */
33
- writeString(view, 8, 'WAVE');
34
- /* format chunk identifier */
35
- writeString(view, 12, 'fmt ');
36
- /* format chunk length */
37
- view.setUint32(16, 16, true);
38
- /* sample format (raw) */
39
- view.setUint16(20, format, true);
40
- /* channel count */
41
- view.setUint16(22, numChannels, true);
42
- /* sample rate */
43
- view.setUint32(24, sampleRate, true);
44
- /* byte rate (sample rate * block align) */
45
- view.setUint32(28, sampleRate * blockAlign, true);
46
- /* block align (channel count * bytes per sample) */
47
- view.setUint16(32, blockAlign, true);
48
- /* bits per sample */
49
- view.setUint16(34, bitDepth, true);
50
- /* data chunk identifier */
51
- writeString(view, 36, 'data');
52
- /* data chunk length */
53
- view.setUint32(40, samples.length * bytesPerSample, true);
54
- if (format === 1) {
55
- // Raw PCM
56
- floatTo16BitPCM(view, 44, samples);
57
- }
58
- else {
59
- writeFloat32(view, 44, samples);
60
- }
61
- return buffer;
62
- }
63
- function interleave(inputL, inputR) {
64
- const length = inputL.length + inputR.length;
65
- const result = new Float32Array(length);
66
- let index = 0;
67
- let inputIndex = 0;
68
- while (index < length) {
69
- result[index++] = inputL[inputIndex];
70
- result[index++] = inputR[inputIndex];
71
- inputIndex++;
72
- }
73
- return result;
74
- }
75
- function writeFloat32(output, offset, input) {
76
- for (let i = 0; i < input.length; i++, offset += 4) {
77
- output.setFloat32(offset, input[i], true);
78
- }
79
- }
80
- function floatTo16BitPCM(output, offset, input) {
81
- for (let i = 0; i < input.length; i++, offset += 2) {
82
- const s = Math.max(-1, Math.min(1, input[i]));
83
- output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);
84
- }
85
- }
86
- function writeString(view, offset, string) {
87
- for (let i = 0; i < string.length; i++) {
88
- view.setUint8(offset + i, string.charCodeAt(i));
89
- }
90
- }
91
- //# sourceMappingURL=audio-buffer-to-wav.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-buffer-to-wav.js","sourceRoot":"","sources":["../src/audio-buffer-to-wav.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const uint8ToBase64: (buffer: AudioBuffer) => string;
2
- //# sourceMappingURL=audio-url-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-url-helpers.d.ts","sourceRoot":"","sources":["../src/audio-url-helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,WAAY,WAAW,WAYhD,CAAC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uint8ToBase64 = void 0;
4
- const uint8ToBase64 = (buffer) => {
5
- const wavAsArrayBuffer = audioBufferToWav(buffer, {
6
- float32: false,
7
- });
8
- let binary = '';
9
- const bytes = new Uint8Array(wavAsArrayBuffer);
10
- const len = bytes.byteLength;
11
- for (let i = 0; i < len; i++) {
12
- binary += String.fromCharCode(bytes[i]);
13
- }
14
- return window.btoa(binary);
15
- };
16
- exports.uint8ToBase64 = uint8ToBase64;
17
- //# sourceMappingURL=audio-url-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-url-helpers.js","sourceRoot":"","sources":["../src/audio-url-helpers.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GAAG,CAAC,MAAmB,EAAE,EAAE;IACpD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,EAAE;QACjD,OAAO,EAAE,KAAK;KACd,CAAC,CAAC;IACH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Inlined from https://github.com/Jam3/audiobuffer-to-wav/commit/2272eb09bd46a05e50a6d684d908aa6f13c58f63#diff-e727e4bdf3657fd1d798edcd6b099d6e092f8573cba266154583a746bba0f346
3
- */
4
- export declare function audioBufferToWav(buffer: AudioBuffer, opt: {
5
- float32: boolean;
6
- }): ArrayBuffer;
7
- //# sourceMappingURL=audio-buffer-to-wav.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-buffer-to-wav.d.ts","sourceRoot":"","sources":["../../../src/audio-buffer/audio-buffer-to-wav.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE;IACJ,OAAO,EAAE,OAAO,CAAC;CACjB,eAqBD"}
@@ -1,96 +0,0 @@
1
- "use strict";
2
- /**
3
- * Inlined from https://github.com/Jam3/audiobuffer-to-wav/commit/2272eb09bd46a05e50a6d684d908aa6f13c58f63#diff-e727e4bdf3657fd1d798edcd6b099d6e092f8573cba266154583a746bba0f346
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.audioBufferToWav = void 0;
7
- function audioBufferToWav(buffer, opt) {
8
- const numChannels = buffer.numberOfChannels;
9
- const { sampleRate } = buffer;
10
- const format = opt.float32 ? 3 : 1;
11
- const bitDepth = format === 3 ? 32 : 16;
12
- let result;
13
- if (numChannels === 2) {
14
- result = interleave(buffer.getChannelData(0), buffer.getChannelData(1));
15
- }
16
- else {
17
- result = buffer.getChannelData(0);
18
- }
19
- return encodeWAV({
20
- samples: result,
21
- format,
22
- sampleRate,
23
- numChannels,
24
- bitDepth,
25
- });
26
- }
27
- exports.audioBufferToWav = audioBufferToWav;
28
- function encodeWAV({ samples, format, sampleRate, numChannels, bitDepth, }) {
29
- const bytesPerSample = bitDepth / 8;
30
- const blockAlign = numChannels * bytesPerSample;
31
- const buffer = new ArrayBuffer(44 + samples.length * bytesPerSample);
32
- const view = new DataView(buffer);
33
- /* RIFF identifier */
34
- writeString(view, 0, 'RIFF');
35
- /* RIFF chunk length */
36
- view.setUint32(4, 36 + samples.length * bytesPerSample, true);
37
- /* RIFF type */
38
- writeString(view, 8, 'WAVE');
39
- /* format chunk identifier */
40
- writeString(view, 12, 'fmt ');
41
- /* format chunk length */
42
- view.setUint32(16, 16, true);
43
- /* sample format (raw) */
44
- view.setUint16(20, format, true);
45
- /* channel count */
46
- view.setUint16(22, numChannels, true);
47
- /* sample rate */
48
- view.setUint32(24, sampleRate, true);
49
- /* byte rate (sample rate * block align) */
50
- view.setUint32(28, sampleRate * blockAlign, true);
51
- /* block align (channel count * bytes per sample) */
52
- view.setUint16(32, blockAlign, true);
53
- /* bits per sample */
54
- view.setUint16(34, bitDepth, true);
55
- /* data chunk identifier */
56
- writeString(view, 36, 'data');
57
- /* data chunk length */
58
- view.setUint32(40, samples.length * bytesPerSample, true);
59
- if (format === 1) {
60
- // Raw PCM
61
- floatTo16BitPCM(view, 44, samples);
62
- }
63
- else {
64
- writeFloat32(view, 44, samples);
65
- }
66
- return buffer;
67
- }
68
- function interleave(inputL, inputR) {
69
- const length = inputL.length + inputR.length;
70
- const result = new Float32Array(length);
71
- let index = 0;
72
- let inputIndex = 0;
73
- while (index < length) {
74
- result[index++] = inputL[inputIndex];
75
- result[index++] = inputR[inputIndex];
76
- inputIndex++;
77
- }
78
- return result;
79
- }
80
- function writeFloat32(output, offset, input) {
81
- for (let i = 0; i < input.length; i++, offset += 4) {
82
- output.setFloat32(offset, input[i], true);
83
- }
84
- }
85
- function floatTo16BitPCM(output, offset, input) {
86
- for (let i = 0; i < input.length; i++, offset += 2) {
87
- const s = Math.max(-1, Math.min(1, input[i]));
88
- output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);
89
- }
90
- }
91
- function writeString(view, offset, string) {
92
- for (let i = 0; i < string.length; i++) {
93
- view.setUint8(offset + i, string.charCodeAt(i));
94
- }
95
- }
96
- //# sourceMappingURL=audio-buffer-to-wav.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-buffer-to-wav.js","sourceRoot":"","sources":["../../../src/audio-buffer/audio-buffer-to-wav.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const audioBufferToDataUrl: (buffer: AudioBuffer) => string;
2
- //# sourceMappingURL=audio-url-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-url-helpers.d.ts","sourceRoot":"","sources":["../../../src/audio-buffer/audio-url-helpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,WAAY,WAAW,WAYvD,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.audioBufferToDataUrl = void 0;
4
- const audio_buffer_to_wav_1 = require("./audio-buffer-to-wav");
5
- const audioBufferToDataUrl = (buffer) => {
6
- const wavAsArrayBuffer = (0, audio_buffer_to_wav_1.audioBufferToWav)(buffer, {
7
- float32: true,
8
- });
9
- let binary = '';
10
- const bytes = new Uint8Array(wavAsArrayBuffer);
11
- const len = bytes.byteLength;
12
- for (let i = 0; i < len; i++) {
13
- binary += String.fromCharCode(bytes[i]);
14
- }
15
- return 'data:audio/wav;base64,' + window.btoa(binary);
16
- };
17
- exports.audioBufferToDataUrl = audioBufferToDataUrl;
18
- //# sourceMappingURL=audio-url-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-url-helpers.js","sourceRoot":"","sources":["../../../src/audio-buffer/audio-url-helpers.ts"],"names":[],"mappings":";;;AAAA,+DAAuD;AAEhD,MAAM,oBAAoB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC3D,MAAM,gBAAgB,GAAG,IAAA,sCAAgB,EAAC,MAAM,EAAE;QACjD,OAAO,EAAE,IAAI;KACb,CAAC,CAAC;IACH,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC;IAED,OAAO,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B"}
@@ -1,5 +0,0 @@
1
- export declare const complexAdd: (a: [number, number], b: [number, number]) => [number, number];
2
- export declare const complexSubtract: (a: [number, number], b: [number, number]) => [number, number];
3
- export declare const complexMultiply: (a: [number, number], b: [number, number]) => [number, number];
4
- export declare const complexMagnitude: (c: [number, number]) => number;
5
- //# sourceMappingURL=complex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../../src/fft/complex.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,MACnB,CAAC,MAAM,EAAE,MAAM,CAAC,KAChB,CAAC,MAAM,EAAE,MAAM,CAAC,KACjB,CAAC,MAAM,EAAE,MAAM,CAEjB,CAAC;AAEF,eAAO,MAAM,eAAe,MACxB,CAAC,MAAM,EAAE,MAAM,CAAC,KAChB,CAAC,MAAM,EAAE,MAAM,CAAC,KACjB,CAAC,MAAM,EAAE,MAAM,CAEjB,CAAC;AAEF,eAAO,MAAM,eAAe,MACxB,CAAC,MAAM,EAAE,MAAM,CAAC,KAChB,CAAC,MAAM,EAAE,MAAM,CAAC,KACjB,CAAC,MAAM,EAAE,MAAM,CAEjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,MAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,MAE/D,CAAC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- // Adapted from node-fft project by Joshua Wong and Ben Bryan
3
- // https://github.com/vail-systems/node-fft
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.complexMagnitude = exports.complexMultiply = exports.complexSubtract = exports.complexAdd = void 0;
6
- const complexAdd = function (a, b) {
7
- return [a[0] + b[0], a[1] + b[1]];
8
- };
9
- exports.complexAdd = complexAdd;
10
- const complexSubtract = function (a, b) {
11
- return [a[0] - b[0], a[1] - b[1]];
12
- };
13
- exports.complexSubtract = complexSubtract;
14
- const complexMultiply = function (a, b) {
15
- return [a[0] * b[0] - a[1] * b[1], a[0] * b[1] + a[1] * b[0]];
16
- };
17
- exports.complexMultiply = complexMultiply;
18
- const complexMagnitude = function (c) {
19
- return Math.sqrt(c[0] * c[0] + c[1] * c[1]);
20
- };
21
- exports.complexMagnitude = complexMagnitude;
22
- //# sourceMappingURL=complex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"complex.js","sourceRoot":"","sources":["../../../src/fft/complex.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,2CAA2C;;;AAEpC,MAAM,UAAU,GAAG,UACzB,CAAmB,EACnB,CAAmB;IAEnB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;AALW,QAAA,UAAU,cAKrB;AAEK,MAAM,eAAe,GAAG,UAC9B,CAAmB,EACnB,CAAmB;IAEnB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B;AAEK,MAAM,eAAe,GAAG,UAC9B,CAAmB,EACnB,CAAmB;IAEnB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B;AAEK,MAAM,gBAAgB,GAAG,UAAU,CAAmB;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
@@ -1,2 +0,0 @@
1
- export declare const exponent: (k: number, N: number) => [number, number];
2
- //# sourceMappingURL=exponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exponent.d.ts","sourceRoot":"","sources":["../../../src/fft/exponent.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ,MAAgB,MAAM,KAAK,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAOvE,CAAC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- // Adapted from node-fft project by Joshua Wong and Ben Bryan
3
- // https://github.com/vail-systems/node-fft
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.exponent = void 0;
6
- const mapExponent = {};
7
- const exponent = function (k, N) {
8
- const x = -2 * Math.PI * (k / N);
9
- mapExponent[N] = mapExponent[N] || {};
10
- mapExponent[N][k] = mapExponent[N][k] || [Math.cos(x), Math.sin(x)]; // [Real, Imaginary]
11
- return mapExponent[N][k];
12
- };
13
- exports.exponent = exponent;
14
- //# sourceMappingURL=exponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exponent.js","sourceRoot":"","sources":["../../../src/fft/exponent.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,2CAA2C;;;AAE3C,MAAM,WAAW,GAIb,EAAE,CAAC;AAEA,MAAM,QAAQ,GAAG,UAAU,CAAS,EAAE,CAAS;IACrD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;IAEzF,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC;AAPW,QAAA,QAAQ,YAOnB"}
@@ -1,2 +0,0 @@
1
- export declare const fftFreq: (fftBins: [number, number][], sampleRate: number) => number[];
2
- //# sourceMappingURL=fft-freq.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fft-freq.d.ts","sourceRoot":"","sources":["../../../src/fft/fft-freq.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,YACV,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,cACf,MAAM,aAQlB,CAAC"}