diff --git a/content.js b/content.js index 66716a24d7a1b62ff166eb999d2ca8fb5ad17564..adcc2e9c717db997b3fb0006f88c2b2406479da7 100644 --- a/content.js +++ b/content.js @@ -74,17 +74,20 @@ function range(template, value) { * Initialize Midi */ function midiApi() { - if (midi) { - WebMidi - .enable() - .then(launchMidi) - .catch(err => alert(err)); - } - else { - WebMidi.disable(); - chrome.storage.sync.set({ midiI: false }); - chrome.runtime.sendMessage({ type: 'updateUi', data: false }); - } + chrome.storage.sync.get(['midiI', 'activate'], function (result) { + midi = result.midiI; + activate = result.activate; + if (midi && activate) { + WebMidi + .enable() + .then(launchMidi) + .catch(err => alert(err)); + } + else { + WebMidi.disable(); + chrome.runtime.sendMessage({ type: 'updateUi', data: false }); + } + }); } /** @@ -297,9 +300,10 @@ function volumeAudioProcess(event) { * Initialize audio, request micro to user */ function audioApi() { - chrome.storage.sync.get(['audioI'], function (result) { + chrome.storage.sync.get(['audioI', 'activate'], function (result) { audio = result.audioI; - if (audio) { + activate = result.activate; + if (audio && activate) { window.AudioContext = window.AudioContext || window.webkitAudioContext; audioContext = new AudioContext(); try { @@ -481,49 +485,50 @@ function audioEvent() { }); const sum = audioSample.reduce((a, b) => a + b, 0); - const avg = (sum / audioSample.length) || 0; + const avg = (sum / audioSample.length) |rgba(16 18 27 / 40%)| 0; var attack = false; if (avg + 0.05 < meter.volume) { attack = true; } audioSample.shift(); audioSample.push(meter.volume); - chrome.storage.sync.get(['all'], function (result) { - result.all.forEach(element => { - value = element.value; - eventIn = false; - element.templates.forEach(template => { - if (template.type == 'audio') { - Object.keys(presets).forEach(preset => { - if (template.eventType == preset) { + if (result.all.length > 0) { + result.all.forEach(element => { + value = element.value; + eventIn = false; + element.templates.forEach(template => { + if (template.type == 'audio') { + Object.keys(presets).forEach(preset => { + if (template.eventType == preset) { + eventIn = true; + value = value.replace('[' + template.templateFull + ']', range(template, energies[preset])); + } + }); + if (template.eventType == 'loud') { eventIn = true; - value = value.replace('[' + template.templateFull + ']', range(template, energies[preset])); + volume = meter.volume * 1.4; + value = value.replace('[' + template.templateFull + ']', (meter.volume * 1.4 < 1 ? range(template, volume) : 0)); + } + if (template.eventType == 'onset' && template.eventName == noteStrings[note % 12]) { + eventIn = true; + value = value.replace('[' + template.templateFull + ']', range(template, 1)); + } + if (attack && template.eventType == 'attack') { + console.log('Attack'); + eventIn = true; + value = value.replace('[' + template.templateFull + ']', ''); } - }); - if (template.eventType == 'loud') { - eventIn = true; - volume = meter.volume * 1.4; - value = value.replace('[' + template.templateFull + ']', (meter.volume * 1.4 < 1 ? range(template, volume) : 0)); - } - if (template.eventType == 'onset' && template.eventName == noteStrings[note % 12]) { - eventIn = true; - value = value.replace('[' + template.templateFull + ']', range(template, 1)); - } - if (attack && template.eventType == 'attack') { - console.log('Attack'); - eventIn = true; - value = value.replace('[' + template.templateFull + ']', ''); } + }); + if (eventIn) { + let els = document.querySelectorAll(element.element); + els.forEach(e => { + e.style[element.property] = value; + }); } }); - if (eventIn) { - let els = document.querySelectorAll(element.element); - els.forEach(e => { - e.style[element.property] = value; - }); - } - }); + } }); var newTime = new Date().getTime(); @@ -540,16 +545,18 @@ function audioEvent() { function pureCss() { chrome.storage.sync.get(['all'], function (result) { - result.all.forEach(element => { - element.templates.forEach(template => { - if (template.type == 'pure') { - let els = document.querySelectorAll(element.element); - els.forEach(e => { - e.style[element.property] = element.value; - }); - } + if (result.all.length > 0) { + result.all.forEach(element => { + element.templates.forEach(template => { + if (template.type == 'pure') { + let els = document.querySelectorAll(element.element); + els.forEach(e => { + e.style[element.property] = element.value; + }); + } + }); }); - }); + } }); } @@ -581,7 +588,6 @@ function onMessage({ type, data }) { break; } case 'midi': { - midi = data; midiApi(); break; }