Analog Synthesizer in JavaScript
A polyphonic, analog-style synth, written from scratch in JavaScript. Two oscillators (sine, triangle, saw, square), a sub-osc with key offset and mix, control oscillator (LFO) with rate / depth / vibrato, drive, a 4-pole low-pass filter with resonance, ADSR envelope, noise generator with band-pass color, and a built-in XY oscilloscope (one period of the chord fundamental). Click the keys, or play it from your computer keyboard. Plug a MIDI device in and it will appear in the "Enable MIDI" dropdown.
Modular signal flow. Osc1 (detuned by
detune + pitch bend + pitch-blend center) is mixed with Osc2 (transposed by the
Osc2 key knob, mixed by
Mix). The LFO modulates pitch when Vibrato is raised, and the filter cutoff sweeps from
Cutoff and
Reso. The noise path runs through its own band-pass (
Freq,
Color) before being mixed in. Drive, attack, sustain, release, and a master Volume shape the final signal.
Save and load presets. Hit
Save Preset to store the current patch in your browser, and
Load Preset to bring it back. Five factory patches ship with the app: Classic Lead, Fat Pad, Bright Brass, Warm Strings, and Analog Synth.
Real-time, no server. The synth uses the Web
Audio API directly, with a small custom
window chrome (
createWindow() from
hkwin.js) so it can be dragged, minimized, maximized, and closed like a native app. No build step, no dependencies. View the source on your browser to see how it works.
Other stuff. Use the menu at left to browse more JavaScript toys, games, and widgets: Speak in binary, long number calculator, more calculators, JavaScript editor, eye test, image blocks, fontfun,
block art, snow, amaze, artify, and the
online games on our
Windows PC support website.
Keep it going. Support development or
hire an expert programmer for your next project.