Zupiter: a Web-Based Modular Synthesizer

When I was a kid, I thought I didn't like music, other people really enjoyed it, but I just didn't get it. This all changed when I was 12, and I first saw the movie "Hackers". You can think whatever you want of that movie, whether you think it's a classic or everything that's wrong with Hollywood, it had a mind-blowing soundtrack featuring several pioneering electronic music artists such as The Prodigy, Orbital and Underworld. Ever since I was exposed to this, I've been in love with electronic music.

In my mid-twenties, after I'd learned how to program, I started to wonder if there was a way that I could combine my passion for programming with my love of electronic music. I started reading books about sound synthesis, composition, etc. I wrote a web-based music app, MusicToy, back in 2012. This app originally used the Mozilla Audio Data API (this was before the Web Audio API was made available). The app is super simple, but that was the point, I wanted to create something that was beginner-friendly, and could allow anyone to create a fun pattern, without having any knowledge of music theory.

Today, I'd like to present to you Zupiter, a browser-based web app I've working on in my spare time for the past 8 months. It's a modular synthesizer that runs in a web browser. You can use it to build a custom synthesizer using a visual programming language inspired by Pure Data and Max/MSP.

The app is written entirely in JavaScript and makes use of both the web audio and web MIDI APIs. You can play notes using your computer keyboard (A to L keys), using a built in sequencer node, or you can connect an external MIDI keyboard or sequencer to your computer and use that to play a synthesizer you created in Zupiter. The app also makes it possible to map physical knobs on an external MIDI controller to virtual knobs in the app, just by double-clicking on a virtual knob and then wiggling the knob you want to map on your device.

I created the app because I wanted to have a powerful tool that would allow me to experiment and understand exactly how specific sounds are made. I also created it because, to my knowledge, there is nothing else quite like it. Yes, there are already other browser-based music apps, but to my knowledge, at this time, no other browser-based music app offers this degree of flexibility and power.

Using Zupiter, you can build your own synth from your browser, without spending any money or installing any software. You can then share what you just created with friends instantly, by going to the Share tab. Your friends can then hear what you just made, modify it, and share a new version of it, also without installing any software on their machine. My hope is that Zupiter will lower the bar to entry, and get more people excited about making music.

If you're curious about trying Zupiter, but a little confused about how it works, here are some examples to get you started:

Zupiter isn't perfect, it's only been tested in Chrome and Firefox, and it's very possible you may encounter some bugs, but I'm really excited and curious to see what you can make with it, and I encourage you to share what you create. If you're confused as to how it works, there is a Help tab in the app with some basic examples and instructions, and I've created a subreddit where you can ask any questions. Your feedback is more than welcome!