

Ask HN: Moving MIDI - phusion

I've been working with a friend on this project to basically get rid of his hardware general midi tone generator and have a software version do all the work, AND be able to send MIDI data to his crazy Biofeedback application on the same computer. We wrote up a text to better explain, here it is, any help would be awesome:<p>We currently have an app running in Windows that is sending out basic general MIDI commands to a COM port, which in turn is driving via a serial cable a Edirol SD-20 tone generator.  Our needs are pretty basic, we're doing just general MIDI, picking various voices (clarinet, oboe etc).  What we want to be able to do is drop the external tone generator and re-route/pickup the MIDI traffic that's on the COM port (i.e. Device Manager -&#62; COM1/2/3/45 etc) and then route that basic GM data to a software based tone generator.  We don't need or want a super sophisticated DAW ( Microsoft GS Wavetable synth may be enough). Our client bass are health care professionals, so it needs to be easy, intuitive for the uninitiated.<p>I've been in IT for a long time, but never worked on something like this before. Thanks for the read. If the above text isn't clear enough, please let me know.
======
chipsy
MIDI-OX might be able to help you: <http://www.midiox.com/>

It runs a Windows Scripting Host interface, which you should be able to use
with most scripting languages to send the incoming data into MIDI-OX, and then
route it directly to Microsoft GM.

If I were doing this project I would probably try going down this route, using
the ActivePython distribution and pySerial. There might be simpler
alternatives but this way looks pretty straightforward.

~~~
anigbrowl
This, or MIDIyoke creates virtual ports and is lightweight. MIDI-OX is better
for programming and debugging though.

~~~
phusion
We have looked into MIDI-OX and Midi-YOKE and we're not entirely sure how to
implement it to serve our purpose, does anyone have any specific experience
with these tools?

~~~
chipsy
I don't actually have much experience working with these apps, but on a second
reading of the problem, I realized I was thinking of a different problem(an
external generator sending stuff from a serial port into the computer). The
key to solving this one is just to get the MIDI data into the Windows MIDI
mapper system.

If you have access to the app source you should be able to rewrite the code to
use DirectSound or FluidSynth to play MIDI rather than touch the serial port.

If not, two dirty-hack options come to mind: you can loop the serial line's
output back into the computer with a USB MIDI device(classically, MIDI goes
over a 9-pin connection, presumably you already have a solution for serial-
to-9-pin with the original setup) or you might be able to poll outgoing serial
traffic and remap it with some code.

