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
30
31
32
33
34
35
|
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)
}
|