Fun with Web MIDI Part 1

While what I do these days for a living is as far from my ‘roots’ of web development as is possible to be, I still like to dip my toe in it’s waters occasionally, simply because regardless of the bad rep it used to get in the old days, JavaScript is a fantastic language for getting shit done quickly with insta- results.

Also, Google, who are borderline obsessed with their ‘Chromebook’ project are trying to port as many functions as would be available to Real Programmers as possible, with the aim of most native features of a desktop to a browser, so that even a simple guy such as myself can play around with features that would have traditionally been out of reach.

However, one of the W3C’s latest additions – Web MIDI – is of particular interest to me. As an incredibly amateur musician, I’ve always found playing with a handful of VSTs and Ableton Live is a enjoyable way to pass the time, even though completing actual tracks is becoming a challenge, thanks to the time poor nature of having young children.

Nevertheless, my mid-life crisis has spurred me on to buy the occasional piece of hardware, and to date, I have a few Korg Volcas, a Novation Circuit and, more recently, a Korg Minilogue to cock about within the evening.

The discovery of the Web MIDI API, then, made me imagine a way of controling these via my browser in some way. In particular, the Circuit which, while it looks like a relatively simple groovebox, is in fact two instances of a pretty powerful virtual analogue synth presumably based on the ‘Nova’ range of synths, including the Ultra and MiniNovas.

Novation did enlist the help of Isotonik Studios to put together an editor, but by it’s very nature of being an incredibly deep synth, is still pretty dense. So I tried to write my version with big controls for my fat fingers.

I also figured that there would be no harm in writing some code that basically randomised every parameter available to see if I could make ‘happy accidents’ simply by touching a button.

Part two will go through how this was achieved, what tools to use, and whether it actually made any patches that sounded half decent.

 

4 thoughts on “Fun with Web MIDI Part 1”

  1. Hi Duncan
    Just to say that, as a Circuit owner who’s not a programmer and as someone who’s not good at making any kind of synth patch, I’m blown away by how much I’m loving your Randomiser. As well as it running on my PC, it functions nicely on my Android phone. A truly mobile randomiser! With a little experimentation, I’ve also got it running it on my iPad, courtesy of a free app called Web MIDI Browser. iOS Chrome is a little behind at present, I guess.

    Now that there’s also the Editor from isotonik (which I haven’t yet delved into), along with Circuit Librarian to save all sessions, I’m going to be in patch heaven. After just a couple of hours with your Randomiser, I’ve got a bank of majorly evolving pads (with great panning too) which I test as I go with a standard pattern of 1 very long high note and 1 very long low-ish note, along with some improv ‘melody’ played live in different octaves over the top. That seems to give each patch a healthy work-out in deciding whether to keep or flick, along with plenty of random macro turning. Love it!

    I haven’t yet done a post on the Circuit Owners FB Group, coz it’s fiddly on my phone and it’d be my 1st ever FB post, but you never know.

    Many thanks
    Mike Wise-Miller
    Salamander69

    1. Hah, interesting you mention the editor. I had initially written this thing because I found the editor too fiddly, and wanted something my fingers could actually use to get around it, and the randomiser was a bit of an afterthought.

      TBH, if you have any suggestions on what parameters make up good types of sound, I was thinking of adding some additional little features to allow change only specific elements, as randomising everything makes it sound absolutely nuts. Saying that, really happy to hear that it’s come to be of some use to other people. I kind of got a bit side tracked by small children to add anything else of value to it at the moment, but definitely intend to at some point!

      Forgot to add an update to this to say that I’d basically done a similar thing for the Korg Minilogue, if you happen to have that as well – http://www.duncanmetcalfe.net/minilogue/ as once you’ve worked it out for one synth, the rest are easy.

      Thanks again for leaving your note!

  2. Thanks for getting back to me. Am not adept enough to make suggestions yet, but will think on that. In the meantime, might you consider putting a link to the Circuit Randomiser from your blog, as you did with the Minologue? As you can tell, I think the Circuit one (especially for a portable device with only macros on board) has lots of merit too. I am also pleased to see that the current incarnation runs offline from a saved complete webpage. Thanks again, and go well with those small children!

    1. Cheers! I’ll chuck the links together once I’ve worked out how to make a specific area for all these things!

Comments are closed.