From mboxrd@z Thu Jan 1 00:00:00 1970 From: x.zupftom@web.de Subject: Re: MIDI input Date: Wed, 18 Jun 2008 22:47:03 +0200 Message-ID: <171504869@web.de> Mime-Version: 1.0 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: Sender: linux-msdos-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="iso-8859-1" To: Dave Phillips Cc: linux-msdos@vger.kernel.org > -----Urspr=FCngliche Nachricht----- > Von: "Dave Phillips" >=20 > After starting DOSemu go into the directory where you have the vapimp= u=20 > driver. Start the driver like this: >=20 > vapimpu >=20 > 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, wi= th 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 va= nilla 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 debu= gging 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 =3D 0xbf MPU401: Write 0xf8 to data port MPU401: Read status port =3D 0xbf MPU401: Write 0xf8 to data port MPU401: Read status port =3D 0xbf MPU401: Write 0xf8 to data port MPU401: Read status port =3D 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 =3D 0x3f MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 0xfe, 0 bytes still in queue MPU401: Read status port =3D 0xbf MPU401: Read status port =3D 0xbf MPU401: Read status port =3D 0xbf MPU401: Write 0xf8 to data port MPU401: Read status port =3D 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 =3D 0x3f MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 0x90, 2 bytes still in queue MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 0x3c, 1 bytes still in queue MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 0x4e, 0 bytes still in queue MPU401: Read status port =3D 0xbf MPU401: Read status port =3D 0xbf MPU401: Read status port =3D 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 =3D 0x3f MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 0x80, 2 bytes still in queue MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 0x40, 1 bytes still in queue MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 0x40, 0 bytes still in queue MPU401: Read status port =3D 0xbf MPU401: Read status port =3D 0xbf MPU401: Read status port =3D 0xbf MPU401: Write 0xf8 to data port MPU401: Read status port =3D 0xbf MPU401: Write 0xf8 to data port MPU401: Read status port =3D 0xbf MPU401: Write 0xf8 to data port Now a random extract for the Score program, same notes played at the sa= me 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 suspec= t that the time interval between the lines saying "MPU401: Processing I= O callback, ... bytes" should be about equal. SB: Activating irq type 4 SB: Interrupt activated. SB: Activated IRQ for MIDI MPU401: Read status port =3D 0x3f MPU401: Read data port =3D 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 =3D 0x3f MPU401: Read data port =3D 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 =3D 0x3f MPU401: Read data port =3D 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 =3D 0x3f MPU401: Read data port =3D 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 =3D 0x3f MPU401: Read data port =3D 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 =3D 0x3f This output comes much slower than that of SPG (you can see that from t= he lines "MPU401: Processing IO callback, ... bytes" that I mentioned a= bove which are much denser here). I assume there are far too few lines= saying "MPU401: Read status port =3D 0x3f", so there is a pretty high = number of bytes still in the queue. What is responsible for reading fr= om that buffer? Is it the DOS program, FreeDOS or Dosemu? On "real" (= non virtual) systems with old hardware and MS DOS the MIDI input appare= ntly works with Score. What does a "real" system with MS DOS do that D= osemu/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 runnin= g FreeDOS? (I have MS DOS 6.2 here.) Thomas W. ______________________________________________________________ Jeden Monat 1 hochkar=E4tiger maxdome-Blockbuster GRATIS! Exklusiv f=FCr 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html