diff options
Diffstat (limited to 'client/index.js')
| -rw-r--r-- | client/index.js | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/client/index.js b/client/index.js index 58185a5..f5853b9 100644 --- a/client/index.js +++ b/client/index.js @@ -4,6 +4,7 @@ import { saveAs } from 'file-saver/FileSaver' import keys from './lib/keys' import scales from './lib/scales' +import kalimba from './lib/kalimba' import { midi_init, play_note, @@ -69,6 +70,7 @@ data.load().then(lists => { const [y, m, d] = row[mass_fields.date].split('/') return (parseInt(y) - parseInt(min_y)) * 12 + parseInt(m) }) + datasets["Mass Shootings"].data = lines datasets["Mass Shootings"].lines = [lines.map(row => Math.log(row[mass_fields.total_victims]))] requestAudioContext(ready) }) @@ -99,10 +101,13 @@ function play_mass_shootings(i, bounds, diff, note_time, channel="all", exportin const y = 0 const x = i % rows[0].length const n = rows[y][x] - let notes = [], midi_notes = [] + const total = dataset.dates.length + let notes = [], midi_notes = [], cases = [] console.log(i, mass_i, dataset.dates[mass_i]) - while (i === dataset.dates[mass_i]) { + while (i >= dataset.dates[mass_i] && mass_i < total) { notes.push(dataset.lines[mass_i]) + cases.push(dataset.data[mass_i][mass_fields.date] + ' ' + dataset.data[mass_i][mass_fields.case]) + console.log('push case', dataset.data[mass_i][mass_fields.date] + ' ' + dataset.data[mass_i][mass_fields.case]) mass_i += 1 } switch (notes.length) { @@ -129,13 +134,17 @@ function play_mass_shootings(i, bounds, diff, note_time, channel="all", exportin midi_notes.push(play_note( norm(n, min, max) * nx.multiply.value, 32, channel, exporting, 0, 96)) 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 } + kalimba.play(220) if (notes.length) { mass_rest = 0 return [i, midi_notes] @@ -147,7 +156,7 @@ function play_mass_shootings(i, bounds, diff, note_time, channel="all", exportin /* play next note according to sonification */ function play_next(){ - let note_time = 120000 / Tone.Transport.bpm.value * note_values[nx.timing.active][0] * nx.duration.value + let note_time = 120000 / Tone.Transport.bpm.value * note_values[nx.timing.active][0] setTimeout(play_next, note_time) let [new_i, notes] = play_fn(i, bounds, diff, note_time) i = new_i |
