data = {
const buffer = new Uint8Array(frames * bins);
const times = new Array(frames);
let offset = 0;
let t0 = Date.now();
while (true) {
analyser.getByteFrequencyData(new Uint8Array(buffer.buffer, offset, bins));
const i = Math.floor(offset / bins);
const now = times[i] = Date.now();
yield { buffer, times, i, fps: 1000 / (now - t0) };
offset = (offset + bins) % buffer.length;
t0 = now;
}
}