summaryrefslogtreecommitdiff
path: root/app/client/audio/wav2pix.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/client/audio/wav2pix.js')
-rw-r--r--app/client/audio/wav2pix.js24
1 files changed, 14 insertions, 10 deletions
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,