summaryrefslogtreecommitdiff
path: root/public/bundle.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bundle.js')
-rw-r--r--public/bundle.js827
1 files changed, 652 insertions, 175 deletions
diff --git a/public/bundle.js b/public/bundle.js
index a5985c1..976a3c4 100644
--- a/public/bundle.js
+++ b/public/bundle.js
@@ -451,7 +451,7 @@ exports.actions = exports.parser = exports.util = undefined;
var _crud = __webpack_require__(/*! ./crud.actions */ "./app/client/api/crud.actions.js");
-var _util = __webpack_require__(/*! ../util */ "./app/client/util.js");
+var _util = __webpack_require__(/*! ../util */ "./app/client/util/index.js");
var util = _interopRequireWildcard(_util);
@@ -946,9 +946,7 @@ exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.FileRow = exports.fieldSet = exports.orderByFn = exports.FileList = undefined;
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
+exports.FileRow = exports.fieldSet = exports.FileList = undefined;
var _preact = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.esm.js");
@@ -962,7 +960,7 @@ var _moment = __webpack_require__(/*! moment */ "./node_modules/moment/moment.js
var _moment2 = _interopRequireDefault(_moment);
-var _util = __webpack_require__(/*! ../util */ "./app/client/util.js");
+var _util = __webpack_require__(/*! ../util */ "./app/client/util/index.js");
var util = _interopRequireWildcard(_util);
@@ -970,7 +968,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-var defaultFields = new Set(['date', 'size']);
+var defaultFields = new Set(['name', 'date', 'size']);
var FileList = exports.FileList = function FileList(props) {
var files = props.files,
@@ -988,9 +986,9 @@ var FileList = exports.FileList = function FileList(props) {
_props$rowClassName = props.rowClassName,
rowClassName = _props$rowClassName === undefined ? 'row file' : _props$rowClassName;
- var _orderByFn = orderByFn(orderBy),
- mapFn = _orderByFn.mapFn,
- sortFn = _orderByFn.sortFn;
+ var _util$sort$orderByFn = util.sort.orderByFn(orderBy),
+ mapFn = _util$sort$orderByFn.mapFn,
+ sortFn = _util$sort$orderByFn.sortFn;
var fileList = (files || []).map(mapFn).sort(sortFn).map(function (pair) {
return (0, _preact.h)(FileRow, {
@@ -1025,64 +1023,6 @@ var FileList = exports.FileList = function FileList(props) {
);
};
-var numericSort = {
- asc: function asc(a, b) {
- return a[0] - b[0];
- },
- desc: function desc(a, b) {
- return b[0] - a[0];
- }
-};
-var stringSort = {
- asc: function asc(a, b) {
- return a[0].localeCompare(b[0]);
- },
- desc: function desc(a, b) {
- return b[0].localeCompare(a[0]);
- }
-};
-var orderByFn = exports.orderByFn = function orderByFn() {
- var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'name asc';
-
- var _s$split = s.split(' '),
- _s$split2 = _slicedToArray(_s$split, 2),
- _s$split2$ = _s$split2[0],
- field = _s$split2$ === undefined ? 'name' : _s$split2$,
- _s$split2$2 = _s$split2[1],
- direction = _s$split2$2 === undefined ? 'asc' : _s$split2$2;
-
- var mapFn = void 0,
- sortFn = void 0;
- switch (field) {
- case 'epoch':
- mapFn = function mapFn(a) {
- return [a.epoch || a.epochs, a];
- };
- sortFn = numericSort[direction];
- break;
- case 'size':
- mapFn = function mapFn(a) {
- return [a.size, a];
- };
- sortFn = numericSort[direction];
- break;
- case 'date':
- mapFn = function mapFn(a) {
- return [+new Date(a.date || a.created_at), a];
- };
- sortFn = numericSort[direction];
- break;
- case 'name':
- default:
- mapFn = function mapFn(a) {
- return [a.id || a.name, a];
- };
- sortFn = stringSort[direction];
- break;
- }
- return { mapFn: mapFn, sortFn: sortFn };
-};
-
var fieldSet = exports.fieldSet = function fieldSet(fields) {
if (fields) {
if (fields instanceof Set) {
@@ -1106,16 +1046,17 @@ var FileRow = exports.FileRow = function FileRow(props) {
var size = util.hush_size(file.size);
var date = file.date || file.created_at;
+ var epoch = file.epoch || file.epochs || 0;
return (0, _preact.h)(
'div',
{ 'class': className, key: file.name },
- (0, _preact.h)(
+ fields.has('name') && (0, _preact.h)(
'div',
{ className: 'filename', title: file.name || file.url },
file.persisted === false ? (0, _preact.h)(
'span',
- null,
+ { className: 'unpersisted' },
file.name || file.url
) : linkFiles && file.url ? (0, _preact.h)(
'a',
@@ -1139,6 +1080,11 @@ var FileRow = exports.FileRow = function FileRow(props) {
{ className: "username" },
username
),
+ fields.has('epoch') && (0, _preact.h)(
+ 'div',
+ { className: "epoch " + util.hush_null(epoch)[0] },
+ epoch > 0 ? 'ep. ' + epoch : ''
+ ),
fields.has('date') && (0, _preact.h)(
'div',
{ className: "date " + util.carbon_date(date) },
@@ -1154,11 +1100,6 @@ var FileRow = exports.FileRow = function FileRow(props) {
{ className: "size " + size[0] },
size[1]
),
- fields.has('epoch') && (0, _preact.h)(
- 'div',
- { className: 'epoch' },
- file.epoch > 0 ? 'epoch ' + file.epoch : ' '
- ),
(fields.has('activity') || fields.has('module')) && (0, _preact.h)(
'div',
{ className: 'activity' },
@@ -2316,7 +2257,7 @@ var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-r
var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js");
-var _util = __webpack_require__(/*! ../util */ "./app/client/util.js");
+var _util = __webpack_require__(/*! ../util */ "./app/client/util/index.js");
var util = _interopRequireWildcard(_util);
@@ -2957,7 +2898,7 @@ var _socket = __webpack_require__(/*! ./socket */ "./app/client/socket/index.js"
var socket = _interopRequireWildcard(_socket);
-var _util = __webpack_require__(/*! ./util */ "./app/client/util.js");
+var _util = __webpack_require__(/*! ./util */ "./app/client/util/index.js");
var util = _interopRequireWildcard(_util);
@@ -4402,24 +4343,30 @@ var _samplernn = __webpack_require__(/*! ./samplernn.datasets */ "./app/client/m
var _samplernn2 = _interopRequireDefault(_samplernn);
-var _samplernn3 = __webpack_require__(/*! ./samplernn.inspect */ "./app/client/modules/samplernn/samplernn.inspect.js");
+var _samplernn3 = __webpack_require__(/*! ./samplernn.results */ "./app/client/modules/samplernn/samplernn.results.js");
var _samplernn4 = _interopRequireDefault(_samplernn3);
-var _samplernn5 = __webpack_require__(/*! ./samplernn.loss */ "./app/client/modules/samplernn/samplernn.loss.js");
+var _samplernn5 = __webpack_require__(/*! ./samplernn.inspect */ "./app/client/modules/samplernn/samplernn.inspect.js");
var _samplernn6 = _interopRequireDefault(_samplernn5);
+var _samplernn7 = __webpack_require__(/*! ./samplernn.loss */ "./app/client/modules/samplernn/samplernn.loss.js");
+
+var _samplernn8 = _interopRequireDefault(_samplernn7);
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function router() {
return (0, _preact.h)(
'div',
null,
- (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/graph/', component: _samplernn6.default }),
- (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/inspect/', component: _samplernn4.default }),
+ (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/graph/', component: _samplernn8.default }),
+ (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/inspect/', component: _samplernn6.default }),
+ (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/datasets/', component: _samplernn2.default }),
(0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/datasets/:id/', component: _samplernn2.default }),
- (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/datasets/new/', component: _samplernn2.default })
+ (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/datasets/new/', component: _samplernn2.default }),
+ (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/results/', component: _samplernn4.default })
);
}
@@ -4500,23 +4447,48 @@ function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
var load_directories = exports.load_directories = function load_directories(id) {
return function (dispatch) {
// console.log(actions)
- Promise.all([_actions2.default.folder.index({ module: 'samplernn' }), _actions2.default.file.index({ module: 'samplernn' }), _actions2.default.task.index({ module: 'samplernn' }), _actions2.default.socket.list_directory({ module: 'samplernn', dir: 'datasets' }), _actions2.default.socket.list_directory({ module: 'samplernn', dir: 'results' }), _actions2.default.socket.list_directory({ module: 'samplernn', dir: 'output' })]).then(function (res) {
+ Promise.all([_actions2.default.folder.index({ module: 'samplernn' }), _actions2.default.file.index({ module: 'samplernn' }), _actions2.default.task.index({ module: 'samplernn' }), _actions2.default.socket.list_directory({ module: 'samplernn', dir: 'datasets' }), _actions2.default.socket.list_directory({ module: 'samplernn', dir: 'results' }), _actions2.default.socket.list_directory({ module: 'samplernn', dir: 'output' }), load_loss()(dispatch)]).then(function (res) {
// console.log(res)
- var _res = _slicedToArray(res, 6),
+ var _res = _slicedToArray(res, 7),
folders = _res[0],
files = _res[1],
tasks = _res[2],
datasets = _res[3],
results = _res[4],
- output = _res[5];
+ output = _res[5],
+ lossReport = _res[6];
+
+ var unsortedFolder = {
+ id: 0,
+ name: 'unsorted',
+ datasets: []
+ };
+
+ var datasetLookup = {};
+
+ var get_dataset = function get_dataset(name) {
+ var folder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : unsortedFolder;
+ var date = arguments[2];
+
+ var dataset = datasetLookup[name] || empty_dataset(name, folder);
+ if (date) {
+ dataset.date = dataset.date ? Math.max(+new Date(date), dataset.date) : +new Date(date);
+ }
+ return dataset;
+ };
var empty_dataset = function empty_dataset(name) {
- return {
+ var folder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : unsortedFolder;
+
+ var dataset = {
name: name,
input: [],
checkpoints: [],
output: []
};
+ datasetLookup[dataset.name] = dataset;
+ folder.datasets.push(dataset);
+ return dataset;
};
// take all of the folders and put them in a lookup
@@ -4525,11 +4497,7 @@ var load_directories = exports.load_directories = function load_directories(id)
folder.datasets = [];
return folderLookup;
}, {
- 'unsorted': {
- id: 0,
- name: 'unsorted',
- datasets: []
- }
+ unsorted: unsortedFolder
});
// prepare the files by splitting into two groups
@@ -4541,40 +4509,24 @@ var load_directories = exports.load_directories = function load_directories(id)
});
// build the initial dataset lookup table using the ungenerated files
- var datasetLookup = ungeneratedFiles.reduce(function (datasetLookup, file) {
- file.checkpoints = [];
+ ungeneratedFiles.reduce(function (datasetLookup, file) {
if (!file.name) {
file.name = (file.opt || {}).token || file.url;
- // datasetLookup[] = file
}
var name = (file.name || 'unsorted').split('.')[0];
- if (!datasetLookup[name]) {
- var dataset = empty_dataset(name);
- datasetLookup[dataset.name] = dataset;
- dataset.input.push(file);
- folderLookup[file.folder_id].datasets.push(dataset);
- } else {
- datasetLookup[name].input.push(file);
- }
+ var dataset = get_dataset(name, folderLookup[file.folder_id], unsortedFolder, file.date);
+ dataset.input.push(file);
return datasetLookup;
- }, {
- unsorted: empty_dataset('unsorted')
- });
+ }, datasetLookup);
// go over the generated files and add addl datasets (if the files were deleted)
generatedFiles.map(function (file) {
var pair = file.name.split('.')[0].split('-');
- var dataset = datasetLookup[pair[0]];
- if (!dataset) {
- dataset = empty_dataset(pair[0]);
- datasetLookup[dataset.name] = dataset;
- folderLookup[file.folder_id].datasets.push(dataset);
- }
+ var dataset = get_dataset(pair[0], folderLookup[file.folder_id], unsortedFolder, file.date);
dataset.output.push(file);
file.epoch = file.epoch || pair[1];
});
- // console.log(datasets)
var flatDatasets = datasets.filter(function (s) {
return s.name.match(/(wav|aiff?|flac|mp3)$/) && !s.dir;
});
@@ -4582,23 +4534,13 @@ var load_directories = exports.load_directories = function load_directories(id)
return s.dir;
});
builtDatasets.forEach(function (dir) {
- var dataset = datasetLookup[dir.name];
- if (!dataset) {
- dataset = empty_dataset(dir.name);
- datasetLookup[dataset.name] = dataset;
- folderLookup.unsorted.datasets.push(dataset);
- }
+ var dataset = get_dataset(dir.name);
dataset.isBuilt = true;
});
flatDatasets.forEach(function (file) {
var name = file.name.split('.')[0];
- var dataset = datasetLookup[name];
- if (!dataset) {
- dataset = empty_dataset(name);
- datasetLookup[dataset.name] = dataset;
- folderLookup.unsorted.datasets.push(dataset);
- }
+ var dataset = get_dataset(name, unsortedFolder, file.date);
file.persisted = false;
dataset.input.push(file);
});
@@ -4614,14 +4556,15 @@ var load_directories = exports.load_directories = function load_directories(id)
}).reduce(function (a, b) {
return (a[b[0]] = b[1]) && a;
}, {});
- checkpoint.name = checkpoint.dataset || checkpoint.exp;
+ checkpoint.name = checkpoint.name || checkpoint.dataset || checkpoint.exp;
checkpoint.date = s.date;
checkpoint.dir = s;
- var dataset = datasetLookup[checkpoint.dataset];
- if (!dataset) {
- dataset = empty_dataset(checkpoint.dataset);
- datasetLookup[dataset.name] = dataset;
- folderLookup.unsorted.datasets.push(dataset);
+ checkpoint.persisted = false;
+ var dataset = get_dataset(checkpoint.name, unsortedFolder, checkpoint.date);
+ var loss = lossReport[checkpoint.name];
+ if (loss) {
+ dataset.epoch = checkpoint.epoch = loss.length;
+ checkpoint.training_loss = loss;
}
dataset.checkpoints.push(checkpoint);
return checkpoint;
@@ -4629,14 +4572,10 @@ var load_directories = exports.load_directories = function load_directories(id)
output.map(function (file) {
var pair = file.name.split('.')[0].split('-');
- var dataset = datasetLookup[pair[0]];
- if (!dataset) {
- dataset = empty_dataset(pair[0]);
- datasetLookup[dataset.name] = dataset;
- folderLookup.unsorted.datasets.push(dataset);
- }
+ var dataset = get_dataset(pair[0], unsortedFolder, file.date);
file.persisted = false;
- file.epoch = file.epoch || pair[1].replace(/^\D+/, '');
+ file.epoch = parseInt(file.epoch || pair[1].replace(/^\D+/, '')) || 0;
+ dataset.epoch = Math.max(file.epoch, dataset.epoch || 0);
dataset.output.push(file);
});
@@ -4665,7 +4604,7 @@ var load_directories = exports.load_directories = function load_directories(id)
var load_loss = exports.load_loss = function load_loss() {
return function (dispatch) {
- _actions2.default.socket.run_script({ module: 'samplernn', activity: 'report' }).then(function (report) {
+ return _actions2.default.socket.run_script({ module: 'samplernn', activity: 'report' }).then(function (report) {
var lossReport = {};
report.stdout.split('\n\n').filter(function (a) {
return !!a;
@@ -4688,6 +4627,7 @@ var load_loss = exports.load_loss = function load_loss() {
type: _types2.default.samplernn.load_loss,
lossReport: lossReport
});
+ return lossReport;
});
};
};
@@ -4733,6 +4673,10 @@ var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js"
var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js");
+var _util = __webpack_require__(/*! ../../util */ "./app/client/util/index.js");
+
+var util = _interopRequireWildcard(_util);
+
var _samplernn = __webpack_require__(/*! ./samplernn.actions */ "./app/client/modules/samplernn/samplernn.actions.js");
var samplernnActions = _interopRequireWildcard(_samplernn);
@@ -4783,11 +4727,15 @@ var SampleRNNDatasets = function (_Component) {
_this.fileOptions = _this.fileOptions.bind(_this);
_this.pickFile = _this.pickFile.bind(_this);
- var id = props.match.params.id;
+ var id = props.match.params.id || localStorage.getItem('samplernn.last_id');
if (!id && props.location.pathname.match(/\/new\//)) {
id = 'new';
+ } else if (id) {
+ localStorage.setItem('samplernn.last_id', id);
+ }
+ if (id && (!props.samplernn.folder || props.samplernn.folder.id !== id)) {
+ props.actions.load_directories(id);
}
- props.actions.load_directories(id);
return _this;
}
@@ -4837,25 +4785,31 @@ var SampleRNNDatasets = function (_Component) {
);
}
}, {
- key: 'fetchURL',
- value: function fetchURL(url) {}
- }, {
key: 'render',
value: function render() {
var samplernn = this.props.samplernn;
var folder = samplernn.folder;
if (!folder.name) return;
- console.log(folder);
- var datasets = folder.datasets.map(function (dataset) {
- console.log(dataset);
+
+ var _util$sort$orderByFn = util.sort.orderByFn('date desc'),
+ mapFn = _util$sort$orderByFn.mapFn,
+ sortFn = _util$sort$orderByFn.sortFn;
+
+ var datasets = folder.datasets.map(mapFn).sort(sortFn).map(function (pair) {
+ var dataset = pair[1];
return (0, _preact.h)(
'div',
{ className: 'row dataset' },
(0, _preact.h)(
'div',
{ className: 'col' },
- !!dataset.input.length && (0, _preact.h)(_fileList.FileList, { files: dataset.input, className: 'input_files', fileListClassName: '', rowClassName: 'input_file' })
+ !!dataset.input.length && (0, _preact.h)(_fileList.FileList, {
+ files: dataset.input,
+ className: 'input_files',
+ fileListClassName: '',
+ rowClassName: 'input_file'
+ })
),
(0, _preact.h)(
'div',
@@ -4863,18 +4817,26 @@ var SampleRNNDatasets = function (_Component) {
(0, _preact.h)(
'div',
null,
- dataset.isBuilt ? 'has dataset' : 'not built'
+ dataset.isBuilt ? 'cached' : ''
)
),
(0, _preact.h)(
'div',
{ className: 'col checkpoint' },
- !!dataset.checkpoints.length && (0, _preact.h)(_fileList.FileRow, { file: dataset.checkpoints[0] })
+ !!dataset.checkpoints.length && (0, _preact.h)(_fileList.FileRow, {
+ file: dataset.checkpoints[0],
+ fields: 'name date epoch',
+ className: 'row checkpoint'
+ })
),
(0, _preact.h)(
'div',
{ className: 'col' },
- !!dataset.output.length && (0, _preact.h)(_fileList.FileList, { files: dataset.output, orderBy: 'epoch desc' })
+ !!dataset.output.length && (0, _preact.h)(_fileList.FileList, {
+ files: dataset.output,
+ orderBy: 'epoch desc',
+ fields: 'name date epoch size'
+ })
)
);
});
@@ -4885,7 +4847,7 @@ var SampleRNNDatasets = function (_Component) {
'div',
{ className: 'heading' },
(0, _preact.h)(
- 'h3',
+ 'h2',
null,
'SampleRNN'
)
@@ -4901,11 +4863,7 @@ var SampleRNNDatasets = function (_Component) {
{ 'class': 'col' },
'input'
),
- (0, _preact.h)(
- 'div',
- { 'class': 'col' },
- 'dataset'
- ),
+ (0, _preact.h)('div', { 'class': 'col' }),
(0, _preact.h)(
'div',
{ 'class': 'col' },
@@ -4926,18 +4884,6 @@ var SampleRNNDatasets = function (_Component) {
return SampleRNNDatasets;
}(_preact.Component);
-// <Dataset
-// canRename
-// canUpload
-// canAddURL
-// canDeleteFile
-// linkFiles
-// fileOptions={this.fileOptions}
-// onPick={this.handlePick}
-// folder={samplernn.folder}
-// files={samplernn.folder.files}
-// />
-
var mapStateToProps = function mapStateToProps(state) {
return {
samplernn: state.module.samplernn,
@@ -5181,7 +5127,7 @@ var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js"
var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js");
-var _util = __webpack_require__(/*! ../../util */ "./app/client/util.js");
+var _util = __webpack_require__(/*! ../../util */ "./app/client/util/index.js");
var _samplernn = __webpack_require__(/*! ./samplernn.actions */ "./app/client/modules/samplernn/samplernn.actions.js");
@@ -5328,9 +5274,15 @@ var SampleRNNLoss = function (_Component) {
// if ( (ii % 1) < 0.1) {
// ctx.strokeStyle = 'rgba(255,255,255,1.0)'
ctx.lineWidth = 2;
+ ctx.setLineDash([4, 4]);
ctx.stroke();
ctx.stroke();
ctx.stroke();
+ ctx.setLineDash([0, 0]);
+ var fontSize = 12;
+ ctx.font = 'italic ' + fontSize * devicePixelRatio + 'px "Georgia"';
+ ctx.fill = 'black';
+ ctx.fillText(ii.toFixed(1), w - 50, h - Y + fontSize + 10 * devicePixelRatio);
// }
}
ctx.lineWidth = 1;
@@ -5339,7 +5291,7 @@ var SampleRNNLoss = function (_Component) {
var loss = lossReport[key];
var vf = parseFloat(loss[loss.length - 1].training_loss) || 0;
var vg = parseFloat(loss[0].training_loss) || 5;
- console.log(vf);
+ // console.log(vf)
var vv = 1 - (0, _util.norm)(vf, scaleMin, scaleMax / 2);
ctx.lineWidth = (1 - (0, _util.norm)(vf, scaleMin, scaleMax)) * 5;
ctx.strokeStyle = 'rgba(' + [(0, _util.randrange)(30, 190), (0, _util.randrange)(30, 150), (0, _util.randrange)(60, 120)].join(',') + ',' + 0.8 + ')';
@@ -5477,6 +5429,225 @@ exports.default = samplernnReducer;
/***/ }),
+/***/ "./app/client/modules/samplernn/samplernn.results.js":
+/*!***********************************************************!*\
+ !*** ./app/client/modules/samplernn/samplernn.results.js ***!
+ \***********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+var _preact = __webpack_require__(/*! preact */ "./node_modules/preact/dist/preact.esm.js");
+
+var _redux = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js");
+
+var _reactRedux = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/es/index.js");
+
+var _util = __webpack_require__(/*! ../../util */ "./app/client/util/index.js");
+
+var util = _interopRequireWildcard(_util);
+
+var _samplernn = __webpack_require__(/*! ./samplernn.actions */ "./app/client/modules/samplernn/samplernn.actions.js");
+
+var samplernnActions = _interopRequireWildcard(_samplernn);
+
+var _dataset = __webpack_require__(/*! ../../dataset/dataset.component */ "./app/client/dataset/dataset.component.js");
+
+var _dataset2 = _interopRequireDefault(_dataset);
+
+var _group = __webpack_require__(/*! ../../common/group.component */ "./app/client/common/group.component.js");
+
+var _group2 = _interopRequireDefault(_group);
+
+var _slider = __webpack_require__(/*! ../../common/slider.component */ "./app/client/common/slider.component.js");
+
+var _slider2 = _interopRequireDefault(_slider);
+
+var _select = __webpack_require__(/*! ../../common/select.component */ "./app/client/common/select.component.js");
+
+var _select2 = _interopRequireDefault(_select);
+
+var _button = __webpack_require__(/*! ../../common/button.component */ "./app/client/common/button.component.js");
+
+var _button2 = _interopRequireDefault(_button);
+
+var _fileList = __webpack_require__(/*! ../../common/fileList.component */ "./app/client/common/fileList.component.js");
+
+var _textInput = __webpack_require__(/*! ../../common/textInput.component */ "./app/client/common/textInput.component.js");
+
+var _textInput2 = _interopRequireDefault(_textInput);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var SampleRNNResults = function (_Component) {
+ _inherits(SampleRNNResults, _Component);
+
+ function SampleRNNResults(props) {
+ _classCallCheck(this, SampleRNNResults);
+
+ var _this = _possibleConstructorReturn(this, (SampleRNNResults.__proto__ || Object.getPrototypeOf(SampleRNNResults)).call(this));
+
+ _this.fileOptions = _this.fileOptions.bind(_this);
+ _this.pickFile = _this.pickFile.bind(_this);
+ var id = props.match.params.id || localStorage.getItem('samplernn.last_id');
+ if (!props.samplernn.data) props.actions.load_directories();
+ return _this;
+ }
+
+ _createClass(SampleRNNResults, [{
+ key: 'pickFile',
+ value: function pickFile(file) {
+ console.log('pick', file);
+ }
+ }, {
+ key: 'fileOptions',
+ value: function fileOptions(file) {
+ var _this2 = this;
+
+ if (file.activity === 'url' && !file.dataset) {
+ if (this.props.runner.cpu.status !== 'IDLE') {
+ return (0, _preact.h)(
+ 'div',
+ { className: 'gray' },
+ 'fetching...'
+ );
+ } else {
+ return (0, _preact.h)(
+ 'div',
+ { className: 'link', onClick: function onClick() {
+ return _this2.fetchURL(file.url);
+ } },
+ 'fetch'
+ );
+ }
+ }
+ return (0, _preact.h)(
+ 'div',
+ null,
+ (0, _preact.h)(
+ 'div',
+ { className: 'link', onClick: function onClick() {
+ return _this2.train(file);
+ } },
+ 'train'
+ ),
+ file.epoch == 0 && (0, _preact.h)(
+ 'div',
+ { className: 'epochs' },
+ file.epochs,
+ ' ep.'
+ )
+ );
+ }
+ }, {
+ key: 'render',
+ value: function render() {
+ if (this.props.samplernn.loading) return (0, _preact.h)(
+ 'span',
+ null,
+ 'Loading'
+ );
+ console.log(this.props.samplernn.data);
+ var folderLookup = this.props.samplernn.data.folderLookup;
+ // const { folderLookup } = samplernn
+
+ console.log(this.props);
+
+ var renders = Object.keys(folderLookup).sort(util.sort.stringSort.asc).map(function (key) {
+ var folder = folderLookup[key];
+
+ var _util$sort$orderByFn = util.sort.orderByFn('epoch desc'),
+ mapFn = _util$sort$orderByFn.mapFn,
+ sortFn = _util$sort$orderByFn.sortFn;
+
+ console.log(mapFn, sortFn);
+ var datasetPairs = folder.datasets.map(mapFn).sort(sortFn);
+ var bestRenders = datasetPairs.map(function (pair) {
+ return pair[1];
+ }).filter(function (dataset) {
+ return dataset.output.length;
+ }).map(function (dataset) {
+ var output = dataset.output;
+
+ return output.map(mapFn).sort(sortFn)[0][1];
+ });
+ console.log(bestRenders.map(function (r) {
+ return r.epoch;
+ }));
+ return (0, _preact.h)(
+ 'div',
+ { className: 'col' },
+ (0, _preact.h)(
+ 'h3',
+ null,
+ key
+ ),
+ !!bestRenders.length && (0, _preact.h)(_fileList.FileList, {
+ files: bestRenders,
+ orderBy: 'epoch desc',
+ fields: 'name date epoch size'
+ })
+ );
+ });
+
+ return (0, _preact.h)(
+ 'div',
+ { className: 'app' },
+ (0, _preact.h)(
+ 'div',
+ { className: 'heading' },
+ (0, _preact.h)(
+ 'h2',
+ null,
+ 'SampleRNN'
+ )
+ ),
+ (0, _preact.h)(
+ 'div',
+ { 'class': 'rows params renders' },
+ renders
+ )
+ );
+ }
+ }]);
+
+ return SampleRNNResults;
+}(_preact.Component);
+
+var mapStateToProps = function mapStateToProps(state) {
+ return {
+ samplernn: state.module.samplernn,
+ runner: state.system.runner,
+ task: state.task
+ };
+};
+
+var mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {
+ return {
+ actions: (0, _redux.bindActionCreators)(samplernnActions, dispatch)
+ };
+};
+
+exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SampleRNNResults);
+
+/***/ }),
+
/***/ "./app/client/queue/queue.actions.js":
/*!*******************************************!*\
!*** ./app/client/queue/queue.actions.js ***!
@@ -6891,14 +7062,320 @@ exports.default = (_system$app$folder$fi = {
/***/ }),
-/***/ "./app/client/util.js":
-/*!****************************!*\
- !*** ./app/client/util.js ***!
- \****************************/
+/***/ "./app/client/util/index.js":
+/*!**********************************!*\
+ !*** ./app/client/util/index.js ***!
+ \**********************************/
/*! no static exports found */
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.is_desktop = exports.is_mobile = exports.is_android = exports.is_ipad = exports.is_iphone = exports.sort = undefined;
+exports.clamp = clamp;
+exports.norm = norm;
+exports.lerp = lerp;
+exports.mix = mix;
+exports.randint = randint;
+exports.randrange = randrange;
+exports.timeInSeconds = timeInSeconds;
+exports.gerund = gerund;
+exports.commatize = commatize;
+exports.carbon_date = carbon_date;
+exports.hush_views = hush_views;
+exports.hush_threads = hush_threads;
+exports.hush_size = hush_size;
+exports.hush_null = hush_null;
+exports.get_age = get_age;
+exports.courtesy_s = courtesy_s;
+
+var _sort = __webpack_require__(/*! ./sort */ "./app/client/util/sort.js");
+
+var sort = _interopRequireWildcard(_sort);
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
+
+exports.sort = sort;
+var is_iphone = exports.is_iphone = !!(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i));
+var is_ipad = exports.is_ipad = !!navigator.userAgent.match(/iPad/i);
+var is_android = exports.is_android = !!navigator.userAgent.match(/Android/i);
+var is_mobile = exports.is_mobile = is_iphone || is_ipad || is_android;
+var is_desktop = exports.is_desktop = !is_mobile;
+
+var htmlClassList = document.body.parentNode.classList;
+htmlClassList.add(is_desktop ? 'desktop' : 'mobile');
+htmlClassList.remove('loading');
+
+// window.debug = false
+
+function clamp(n, a, b) {
+ return n < a ? a : n < b ? n : b;
+}
+function norm(n, a, b) {
+ return (n - a) / (b - a);
+}
+function lerp(n, a, b) {
+ return (b - a) * n + a;
+}
+function mix(n, a, b) {
+ return a * (1 - n) + b * n;
+}
+function randint(n) {
+ return Math.floor(Math.random() * n);
+}
+function randrange(a, b) {
+ return Math.random() * (b - a) + a;
+}
-throw new Error("Module build failed: Error: ENOENT: no such file or directory, open '/Users/user/neural/live-cortex/app/client/util.js'");
+document.body.style.backgroundImage = 'linear-gradient(' + (randint(40) + 40) + 'deg, #fde, #ffe)';
+
+function timeInSeconds(n) {
+ return (n / 10).toFixed(1) + ' s.';
+}
+function gerund(s) {
+ return s.replace(/e?$/, 'ing');
+}
+function commatize(n, radix) {
+ radix = radix || 1024;
+ var nums = [],
+ i,
+ counter = 0,
+ r = Math.floor;
+ if (n > radix) {
+ n /= radix;
+ nums.unshift(r(n * 10 % 10));
+ nums.unshift(".");
+ }
+ do {
+ i = n % 10;
+ n = r(n / 10);
+ if (n && !(++counter % 3)) {
+ i = ' ' + r(i);
+ }
+ nums.unshift(r(i));
+ } while (n);
+ return nums.join("");
+}
+function carbon_date(date, no_bold) {
+ var span = (+new Date() - new Date(date)) / 1000,
+ color;
+ if (!no_bold && span < 86400) // modified today
+ {
+ color = "new";
+ } else if (span < 604800) // modifed this week
+ {
+ color = "recent";
+ } else if (span < 1209600) // modifed 2 weeks ago
+ {
+ color = "med";
+ } else if (span < 3024000) // modifed 5 weeks ago
+ {
+ color = "old";
+ } else if (span < 12315200) // modifed 6 months ago
+ {
+ color = "older";
+ } else {
+ color = "quiet";
+ }
+ return color;
+}
+function hush_views(n, bias, no_bold) {
+ var txt = commatize(n, 1000);
+ bias = bias || 1;
+ n = n || 0;
+ if (n < 30) {
+ return ["quiet", n + " v."];
+ }
+ if (n < 200) {
+ return ["quiet", txt + " v."];
+ } else if (n < 500) {
+ return ["quiet", txt + " v."];
+ } else if (n < 1000) {
+ return ["old", txt + " v."];
+ } else if (n < 5000) {
+ return ["med", txt + " kv."];
+ } else if (no_bold || n < 10000) {
+ return ["recent", txt + " kv."];
+ } else {
+ return ["new", txt + " kv."];
+ }
+}
+function hush_threads(n, bias, no_bold) {
+ var txt = commatize(n, 1000);
+ bias = bias || 1;
+ n = n || 0;
+ if (n < 10) {
+ return ["quiet", n + " t."];
+ } else if (n < 25) {
+ return ["old", txt + " t."];
+ } else if (n < 50) {
+ return ["med", txt + " t."];
+ } else if (no_bold || n < 100) {
+ return ["recent", txt + " t."];
+ } else {
+ return ["new", txt + " t."];
+ }
+}
+function hush_size(n, bias, no_bold) {
+ var txt = commatize(Math.round(n / 1024));
+ bias = 1 || bias;
+ n = n || 0;
+ if (!n) {
+ return ['', ''];
+ }
+ if (n < 1000) {
+ return ["quiet", n + " b."];
+ }
+ if (n < 1000000) {
+ return ["quiet", txt + " kb."];
+ } else if (n < 20000000 / bias) {
+ return ["quiet", txt + " mb."];
+ } else if (n < 50000000 / bias) {
+ return ["old", txt + " mb."];
+ } else if (n < 80000000 / bias) {
+ return ["med", txt + " mb."];
+ } else if (no_bold || n < 170000000 / bias) {
+ return ["recent", txt + " mb."];
+ } else {
+ return ["new", txt + " mb."];
+ }
+}
+function hush_null(n, unit, no_bold) {
+ var s = unit ? n + " " + unit + "." : n;
+ if (n < 3) {
+ return ["quiet", s];
+ } else if (n < 6) {
+ return ["older", s];
+ } else if (n < 10) {
+ return ["old", s];
+ } else if (n < 16) {
+ return ["med", s];
+ } else if (no_bold || n < 21) {
+ return ["recent", s];
+ } else {
+ return ["new", s];
+ }
+}
+function get_age(t) {
+ var age = Math.abs(+Date.now() - new Date(t)) / 1000;
+ var r = Math.floor;
+ var m;
+ if (age < 5) {
+ return "now";
+ }
+ if (age < 60) {
+ return r(age) + "s";
+ }
+ age /= 60;
+ if (age < 60) {
+ return r(age) + "m";
+ }
+ m = r(age % 60);
+ age /= 60;
+ if (m > 0 && age < 2) {
+ return r(age) + "h" + m + "m";
+ }
+ if (age < 24) {
+ return r(age) + "h";
+ }
+ age /= 24;
+ if (age < 7) {
+ return r(age) + "d";
+ }
+ age /= 7;
+ if (age < 12) {
+ return r(age) + "w";
+ }
+ age /= 4;
+ if (age < 12) {
+ return r(age) + "m";
+ }
+ age /= 12;
+ return r(age) + "y";
+}
+function courtesy_s(n, s) {
+ return n == 1 ? "" : s || "s";
+}
+
+/***/ }),
+
+/***/ "./app/client/util/sort.js":
+/*!*********************************!*\
+ !*** ./app/client/util/sort.js ***!
+ \*********************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
+
+var numericSort = exports.numericSort = {
+ asc: function asc(a, b) {
+ return a[0] - b[0];
+ },
+ desc: function desc(a, b) {
+ return b[0] - a[0];
+ }
+};
+var stringSort = exports.stringSort = {
+ asc: function asc(a, b) {
+ return a[0].localeCompare(b[0]);
+ },
+ desc: function desc(a, b) {
+ return b[0].localeCompare(a[0]);
+ }
+};
+var orderByFn = exports.orderByFn = function orderByFn() {
+ var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'name asc';
+
+ var _s$split = s.split(' '),
+ _s$split2 = _slicedToArray(_s$split, 2),
+ _s$split2$ = _s$split2[0],
+ field = _s$split2$ === undefined ? 'name' : _s$split2$,
+ _s$split2$2 = _s$split2[1],
+ direction = _s$split2$2 === undefined ? 'asc' : _s$split2$2;
+
+ var mapFn = void 0,
+ sortFn = void 0;
+ switch (field) {
+ case 'epoch':
+ mapFn = function mapFn(a) {
+ return [parseInt(a.epoch || a.epochs) || 0, a];
+ };
+ sortFn = numericSort[direction];
+ break;
+ case 'size':
+ mapFn = function mapFn(a) {
+ return [a.size, a];
+ };
+ sortFn = numericSort[direction];
+ break;
+ case 'date':
+ mapFn = function mapFn(a) {
+ return [+new Date(a.date || a.created_at), a];
+ };
+ sortFn = numericSort[direction];
+ break;
+ case 'name':
+ default:
+ mapFn = function mapFn(a) {
+ return [a.id || a.name, a];
+ };
+ sortFn = stringSort[direction];
+ break;
+ }
+ return { mapFn: mapFn, sortFn: sortFn };
+};
/***/ }),