USB Signal Quality
Isochronous (continuous) transfer mode uses error checking but no retransmission in case of CRC (Cyclic Redundancy Check) errors. Electrical noise on USB signals causes CRC errors and thus data loss. This leads to audio signal distortions (clicks). This means that an USB audio device can work only if USB signal quality is good and no CRC errors occur. Most other USB device types (e.g. FLASH drive, printer) are based on bulk transfer mode which uses automatic retransmission in case of errors. These kind of devices are much more tolerant with respect to USB signal distortion. For this reason, it’s possible that a mouse, keyboard, FLASH drive, printer etc. works well on a given USB port using a given cable while an audio device does not work with the same port or cable.
Below is a list of possible sources for this kind of problems.
Quite often the USB cable (or its connectors) is the cause for USB signal distortions. Some cables available in the market are not suited for USB 2.0 high-speed communication (480 Mbps). Also the maximum allowed cable length of 5 meters should not be exceeded.
- Solution: Try using a different cable. Try a shorter cable (less than 2 meters).
- Tip: Stay away from special USB cable offerings optimized for audio, or cables which include additional functionality such as status LEDs. We highly recommend cables from Wireworld Audio. Don't hesitate to ask us for details.
PCB mounted USB ports
We found that on some PC main boards (or laptops) signal quality of some USB ports is insufficient for isochronous streaming. The cause could be that on the PCB USB signals are routed close to a switching voltage regulator, for example.
- Solution: Try using a different USB port to connect the audio device.
Front panel mounted USB ports
External USB ports (mounted on a front panel or elsewhere in the PC case) are a possible source of USB signal distortion. Quality of cables or connectors used to connect the external USB port with the main board could be insufficient, or internal cables are placed close to the power supply or other sources of electrical noise.
- Solution: Try using a USB port that is mounted directly on the main board.
Misbehaving Kernel-Mode Components
A USB audio driver must be able to process incoming and outgoing asynchronous data streams in real time. The driver gets called periodically by the operating system kernel to perform its processing. The period of the calls is determined by the buffer size the driver uses to exchange data with the USB. This buffer size is adjustable and is referred to as "Streaming Buffer Size" or "Streaming Buffer Depth". If one of the processing calls is delayed by more than one buffer size interval, data loss will occur. Delayed processing calls are the most common source for audible signal distortions. This problem is referred to as DPC latency issue. Deferred procedure call (DPC) is Microsoft’s term for processing callbacks issued by the kernel. In this context, "DPC latency" is not to be confused with audio latency which is not directly related.
This section lists some potential sources of DPC latency issues. The information is based on Lindemann's own experience and on user feedback.
W-LAN or Ethernet device drivers
Quite often it can be observed that device drivers for W-LAN adapters monopolize the CPU in kernel mode as described in the previous section. A few Ethernet drivers do also have such issues.
- Solution: Try to find an updated W-LAN driver, or try an older version of the driver. If no suited driver can be found, disable W-LAN (or Ethernet) while audio streaming is running.
On-access virus scanners or personal firewall software
Normally, this kind of software includes some kernel-mode component to perform filtering or scanning work in the kernel. Often, such components keep the CPU busy for long periods which causes kernel processing calls (DPCs) to be delayed.
- Solution: Disable or uninstall the software. Try using a different product with similar functionality.
Thesycon’s DPC Latency Checker is a free Windows tool that analyses the capabilities of a computer system to handle real-time data streams properly. It may help to find the cause for interruptions in real-time audio and video streams, also known as drop-outs. Please visit http://www.thesycon.de/eng/latency_check.shtml for free download and more information on how to use this tool.