VOGONS


First post, by dspanogle

User metadata
Rank Newbie
Rank
Newbie

Revised 01//2/06
OK, I searched the code (in sourceForge) but can not figure this out. 🤐

(Q1.) Does MPU401/MIDIin support getting MIDI SysEx Data into a DOS program by reading the MPU data register .. or.. does the current code just process MIDI events?
If SysEx MIDI messages are supported. I could use some set up help I guess.

Two MIDI Librarian programs I have seem to 'send' data thru the MPU output ports just fine.
If I load either program with logging everthing and put the program in a 'do nothing state' then:
1. I can overflow the input buffer by sending MIDI events (play notes on keyboard => eventually gets 'MIDI-In Buffer is full (256 bytes discarding data' in the logging messages)
2. But If I send sysex MIDI data (eveything else the same) I never get any of the MIDI Sysex data - i.e. I never see the MIDI-In Buffer full message and the DOS programs never see it either.
Other INFO:
I get the MIDIin configured and MIDIIn Device Open (Recorder) messages in the logging - so VDMSound seems to be set up OK. I see my MIDI IO in launcher (PIF setup) and yes, I have enabled MIDIin.
These old MIDI Librarian programs get MIDI sysex data by reading the MPU data port (either in a polling loop - or by using interrupts on mpu IRQ.) I got one message indicating that the Dos program tried to 'read an empty MIDIIn buffer' (before I send any events into the MIDI in port) so the dos program is accessing the mpu401 data port.
IN Researching:
I can find (in the source code) where the MIDIIn messages (MIM_DATA etc) are filtered and 'events' are sent on to MIDIOut to be 'played' - but I can not find in the specific code where the data is stuffed into the m_inbuff instance of CMIDIInputBuffer.
I do see STDMETHODIMP HandleEvent and
I do see STDMETHODIMP HandleSysex in MPU401Ctl.cpp and the inline code in MPU401CtlFSM_h to call m_inpubuff so since both reverences are there I would assume that Sysex would work just like events??

(Q2.) Am I missing something in the code? (It has been a lot of years since I read C code and then only early versions of C++ - not this new Visual C++ stuff)
Is STDMETHODIMP HandleEvent set up but perhaps NOT STDMETHODIMP HandleSysex?

Anyway...

I would like to figure this out as MANY old MIDI Libraians are now broken in WinXP and if this works a lot of old MIDI Libraian users would be mucho happy.

If not supported - I could volunteer to help get it implemented. Seems most of the code is done.
My system:
-Windows XP
-VDMSound 2.10 (same symptoms with 2.0.4 update 2)
-sound card Creative Audidy..
-3+GHz dual pentium 4 processors

PS. I developed one of the librarians I am trying to use - Kurle.. see
http://members.aol.com/awsoftware I Kurle needs to be modified to follow VDMSound protcol for MPU401 data reads and interrupts - that can be done. but first I just want to make sure the SysEx MIDI messages are going to the buffer..

I know you all are very busy so..Your suggestions will be very much appreciated 😁

Dennis