Web Oscillator (With Filter)

by Aqilah Misuary

HTML

<button onclick="kick()">Click me</button>

JavaScript

var audioContext = new AudioContext(); //Tells the browser we are using web audio api

var osc = audioContext.createOscillator();
var osc2 = audioContext.createOscillator();
var gainOsc = audioContext.createGain();
var gainOsc2 = audioContext.createGain();
//var filter = audioContext.createBiquadFilter();
function kick() {

osc.type = "triangle";
osc.frequency.value = 100;
gainOsc.gain.value = 0;
    
osc2.type = "sine";
osc2.frequency.value = 50;
gainOsc2.gain.value = 0;

//start fitler settings
//filter.type = "lowpass";
//filter.frequency.value = 60;
//filter.Q.value = 40; //adjust bandwidth
//end filter settings

//console.log(filter.type)

//function kick() {
gainOsc.gain.setValueAtTime(0, audioContext.currentTime);
gainOsc.gain.linearRampToValueAtTime(1, audioContext.currentTime + 0.001);
gainOsc.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.1);
gainOsc.connect(audioContext.destination); 
    
//};



//gainOsc.gain.setValueAtTime(1, audioContext.currentTime);
//gainOsc.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.5);
//gainOsc.gain.linearRampToValueAtTime(0, audioContext.currentTime + 4);

osc.connect(gainOsc2);
gainOsc2.connect(gainOsc);
//gainOsc.gain.value = 0.3;
//gainOsc.connect(audioContext.destination); //Routes the audio to your speakers
}

//osc.stop(audioContext.currentTime);
osc.start(audioContext.currentTime);