diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-06 15:36:03 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-06 15:36:03 +0200 |
| commit | fc1c3835501b97e5d15ac33bd812cd87b20aabad (patch) | |
| tree | 31f3a97d274d9236a4332c903acb3622395e73ca /app/client/audio | |
| parent | 87c606ed3b8c9867418e412044af871fe6447700 (diff) | |
compute number of frames that will be generated
Diffstat (limited to 'app/client/audio')
| -rw-r--r-- | app/client/audio/pix2wav.js | 19 | ||||
| -rw-r--r-- | app/client/audio/wav2pix.js | 24 |
2 files changed, 27 insertions, 16 deletions
diff --git a/app/client/audio/pix2wav.js b/app/client/audio/pix2wav.js index 1b103b4..beccc56 100644 --- a/app/client/audio/pix2wav.js +++ b/app/client/audio/pix2wav.js @@ -1,11 +1,19 @@ -function play(i) { - // console.log('play', i) - last_i = i - let player = players[clamp(i, 0, players.length)] +import types from '../types' + +import Tone from 'tone' + +import * as draw from './lib/draw' +import output from './lib/output' +import spectrum from './lib/spectrum' + +const _r = 8 +const _i = 8 + +function play(frame) { // 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) + const new_fft = spectrum.fromImageData(frame.imageData, 44100, _r, _i) // gallery.innerHTML = '' // console.log(player.fft.data, new_fft.data) @@ -18,4 +26,3 @@ function play(i) { function redraw(new_fft){ const { canvas, imageData } = draw.raw_spectrum(new_fft, 0, 256, 0, 256, _r, _i) } - diff --git a/app/client/audio/wav2pix.js b/app/client/audio/wav2pix.js index baba776..48ca140 100644 --- a/app/client/audio/wav2pix.js +++ b/app/client/audio/wav2pix.js @@ -49,19 +49,20 @@ export const loadPCM = (file) => { }) } -export const renderFrames = (file, { frame_step=FRAME_STEP, max=10 }) => dispatch => { +export const renderFrames = (file, { frame_step=FRAME_STEP, max=12 }) => dispatch => { return new Promise((resolve, reject) => { loadPCM(file).then(({ buffer, pcm, sr }) => { - dispatch({ type: types.wav2pix.loaded_buffer }) + dispatch({ type: types.wav2pix.load }) let canvases = [] - for (let offset = 0, count = 0, _len = pcm.length - FRAME_LENGTH; + let offset = 0, count = 0, _len = pcm.length - FRAME_LENGTH + for (; offset < _len && count < max; offset += frame_step, count += 1 ) { - canvases.push(render(pcm.slice(offset, offset+FRAME_LENGTH), sr, count)) + frames.push(render(pcm.slice(offset, offset+FRAME_LENGTH), sr, count)) } - dispatch({ type: types.wav2pix.draw_finish }) - resolve(canvases) + dispatch({ type: types.wav2pix.finish, message: 'Rendered ' + count + ' images' }) + resolve(frames) }) }) } @@ -69,26 +70,29 @@ export const renderFrames = (file, { frame_step=FRAME_STEP, max=10 }) => dispatc export const buildZip = (name, file, { frame_step=FRAME_STEP, max=10000 }) => dispatch => { return new Promise((resolve, reject) => { loadPCM(file).then(({ buffer, pcm, sr }) => { - dispatch({ type: types.wav2pix.loaded_buffer }) + dispatch({ type: types.wav2pix.load }) const zip = new JSZip() const zip_folder = zip.folder("wav2pix_" + name); + let steps = (pcm.length - FRAME_LENGTH) / frame_step + console.log(steps) + let offset = 0, count = 0, _len = pcm.length - FRAME_LENGTH for (; offset < _len && count < max; offset += frame_step, count += 1 ) { if ((count % 10) === 0) { - dispatch({ type: types.wav2pix.draw_progress, count }) + dispatch({ type: types.wav2pix.progress, progress: { i: count / steps * 6, n: 6 } }) } render(pcm.slice(offset, offset+FRAME_LENGTH), sr, count, zip_folder) } // dispatch event - dispatch({ type: types.wav2pix.draw_finish }) + dispatch({ type: types.wav2pix.finish, message: 'Rendered ' + count + ' images' }) zip.generateAsync({ type: "blob" }).then(content => { - dispatch({ type: types.wav2pix.load_zip }) + dispatch({ type: types.wav2pix.zip }) // FileSaver.saveAs(content, "wav2pix_" + name + ".zip") resolve({ zip: content, |
