This month’s update is brought to you by the lack of WebMIDI support in Firefox!
Over the past month I’ve been working creating some solutions and use cases for the API. A few people had contacted me regarding how they might be able to integrate the API to work with their MIDI controller (i.e. control the console with your MIDI faders!) - so I decided to have a look at implementing that.
WebMIDI
WebMIDI is a browser API (not widely compatible) that allows your browser to interface with local MIDI devices on the computer.
This could open up a huge range of possibilities for MIDI-powered applications; for example Web Audio projects, or perhaps provide physical hardware interactivity with website control panels, or games?
There are a few limitations with how WebMIDI can be used - the main limitation that it only works in a “secure context” - which basically means that the site has to be loaded using HTTPS or via localhost
. This would raise issues with locally hosting a server from your computer - as you would need to self-signed certificates which would not be trusted by other computers. Whilst those computers could add your certificate to their trusted certificate store - it seems like too much of a hassle, when you could just install the software locally.
I successfully experimented with sending MIDI control packets over WebSockets, however I’m probably going to remove this feature, because it doesn’t really have that much of a use case. If you wanted to control a console from another computer you could just install the MIDI integration onto that computer… Although, perhaps it would be great for people who want to control their device from an Android tablet.
Here’s a demo application that logs out the received events
Node.js MIDI
GitHub: featherbear/presonus-studiolive-api-midi-integration
The main bulk of the integration was in the Node.js backend server which would be responsible for the actual communication to the console.
I implemented a configuration screen to map the MIDI events and control changes to different actions.
#worksOnMyMachine