summaryrefslogtreecommitdiff
path: root/app/client
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-06 04:41:26 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-06 04:41:26 +0200
commit16261518dfcf757e8bcc9d7fbbef25150ad576a3 (patch)
tree16d154e308e4f08a3b29abed10ad2bf14b0849f3 /app/client
parentb92b633cf0c2d528e45c04828a9ce1f5679aeaa3 (diff)
hitting right upload endpoint
Diffstat (limited to 'app/client')
-rw-r--r--app/client/api/crud.upload.js2
-rw-r--r--app/client/audio/wav2pix.js14
-rw-r--r--app/client/dataset/dataset.actions.js5
-rw-r--r--app/client/modules/pix2wav/pix2wav.reducer.js1
-rw-r--r--app/client/modules/pix2wav/views/spectrogram.upload.js26
5 files changed, 31 insertions, 17 deletions
diff --git a/app/client/api/crud.upload.js b/app/client/api/crud.upload.js
index 6f82d27..a389d4f 100644
--- a/app/client/api/crud.upload.js
+++ b/app/client/api/crud.upload.js
@@ -10,6 +10,8 @@ export function crud_upload(type, fd, data, dispatch) {
}
})
+ console.log('/api/' + type + '/' + id + '/upload/')
+
const xhr = new XMLHttpRequest()
xhr.upload.addEventListener("progress", uploadProgress, false)
xhr.addEventListener("load", uploadComplete, false)
diff --git a/app/client/audio/wav2pix.js b/app/client/audio/wav2pix.js
index d39262d..baba776 100644
--- a/app/client/audio/wav2pix.js
+++ b/app/client/audio/wav2pix.js
@@ -11,8 +11,8 @@ import spectrum from './lib/spectrum'
import { requestAudioContext } from './lib'
-const FRAME_LENGTH = 126 * 255
-const FRAME_OFFSET = FRAME_LENGTH / 4
+export const FRAME_LENGTH = 126 * 255
+export const FRAME_STEP = Math.round(FRAME_LENGTH / 4)
const _r = 8
const _i = 8
@@ -49,14 +49,14 @@ export const loadPCM = (file) => {
})
}
-export const renderFrames = (file, { frame_offset=FRAME_OFFSET, max=10 }) => dispatch => {
+export const renderFrames = (file, { frame_step=FRAME_STEP, max=10 }) => dispatch => {
return new Promise((resolve, reject) => {
loadPCM(file).then(({ buffer, pcm, sr }) => {
dispatch({ type: types.wav2pix.loaded_buffer })
let canvases = []
for (let offset = 0, count = 0, _len = pcm.length - FRAME_LENGTH;
offset < _len && count < max;
- offset += frame_offset, count += 1
+ offset += frame_step, count += 1
) {
canvases.push(render(pcm.slice(offset, offset+FRAME_LENGTH), sr, count))
}
@@ -66,7 +66,7 @@ export const renderFrames = (file, { frame_offset=FRAME_OFFSET, max=10 }) => dis
})
}
-export const buildZip = (name, file, { frame_offset=FRAME_OFFSET, max=10000 }) => dispatch => {
+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 })
@@ -77,7 +77,7 @@ export const buildZip = (name, file, { frame_offset=FRAME_OFFSET, max=10000 }) =
let offset = 0, count = 0, _len = pcm.length - FRAME_LENGTH
for (;
offset < _len && count < max;
- offset += frame_offset, count += 1
+ offset += frame_step, count += 1
) {
if ((count % 10) === 0) {
dispatch({ type: types.wav2pix.draw_progress, count })
@@ -92,7 +92,7 @@ export const buildZip = (name, file, { frame_offset=FRAME_OFFSET, max=10000 }) =
// FileSaver.saveAs(content, "wav2pix_" + name + ".zip")
resolve({
zip: content,
- name: "wav2pix_" + name + ".zip",
+ filename: "wav2pix_" + name + ".zip",
count
})
})
diff --git a/app/client/dataset/dataset.actions.js b/app/client/dataset/dataset.actions.js
index 6cdd15a..ed17418 100644
--- a/app/client/dataset/dataset.actions.js
+++ b/app/client/dataset/dataset.actions.js
@@ -28,9 +28,9 @@ export const updateFolder = (module, folder, name, opt={}) => dispatch => {
})
}
-export const uploadFile = (module, folder, file) => dispatch => {
+export const uploadFile = (module, folder, file, filename, opt) => dispatch => {
const fd = new FormData()
- fd.append('file', file)
+ fd.append('file', file, filename)
actions.folder.upload(fd, {
id: folder.id,
module: module.name,
@@ -38,6 +38,7 @@ export const uploadFile = (module, folder, file) => dispatch => {
epoch: 0,
processed: false,
generated: false,
+ opt,
})
}
diff --git a/app/client/modules/pix2wav/pix2wav.reducer.js b/app/client/modules/pix2wav/pix2wav.reducer.js
index def4f30..80ee4f7 100644
--- a/app/client/modules/pix2wav/pix2wav.reducer.js
+++ b/app/client/modules/pix2wav/pix2wav.reducer.js
@@ -15,6 +15,7 @@ const pix2wavReducer = (state = pix2wavInitialState, action) => {
if (action.data && action.data.module === 'pix2wav') {
state = datasetReducer(state, action)
}
+ console.log(action.type)
switch (action.type) {
case types.wav2pix.loaded_buffer:
diff --git a/app/client/modules/pix2wav/views/spectrogram.upload.js b/app/client/modules/pix2wav/views/spectrogram.upload.js
index 087af6a..534263a 100644
--- a/app/client/modules/pix2wav/views/spectrogram.upload.js
+++ b/app/client/modules/pix2wav/views/spectrogram.upload.js
@@ -25,6 +25,7 @@ class SpectrogramUpload extends Component {
name: "",
frames: [],
max: 3000,
+ frame_step: wav2pixActions.FRAME_STEP,
}
const audioElement = document.createElement('audio')
audioElement.addEventListener('loadedmetadata', () => {
@@ -41,23 +42,26 @@ class SpectrogramUpload extends Component {
this.audioElement.src = URL.createObjectURL(file)
console.log(file.size)
if (file.size < 2 << 20) {
- console.log('running le test!!!!!')
this.props.wav2pix.renderFrames(file, {})
.then(frames => {
- console.log(frames)
+ console.log('got frames', frames.length)
this.setState({
...this.state, frames
})
})
}
- console.log(file)
- // get info on the file... size, etc
}
buildZip(){
- const { file } = this.state
+ const { file, max, frame_step } = this.state
this.props.wav2pix.buildZip(this.state.name, file, {})
- .then(({ zip, count }) => {
- this.props.datasetActions.uploadFile(pix2wavModule, this.props.id, zip, { count })
+ .then(({ zip, filename, count }) => {
+ this.props.datasetActions.uploadFile(
+ this.props.module,
+ this.props.folder,
+ zip,
+ filename,
+ { count, max, frame_step }
+ )
})
}
render(){
@@ -105,7 +109,7 @@ class SpectrogramUpload extends Component {
<Param title='Date'>{moment(file.lastModifiedDate).format("YYYY-MM-DD h:mm a")}</Param>
<Param title='Duration'>{Math.floor(duration) + ' s.'}</Param>
<br />
- <Param title='Status'>{this.props.pix2wav.status}{this.props.upload.status}</Param>
+ <Param title='Status'>{this.props.pix2wav.status}</Param>
<br />
</Group>
<Group title='Data settings'>
@@ -120,6 +124,12 @@ class SpectrogramUpload extends Component {
value={this.state.max}
onChange={max => this.setState({ max })}
/>
+ <Slider
+ name='frame step'
+ min={10} max={10000} type='int'
+ value={this.state.frame_step}
+ onChange={frame_step => this.setState({ frame_step })}
+ />
<Button
onClick={() => this.buildZip()}
>Build Zip</Button>