S2MIDI is a windows program that attempts to read raw MIDI data coming in on a serial port and send it to an internal MIDI driver.
We wrote it to get MIDI from the Arduino physical computing platform into Windows based music software without the grief of scary unsupported closed source drivers. In theory it can be used for all kinds of things but your mileage will vary.
The Arduino platform can send MIDI data fairly easily via its internal serial port but this approach has two problems. Your computer needs a MIDI port (more hardware to lug around) and you still need to power the Arduino somehow. MIDI adapters don’t generally provide volts. An Arduino with a USB port gets you around both of these problems, but a Windows PC won’t receive MIDI data via a serial port without some scary device drivers. S2MIDI is a little hack that attempts to accomplish this without as much drama. Full Windows C# and Arduino source code are provided.
Warning, this was our first C# project, use at your own risk.
We tried to keep it simple. S2MIDI gets data from your buttons and knobs into Windows MIDI-land with as little fuss and hardware as possible. But it only speaks a little bit of MIDI and not properly.
The key is your Arduino (or other serial data sending device) needs to structure its output in three byte chunks, no more, no less. See the included Arduino sample code for examples.
What S2MIDI Can Do:
- Turn a three byte NoteOn message coming in a COM port into a NoteOn message sent to a specific MIDI device driver.
- Turn a three byte CC message coming in a COM port into a CC message sent to a specific MIDI device driver.
What S2MIDI CANNOT Do:
- Anything with messages that aren’t exactly three bytes.
- Anything with anything that isn’t a NoteOn or CC message.
It would be fairly easy to add support for NoteOff and perhaps other things but we’ll leave that to other people. If you’d like contribute please use the S2MIDI page on Google Code.
Links:
Download S2MIDI V1.0 for Windows from Google Code.
Probably requires .NET 2.0.
Includes example code for the Arduino physical computing platform.
There is no installer or support files. Just an EXE file.
Get the S2MIDI V1.0 C# source code via SVN.
Credits:
Program started as Noah Coad’s Serial Port C# .NET example and uses Leslie Sanford’s C# MIDI Toolkit. Bugs are our fault.
Written with C# Visual Studio 2005 Express Edition 8.0.50727.42 (free here) and .NET 2.0.50727
Changes:
1.00 - Initial Release
1.01 - Minor interface changes
Tags: Arduino, electronics, MIDI, Software