Web Audio Modules (WAM) is a new SDK/API that I started work on with Jari Kleimola over two years ago which aims to eventually be the equivalent of VST for the web. This is really primarily Jari's project - he is an amazing programmer and has done the vast majority of the work and I am very honoured to have been involved in what I think is a great initiative.
It's important to us that this is a community driven API in the first instance, in order to address some of the frustrations that plug-in developers have experienced in the past due to the DAW vendors controlling the formats. We have created a community website, to document our work. There you will find some playable WAM synthesiser demos. We have preliminary API documentation and code on github. We would love to get feedback from variety of developers in order to make this suitable for everyone's needs.
Jari and I met at the first ever Web Audio Conference (WAC) at IRCAM in January 2015, where Jari presented some Web Audio ports of open source desktop plug-ins, originally written in C++. I was really impressed that this was possible, not knowing a great deal about the latest web technologies. We got on really well (thanks in part to a mutual love of 1980s synthesisers) and we decided to collaborate on formalising an API to make this approach easy for others to adopt in a standard way. We published a paper on this work at the sound and music computing conference (SMC) in July 2015. At this time, there were some major limitations with the technology that meant there was quite a lot of latency and potential for audio glitches. Over the last two years the W3C Web Audio working group has done some great work on addressing these limitations, and we have also seen the introduction of WebAssembly, a cross browser W3C format for executing bytecode in the browser. Recently we saw the first appearance of the "AudioWorklet" in Chrome Canary - the experimental version of Google Chrome. This is a game changer for web audio, because it enables custom cross compiled code to run with low latency in the audio thread = no glitches. Other browsers will follow soon.
The WAM API has been designed to be lightweight and simple and to work nicely with existing code bases, so that plug-ins written using popular cross platform frameworks such as JUCE and IPlug can also target the Web from the same code base. We tried to follow guidelines from the GMPI format discussions over 10 years ago.
I have ported my closed-source plug-in VirtualCZ to a WAM (webCZ101) with the same DSP but a more limited user interface. At this early stage of browser based music making it's not really an issue but eventually for developers to monetise their products, there probably needs to be some kind of way of restricting the use of the code. I feel that even before we see the widespread use of web-based DAWs, WAMs have a lot of potential for easily demonstrating software, and for educational interactive tutorials - a new form of online documentation for instruments.
We would like to invite everyone to help us work these issues out, and we are particularly interested in feedback from developers on our preliminary API work.
You can find demos and more information including our paper from the 2015 SMC conference at https://webaudiomodules.org, where you can also comment on everything.
We have a mailing list for updates, and you can follow us on twitter @webaudiomodules too.
We are looking forward to the next generation of software instruments and effects.
Oli Larkin & Jari Kleimola.
PS. we will soon be running a competition to design a nice logo for WAMs - stay tuned.