Re: Bad MIDI performance : 10ms latency instead of the expected 1-1.5ms

Benno Senoner (sbenno@gardena.net)
Thu, 26 Aug 1999 21:38:10 +0200


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=1000 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.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/