Using the Web Audio API, Canvas, and later the Web MIDI API, I'm building a simple synthesizer. The keys are constructors, instances created dynamically and pushed into an array. I've used the Railsback Curve function to create frequencies of those of an 88-key piano.
At completion, the user will be able to:
- change the wave type,
- play keys in polyphony,
- adjust the gain,
- and apply delay.
While remarkably ugly, you may still play this synthesizer!
In order to play around with the synthesizer:
- Download the zip repository and unpack,
- Crank up your favorite NodeJS server (I use IndexZero's "http-server"),
- Navigate to appropriate address/port (pref. in Chrome; been having issues in Firefox),
- Use the 'z, s, x, d, c, v, g, b, h, n, j, m ,[,]' keys on your desktop/laptop keyboard.
- Click the little circular "mossy" object to change synth wave-types (sine, square, triangle, sawtooth).
Enjoy!