Sure! You want to create some key-to-frequency mapping function (maybe just a dictionary).
To synthesize a given frequency with riffwave.js, you would do something like this
function simHertz(hz) { var audio = new Audio(); var wave = new RIFFWAVE(); var data = []; wave.header.sampleRate = 44100; var seconds = 1; for (var i = 0; i < wave.header.sampleRate * seconds; i ++) { data[i] = Math.round(128 + 127 * Math.sin(i * 2 * Math.PI * hz / wave.header.sampleRate)); } wave.Make(data); audio.src = wave.dataURI; return audio; } var audio = simHertz(1000); audio.play();
fuzic source share