After working closely with Google for more than a year, Soundation release their new music studio built on WebAssembly Threads. Soundation is the first music production software to run on WebAssembly Threads, which contributes to considerably improved speed, performance and stability when producing music in a browser.
As one of the web’s biggest advances in a decade, WebAssembly enables near-native performance for web apps. For Soundation’s users, this technology means considerably improved performance on multicore machines, between 100-300 percent*, according to measurements. As the music industry’s first adopter of WebAssembly Threads, Soundation places itself at the forefront of high-performance online music production software.
“Implementing WebAssembly Threads is a key part of our mission to build the next-generation music production service online. This technology will have a significant impact on how web apps are made in the future, and it’s essential for us to lead this development and offer our users the most powerful alternative.” – Adam Hasslert, CEO, Soundation.
Case presentation on Google Chrome Dev Summit 13 November
Soundation has been collaborating with Google’s WASM and Chrome Audio teams for over a year, working to optimize the implementation of Soundation Studio based on WebAssembly, with support of multithreading and shared memory. The case was presented at Google Chrome Dev Summit in San Francisco, 13 November:
“Soundation is one of the first adopters of WebAssembly Threads. They use these Threads to achieve fast, parallelized processing to seamlessly mix songs. Adding just a single Thread doubled their performance, and by the time they added five threads, they more than tripled their performance.“ – Thomas Nattestad at CDS, Product Manager, WebAssembly.
*Over 300% of gain on CPU with 6 cores.
We made tests of complex Soundation Studio project (consisting of 10 audio tracks, 12 synthesizers, 270 audio regions with audio samples and notes with 84 filter effects applied) generating an audio file of 4’37”. Test has been run on Ubuntu 16.04, Chrome 72.0.3584.0 (64-bit) on board we had Intel® Core™ i7-6700HQ. We compared systems based on WebAssembly, PNaCL, native application using different processing buffer sizes in ring buffer. WebAssembly version has been tested using different number of threads. Test results below are from our 12 frames buffer size tests.
Improved performance with Wasm and threads:
- 18% performance improvement porting to WASM from PNaCl (still using a single thread)
- 60% performance improvement using WASM with two threads. This shows great performance opportunities also for low specification laptops, such as Chrome Book dual cores.
- 76% performance improvement using WASM with the maximum of 6 threads.
About WebAssembly: WebAssembly is a new web technology and type of code that can be run in modern web browsers and provides major gains in performance. It’s a small, fast binary format that promises near-native performance for web applications. This new standard will enable high-performance web apps in areas like games, audio and video editing and scientific visualizations, and will also make it possible to port and push traditional desktop productivity apps to the web. https://webassembly.org