Unrecognized diSturbing Bus
In the beginning of 2000 RME made some stir by publishing this Tech Info about an obvious problem of USB and low latency audio.
After the first release we were flooded with feedback: other manufacturer's, magazines and users reported their experiences. In magazines and online forums many reports about bugs and compatibility problems when using USB were posted. The universal bus seemed to cause a lot more problems as many people had taken notice of so far.
Well, USB is part of our today's computers, and they cause problems every day (even without USB....) This makes it very difficult to find the exact cause of an error or misbehavior. For example: buggy USB drivers are (of course) a problem of the corresponding manufacturer, and not a general problem of USB. A good source of information on everything around USB is the website www.usbman.com. Here you'll find Tips & Tricks, compatibility tests, background information on drivers and chipsets, and much more.
But we are only interested in the low latency problem, as it directly hits our products. The first information was more mysterious, but then more and more facts allowed a serious analysis. Meanwhile the background and basics are all clear, and allow us not only to describe the problem, but also to offer a remedy.
With Windows 98 SE and Windows 2000 two major operating systems offer ease of use and full Plug and Play for any USB device. The number of MIDI interfaces using USB grows every day, the number of USB-only ones too.
However some manufacturer's have overlooked a major disadvantage of USB: not only that USB still proves to slow down the system in many tests, it can also cause dropouts when a busmaster device simultaneously operates at lowest latency. This makes working on a professional level at low latency with audio-/MIDI sequencers impossible. This Tech Info gives some background information about the effect and how to avoid it.
Conditions for the problem to occur:
How USB works
As soon as a USB device is attached to the USB port it will be recognized and installed. Immediately a communication 1000 times per second (each millisecond) is established. This alone won't cause noticeable disturbances, but as soon as a data transfer of larger amounts happens, USB can hog the PCI bus or delay threads of other tasks. Although using only a low data transfer rate (12 Mbit/s) USB behaves more performance-lowering as a 100 Mbit PCI network card.
The Intel BX Chipset...
...is the reference for highest performance and compatibility. Just motherboards using this chipset suffered from heavy dropouts in low latency tests with our cards, from random clicks to heavy crackling. Due to the fact that most manufacturer's used this chipset, and the alternatives (VIA) were unusable at that time, the integrated USB controller wasn't recognized as problem source. However it became clear soon, that the controller did not only access the PCI bus once every millisecond, but - at higher data rates - for the time of two accesses, so for more than a millisecond.
As this effect did only occur at higher data rates the obvious solution to this problem seems to be to lower the data rate. USB can use several transfer modes. Dropouts showed up with all devices configured for fullspeed mode (12Mb/s) and bulk transfer. That's one part of the problem: you'll find only mouse and keyboard as lowspeed devices (1.5Mb/s), most other devices like Scanner, Webcam or MIDI interfaces will show up as fullspeed. Additionally the USB Device Class Definition for MIDI devices only mentions the bulk transfer for MIDI interfaces. And there's more: USB audio devices use the isochronous transfer mode for even higher data rates, and even more disturbance.
Instead of the bulk transfer mode the interrupt transfer mode seems to be more suitable for MIDI interfaces. Although there is no support for high data rates (nevertheless fully sufficient for MIDI), it offers better timing control of the data transfer (whereas the bulk transfer mode is specified for data which are 'not time critical'....) Using this mode no problem occurred anymore.
BX = Ok!
One more reason why it needed so long to identify the 82371AB as cause for the dropouts: (meanwhile) there exists a large number of motherboards using the BX chipset and 82371AB causing no problem at all! Thanks to a great number of comparison tests we were able to verify that low latency audio plus USB is only a problem for older BX motherboards, like the Asus P2B series or the popular P3B-F. More precisely: all BX boards having only 2 USB ports. All newer boards include an additional hub for at least 4 USB ports (like the Asus CU-BX), and with these boards the problem is no longer present.
This presents a simple solution for all users having such 2-port boards, how to get better USB functionality: by simply buying an additional inexpensive USB PCI card, providing two USB ports, which can be used instead of those on the motherboard. The picture shows a standard model with Lucent chip, available for less than 35 US$ in most computer stores. A list of recommended upgrade cards can be found at Usbman.com.
As the effect is only present when all of the four conditions above are met, it's your choice to either raise the latency or to use non-critical USB devices. For example the Midex-8 from Steinberg and the emagic MT4 do not cause dropouts. According to our tests also MIDI interfaces using a serial or parallel interface, and internal ones do not cause dropouts. Steinberg did optimize the driver of the Midex-8 so that it can run even 4 devices (32 MIDI I/O ports) at once on 2-port BX boards. Whereas the Midiman USB Midisport 2x2, although providing only 2 ports, causes heavy dropouts, which presents an interesting insight on the efficiency of its USB usage. Unfortunately this performance difference normally stays invisible, as Windows does not include any tools for a serious USB performance analysis.
According to our tests non-USB MIDI interfaces with serial or parallel interface, and internal ones (PCI/ISA) do not cause any dropouts. And if you own an interface with both USB and serial interface (Unitor 8 etc.) you should prefer its reliable serial COM port.
According to our tests motherboards with Intel's i815, VIA's KT133 and 694 chipset also operate problem-free at low latency with USB active. With all this in mind the subject USB can get an 'all clear signal' from our side, because all newer computers don't have any problem, and older ones can be updated for a few bucks, or be used with un-critical USB hardware. Please note that this signal/statement is only valid for the combination RME products, low latency audio and USB MIDI interfaces!
In the world wide web you will still find many negative reports on USB. For example you can read here why USB suffers in general from bad MIDI timing compared to other solutions (this is not true when using timestamps, i.e. AMT emagic or LTB Steinberg.) Even saying NO to all USB at all won't help much. The reality is that today nearly all inexpensive MIDI interfaces are USB-only ones, so you have to live with it, in one way or the other...
Copyright © Matthias Carstens, 2001.
Copyright © 2002 RME. All rights reserved.
RME is a registered trademark.