10-16-2018, 05:07 PM
(10-16-2018, 04:54 PM)Jacob_ Wrote:this is dankCode:loadInstrument(13);
var el = $('<input type="file" accept="audio/*">');
$(document.body).append(el);
el.on('change', function(e){
var reader = new FileReader();
reader.onload = function (e) {
var context = new AudioContext();
context.decodeAudioData(e.target.result, function(buffer){
var node = context.createAnalyser();
var resolution = 4;
node.fftSize = 4096;
node.smoothingTimeConstant = 0;
var bufferLength = node.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);
var audioSource = context.createBufferSource();
audioSource.buffer = buffer;
audioSource.loop = false;
audioSource.connect(node);
var time = 0;
audioSource.start(0);
setInterval(function(){
node.getByteFrequencyData(dataArray);
var f = [];
for (var i = 1; i < dataArray.length - 1; i++) {
var isPeak = dataArray[i] >= dataArray[i-1] && dataArray[i] >= dataArray[i+1];
if (isPeak) {
f.push([i, dataArray[i]]);
}
}
f.sort(function(a, b){return b[1] - a[1]});
for(var i = 0; i < Math.min(f.length, 4); i++) {
var frequency = f[i][0] * context.sampleRate / node.fftSize;
var note = piano[Math.round((piano.length*Math.log(2)+12*Math.log(55/frequency)+Math.log(4))/(Math.log(2)))];
if (note != undefined && f[i][1] > 32) {
song.addNote(new Note(song, note, time/resolution, 1/resolution, 13));
}
}
time++;
}, song.sleepTime/resolution);
setInterval(SequencerView.repaint, 1000);
});
}
reader.readAsArrayBuffer(e.target.files[0]);
});
el.click();
If you were a bloon, wouldn't you rather be popped then wither away into an undignified husk? Since bloons can't talk, I'll guess we never know.
:D
:D