Matthijs Hollemans wrote: > Christian wrote: >> Uhm... bad news: I started coding my parser, and soon realized that >> MidiPortProducer::GetData() is utterly broken. > That doesn't really surprise me. I threw it together pretty quickly, > based on something Jerome threw together pretty quickly. It hasn't been > tested at all (or just a little), because I have nothing to test it with. > I am also not sure whether the routine properly interfaces with the > drivers, either. IIRC Greg Crain got it to work with his MPU401 module, only that the Note Offs weren't properly recognized (as his keyboard is using RunningState when sending them, this is not surprising). This should mean that it basically works. Maybe Greg could test the new version once it's in CVS. > > I currently don't have time to setup OBOS CVS on my machine, so > > somebody else would have to do integration & testing. But I guess > > that's preferable to having to write that stuff from the ground up. ;-) > > Sure thing. I'd be happy to integrate your code with the OpenBeOS CVS. > Thanks for finding out about this problem. There's nothing to thank me for - *I* am thankful if I can be of help to OBOS. :) A draft of the new parser can be accessed at <http://www.uni-mainz.de/~packc000/MidiParser.cpp>. Please take a look at it and let me know if coding style and variable names are okay. If these have to be changed I'd rather change them in the SerialMidiHost sources, so that syncing any later changes would just be copy'n'paste. The code seems to be mostly bugfree, SerialMidiHost works so much that I spent the last two days playing with my synth. :) Basic stuff like Note On/Off, Control Change, Pitch Bend all works. I'm not sure if SysEx is properly parsed, and this isn't easy to check, as I found no SysEx receive program for BeOS. Guess what my next project is. ;) Once I'm sure that the code is correct, I'll integrate it into MidiPortProducer::GetData() and post the new PortDrivers.cpp. Bye, Chris