Edit in JSFiddle

window.AudioContext = window.AudioContext || window.webkitAudioContext;

var audioContext = new AudioContext();

var sound;

var oscArray = [];

var globalGain = audioContext.createGain();
globalGain.gain.value = 0.2;

globalGain.connect(audioContext.destination);

function createOsc() {
  var osc = audioContext.createOscillator();
  osc.type = 'square';
  osc.frequency.value = 440;
  return osc;
}

function linear(linearInput) {
  var currentTime = audioContext.currentTime;

  var gain = audioContext.createGain();

  linearInput.connect(gain);

  gain.gain.setValueAtTime(0.01, currentTime);

  gain.gain.linearRampToValueAtTime(0.9, currentTime + 2);

  gain.gain.linearRampToValueAtTime(0.1, currentTime + 5);

  return gain;
}

function expRamp(expInput) {
  var currentTime = audioContext.currentTime;

  // Set value first
  expInput.frequency.setValueAtTime(440, currentTime);

  // Attack
  expInput.frequency.exponentialRampToValueAtTime(5000, currentTime + 2);

  // Decay
  expInput.frequency.exponentialRampToValueAtTime(200, currentTime + 3);

  expInput.frequency.cancelScheduledValues(currentTime + 2.5);

  return expInput;
}

function valCurve(curvInput) {
  var currentTime = audioContext.currentTime;

  // Curve Array values
  var waveArray = new Float32Array(5);
  waveArray[0] = 200;
  waveArray[1] = 700;
  waveArray[2] = 2000;
  waveArray[3] = 100;
  waveArray[4] = 440;

  // Curve audioparam method
  curvInput.frequency.setValueCurveAtTime(waveArray, currentTime + 2, 4);

  return curvInput;
}

function target(targetInput) {
  var currentTime = audioContext.currentTime;

  // Set value first
  targetInput.frequency.setValueAtTime(440, currentTime);

  // Target audioparam method
  targetInput.frequency.setTargetAtTime(880, currentTime + 1, 0.2);

  return targetInput;
}

function playLinear() {
  var osc = createOsc();
  sound = linear(osc);
  sound.connect(globalGain);
  osc.start();

  oscArray.push(osc);

  console.log(oscArray);
}

function playExpRamp() {
  sound = expRamp(createOsc());
  sound.connect(globalGain);
  sound.start();

  oscArray.push(sound);

  console.log(oscArray);
}

function playCurv() {
  sound = valCurve(createOsc());
  sound.connect(globalGain);
  sound.start();

  oscArray.push(sound);

  console.log(oscArray);
}

function playTarg() {
  sound = target(createOsc());
  sound.connect(globalGain);
  sound.start();

  oscArray.push(sound);

  console.log(oscArray);
}

function cancelEvents() {
  oscArray.forEach(function(e) {
    e.frequency.cancelScheduledValues(audioContext.currentTime);
  });
}

function stopSound() {
  oscArray.forEach(function(e) {
    e.stop();
  });
}

var linearButton = document.getElementById("linear");
linearButton.addEventListener('click', playLinear);

var expButton = document.getElementById("exp");
expButton.addEventListener('click', playExpRamp);

var curvButton = document.getElementById("curv");
curvButton.addEventListener('click', playCurv);

var targButton = document.getElementById("targ");
targButton.addEventListener('click', playTarg);

var stopButton = document.getElementById("stop");
stopButton.addEventListener('click', stopSound);

var cancelButton = document.getElementById("cancel");
cancelButton.addEventListener('click', cancelEvents);
<button type="button" id="linear" class="btn btn-info btn-lg button-color" >linearRampToValueAtTime</button>
<br>
<br>
<button type="button" id="exp" class="btn btn-info btn-lg button-color" >exponentialRampToValueAtTime</button>
<br>
<br>
<button type="button" id="curv" class="btn btn-info btn-lg button-color" >setValueCurveAtTime</button>
<br>
<br>
<button type="button" id="targ" class="btn btn-info btn-lg button-color" >setTargetAtTime</button>
<br>
<br>
<button type="button" id="stop" class="btn btn-info btn-lg" style="background-color:red" >Stop All Sound</button>
<br>
<br>
<button type="button" id="cancel" class="btn btn-info btn-lg" style="background-color:red" >Cancel Events</button>