SodaSynth runs natively in Chrome.

With soft synths a dime a dozen, how do you set yourself apart? Defying conventions is a pretty good start, and a team of developers who built the Mixxx open source DJ tool are doing just that.

SodaSynth from Oscillicious is a soft synth with a different approach. With no effects and, surprisingly, no filters, SodaSynth is all about the oscillators. But apart from its ready-to-layer sound, the developers are also making their software run in new places: aside from a VST, there’s a version for HP’s defunct TouchPad and, more interestingly, the first major soft synth we’ve seen yet for Google Chrome’s Native Client. We’ve got some details on the latter that will appeal to you hardcore Web browser / coder geeks out there.

First, the sound: with no filters and no effects, SodaSynth’s developers say they’ve made a synth that’s easy to layer. You get five waveforms, up to 32 oscillators per note, and full 8 note polyphony. (Per-note oscillators to me is where things get interesting.) The controls are pretty stunningly simple, but with five “classic” waveforms and some unique morphing settings.

Also, for those new to synthesis – and for some of those more unusual parameter names new to all of us – they’ve added extensive in-line online support, in a nice touch. (More in the gallery/sounds below.)

In-line help, like all synths should have.

I’m in. Mac and Windows VST, and should run fine on Linux machines with Windows VST support. US$23.

SodaSynth VST

Here’s what it sounds like:

SodaSynth VST Demo 1 by Oscillicious

And there’s an HP Touchpad version, which you’ll find for $3 in the HP App Catalog. Notable in that it may soon join our Doomed Tablet Instruments Hall of Fame. (Our friend Francis Preve had an instrument out for the Newton. Really.) Seriously, if anyone has a TouchPad, send us video, ‘kay?

But more practically…

You can run SodaSynth right in Google’s Chrome Browser. We’ve seen plenty of synths and even full-blown workstations employing Adobe’s Flash. And there have been some projects built in JavaScript for Mozilla’s Audio Data API, previously called the Web Audio API (which I liked better as a moniker). Tons of examples via the Chromium site; Chrome and now an experimental Safari build have added support:

Web Audio API Samples

Soda Synth uses a third avenue, one which I’ve heard lots of people talk about but no one actually try. Google’s Native Client allows you to run native code right in the browser – not this JavaScript kids today love so much, but good, old fashioned, C/C++.

What does that mean for synths? Think low-latency live audio that out-performs other solutions, at least for now. SodaSynth isn’t just the first NC synth in the Chrome Web Store; according to the developers, it’s the first Native Client app, period. (Answer to the question “who cares whether you use native code ever again?” is, of course, “audio people.” I’m sure JavaScript advocates will be happy to chime in here, but even if JavaScript matches C/C++ performance, the ability to run C DSP code natively will continue to have advantages down the road.)

It’s free, so add it to Chrome now, and you get a synth you can jam with – there’s even a 4-bar live looper so you could produce actual sound snippets with the thing. I’m curious to hear your experience.

SodaSynth, free for Chrome Web Store

Developing in Native – Why it Matters, What it’s Like

I’m all about getting the nitty-gritty details – yes, including not only why this is exciting, but what the development process is like, warts and all.

Developer Albert writes:

Why is this news? It’s native compiled C++ code running our synthesizer in a browser at full speed, for the first time. While there’s some other pro-audio web apps like AudioTool, nothing can really get the latency low and run efficiently without native code. We think this might be a peek into a future where we there’s real pro-audio web apps.

I asked Albert specifically what challenges, if any, they’d encountered. Albert tells CDM that NaCl (get it?) still has some rough edges and needs further testing, and significantly isn’t enabled by default for some users. He did qualify that by noting NaCl’s developers have been generally helpful.

The Pepper Audio API that NaCl implements is pretty similar to SDL and performance seems to be good. The three big advantages of using NaCl over Adobe Flash for this sort of thing are raw performance, being able to directly set the audio latency, and that most audio apps are already written in C/C++, so they’re easier to port. Being able to just upload your binary to “deploy” it instead of building Windows/Mac/Linux versions is a huge time saver too.

Currently, I’m only hosting binaries for x86 and x86_64 because the Native Client doesn’t actually work on ChromeOS yet. One of the main
NaCl developers mentions this [2], though perhaps that’s been miscommunicated by Chrome’s marketing team, because I too thought it
was supposed to work.

The next milestone for the Native Client team is to implement “Portable Native Client”, or PNaCl [1], which will mean that NaCl apps will get distributed as “LLVM bitcode” instead of compiled architecture-dependent binaries. In other words, you will compile your application once, and it should run on x86, x86_64, and ARM. I think Google is waiting for this before pushing NaCl into ChromeOS.

“Early days” seems to be the key phrase here, but I’m eager to see Google put some resources behind this and turn this into a solid solution, especially on their nascent Chrome OS. (Too bad, as I was looking forward to seeing someone fire this up on a ChromeBook.)

For further reading, via Albert:

[1] The gory details about the proposed PNaCl plan
[2] Chrome/NaCl engineer at Google saying it doesn’t work in ChromeOS

More Images + Sounds

A song without and with effects, using Renoise:

SodaSynth VST Demo 2 (Dry – No Effects) by Oscillicious

SodaSynth VST Demo 2 (Wet – With Effects) by Oscillicious

The VST version:

Image of the ill-fated HP tablet version:

  • Peter Kirn

    Everyone's a critic.

    No, I don't think $23 is too much to charge for a VST plug-in; that's pretty standard.

    I definitely don't think "free" is too much to charge for a Chrome app. NaCl only works in Chrome at present.

  • Peter Kirn

    But yes, thanks for the tip, and I agree, that counts as news, too…

  • a.m. gold

    I'm going to check it out for sure; I need something else to play with in Google Chrome besides Angry Birds. The timbre in the two demo tracks is a bit harsh for my taste, will be interesting to see if it really can do something a bit more bubbly.

  • Thanks for the plug, Peter!

    Speaking of NR404… Here's the manual 🙂

  • J0hnny

    Sounds great. Super cheap in my opinion.

    I wonder if there's a Reaktor patch for that? (works in the same way with multiple oscillators per note 🙂

  • Peter Kirn

    @MegaTonne: As I understand it, the Chrome app features the same synth engine and qualifies therefore as a 'demo.' I know you said you personally don't want to download the browser, but there you have it.

  • Kas

    Maaaaaaan, can't these developers come to my house and demo this softsynth? I find I can evaluate sound much better if I can lean back while listening. All of this "installing" stuff totally drains the vibe.

  • Leslie

    It's funny and sad at the same time that there is an App with low latency direct keyboard input available for HP tab that existed for 1 month and doesn't exist anymore and yet Android Honeycomb can't achieve this at all…

  • J

    Browser-based, so this brings making music in the cloud a little closer, I guess? I wonder how much work it is to make your general dsp code run in Chrome. Is it straightforward? Would be cool to read a kind of review from a coder's perspective.

  • J

    whoops, reading this on iPhone, I missed part of the article. Still wonder how it compares to making a synth for something like iOS.

  • Peter Kirn

    Compared to making a synth for iOS? It's exactly the same, potentially, in that at least you can be combining DSP code in C with a GUI in HTML5/JS/CSS3 (if in iOS you use a WebKit browser, as many apps now do).

  • Hey Peter, your Chrome store link is funny. 

     here's the real one:

    Also, you need Chrome 14 if you are running something older. 

  • J

    Thanks for the clarification, Peter. That sounds like a cool approach to also reach non-iOS users.

  • RichardL

    Hmmm. This is interesting. I guess I need to wait a week or get Chrome 14. And ChromeOS support indeed sounds like "soon" is for real.

  • It would be nice to get a demo VST, but the Chrome examples do sound nice. 

    I like the idea of having a 'dry' synth, there's definitely too many effects in some soft synths. Better to do one thing really well than a few things not as well. 

  • So Peter, are you saying you need the Pepper API on NaCl to push it real good? 🙂

    Apologies to anyone not into nerd humor. Love this website, btw.

    thx B.A.

  • Jonah

    I think an in-browser demo is actually pretty cool and rather smart. Let me test it out without any annoying noise or silence for as long as I want, if I desire more ease of use I'll pay the $.

    I don't get it though, we have cloud gaming now and surely that has to be more demanding (and lucrative, 🙂 but still). I hate installing demos and all the related cruft, dual booting, authorizations, etc. I probably regularly use 5 synths, but I have tons that I use every once in a while.

    OS X has AU net send/receive and networked MIDI. I'd take the latency if it was semi-consistent. I mean if huge sample libraries are kept on an SSD and the systems have insane amounts of RAM, I'd probably still save time.

  • 11

    I have the touchpad version of it and it's nothing like the VST. It has no oscillator controls, custom patch building, etc. Really not worth the price of admission. The TP app is more like a cheap loop player than anything else.

    I bought it off of this article. Perhaps the programmer is planning on fleshing out the TP app, but I doubt it.

  • 11: I am the programmer and I'm sorry that the Touchpad version didn't live up to your expectations.  

    We tried to make the app description in the HP App Catalog as clear as possible (with emphasis on the live looper), but we'll clarify it since it sounds like you were expecting something else.

    We did actually flesh out the TP app a bit more with an update this week. We added loop saving, octave buttons, and a few more drum beats. (The synth is a direct C++ port of our VST version so it's not a "loop player", it just doesn't currently have patch editing capabilities.)

    The idea was more to build something that's just fun to sit down and jam on, aimed at casual musicians more than synthheads. That's why patch editing and all the parameter controls didn't make the cut (yet?). 

    That said, we want happy customers and we want to hear more from you, so send me an email ( and you can help shape where we take the Touchpad app from here.

    (Developers listen! If you have complaints or criticism, make sure you email us! We need your honest feedback to find out how we can improve our products.)