Creating interactive audio visualisations with Clojurescript, Figwheel and Web Audio
For years, one of the great strengths of writing code for the browser was the short feedback loop. Write some HTML, Javascript and CSS, hit refresh. See it sparkle. Rinse and repeat. In time, we've lost some of that power; web apps are a lot more complex these days, code is often compiled and our applications have a lot more state, which is lost on refresh and so our quick feedback loop is gone. Figwheel is a library for Clojurescript that aims to give us some of that power back, provided you will write "re-loadable" code. I wasn't really sure what that would entail, so I set out to make a project - a tiny library for creating audio visualisations, that would let you change the graphics while the music is playing.
The key enabler, though in the end a small part of the library, is the Web Audio API interop. It's somewhat of a peculiar API if you've never worked with audio; it allows you to create nodes and connections betwee