> -----Ursprüngliche Nachricht----- > Von: "Dave Phillips" <dlphillips@xxxxxxxxxx> > > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html