blob: f60f27e4b36f4bb39397d6553ff62356c1a3d624 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// --- Utility Functions for Audio Processing ---
// JavaScript equivalent of C++ idct_512
function javascript_idct_512(input) {
const output = new Float32Array(dctSize);
const PI = Math.PI;
const N = dctSize;
for (let n = 0; n < N; ++n) {
let sum = input[0] / 2.0;
for (let k = 1; k < N; ++k) {
sum += input[k] * Math.cos((PI / N) * k * (n + 0.5));
}
output[n] = sum * (2.0 / N);
}
return output;
}
// Hanning window for smooth audio transitions (JavaScript equivalent)
function hanningWindow(size) {
const window = new Float32Array(size);
const PI = Math.PI;
for (let i = 0; i < size; i++) {
window[i] = 0.5 * (1 - Math.cos((2 * PI * i) / (size - 1)));
}
return window;
}
const hanningWindowArray = hanningWindow(dctSize); // Pre-calculate window
|