summaryrefslogtreecommitdiff
path: root/app/client/audio/pix2wav.js
blob: ccd36be007b2985dc090f2181a2bd18e09534477 (plain)
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)
}