Select Git revision
-
RANWEZ Pierre authoredRANWEZ Pierre authored
content.js 20.24 KiB
var audioContext = null;
var meter = { volume: 0 };
var analyser = null;
var rafID = null;
var buflen = 1024;
var buf = new Float32Array(buflen);
var audio = false;
var midi = false;
var debug = false;
var audioSample = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var parameterSave = {};
function range(template, value) {
if (template.options.includes('i')) {
increment = parseInt(template.options.split(':')[1]);
if (template.name in parameterSave) {
if (template.array != '') {
parameterSave[template.name] = (parameterSave[template.name] + increment) > template.array.length ? 0 : (parameterSave[template.name] + increment);
return template.array[parameterSave[template.name]]
}
else {
if (increment > 0) {
parameterSave[template.name] = (parameterSave[template.name] + increment) > parseInt(template.max) ? parseInt(template.min) : (parameterSave[template.name] + increment);
} else {
parameterSave[template.name] = (parameterSave[template.name] + increment) < parseInt(template.min) ? parseInt(template.max) : (parameterSave[template.name] + increment);
}
return parameterSave[template.name];
}
}
else {
parameterSave[template.name] = parseInt(template.min);
return parseInt(template.min);
}
}
else if (template.options == 'r') {
if (template.array != '') {
return template.array[Math.floor(Math.random() * template.array.length)];
} else {
if (template.min[0] == '#') {
template.min = parseInt(template.min.replace('#', ''), 16);
template.max = parseInt(template.max.replace('#', ''), 16);
return '#' + ((Math.random() * (template.max - template.min) + template.min).toString(16)).split('.')[0];
}
else {
return (Math.random() * (parseInt(template.max) - parseInt(template.min)) + parseInt(template.min));
}
}
}
else if (template.options == 'd') {
if (template.min[0] == '#') {
template.min = parseInt(template.min.replace('#', ''), 16);
template.max = parseInt(template.max.replace('#', ''), 16);
return '#' + ((template.min + Math.round(template.max - template.min) * value).toString(16)).split('.')[0];
}
else {
return (parseInt(template.min) + Math.round(parseInt(template.max) - parseInt(template.min)) * value);
}
}
}
/**
* Initialize Midi
*/
function midiApi() {
chrome.storage.sync.get(['midiI', 'activate'], function (result) {
midi = result.midiI;
activate = result.activate;
if (midi && activate) {
WebMidi
.enable()