JavaScript
语言:
JaveScriptBabelCoffeeScript
确定
'use strict';
var ctx = new AudioContext();
var saw = ctx.createOscillator(),
vib = ctx.createOscillator(),
vibGain = ctx.createGain(),
trem = ctx.createOscillator(),
tremGain = ctx.createGain(),
tremGain2 = ctx.createGain(),
volume = ctx.createGain();
tremGain2.gain.value = .5;
volume.gain.value = .25;
saw.type = "sawtooth";
vib.frequency.value = 5;
vibGain.gain.value = 50;
trem.frequency.value = 1;
tremGain.gain.value = .25;
saw.frequency.value = 400;
vib.connect(vibGain);
trem.connect(tremGain);
vibGain.connect(saw.detune);
saw.connect(tremGain2);
tremGain.connect(tremGain2.gain);
tremGain2.connect(volume);
volume.connect(ctx.destination);
vib.start();
saw.start();
trem.start();
function link(id, param) {
var input = document.getElementById(id);
input.addEventListener('input', function(e) {
return param.value = +input.value;
});
input.addEventListener('input', function(e) {
return console.log(id, input.value);
});
input.value = param.value;
}
link("noteFreq", saw.frequency);
link("noteAmpl", volume.gain);
link("vibFreq", vib.frequency);
link("vibAmpl", vibGain.gain);
link("tremFreq", trem.frequency);
link("tremAmpl", tremGain.gain);