wave-roll
Version:
JavaScript Library for Comparative MIDI Piano-Roll Visualization
19 lines (18 loc) • 621 B
JavaScript
function M(a, n = 2e3) {
const g = a.numberOfChannels, f = a.length, c = Math.max(1, Math.floor(f / n)), h = new Array(n).fill(0), s = new Array(n).fill(0);
for (let t = 0; t < n; t++) {
let b = t * c, x = t === n - 1 ? f : b + c, e = 1 / 0, i = -1 / 0;
for (let o = 0; o < g; o++) {
const y = a.getChannelData(o);
for (let r = b; r < x; r++) {
const l = y[r];
l < e && (e = l), l > i && (i = l);
}
}
isFinite(e) || (e = 0), isFinite(i) || (i = 0), h[t] = Math.abs(e), s[t] = Math.abs(i);
}
return { min: h, max: s };
}
export {
M as getPeaksFromAudioBuffer
};