MIDI input
Quoted 9 lines
-----Ursprüngliche Nachricht-----
Von: "Dave Phillips" <[email protected]>After starting DOSemu go into the directory where you have the vapimpu driver. Start the driver like this:
vapimpu
If it succeeds, you're ready to rock, and you can launch SPG.
Thanks a lot! That worked perfectly! I could record and play back, with perfect timing and no delay. The MIDI is always in sync with the PC speaker metronome beep. So the setup is perfect, even with a plain vanilla kernel.
There is clearly a big difference in how both programs are reading MIDI data. If I use the S debugging switch with SPG, there is so much debugging output that it runs pretty fast through the output window. Here is a random extract of the output while I play notes at 240 bpm on the MIDI keyboard:
MPU401: Write 0xf8 to data port
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Processing IO callback, 1 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read status port = 0x3f
MPU401: Read data port = 0xfe, 0 bytes still in queue
MPU401: Read status port = 0xbf
MPU401: Read status port = 0xbf
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Processing IO callback, 3 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x90, 2 bytes still in queue
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x3c, 1 bytes still in queue
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x4e, 0 bytes still in queue
MPU401: Read status port = 0xbf
MPU401: Read status port = 0xbf
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Processing IO callback, 3 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x80, 2 bytes still in queue
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x40, 1 bytes still in queue
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x40, 0 bytes still in queue
MPU401: Read status port = 0xbf
MPU401: Read status port = 0xbf
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
MPU401: Read status port = 0xbf
MPU401: Write 0xf8 to data port
Now a random extract for the Score program, same notes played at the same speed. As I wrote, this is a random extract - it does not represent a time interval that is similar to the above output. However I suspect that the time interval between the lines saying "MPU401: Processing IO callback, ... bytes" should be about equal.
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x48, 29 bytes still in queue
MPU401: Processing IO callback, 3 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x4d, 31 bytes still in queue
MPU401: Processing IO callback, 1 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x80, 31 bytes still in queue
MPU401: Processing IO callback, 3 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x4c, 33 bytes still in queue
MPU401: Processing IO callback, 3 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
MPU401: Read data port = 0x40, 35 bytes still in queue
MPU401: Processing IO callback, 1 bytes
SB: Activating irq type 4
SB: Interrupt activated.
SB: Activated IRQ for MIDI
MPU401: Read status port = 0x3f
This output comes much slower than that of SPG (you can see that from the lines "MPU401: Processing IO callback, ... bytes" that I mentioned above which are much denser here). I assume there are far too few lines saying "MPU401: Read status port = 0x3f", so there is a pretty high number of bytes still in the queue. What is responsible for reading from that buffer? Is it the DOS program, FreeDOS or Dosemu? On "real" (non virtual) systems with old hardware and MS DOS the MIDI input apparently works with Score. What does a "real" system with MS DOS do that Dosemu/FreeDOS don't? I'm wondering whether I should try installing MS DOS in Dosemu... How can I do this without damage to the nicely running FreeDOS? (I have MS DOS 6.2 here.)
Thomas W.
______________________________________________________________
Jeden Monat 1 hochkarätiger maxdome-Blockbuster GRATIS! Exklusiv für alle WEB.DE Nutzer. http://www.blockbuster.web.de
--
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 12 lines · [email protected] wrote:
Quoted 9 lines
-----Ursprüngliche Nachricht-----
Von: "Dave Phillips" <[email protected]>After starting DOSemu go into the directory where you have the vapimpu driver. Start the driver like this:
vapimpu
If it succeeds, you're ready to rock, and you can launch SPG.
Thanks a lot! That worked perfectly! I could record and play back, with perfect timing and no delay. The MIDI is always in sync with the PC speaker metronome beep. So the setup is perfect, even with a plain vanilla kernel.
Good to hear of it. :)
Btw, I've been testing DOSbox this afternoon. I get MIDI output, but no input yet. CPU usage is much lower than DOSemu, so I'm going to keep on testing it.
Quoted 5 lines
There is clearly a big difference in how both programs are reading MIDI data. If I use the S debugging switch with SPG, there is so much debugging output that it runs pretty fast through the output window. Here is a random extract of the output while I play notes at 240 bpm on the MIDI keyboard: [snip]
[Score's] output comes much slower than that of SPG (you can see that from the lines "MPU401: Processing IO callback, ... bytes" that I mentioned above which are much denser here). I assume there are far too few lines saying "MPU401: Read status port =
0x3f", so there is a pretty high number of bytes still in the queue. What is responsible for reading from that buffer? Is it the DOS program, FreeDOS or Dosemu? On "real" (non virtual) systems with old hardware and MS DOS the MIDI input apparently works with Score. What does a "real" system with MS DOS do that Dosemu/FreeDOS don't? I'm wondering whether I should try installing MS DOS in Dosemu... How can I do this without damage to the nicely running FreeDOS? (I have MS DOS 6.2 here.)
I believe that SPG filters running status bytes, perhaps Score doesn't ? I'll guess that one problem is that there really wasn't a single device handler for the system, i.e. everyone wrote their own (hence the vapi drivers for Voyetra's hardware and MPU-compatibles). How do you configure Score for MIDI input, do you select a driver or does it have a default internal driver or ... ?
Best,
dp
--
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html