Quick Sign In:  

Forum: Old versions

Topic: [HW]How to solve: issues with bad sound, unstable devices, pops and crackles

This topic is old and might contain outdated or incorrect information.

sbangsPRO InfinityMember since 2004
before reading this guide have you tried "autolatency" on the proformance settings?


When using USB devices such as soundcards

Controllers are given an irq number

If two devices happen to have the same number this leads to issues such as popping , poor sound quality , constant crashes controller failures and a wide range of issues

What is an IRQ

IRQ stands for Interrupt ReQuest and refers to special numbered channels that are used by devices to get the processors attention, for example, when you press a key on your keyboard this sends a signal to the processor via an IRQ channel (usually IRQ 1) to let it know that it needs to process some data.

IRQ conflicts can occur when new hardware is installed or reconfigured, for example, it can cause problems if you have your mouse on COM 1 (IRQ4) and a modem on COM 3 (IRQ4), below is a list of the default assignments for IRQ channels in Windows XP.


Not all devices require IRQ lines, which is good news because in modern (post IBM XT) computers, we only have 16 of them. Of those, 3 are already dedicated to the main system board itself - the system timer, keyboard, and memory parity error signal. That leaves only 13 for all the other devices connected to your computer. This is why IRQ conflicts are probably the #1 problem faced by computer users when they add hardware to their computer.

Example Conflicts


Example Conflicts


Common Channels :
IRQ DEVICE USED in AT, 386, 486, and Pentium Computers
0 System Timer
1 Keyboard Controller
2 Tied to IRQs 8-15
3 COM 2
4 COM 1
5 LPT2 or Sound Card
6 Floppy Diskette Controller
7 LPT 1
8 Real Time Clock
9 Substitutes for IRQ 2
10 Not Assigned
11 Not Assigned
12 PS/2 Mouse Port
13 NPU (Numerical Processing Unit)
14 Primary Hard Disk Controller
15 Secondary Hard Disk Controller




IRQ Devices used and potential conflicts

0 This IRQ is used within the system board for system timing. If a conflict arises with this IRQ chances are the system board is bad, use a diagnostic program to determine if this is the case.
1 This IRQ is assigned to the keyboard. Its never available to other add-in cards. Again if this is the problem, its most likely a problem with the system board.

2 This IRQ was assigned to older EGA video cards. Beware, IRQ 9 uses IRQ to communicate with the CPU, therefore this IRQ should only be used under extreme circumstances.

3 This IRQ is assigned to the serial ports: COM 2, and COM 4. Avoid setting other devices to this IRQ since mice, modems, and other devices are set to use this IRQ.

4 This IRQ is assigned to the serial ports: COM 1, and COM 3. Remember IRQ lines for the most part cannot be shared, so generally you can't have devices on COM 1 and COM 3 that are both active and working.

5 This IRQ is assigned to a secondary printer port LPT2, but in the absence of a second printer port, it is used primarily for sound cards, or as an alternative IRQ for the COM ports.

6 This IRQ is assigned to the diskette controller. Few if any devices leave this IRQ as an option, since most systems have a floppy drive built into them.

7 This IRQ is assigned to the first parallel port LPT1, its also made available to other add-in cards, but should not be used for anything except the printer port to avoid conflicts.

8 This IRQ is reserved for the internal real-time clock. This line is never available to other add-in cards. If there is a conflict here, its an indication of a motherboard problem.

9 This IRQ uses IRQ 2 to talk to the CPU, so it has a high priority. Its generally used for network cards.

10 This IRQ is left open for network cards, sound cards, SCSI host adapters.

11 This IRQ is a common one for SCSI host adapters, but can also be used for a variety of other devices.

12 This IRQ is used for the PS/2 style mouse port included on many motherboards. If the PS/2 mouse port is enabled in the system's setup program, and you're using a PS/2 connection mouse, don't use this port for anything else, otherwise its an available one.

13 This IRQ is reserved for the Numeric Processing Unit (math coprocessor) It is never available for anything else.

14 This IRQ is assigned to the primary hard drive interface

15 This IRQ is assigned to the secondary hard drive interface.

Priority of the IRQ:

* On ISA (/PCI) Bus:

0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7

* On PCI Bus:

> 16 > 17 > 18 > 19 > 20 > 21 > 22 > 23

Viewing your current IRQ assignments:

To view your current IRQ assignments you can open Device Manager.
1. Click on START, click on CONTROL PANEL.
2. Click on Performance and Maintenance.
3. Click on System.
4. Click on the Hardware tab.
5. Click the DEVICE MANAGER Button.
Once you have Device Manager open, select VIEW from the toolbar menu and then click Resources by Type.

Double click on Interrupt Request (IRQ) as seen in fig



note a soundcard clashes with a video card

in this case you must change the resource

Changing IRQ Settings:

Warning: Changing system resources such as IRQ channels can result in your computer not functioning correctly, always make a note of the settings before you change anything so you can restore them back if required.

If you do have a conflict and need to change an IRQ setting:
1. Right click on the device in the list (see above) and then select properties.
2. Click the Resources tab.
3. Remove the tick from the Use automatic settings option.
4. Select a non-conflicting configuration from the pull down box.
5. Click OK
You may find you cannot manually change your IRQ settings (the Use automatic settings will be greyed out), this is usually related to the ACPI function used by Win XP.

To resolve conflicts with PCI or ISA cards try manually setting them in your motherboard's BIOS or try a different slot for the newly installed device, you will usually find that by changing the slot you will change the IRQ channel as well.

I hope this infomation proves useful in resolving you problem as always

-------------------------------------

All content on this guide © Copyright 2001-2006 helpwithpcs.com

Before you follow this tutorial you must read and agree to the terms of their disclaimer.

http://www.helpwithpcs.com/upgrading/change-irq-settings.htm




 

Posted Wed 29 Nov 06 @ 4:00 pm
dydy1PRO InfinityMember since 2006
Skyfxl wrote ,"To resolve conflicts with PCI or ISA cards try manually setting them in your motherboard's BIOS or try a different slot for the newly installed device, you will usually find that by changing the slot you will change the IRQ channel as w"

can you give me some detailed infos on how to manually change the slot for the newly installed device? thank you in advance!

 

Posted Thu 30 Nov 06 @ 3:12 pm
sbangsPRO InfinityMember since 2004
no joy on device manager?


ok as your computer starts

press F1 or F2 or del

depending on your machine and look

on the bios for hardware , or intergrated devices , and then on these menus look for IRQ assignments

as this varies from bios to bios

you may need to consult your manufacturers websites for info on this
 

Posted Thu 30 Nov 06 @ 3:20 pm
djcelPRO InfinityModeratorMember since 2004
For people who are interested by technical things:

Quote :
On Windows NT-based systems, there are two artificial processes: Interrupts and DPCs.
These processes reflect the amount of time the system spends servicing hardware interrupts and Deferred Procedure Calls (DPCs), respectively.
High CPU consumption by these activities can indicate a hardware problem or device driver bug.


To test DPCs, download this tool:

DPC Latency Checker

http://www.thesycon.de/eng/latency_check.shtml


www.thesycon.de wrote :
Background information: Why drop-outs occur

Processing of streaming data in real-time is a very challenging task for Windows based applications and device drivers. This is because by design Windows is not a real-time operating system. There is no guarantee that certain (periodic) actions can be executed in a timely manner.
Audio or video data streams transferred from or to an external device are typically handled by a kernel-mode device driver. Data processing in such device drivers is interrupt-driven. Typically, the external hardware periodically issues interrupts to request the driver to transfer the next block of data. In Windows NT based systems (Windows 2000 and better) there is a specific interrupt handling mechanism. A device driver cannot process data immediately in its interrupt routine. It has to schedule a Deferred Procedure Call (DPC) which basically is a callback routine that will be called by the operating system as soon as possible. Any data transfer performed by the device driver takes place in the context of this callback routine, named DPC for short.
The operating system maintains DPCs scheduled by device drivers in a queue. There is one DPC queue per CPU available in the system. At certain points the kernel checks the DPC queue and if no interrupt is to be processed and no DPC is currently running the first DPC will be un-queued and executed. DPC queue processing happens before the dispatcher selects a thread and assigns the CPU to it. So, a Deferred Procedure Call has a higher priority than any thread in the system.
Note that the Deferred Procedure Call concept exists in kernel mode only. Any user-mode code (Windows applications) runs in the context of a thread. Threads are managed and scheduled for execution by the dispatcher.
While there is a pre-emptive multitasking for threads, DPCs are executed sequentially according to the first in, first out nature of a DPC queue. Thus, a sort of cooperative multitasking scheme exists for Deferred Procedure Calls. If any DPC runs for an excessive amount of time then other DPCs will be delayed by that amount of time. Consequently, the latency of a particular DPC is defined as the sum of the execution time of all DPCs queued in front of that DPC. In order to achieve reasonable DPC latencies, in the Windows Device Driver Kit (DDK) documentation Microsoft recommends to return from a DPC routine as quick as possible. Any lengthy operation and specifically loops that wait for a hardware state change (polling) are strongly discouraged.
Unfortunately, many existing device drivers do not conform to this advice. Such drivers spend an excessive amount of time in their DPC routines, causing an exceptional large latency for any other driver’s DPCs. For a device driver that handles data streams in real-time it is crucial that a DPC scheduled from its interrupt routine is executed before the hardware issues the next interrupt. If the DPC is delayed and runs after the next interrupt occurred, typically a hardware buffer overrun occurs and the flow of data is interrupted. A drop-out occurs
 

Posted Thu 30 Nov 06 @ 4:18 pm
djcelPRO InfinityModeratorMember since 2004
Very technical too: an interesting tool provided by Microsoft

RATTv3

Quote :

RATTV3 is a tool for auditing the execution times of interrupt service routines (ISRs), deferred procedure calls (DPCs), and timer DPCs on systems that are running Windows XP. RATTV3 is designed to help developers of drivers and other kernel mode components audit the ISR and DPC execution time of their components. This tool will help developers minimize ISR and DPC execution time and meet upcoming requirements for Windows Vista


http://www.microsoft.com/whdc/DevTools/tools/RATT.mspx

Please then send us the report in order to analyse it
 

Posted Thu 30 Nov 06 @ 4:45 pm
djcelPRO InfinityModeratorMember since 2004
 

Posted Mon 04 Dec 06 @ 5:01 pm
sbangsPRO InfinityMember since 2004
DMA Conflicts a more advanced problem

DMA - direct memory acess

like on processors with irw

the system memory is shared between devices on dma channels


DMA, Multiple Devices and Conflicts:
http://www.pcguide.com/ref/mbsys/res/dma/

Like interrupts, DMA channels are single-device resources. If two devices try to use the same DMA channel at the same time, information will get mixed up between the two devices trying to use it, and any number of problems can be the result. DMA channel conflicts can be very difficult to diagnose. See here for more details on resource conflicts.

It is possible to share a DMA channel among more than one device, but only under limited conditions. In essence, if you have two devices that you seldom use, and that you never use simultaneously, you may be able to have them share a channel. However, this is not the preferred method since it is much more prone to problems than just giving each device its own resource.

One problem area with DMA channels is that most devices want to use DMA channels with numbers 0 to 3 (on the first DMA controller). DMA channels 5 to 7 are relatively unused because they require 16-bit cards. Considering that DMA channel 0 is never available, and DMA 2 is used for the floppy disk controller, that doesn't leave many options. On one of my systems I wanted to set up an ECP parallel port, a tape accelerator and a voice modem in addition to my sound card. I ran out of DMA channels between 1 and 3 very quickly. I still had DMA channels 6 and 7 open but could not use them because all the devices I wanted to use were either on 8-bit cards or wouldn't support the higher numbers for software reasons.

Speaking of the ECP parallel port, this is another new area of concern regarding DMA resource conflicts. Many people don't realize that this high-speed parallel port option requires the use of a DMA channel. (Your BIOS setup program will usually have a setting to select the DMA channel, right under where you enable ECP. This should be a good hint but still a lot of people don't notice this. :^) ) The usual default for this port is DMA 3, which is also used by many other types of devices. The conflict resolution area of the Troubleshooting Expert can sometimes help with these situations.



dma chart
 

Posted Wed 06 Dec 06 @ 11:29 pm
djcelPRO InfinityModeratorMember since 2004
 

Posted Sun 17 Dec 06 @ 10:09 pm
djcelPRO InfinityModeratorMember since 2004
Latency
With the latency, you can adjust how long time it takes from you are changing a control in VirtualDJ until you will actually hear the result. Low latency is generally preferred. Not all sound API's and sound cards can run in low latency mode. Furthermore, to use a low latency value, you may need a fast CPU. You can try adjusting the latency when you are mixing in order to find the best value. When set too low you will hear cracks in the sound output and the sound speed may slow down.

To improve latency you may want to favor background processes under System in the Windows Control Panel.

Select the good value for your latency :

Quote :
If the audio buffers in your audio application are set too low, you may experience clicking, popping, and drop-outs. Correct buffer settings will differ from machine to machine depending on your particular setup and application. Your motherboard, hard disk, processor, and RAM are all factors in audio recording/playback performance. You will set the size of the audio buffers in your audio application; so refer to the given audio application’s documentation for buffer setting instructions.


(link to VirtualDJ software: By default, we recommend to set "Auto" for latency in the performance pannel of VirtualDJ v4.x)

Latency vs. Two sound cards

It increases the overall latency of the system to use several sound cards at the same time.
Thus we recommend to use one multichannel card instead.
 

Posted Wed 03 Jan 07 @ 2:09 pm
djcelPRO InfinityModeratorMember since 2004
This video (using windows media player) explains how to reduce graphics acceleration and optimize Processor Scheduling to acheive a lower latency from your audio card:

alt : graphics_performance.wmv

Turning off System Restore in Windows XP Professional may reduce pops, click, and stuttering during audio playback.
 

Posted Mon 08 Jan 07 @ 1:50 am
 

Posted Sun 28 Jan 07 @ 1:57 pm


(Old topics and forums are automatically closed)