Initial example of using the WebAudio APIs from web-sys

Part of #443
This commit is contained in:
Andrew Chin
2018-08-16 22:30:46 -04:00
parent 25b6f5d982
commit 4f18e21659
11 changed files with 279 additions and 0 deletions

View File

@ -0,0 +1,40 @@
const rust = import('./webaudio');
// Most browsers don't let WebAudio autoplay without some interaction from the user. So once the module is loaded,
// it's passed to this function which will set up the UI elements for the user to interact with
function setup(rust_module) {
play = function() {
console.log("About to create some music!");
fm = new rust_module.FmOsc();
fm.set_note(50);
fm.set_fm_frequency(0);
fm.set_fm_amount(0);
fm.set_gain(0.8);
};
// create some UI elements
const primary_slider = document.getElementById("primary_input");
primary_slider.oninput = (e) => {
fm.set_note(e.target.value);
};
const fm_freq = document.getElementById("fm_freq");
fm_freq.oninput = (e) => {
fm.set_fm_frequency(e.target.value);
};
const fm_amount = document.getElementById("fm_amount");
fm_amount.oninput = (e) => {
fm.set_fm_amount(e.target.value);
};
console.log("Ready! Press the play button!");
}
rust.then(m => {
setup(m);
});