Projects:WASM SYNTH

From 36C3 Wiki
Revision as of 19:10, 27 December 2019 by TimDaub (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Description WASM SYNTH is a synthesizer built from scratch in C++ and made available on the web through WebAssembly and emscripten.
Language
Has website https://timdaub.github.io/wasm-synth/
Organized by TimDaub
Persons working on TimDaub
Tags music, midi, sound, web, webassembly, synthesizer
Located at assembly Assembly:Social Dist0rtion Protocol
Other projects... ... further results

(Click here to refresh this page.)

WASM SYNTH is a synthesizer built for the web using C++ and emscripten and WebAssembly. It's front end is written in reactjs. I've initially started WASM SYNTH as a portfolio project to get hired by a company working with music.

A few highlights about WASM SYNTH:

  • All of it's sound generation is done in C++ via WebAssembly
  • It's using the new "AudioWorklet" API (currently only available in Google Chrome) to request new buffer frames. An AudioWorklet polyfill for all other browsers has been included and (lightly) tested
  • WASM SYNTH currently allows setting up four oscillators with more than 10 different wave forms in sequence
  • It has a drag and drop-able Attack-Decay-Sustain-Release envelope shaper
  • A virtual keyboard is included that allows you to play some tunes directly from your computer
  • Midi playback is possible with this branch: https://github.com/TimDaub/wasm-synth/tree/midi
  • My big inspiration for the UX/UI of the software was Ableton Live's Operator instrument, as I found it easy to understand and control
  • While working on WASM SYNTH, I've created other software modules to accompany it: https://github.com/TimDaub/react-envelope-graph and https://github.com/TimDaub/react-simple-knob

As I'm pretty new to the field of audio programing, I'd love to meet and talk with others in the space! My DECT now finally works: Call me at 3350! I'd love to chat! Or come by the Social Dist0rtion Protocol Assembly.