Here are a few step to set-up the basis for an interactive installation with lights(or solenoids, or whatever you can imagine) driven via midi commands, an easy way to planning what has to light up and what has to shut down via a midi track, like this sample image show(a note in time sets light up or shut them off).
I’m using Serial <> MIDI converter from spikenzielabs.
All the stuff, inner working, files, installation and usage steps are explained here http://www.spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html
Basically you need to create two midi ports via you’re preferred audio configuration system in your preferred operative system, and the map them to be used in your serial midi tool.
The serial midi tool acts like a proxy, if you want to put it in this way.
Here is a drawing to explain a little bit the underlying architecture.(made with balsamiq mockups webdemo -> code http://pastebin.com/nY2tAUAK )
You need Processing to run the converter program(script), but you can create the application once for all with processing itself.
The example in the site linked above does only a write on the serial port, and it makes arduino send midi to the computer.
I’ve done it the other way, my computer sends midi to the arduino and the arduino acts accordingly to what I’ve told him to do.
Steps to follow:
- connect arduino and if you haven’t already done it, upload sketch(once you’ve done it, you’re ok with arduino)
- start serial <> midi (select midi ports you’ve previously created)
- start midi software(and if you haven’t configured it yet, do it)
All this happens via software, no hardware needer other than an arduino board with some resistors and Leds.
There are many guides out there that open apart a midi connector and plug it in the arduino to make an arduino talk directly to midi devices, but this is not the case.
Here is the arduino code (sketch) that I’ve put up (with some help of internet)
http://pastebin.com/e8ekuyTE
Here is a screenshot of my desktop during the process
Here is a (bad quality)video of me sending midi notes to the board.