Recently I discovered that Google Chrome provides an implementation of the Web Audio API, which allows quasi-native sound generation right through the browser. The specification is pretty exciting to look at, as this is one huge piece of the interactive web frontier, one which will be very important to cover as developers transition from plug-in technologies (Flash, Java) to faster, more open browser-based standards.
Chrome provides an example page which details lots of thrilling applications of Web Audio, from drum machines and synths to DSP effect demos and even a mixing program. One exciting example is the Web Synth, a Web Audio API model of an analog synthesizer, complete with dual triangle/sine/square wave oscillators, volume and filtering with ADSR (somewhat), and even an on-board delay to make it a little spicier. Starting from the code on GitHub, I decided to make it a little more robust and a lot more fun to play with a computer keyboard:
If you have Chrome, click the image above or click here to try it out. Added to the original Web Synth is the following:
- Patch loading and a short list of interesting patches.
- Keyboard Controls (z-comma for one octave, q-p for the next octave+)
- GUI and widget optimizations
I have a long list of things I’d like to do but the first real task is to really get familiar with the API and learn all the tricks from the demos on Chrome’s site. If you’re interested in the code, or even contributing, check out the source on GitHub. You can leave any issues/requests there or in the comments.