function render(pcm, count, zip){ const fft = spectrum.toSpectrum(pcm, sr) // console.log('render', fft) // const pcm_rev = pcm.slice().reverse() // const spec_rev = spectrum.toSpectrum(pcm_rev, spec.sr) draw.clear() const { canvas, imageData } = draw.raw_spectrum(fft, 0, 256, 0, 256, _r, _i) const dataURL = canvas.toDataURL("image/png") if (zip) { const fn = sprintf('frame_%05d.png', count) zip.file(fn, dataURL.split(',')[1], {base64: true}) } return { fft, canvas, imageData } } function play(i) { // console.log('play', i) last_i = i let player = players[clamp(i, 0, players.length)] // const { canvas, imageData } = draw.raw_spectrum(fft, 0, 256, 0, 256, 1, 1) // console.log(_r, _i) // const { canvas, imageData } = draw.raw_spectrum(player.fft, 0, 256, 0, 256, _r, _i) const new_fft = spectrum.fromImageData(player.imageData, 44100, _r, _i) // gallery.innerHTML = '' // console.log(player.fft.data, new_fft.data) const buf = spectrum.fromSpectrum(new_fft) const _p = new Tone.Player(buf) _p.connect(output) _p.start(Tone.now()) redraw(new_fft) } function redraw(new_fft){ const { canvas, imageData } = draw.raw_spectrum(new_fft, 0, 256, 0, 256, _r, _i) }