04-20-2018, 03:08 PM
You know what Online Sequencer needs? That's right. PITCH BENDING. It would make it so much cooler to do 8 bit music with pitch bending. Everyone spam _Jacob's PM with "PITCH BENDING!!"
pitchAuto = [0, 25, 50, 75];
function playSynthNote(context, id, note, length, delay) {
delay = delay ? delay : 0;
var oscillator = oscillators[id][note];
if (oscillator) {
var gain = oscillator.gain.gain;
var volume = 0.1 * audioSystem.masterVolume;
var onTime = context.currentTime + delay + 0.01;
var offTime = context.currentTime + delay + 0.01 + length;
var cents = pitchAuto[Math.floor(playTime / 16)];
if (typeof cents != "undefined") oscillator.detune.setValueAtTime(cents, onTime);
if (noteOffTime[id][note] > onTime) {
gain.setTargetAtTime(volume / 2, context.currentTime, 0.01);
gain.setTargetAtTime(volume, noteOffTime[id][note], 0.01);
}
noteOffTime[id][note] = offTime;
gain.setTargetAtTime(volume, onTime, 0.01);
gain.setTargetAtTime(0, offTime, 0.01);
}
}