diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-06 22:45:25 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-06 22:45:25 +0200 |
| commit | 26b80e09cd64d5bb5b40bc7872aff397d9cc80ea (patch) | |
| tree | b98217f3e7694f7e896a9bca21bc0506676f794d /app/client/modules | |
| parent | 954c81596701e4948a7e9cc3133f601b067ba31c (diff) | |
play frames
Diffstat (limited to 'app/client/modules')
| -rw-r--r-- | app/client/modules/pix2pix/index.js | 6 | ||||
| -rw-r--r-- | app/client/modules/pix2pix/views/pix2pix.live.js | 46 | ||||
| -rw-r--r-- | app/client/modules/pix2wav/views/spectrogram.upload.js | 33 |
3 files changed, 68 insertions, 17 deletions
diff --git a/app/client/modules/pix2pix/index.js b/app/client/modules/pix2pix/index.js index 076fef9..f3a4050 100644 --- a/app/client/modules/pix2pix/index.js +++ b/app/client/modules/pix2pix/index.js @@ -12,8 +12,8 @@ function router () { return ( <section> <Route exact path='/pix2pix/new/' component={Pix2PixNew} /> - <Route exact path='/pix2pix/datasets/' component={Pix2PixShow} /> - <Route exact path='/pix2pix/datasets/:id/' component={Pix2PixShow} /> + <Route exact path='/pix2pix/sequences/' component={Pix2PixShow} /> + <Route exact path='/pix2pix/sequences/:id/' component={Pix2PixShow} /> <Route exact path='/pix2pix/live/' component={Pix2PixLive} /> </section> ) @@ -22,7 +22,7 @@ function router () { function links(){ return ( <span> - <span><Link to="/pix2pix/datasets/">datasets</Link></span> + <span><Link to="/pix2pix/sequences/">sequences</Link></span> <span>train</span> <span>process</span> <span><Link to="/pix2pix/live/">live</Link></span> diff --git a/app/client/modules/pix2pix/views/pix2pix.live.js b/app/client/modules/pix2pix/views/pix2pix.live.js index eebb364..76b6727 100644 --- a/app/client/modules/pix2pix/views/pix2pix.live.js +++ b/app/client/modules/pix2pix/views/pix2pix.live.js @@ -44,6 +44,12 @@ class Pix2PixLive extends Component { const frame = Math.floor(percentage * (parseInt(this.props.frame.sequence_len) || 1) + 1) this.props.actions.seek(frame) } + start(){ + // + } + kill(){ + // + } togglePlaying(){ if (this.props.opt.processing) { this.props.actions.pause() @@ -99,12 +105,7 @@ class Pix2PixLive extends Component { value={(this.props.frame.sequence_i || 0) / (this.props.frame.sequence_len || 1)} onChange={this.seek} /> - <Button - title={'Processing: ' + (this.props.opt.processing ? 'yes' : 'no')} - onClick={this.togglePlaying} - > - {this.props.opt.processing ? 'Pause' : 'Restart'} - </Button> + {this.renderRestartButton()} <Button title={ this.props.opt.savingVideo @@ -234,6 +235,38 @@ class Pix2PixLive extends Component { </div> ) } + renderRestartButton(){ + if (this.props.runner.gpu.status === 'IDLE') { + return ( + <Button + title={'GPU Idle'} + onClick={this.start} + >Start</Button> + ) + } + if (this.props.runner.gpu.task.module !== 'pix2pix') { + return ( + <Button + title={'GPU Busy'} + onClick={this.kill} + >Kill</Button> + ) + } + if (! this.props.opt.processing) { + return ( + <Button + title={'Not processing'} + onClick={this.togglePlaying} + >Restart</Button> + ) + } + return ( + <Button + title={'Processing'} + onClick={this.togglePlaying} + >Restart</Button> + ) + } } function timeInSeconds(n){ return (n / 10).toFixed(1) + ' s.' @@ -244,6 +277,7 @@ const mapStateToProps = state => ({ checkpoints: state.live.checkpoints, epochs: state.live.epochs, sequences: state.live.sequences, + runner: state.system.runner, }) const mapDispatchToProps = (dispatch, ownProps) => ({ diff --git a/app/client/modules/pix2wav/views/spectrogram.upload.js b/app/client/modules/pix2wav/views/spectrogram.upload.js index efbfca7..111a2a7 100644 --- a/app/client/modules/pix2wav/views/spectrogram.upload.js +++ b/app/client/modules/pix2wav/views/spectrogram.upload.js @@ -14,6 +14,7 @@ import { import * as datasetActions from '../../../dataset/dataset.actions' import * as wav2pixActions from '../../../audio/wav2pix' +import * as pix2wavPlayer from '../../../audio/pix2wav' import pix2wavModule from '../pix2wav.module' @@ -30,6 +31,7 @@ class SpectrogramUpload extends Component { frames: [], frame_start: 0, max: 1000, + preview_count: 8*4, frame_step: wav2pixActions.FRAME_STEP, } const audioElement = document.createElement('audio') @@ -59,8 +61,8 @@ class SpectrogramUpload extends Component { this.audioElement.src = URL.createObjectURL(file) } rebuildFrames(){ - const { file, pcm, frame_step, frame_start } = this.state - this.props.wav2pix.renderFrames(pcm || file, { frame_start, frame_step }) + const { file, pcm, frame_step, frame_start, preview_count } = this.state + this.props.wav2pix.renderFrames(pcm || file, { frame_start, frame_step, max: preview_count }) .then(data => { console.log('got frames', data.frames.length) this.setState({ @@ -83,6 +85,12 @@ class SpectrogramUpload extends Component { ) }) } + playFrame(i){ + return () => { + const frame = this.state.frames[i] + pix2wavPlayer.play(frame) + } + } render(){ // loading={pix2wav.loading} // progress={pix2wav.progress} @@ -90,7 +98,11 @@ class SpectrogramUpload extends Component { // module={pix2wavModule} // data={pix2wav.data} // folder={folder} - const { file, frames } = this.state + const { file, frames, preview_count } = this.state + const canvases = [] + for (let i = 0, _len = preview_count; i < _len; i++) { + canvases.push(<canvas key={i} onClick={this.playFrame(i)} />) + } return ( <div className='row'> <div className='col spectrogramBuilder'> @@ -107,12 +119,14 @@ class SpectrogramUpload extends Component { {file && this.renderMetadata(file)} </Group> </div> - <div ref={(c) => { this.canvases = c }} className='thumbs' id='pix2wav_canvases' /> + <div ref={(c) => { this.canvases = c }} className='thumbs' id='pix2wav_canvases'> + {canvases} + </div> </div> ) } renderMetadata(file){ - const { duration } = this.state + const { duration, preview_count } = this.state const size = util.hush_size(file.size) const total_frame_count = Math.floor((duration * 44100 - wav2pixActions.FRAME_LENGTH) / this.state.frame_step) const frame_size = Math.round(wav2pixActions.FRAME_LENGTH / 44100 * 1000) + ' ms.' @@ -185,9 +199,12 @@ class SpectrogramUpload extends Component { ) } componentDidUpdate(){ - this.canvases.innerHTML = '' - const canvases = (this.state.frames || []).map(c => { - this.canvases.append(c.canvas) + (this.state.frames || []).map((frame, i) => { + const canvas = this.canvases.children[i] + const ctx = canvas.getContext('2d-lodpi') + canvas.width = frame.canvas.width + canvas.height = frame.canvas.height + ctx.drawImage(frame.canvas, 0, 0) }) } } |
