As you probably know, I play electronics for a long time now with several computers, sound cards.
Let me talk about my experience.
Actually I use a RME fireface 400 connected on the firewire port of my computer and as I play most of time in live, the latency can't be more than 128 samples, often 64.
With this latency I have discovered that generally when the CPU is above 50% crackles start to appear on audio out, especially when I use a lot the graphic engine: scrolling the IB or scrolling into a patch.
I spent many years trying to understand how I could improve this behavior and I found today:
the graphic card has an higher priority than the firewire port. So each time Usine draws something the firewire, set as a background task, is suspended, and audio crackles appear...
So now, the question is: how to change priorities?
Simple: change what we call "IRQ priority".
This works on W7 and vista, not tested on XP.
1) Start by opening the System Information utility (msinfo32.exe), and navigating to System Summary\Hardware Resources\IRQs to view the IRQs in use on your system, and the devices using them.
Try to find the IRQ of your firewire port (mine is 19) and those of the graphic card (mine is 4294967294, strange but not my fault..)
2) Next, open the Registry Editor, (regedit.exe) and navigate to HKEY_LOCAL_MACHINE\SYSTEM CurrentControlSet\Control\PriorityControl.
3) Create a new DWORD value in this key, and call it IRQ#Priority, where # is the IRQ of the device you wish to prioritize (e.g., IRQ13Priority for IRQ 13, which is your numeric processor).
I my case it was IRQ4294967294Priority (graphic) and IRQ19Priority (firewire)
4) Double-click the new value, and enter a number for its priority. Enter 1 for top priority, 2 for second, and so on.
in my case the following lines where added in the registry:
IRQ4294967294Priority DWORD 0x00000020 (32) (graphic set as low) IRQ19Priority DWORD 0x00000001 (1) (firewire set as high) IRQ13Priority DWORD 0x00000001 (1) (numeric processor set has high)
Win32PrioritySeparation DWORD 0x00000026 (38)
to give more cpu time to foreground applications.
5) Close the Registry Editor and reboot your computer when you're done.
Now Usine can work with 80% cpu without any crackles...
For me it's like a miracle, and my computer will keep going on for 2 more years...
This works in a particular case with a firewire sound card. I'm sure you can obtain similar results with an USB card:
Setting IRQ8Priority (CMos) to high?
Find the USB port IRQ?
woa sound like a clever trick. reorganize priorities mmm gonna check that hot tip. thanks
Nice one! I'll also test with my expresscard multifce II. Also in some cases disabling write combing in the display setup can help.
And of course DPC latency checker can be invaluable for tracking down driver conflicts with realtime audio.
Also worth noting is I have had issues with turbo mode (automatic overclocking) enabled for my i7 cpu.
I just had a minute to check this out on xp and the registry keys are all there, so it might well work for it as well - I'm not game to try it as so far all my soundcards work fine up to 80% CPU and if it ain't broke...
Last edited by Clearscreen (2010-09-28 13:02:41)
1°) Thanks a lot !!! You save my "Live" with this tips ;-)
2°) The benefit of this IRQ priority is truly magical, in particular in my laptop (SONY VAIO VGN-AW21M) with the DPClat (latency checker http://www.thesycon.de/deu/latency_check.shtml ) all the test is in green zone.
This is realy a step to stability of you computer in live, and believe me when you make concert and performance with laptop and other computer your very attentive at this sort of tips.
Thanks a lot Senso to share that.
now I've to find a way to adapt this to my usb card ( m-audio)
can find easily the graphic card but the sound card don't appear with his reel name, so not so easy..
but i'll test and tell you
I will try it too for usb card, and windows XP.
for knowing usb IRQ used by your soundcard:
sorry I don't know the english translation
1 propriété systeme, onglet materiel
2 gestionnaire de peripherique , then select "controleur de bus usb"
3 by cliking on each controller and chose "properties" and checking the advanced tab for each port, you will see your interface with the ressources it needs ( %) on the used usb port. when you have find this port, choose the "ressource" tab , and you will see the IRQ used.
that's a great tip, I hope it will work with XP
Thanks senso!, do this method applies to internal sound cards too?
IMHO the article below should shed some light about the problems with modern graphics cards and windows 2d performance:
http://www.tomshardware.com/reviews/2d- … ,2539.html
Hi , this a very fantastic good new
I hope it is the end of problems with sound cards
@gurulogic I tested my computer with DPC latency checker
and good surprise i'm in the green zone
good evening all
i'll try this week end quietly
hmmm. I use a hammerfall cardbus, and looks like my graphics shares the same IRQ with it.
Reallocating IRQ's.... now there's a challenge I haven't thought about for a while. Maybe I will look into it again.....
Similar as yours: in my machine, the integrated sound (the only one I use) shares the same irq with the video card.
As Multiphone, you can try to boost the IRQ priority anyway. It can improve the overall performance.
Anybody had any luck with XP yet? I made a quick try yesterday and the crackling increased... If at all it works in XP, I'm pretty sure I have to reallocate some IRQs though, as there lots of conflicts and I'm not totally sure what everything is actually.
I thought was done messing with IRQs in previous millenium - maybe not.
First try to set higher the priority of 'system timer' and the 'real time clock'
this link is related to linux but, anyway is kind of informative about irq and sound:
Thanks for the tip!
Thanks for this tip - a reference was listed on a forum I belong to.
I believe this tip explains strange behaviour I have seen when scrolling in Cubase and Reason under Win7, using a Presonus FW interface. I will try it ASAP.
I have also noticed lag in audio when 'aftertouch' engages on my Axiom, which is connected via USB, so it may be a similar situaion: that I could lower the USB priority to be under that of Firewire.
Another tip for Win7 - or solution, rather. I first had problems with getting my Presonus Firestudio Project to work with the native drivers under Win7 - it worked fine with XP. Had to run ASIO4ALL to not get clicks and drop-outs.
But then I had a brainwave, and I set both Cubase and Reason as 'midi clock slaves' - meaning the Presonus acted as master.
It all worked fine after that.
Not even Presonus tech support appeared to know about this - they looked at my system and could not solve my problem, said everything looked fine. They were most appreciative once I sent them a note about 'this trick'.
My guess is this could be something that has more to do with Win7 and FW, than Presonus as such.
So, if you have problems under Win7 with FW cards - drop-outs and such - ensure you are setting your DAW as 'midi clock slave'.
Sven - New Zealand
@ woodslanding / bsork:
same here: hammerfall pcmcia shares with graphics (xp).
no way to change that, except change from ACPI to "standard-pc" in device manager via "update driver" on "computer", then u can manually assign irq. but that seems to be a big hassle... i will not test it
i´ll rather get a fireface uc instead, each usb bort has own irq.
Last edited by mat (2010-11-13 11:37:32)
as im always on the hunt for max performance i was immediately fascinated by the topic.
same problem since a long time *aaarrrggg*: crackeling on only 50 percent prozessor, i always was
wondering about that (even thinking about a mac.....)
so now first time i looked up my irqs. i have 190 irqs on win7 64, plus the irq 4294967294 for graphic.
3 physical usb ports on my acer3820 with i5prozessor and a old m-audio mobile pre usb (yet..., running
good on 256 samples, but if i can pimp the card to maybe 128, well, dont need to buy something new )
so whichone is the usb port i plug in the card? (i use always the same port, and only THIS port wants to
have max. priority ... others for mouse or midi or maybe soon some kind of touchpad don´t really)
in device manager only 2 ports show up.... (2 root hub, 2 host controller, 2 generic usb hub....)
and only 2 irqs for usb in msinfo32.exe.
the card itself does not show its irq in device manager.
there are 2 ports on the left side of the laptop and 1 on the right side, maybe the 2 are together, but who can
any suggestions anyone?
Win32PrioritySeparation DWORD 0x00000026 (38) to give more cpu time to foreground applications."
first: i dont understand that... (ahhm, where to set or write what kind of message. just make a new value
with this?) (i´m no programmer at all, not even scripts)
and second: asio is a background application as far as i know.... steinberg recommends to set priority to
background apps for best asio performance in processor scheduling . how does this go together?
thanx for helpin
Last edited by mat (2010-11-13 21:23:36)