xxxxxxxxxx
79
var macro = 0;
var wave1 = [];
var wave2 = [];
var macOutput;
function getMaxLen()
{
return wave1.length > wave2.length ? wave1.length : wave2.length;
}
function getWT()
{
var out = ""
for(i = 0; i < 63; i++)
{
var wav = morph(i)
out += wav.join(' ') + " ;\n";
}
//console.log(out);
macOutput.elt.value = out;
}
function assignWave(wave, slot)
{
var wt = wave.match(/[0-9]+/g);
wt = wt == null ? [0] : wt;
if(slot == 1)
wave1 = wt;
else
wave2 = wt;
}
const lerp = (x, y, a) => x * (1 - a) + y * a;
const lerp2 = (x, y, a) => x + a * (y - x);
function morph(x)
{
var morphWave = [];
for(var i = 0; i < getMaxLen(); i++)
//v0 + t * (v1 - v0);
morphWave.push(Math.round(lerp(wave1[i], wave2[i], x/64)))
return morphWave
}
function setup() {
//createCanvas(400, 400);
var wavetableField1 = createInput(wave1.join(' '));
wavetableField1.input(function() {
console.log(this.value());
assignWave(this.value(), 1);
});
//wavetableFields[i].parent(mulFeedRow);
var wavetableField2 = createInput(wave2.join(' '));
wavetableField2.input(function() {
console.log(this.value());
assignWave(this.value(), 2);
});
// Macro generation button
var genMacButton = createButton("Generate waves!")
genMacButton.mousePressed(function() {
getWT();
})
macOutput = createElement('textArea').style('width','256px');
macOutput.elt.onclick = function() {
macOutput.elt.select();document.execCommand('copy');
//macOutput.parent(macroRow);
}
}
function draw() {
//background(220);
}