[sdiy] Midi question

David Brown davebr at earthlink.net
Mon Aug 15 08:04:22 CEST 2005


You need to decode the incoming midi stream to keep the packets 
intact.  Most messages are 3 bytes.  Some are fewer.  You have to 
expand running status back to complete commands as interleaving other 
commands will be interpreted incorrectly.  Running status is a 
compression where the command and midi channel is left off and the 
data is just streamed.  Real time messages can interrupt packets but 
they're not real useful for what you're looking for.  You'll need a 
buffer to be able to queue incoming data while you're sending your own.

I've implemented several midi parsers, one in basic on a risc chip, 
and the other in assembly on an AVR microcontroller.  While I am not 
adding other commands, it would be quite easy.  I used mine to modify 
the data.  If you're handy at electronics, it would be quite easy to 
use one of the AVRs with multiple input A/Ds to implement continuous 
controllers, volume, pan, pitch bend, etc.  Depending on what you're 
doing you might even be able to power it off the midi input.  Mine 
works quite well but I don't have any additional control 
devices.  What devices are you thinking of adding?

Some information at
http://modularsynthesis.com/processor/processor.htm

I'd be happy to answer questions on what I can on or off line.
Dave

At 10:47 PM 8/14/2005, Tim Ressel wrote:
>Hey all,
>
>I need some hand-holding on a midi thing. I'd like to
>make a midi box with some controls and switches to
>make up for a lack of said controls on my midi
>controller. I can handle outputting midi commands, but
>how do keep from crashing into the commands comming
>from the keyboard? I mean, you can't just do a
>pass-thru thing, right? Is there a gizmo out there
>that merges two midi streams without mid-air crashes?
>
>Thanks!
>
>--Tim (midi=green) Ressel




More information about the Synth-diy mailing list