Linux Sound subsystem development
 help / color / mirror / Atom feed
From: Benno Senoner <sbenno@gardena.net>
To: linux-sound@vger.kernel.org
Subject: Re: Bad MIDI performance : 10ms latency instead of the expected 1-1.5ms
Date: Thu, 26 Aug 1999 19:38:10 +0000	[thread overview]
Message-ID: <marc-linux-sound-93569678302702@msgid-missing> (raw)
In-Reply-To: <marc-linux-sound-93568883025986@msgid-missing>

On Thu, 26 Aug 1999, Jaroslav Kysela wrote:
 
> > I wrote this to measure the MIDI output-to-input delay.
> > I tried both with blocking I/O and non-blocking I/O.
> > Unfortunately I get bad values in both modes:
> > about 11.5ms , and this is exactly the MIDI transfer time (1.3ms) plus
> > 10ms = 1 jiffie.
> > If I run the test on a HZ\x1000 kernel I get about 2ms.
> 
> MPU401 is very bad hardware for transmit, because it doesn't use interrupt
> to determine that Tx FIFO is free. Some vendors offers large FIFOs
> (8,12,16 bytes), but unfortunately guys at Creative designed SB AWE with
> 2 byte FIFO.

Hmm .. so you are saying that this is a HARDWARE limitiation ?
How does Windoze manage this ?

> 
> This doesn't explain why your latencies are so big for OSS/Free, because
> OSS/Free code uses polling mode (busy loop for transmit).

What is the main drawback of this ?
What happens when I send a block of 3000 bytes to the midi device under
OSS/Free ?
A 100% CPU usage for 1sec ?
I can't believe this.

> 
> ALSA uses system timer to avoid busy loop, but the performance depends on
> your HZ value:
> 
> 100Hz, 2 byte FIFO = 200bytes/sec
> 100Hz, 8 byte FIFO = 1600bytes/sec
> 100Hz, 12 byte FIFO = 2400bytes/sec
> 100Hz, 16 byte FIFO = 3200bytes/sec

200bytes/sec is just rudiculous , how do you plan to drive an external synth
with that little MIDI bandwidth ?
Many songs uses up much of the 3000 bytes/sec bandwidth, especially
when there are many  controller/pitchbend events present.

Do you know if the RX FIFO of the MPU401 has the same problem (no interrupt) or
is there an interrupt present ?

Is there no other way to make the MIDI response better, without increasing HZ
to 1000 ?

Does this mean that sequencers running under Windows have the same problems
as we in Linux on the AWE64 ?
Or does Windows a "sane" busywaiting all the time ?  :-)
With these big midi delays you can't simply use your PC to act as a midi-tru
box, playing an external synth via masterkeyboard connected to the midi-in.  

> 
> Not affected hardware:
> 
> 	GUS soundcards
> 	AudioPCI chips (ES1370/1371/1373)

If this is true, then I will throw away my AWE64 and buy an AudioPCI
:-)



regards,
Benno.

  parent reply	other threads:[~1999-08-26 19:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-26 17:34 Bad MIDI performance : 10ms latency instead of the expected 1-1.5ms Benno Senoner
1999-08-26 18:42 ` Bad MIDI performance : 10ms latency instead of the expected Jaroslav Kysela
1999-08-26 19:38 ` Benno Senoner [this message]
1999-08-26 20:20 ` Alan Cox
1999-08-26 20:41 ` Alan Cox
1999-08-26 20:42 ` Bad MIDI performance : 10ms latency instead of the expected 1-1.5ms Benno Senoner
1999-08-26 20:51 ` Bad MIDI performance : 10ms latency instead of the expected Jaroslav Kysela
1999-08-26 21:04 ` Alan Cox
1999-08-26 21:53 ` Benno Senoner
1999-09-18 21:26 ` Bad MIDI performance : 10ms latency instead of the expected 1-1.5ms Peter Enderborg

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=marc-linux-sound-93569678302702@msgid-missing \
    --to=sbenno@gardena.net \
    --cc=linux-sound@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