[sdiy] MIDI merging info requested - update

David Brown davebr at earthlink.net
Thu May 12 07:13:19 CEST 2005


Thanks for all your help and suggestions.

What I have is a MIDI keyboard 'project'
http://modularsynthesis.com/kurzweil/index.htm
that I am trying to combine with my bass pedal 'project'
http://modularsynthesis.com/pedals/basspedals.htm

When I built my bass pedals, I incorporated a midi-in.  I want to merge the 
midi streams so I can have only one midi connection.  I ended up building a 
complete midi parser with real-time and running status.  Thus I know when a 
midi-in message from my keyboard has completed and I can then return to the 
pedals.  Since I am generating the pedal data, I know when messages from it 
are complete. The 'loop-thru' works great and I can pass data from my 
keyboard through the bass pedals as long as I don't use the bass 
pedals.  Likewise the bass pedals work great as long as I don't use the 
keyboard.  Use them together, though, and I got stuck notes.

I've been tearing my hair out trying to figure this out.  One of the emails 
finally gave me the clue.  You cannot implement running status when merging 
midi messages.  My keyboard implements running status when multiple keys 
are depressed.  I was just passing this through.  However, the receiving 
synthesizer cannot tell that this is running status for the keyboard vs the 
bass pedals since the midi channel information is gone. So, my running 
status code has to put back the first byte so I pass complete midi 
messages.  Now it works great.

So, what commands can implement running status?
I know Key up, Key down, and Pitch wheel can.

What about ...Control change, Program change (doesn't make sense), 
Polyphonic Aftertouch, and Channel Aftertouch.  I'm need to decide if I 
have to implement the same code for these commands?

Thanks again for all your help and suggestions. - Dave




More information about the Synth-diy mailing list