UNPKG

wave-roll

Version:

JavaScript Library for Comparative MIDI Piano-Roll Visualization

19 lines (18 loc) 621 B
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 };