diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-10-10 13:42:55 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-10-10 13:42:55 +0200 |
| commit | a64c4fa7e1913fe14124190086d0d5624445c808 (patch) | |
| tree | 878763e84ac0519d0b036a67dd79b1b21f0e1933 /bundle.js | |
| parent | 0bb5cc4661bea6f8cf89ec4f4a109aa63630b668 (diff) | |
midi??
Diffstat (limited to 'bundle.js')
| -rw-r--r-- | bundle.js | 138 |
1 files changed, 97 insertions, 41 deletions
@@ -30463,6 +30463,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.note_values = exports.MidiWriter = undefined; + +var _slicedToArray2 = __webpack_require__(73); + +var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); + exports.midi_init = midi_init; exports.play_note = play_note; exports.play_midi_note = play_midi_note; @@ -30488,6 +30493,8 @@ var _kalimba = __webpack_require__(78); var _kalimba2 = _interopRequireDefault(_kalimba); +var _FileSaver = __webpack_require__(74); + var _ui = __webpack_require__(51); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -30530,7 +30537,8 @@ function midi_init() { function play_note(index, duration) { var channel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "all"; var exporting = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var defer = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var rest = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var defer = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; // console.log(index) var scale = _scales2.default.current(); @@ -30545,6 +30553,8 @@ function play_note(index, duration) { midi_note = Math.floor(midi_note); if ((midiDevice || exporting) && midi_note > 127) return 0; var note = _tone2.default.Frequency(Math.floor(midi_note), "midi").toNote(); + var defer_time = 30000 / _tone2.default.Transport.bpm.value * defer / 128; + console.log(defer, defer_time); if (exporting || midiDevice) { duration = duration || 60000 / _tone2.default.Transport.bpm.value; if (!exporting) { @@ -30556,6 +30566,10 @@ function play_note(index, duration) { play_midi_note(note, cents, channel, duration); } } + } else if (defer) { + setTimeout(function () { + _kalimba2.default.play(freq); + }, defer_time); } else { _kalimba2.default.play(freq); } @@ -30621,27 +30635,41 @@ function play_interval_sequence(i, bounds, diff, note_time) { /* generate a 1-track midi file by calling the play function repeatedly */ function export_pattern_as_midi(datasetName, bounds, diff, tempo, timingIndex, play_fn) { - var behavior = document.querySelector('#behavior').value; + // const behavior = document.querySelector('#behavior').value var rows = bounds.rows; + // let count = behavior === 'sequence' ? rows[0].length * rows.length : rows.length - var count = behavior === 'sequence' ? rows[0].length * rows.length : rows.length; - var notes = void 0; + var count = rows[0].length; + var notes = void 0, + timings = void 0, + wait = void 0; var note_time = void 0; - var timing = note_values[timingIndex][2]; + // let timing = note_values[timingIndex][2] var midi_track = new MidiWriter.Track(); midi_track.setTempo(tempo); for (var i = 0, len = count; i < len; i++) { - notes = play_fn(i, bounds, note_time, "all", true)[1]; - if (timing.length) { - note_time = timing[i % timing.length]; - } else { - note_time = timing; + // if (timing.length) { + // note_time = timing[i % timing.length] + // } else { + // note_time = timing + // } + // midi_track.addEvent(new MidiWriter.NoteEvent({ pitch: notes, duration: 't' + note_time })) + var _play_fn = play_fn(i, bounds, note_time, "all", true); + + var _play_fn2 = (0, _slicedToArray3.default)(_play_fn, 4); + + i = _play_fn2[0]; + notes = _play_fn2[1]; + timings = _play_fn2[2]; + wait = _play_fn2[3]; + console.log(i, notes, timings); + for (var j = 0; j < notes.length; j++) { + midi_track.addEvent(new MidiWriter.NoteEvent({ pitch: notes[j], duration: 't' + timings[j], wait: wait })); } - midi_track.addEvent(new MidiWriter.NoteEvent({ pitch: notes, duration: 't' + note_time })); } var writer = new MidiWriter.Writer([midi_track]); - var blob = dataURItoBlob(writer.dataUri()); - saveAs(blob, 'Recording - ' + datasetName + '.mid'); + var blob = (0, _util.dataURItoBlob)(writer.dataUri()); + (0, _FileSaver.saveAs)(blob, 'Recording - ' + datasetName + '.mid'); } /***/ }), @@ -40541,8 +40569,6 @@ var _nexusui = __webpack_require__(75); var _nexusui2 = _interopRequireDefault(_nexusui); -var _FileSaver = __webpack_require__(74); - var _keys = __webpack_require__(71); var _keys2 = _interopRequireDefault(_keys); @@ -40551,6 +40577,10 @@ var _scales = __webpack_require__(50); var _scales2 = _interopRequireDefault(_scales); +var _kalimba = __webpack_require__(78); + +var _kalimba2 = _interopRequireDefault(_kalimba); + var _midi = __webpack_require__(72); var _util = __webpack_require__(30); @@ -40620,8 +40650,9 @@ data.load().then(function (lists) { return (parseInt(y) - parseInt(min_y)) * 12 + parseInt(m); }); + datasets["Mass Shootings"].data = lines; datasets["Mass Shootings"].lines = [lines.map(function (row) { - return Math.log(row[mass_fields.total_victims]); + return row[mass_fields.total_victims]; })]; (0, _util.requestAudioContext)(ready); }); @@ -40657,11 +40688,16 @@ function play_mass_shootings(i, bounds, diff, note_time) { var y = 0; var x = i % rows[0].length; var n = rows[y][x]; + var total = dataset.dates.length; var notes = [], - midi_notes = []; + midi_notes = [], + cases = [], + timings = void 0; console.log(i, mass_i, dataset.dates[mass_i]); - while (i === dataset.dates[mass_i]) { - notes.push(dataset.lines[mass_i]); + while (i >= dataset.dates[mass_i] && mass_i < total) { + notes.push(dataset.lines[0][mass_i]); + cases.push(dataset.data[mass_i][mass_fields.date] + ' ' + dataset.data[mass_i][mass_fields.case] + ", " + dataset.data[mass_i][mass_fields.fatalities] + ' dead, ' + dataset.data[mass_i][mass_fields.injured] + ' injured'); + console.log('push case', dataset.data[mass_i][mass_fields.date] + ' ' + dataset.data[mass_i][mass_fields.case]); mass_i += 1; } switch (notes.length) { @@ -40670,49 +40706,58 @@ function play_mass_shootings(i, bounds, diff, note_time) { mass_rest += 1; break; case 1: - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 128, channel, exporting, mass_rest, 0)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[0], min, max) * _ui.nx.multiply.value, 128, channel, exporting, mass_rest, 0)); + timings = [128]; break; case 2: - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 64, channel, exporting, mass_rest, 0)); - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 64, channel, exporting, 0, 64)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[0], min, max) * _ui.nx.multiply.value, 64, channel, exporting, mass_rest, 0)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[1], min, max) * _ui.nx.multiply.value, 64, channel, exporting, 0, 64)); + timings = [64, 64]; break; case 3: - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 43, channel, exporting, mass_rest)); - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 43, channel, exporting, 0, 43)); - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 42, channel, exporting, 0, 85)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[0], min, max) * _ui.nx.multiply.value, 43, channel, exporting, mass_rest)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[1], min, max) * _ui.nx.multiply.value, 43, channel, exporting, 0, 43)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[2], min, max) * _ui.nx.multiply.value, 42, channel, exporting, 0, 85)); + timings = [43, 43, 42]; break; case 4: - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 32, channel, exporting, mass_rest)); - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 32, channel, exporting, 0, 32)); - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 32, channel, exporting, 0, 64)); - midi_notes.push((0, _midi.play_note)((0, _util.norm)(n, min, max) * _ui.nx.multiply.value, 32, channel, exporting, 0, 96)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[0], min, max) * _ui.nx.multiply.value, 32, channel, exporting, mass_rest)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[1], min, max) * _ui.nx.multiply.value, 32, channel, exporting, 0, 32)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[2], min, max) * _ui.nx.multiply.value, 32, channel, exporting, 0, 64)); + midi_notes.push((0, _midi.play_note)((0, _util.norm)(notes[3], min, max) * _ui.nx.multiply.value, 32, channel, exporting, 0, 96)); + timings = [32, 32, 32, 32]; break; } - if (mass_i > dataset.dates.length - 1) { + if (cases.length) { + document.querySelector('#cases').innerHTML = cases.join('<br>'); + } + if (total <= mass_i) { mass_rest = 0; mass_i = 0; i = 0; } else { i += 1; } + _kalimba2.default.play(220, -12); if (notes.length) { mass_rest = 0; - return [i, midi_notes]; + return [i, midi_notes, timings, mass_rest]; } mass_rest += 128; - return [i, []]; + return [i, [], [], 0]; } /* play next note according to sonification */ function play_next() { - var note_time = 120000 / _tone2.default.Transport.bpm.value * _midi.note_values[_ui.nx.timing.active][0] * _ui.nx.duration.value; + var note_time = 120000 / _tone2.default.Transport.bpm.value * _midi.note_values[_ui.nx.timing.active][0]; setTimeout(play_next, note_time); var _play_fn = play_fn(i, bounds, diff, note_time), - _play_fn2 = (0, _slicedToArray3.default)(_play_fn, 2), + _play_fn2 = (0, _slicedToArray3.default)(_play_fn, 3), new_i = _play_fn2[0], - notes = _play_fn2[1]; + notes = _play_fn2[1], + timings = _play_fn2[2]; i = new_i; if (recording) { @@ -40776,7 +40821,7 @@ function ready() { min: -24, max: 24, step: 1, - value: 0 + value: -5 }); (0, _ui.update_value_on_change)(_ui.nx.offset, '#offset', true); @@ -40794,7 +40839,7 @@ function ready() { min: -64, max: 64, step: 1, - value: 7 + value: 17 }); (0, _ui.update_value_on_change)(_ui.nx.multiply, '#multiply', true); @@ -40820,7 +40865,7 @@ function ready() { recording = false; var writer = new _midi.MidiWriter.Writer([recorder]); var blob = (0, _util.dataURItoBlob)(writer.dataUri()); - (0, _FileSaver.saveAs)(blob, 'Recording - ' + dataset.name + '.mid'); + saveAs(blob, 'Recording - ' + dataset.name + '.mid'); } else { record_midi_button.innerHTML = 'Save Recording'; document.body.classList.add('recording'); @@ -40832,8 +40877,12 @@ function ready() { document.querySelector('.loading').classList.remove('loading'); - document.querySelector('#dataset').value = 'Surrenders'; + document.querySelector('#dataset').value = 'Mass Shootings'; pick_dataset('Mass Shootings'); + + document.querySelector('#scale').value = '14'; + _scales2.default.pick(14); + play_next(); } @@ -41040,6 +41089,7 @@ var _util = __webpack_require__(30); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var player_count = 2; +var sample_index = 0; var compressor = new _tone2.default.Compressor(-30, 3).toMaster(); @@ -41064,13 +41114,19 @@ samples.forEach(function (sample) { }); function play(freq) { - var best = { sample: (0, _util.choice)(samples) }; + var volume = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.0; + + var best = { sample: samples[sample_index] }; + sample_index = (sample_index + 1) % samples.length; best.sample.index = (best.sample.index + 1) % player_count; var player = best.sample.players[best.sample.index]; player.playbackRate = freq / best.sample.root; // console.log(player) - player.start(); + player.volume.value = volume; + setTimeout(function () { + player.start(); + }, 0); } exports.default = { play: play }; |
