[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