Waiting for Web MIDI to kick in...

Hook up a MIDI controller and reload the page. If you get no alerts: you're good to go, go start playing and slide some sliders and tweak some knobs on your controller, see what happens! Don't see anything happen when you slide those faders or twist those pots? Click on a slider's label to teach it to listen to your controller instead of the default, similar to using "CC learn" in any regular old VST instrument. Then see what happens v2!

Just want to see it play something? Hit the "demo" button and press play. Then start messing around with that, because why wouldn't you?

How does this work?

This "demo" relies on the Web Audio and Web MIDI APIs. The first just lets your browser make sounds. So you can make it generate random noise, or synth your way to a well crafted kick drum, fat snare, or even a ridiculously accurate grand piano sample. In this case, we're modelling a drawbar organ syntehsizer: each note triggers 8 sine oscillators, and each oscillator's gain (loosely, it's volume) is tied to a slider. Slider the slider up, reduce its gain (because that's how real drawbar organs work), slide it all the way down, and get its full effect.

That sounds simple, and it is! There is nothing conceptually hard about a drawbar synth, but implementing one is still tricky (and fun) so I made one so you don't have to, and then hooked it up to the Web MIDI API so that if you have a browser that supports it, you can literally just hook up your MIDI controller, program that to "play stuff", and have it drive this synth. Because again, that's fun!

Is... Web MIDI even supported by anything?

As little as you'll have heard about it: yes, actually. Web MIDI works out of the box in Chrome, and while Firefox currently requires an extension to work, work is underway to (finally) add Web MIDI support. In the mean time, said extension works just fine.

It's not implemented in Edge, but... I don't know, do we take Edge seriously when it comes to this kind of stuff? I mean, it's a decent browser, some people I respect work on it these days, but it's doesn't strike me as a browser whose team is allowed to put "the cool stuff(tm)" in until all the boring issues have been closed. That said, if you know of a plugin/addon that makes Web MIDI work in Edge, let me know, and I'll add it here!. As for any of the other browsers: no idea! Thankfully, caniuse.com does!

This is (awesome|pretty neat|silly|the worst thing I ever saw)! I have opinions!

I am down with opinions, shoot me yours on Twitter or Mastodon, but if you have a deeper issue that requires we engage in an actual conversation (say, you find a bug, or have an idea for a feature that'll work well as part of this project, or you have questions about the code or concepts) I would strongly recommend hitting up the github repository, and filing an issue so we can have a solid back-and-forth.

So... what's the license?

MIT. Most of my small stuff is released as "public domain except in jurisdictions that don't recognize PD, in which case it's MIT" but this was fun to make and I like it enough to keep my name associated with it.

- Pomax