Recently, I remade my Polysynth project so that musicians can connect a MIDI conroller to it and jam. It uses the WebMIDI API and Tone.js to provide a web-based polyphonic synthesizer. Ever since I'd learned of the WebMIDI API, something like this has always been an idea of mine.
Here’s a demo featuring my creaky controller if you wanna hear it pic.twitter.com/9vQcx6n6YL— Nash (刘光瑞） (@aunyks) September 13, 2020
Quickly, the WebMIDI API is a set of interfaces provided by the browser that lets web pages interact with MIDI devices. This lets web developers build apps that work with instruments through a protocol older than the web itself.
More specifically, MIDI (Musical Instrument Digital Interface) was introduced before HTTP— Nash (刘光瑞） (@aunyks) September 17, 2019
Bringing this functionality into the project was made much simpler thanks to Monica's WebMIDI examples. The bulk of my development effort actually came from converting the logic to work more intuitively with Next.js.
But, MIDI controllers are just that: controllers. In the future, I may choose to make some kind of visualizer or who-knows-what. This was a day project, but I've learned so much in such a short period of time that it's inspired me to try taking on larger projects. What about a free web-based DAW? How about a looping tool? The fact that the web can make this software free, cross-platform, and not require any downloading opens up so many opportunities. Here's to more instruments on the web.