public inbox for linux-msdos@vger.kernel.org
 help / color / mirror / Atom feed
From: x.zupftom@web.de
To: Dave Phillips <dlphillips@woh.rr.com>
Cc: linux-msdos@vger.kernel.org
Subject: Re: MIDI input
Date: Wed, 18 Jun 2008 22:47:03 +0200	[thread overview]
Message-ID: <171504869@web.de> (raw)

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

             reply	other threads:[~2008-06-18 20:47 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-18 20:47 x.zupftom [this message]
2008-06-18 22:09 ` MIDI input Dave Phillips
  -- strict thread matches above, loose matches on Subject: below --
2008-07-12 13:38 x.zupftom
2008-06-18 22:41 x.zupftom
2008-06-19 12:11 ` Dave Phillips
2008-06-18 13:09 x.zupftom
2008-06-18 13:37 ` Dave Phillips
2008-06-16 21:22 x.zupftom
2008-06-16 23:23 ` Dave Phillips
2008-06-15  9:42 x.zupftom
2008-06-16 16:38 ` Dave Phillips
2008-06-13 21:54 x.zupftom
2008-06-13 18:09 x.zupftom
2008-06-12 23:47 x.zupftom
2008-06-13  0:50 ` Dave Phillips
2008-06-12 22:12 x.zupftom
2008-06-12 22:57 ` Tony Borras

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=171504869@web.de \
    --to=x.zupftom@web.de \
    --cc=dlphillips@woh.rr.com \
    --cc=linux-msdos@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox