The following post comes from my colleague Steve Ball, Senior Program Manager for Sound in Windows Vista, and continues his team's on-going series on how Windows Vista treats various forms of audio.
Part I: Why does my Windows sound sometimes "glitch?"
Windows is a rich and complex OS designed for multi-tasking users whose tasks must share access to scarce system hardware and resources. Unfortunately, despite multiple decades of incredible advances in PC and CPU architectures, there are non-trivial, complex interactions between applications, processes, and devices in even the most advanced personal computers that make a supposedly "easy" task -- like playing back music without occasional glitches -- much more difficult than it may seem at first glance.
Another way of thinking about this: it seems odd that a modern >$2000 PC may sometimes have trouble seamlessly playing back music when $20 CD players can effortlessly playback music without glitches.
So why do many $2000 PCs occasionally glitch while playing back music? The quick answer is this: Windows is not a single-function device like a CD player.
A slightly longer answer goes like this: even an average Windows machine today is commonly used simultaneously as a media player, word processor, presentation projector, spreadsheet number cruncher, authoring tool, photo editor, media server, video recorder, music composition tool, communications device, search engine, virus detector, data compressor and decompressor, and backup manager. And these are only a few of the possible tasks and processes that are run at the same time on the hundreds of millions of Windows machines that are in use today. Each of these tasks or processes, in isolation, would hardly tax the resources of modern PC hardware. But in our multi-tasking world, unavoidable resource conflicts do sometimes occur between the huge and diverse ecosystem of Windows hardware that enables these tasks. Even on the most expensive, brand-new machine, occasional glitches can occur if and when the system attempts to divide its finite resources among these multiple, diverse, independent, power-hungry activities.
What is a glitch?
A glitch is a perceivable error, gap or pop in the sound caused by discontinuities in the audio signal during playback or recording which result from processing or timing problems. Glitches during music playback can sound like a loud "pop" or like a brief slice of silence randomly inserted where your music should have been. Some customers have also described what "glitching" in their own words as:
For the purpose of this discussion, let's lump all of these descriptions together under one general class of problems and call these "glitching." While a glitch that happens during music playback can be annoying and unsettling, a glitch that occurs while you are recording or communicating with someone can result in frustrating and unacceptable data loss.
What causes my Windows sound and music to glitch?
Digital media processing is time-sensitive. Playback requires specific work to be performed by a given deadline -- otherwise presentation or data loss can occur. A "glitch" occurs when a deadline for time-sensitive processing is missed or when time-sensitive data is lost.
For example, in Windows Vista, playing back music involves "work" that must be done at least every 10 milliseconds so that there can be a continuous stream of music out to your speakers. The "simple" task of playing back music consists of the following steps, all of which must be completed before a strict deadline:
In this example, if any of these steps aren't completed on time, then the user could hear a glitch in the music playback.
Elliot Omiya, Architect on the Sound dev team, puts this 10ms cycle into perspective: "it's just slightly longer than the time it takes a nerve impulse to travel from the end of your finger to your brain (~8ms), known as NCV (nerve conduction velocity). Because synapses are like network switches, there is switching time involved before the nerve impulse gets to the brain, i.e., switching time adds to latency."
There is some good news in this story: Windows developers have made significant progress over the years in reducing glitching across key multimedia scenarios. For example, music playback on an otherwise "lightly loaded" system can be generally as smooth as that $20 CD player.
But because of the multi-tasking nature of Windows and the vast array of new and legacy hardware in the ~1B PCs that are used to playback music today, this allegedly simple process is made more complex by the resource sharing that occurs between applications and hardware. For example, it is not uncommon for certain older devices driver to occasionally "lock out" the CPU for 10-50ms, thereby causing obvious audio glitches. This is just one example of the kinds of complex hardware, driver, and OS interactions that can cause glitches.
In summary, some of the common sources of glitches today include:
My colleague on the Windows Sound team, Larry Osterman, also pointed out to me recently that humans are actually "hard-wired" to be disturbed by audio glitches. In an exchange about this topic, Larry observed that audio glitches are more obvious than video glitches because the ear's tuned to notice high frequency transients -- his visceral example of this idea is an image of a stick snapping in the woods behind you as an audio event that wakes you up before a bear wanders into your path.
In my second post on this topic, I'll go a bit deeper in sharing details of work we’ve done in Windows Vista to address some of the known sources of potential sound glitches, including some additional background about a recent discovery of an apparent connection between multimedia playback and network throughput.
I wish to acknowledge the contributions and suggestions from my colleagues Hakon Strande, Richard Fricks, Alex Ferreira, Lan Ye, Larry Osterman and Elliot Omiya for this series of posts.
(Warning: long rant ahead)
(Developers: if you want to help, skip the rant and scroll on down, past the line)
Well... I'm finally glad now that there's a possible closure (but no solution still) for the audio problems I have been facing here as of late.
The odd thing is, most people around here started experiencing problems soon after they buy their new computer; in my case, it happened a year after that, but very shortly after I bought a pair of Creative speakers to replace the aging 2.1 no-brand speakers that came with my old Acer computer. At first I thought it was the speakers, then the sound chip, then even the entire motherboard. I even bought a new external hard disk to back up my data in order to prepare it for any possible major repairs. Had my computer tugged from my home to the computer store, which was located in a busy, being-renovated shopping mall a 15-minute bus ride away (my computer's warranty has already expired by then), only to have the computer shop draw up a blank. Came home, and the problem was apparently solved until it started acting up again these past few days. I did more digging in Google and, after following a messy path of links, finally brought myself to this page and learn that the problem is with Windows Vista itself, and that I'm not the only one.
It's really unbelievable that there are so many claims of people using Windows XP and not having to suffer this problem, while Vista users have to go through this pain. I demand a lot from my music and audio (though I won't classify myself as an audiophile), and I could have expected the quality of music from my 1-year old computer with an operating system that's 2-years old to be much, much better than what I'm getting now - stutters, pops, drops, and cackles. This is just simply ridiculous - you guys spend 5 long years only to give us a product that breaks something that was working fine in a version that is now eight (!) years old?
And it just grates on my nerves when I try to play some music on my computer while doing other things, only to have it get messed-up like this. At it's worst, it could do this even when it was mostly idling!
I am now starting to see why there was such a big negative movement against Windows Vista - at first I thought the problems are not as bad as what the pundits were making it out to be (and in this day and age of fanboyism, you can't trust anyone's praise or criticism of anything until you use it yourself and see if it's what you need/want/like). Now, one year on, I am finally starting to see their light. Just a few days ago I spend more hair-pulling time trying to find a tweak for another Windows Vista annoyance (p.s. it's related to folder and file thumbnails, if you want to know), only to find that Microsoft has implemented an all-or-nothing solution built dead-in, with absolutely no way to change things around. And that one's at least the second Windows Vista annoyance I have tried to work around in a month!
I could probably not be able to do anything other than to just shake my head if I really need to change my operating system just to get some proper music flowing from my computer. The ridiculousness here is beyond my threshold.
So here's the technical gist:
Acer Aspire M5630 desktop with Acer EG-31M motherboard
Intel Core2Quad Q6600 processor at 2.4 GHz
2 GB of RAM
NVIDIA GeForce 8600GS
Realtek High-Definition Audio (on-board sound chip)
Realtek 8185 Extensible 802.11b/g Wireless Device (disabled)
Realtek RTL8168B/8111B Family PCI-E Gigabit Ethernet NIC (NDIS 6.0)
Windows Vista SP1 (a given)
I have already ruled out:
• the speakers (have them checked by Creative technicians, and tested them with my own MP3 player)
• drivers (all updated)
• hard drive controller settings (all are using UDMA)
• wireless card interference (it's already disabled, unless I'm missing something)
• something wrong with the Windows Audio and related services (restarted them all, and even tried setting some of them to Realtime base priority in Task Manager)
• speakers' electrical supply (any problems there should also have shown up on my MP3 player)
The problem shows up most when I load or reload something on my web browsers - Internet Explorer, Mozilla Firefox, Opera, Safari, and Google Chrome (basically, every commonly-used web browser out there). It affects playing music from any application, be it Windows Media Player, Winamp, Songbird, or one of the web browsers I use. Best-case is only some slight popping noise, worst case is a complete slowing-down of the music being played. There seems to be no buffer underrun issues.
I have no idea what else might be causing this other than some kind of processor usage competition going on (which shouldn't happen as I have set the speakers properties settings to allow applications to take exclusive control, and to elevate their priority) or something that has to with the network, as discussed elsewhere. It can't be the wireless card, as I have it disabled - unless I'm doing something wrong.
I am also suspecting possible interference from my router - a 2Wire HGV-2700, but that is low on my list of suspects right now.
Any ideas and solutions short of changing the operating system?
This blog was the first step in solving my latency problem on my brand new Dell vista ultimate home 64 bit windows and in learning how bad the sound situation is on windows.
I read about the multimedia scheduling and thought "great, Microsoft has finally fixed the sound problem"
1) I plug in my m-audio midisport uno midi usb adapter and the driver doesn't install. m-audio says it is class compliant and needs no drivers, yet it doesn't work.
2) I buy a $80 m-audio 2x2 midi-usb adapter and it installs with no problem. I install sonar home studio and give it a shot. The midi events come into sonar but they are all wrong. A trip to m-audio and downloading new drivers fixes that problem.
3) I can't get the latency below 120 milliseconds. I spend two days messing around with disabling processes, tweeks here and there to no avail. (BTW it's funny to think how much computing a modern computer can do in 120 milliseconds...Quad Core 2.3 GHZ software incapable of servicing 44KHZ sound? Phenomenally bad. No excuse)
4) I read that integrated sound chips have problems doing low-latency audio (for some reason) so I go out and buy a $99 PCI m-audio 2496 sound card and apply to be on their beta program for 64 bit drivers.
5) I visit Best Buy and see a setup with Vista, a keyboard, a USB based m-audio sound output and ask to see a demo. The technician claims to be taking classes in this stuff (he has a mac) The demo system has horrible latency too.
6) Just when I'm saying to myself "Perhaps I have to finally buy a mac". I finally find this article from creative labs.
I install AISO4ALL and it seems my latency issues are solved.
Hankon Strande (from Microsoft) said "Audio glitching is typically not due to the audio device or the audio driver but more likely caused by other software components you are running on your system". It turns out that the "other software components" he is talking about is all the sound software that Microsoft provides that is not a device driver. Microsoft needs to get it's act together and work with ISVs and solve this latency issue.
I can't believe that ASIO was released in 1997 and became the de-facto standard because Microsoft provided no alternative. Now 11 years later I still have to download ASIO4ALL, some non-logo'ed, library developed by Michael Tippach (whoever he is) to do what a Multi-billion dollar corporation failed to do in 11 years! Microsoft should be ashamed of itself. They should buy ASIO4ALL for $50 million, ship it with Vista, problem solved.
How has 64 bit Vista been released to the unsuspecting public with 64 bit drivers unavailable or still in beta? Microsoft should have an army of ISV reps and programmers helping these companies and writing drivers for them.
Why is there no applet included in windows that allows you to buy a midi-usb adapter, plug it in, and hear sounds? You need to spend at least $100 on some 3'rd party software while macs ship with garage-band. All evidence is that he windows sound system is broken for this use and has been for at least 11 years.
Is't november 2008 and I'm one week into a new Dell PC with Vista. My Itunes 8 playback of Itunes purchased audio files are jumping consistantly as described in one of the comments in this thread. We're talking 5 or 6 skips per song. I'm not a technical person. I just want to know if there is a solution to this playback problem yet. It really ruins the listening experience. thanks.
When should we expect an official statement or solution from Microsoft. I'm pretty tired of tweaking my system and running after other vendors. I also am awaiting your follow up post.
I've finally managed to get rid of the audio glitches! Full story:
1. Initial Vista install-> perfect sound
2. Change of GPU to a 8800GT-> popping sound
3. Upgraded to Vista SP1-> no change
What solved the issue for me:
1. disable the "high precision timer" dedicated to Vista in my motherboard bios (ASUS P5N32-E SLI). Yes "disable"!
2. Looking at this page on MSDN msdn2.microsoft.com/en-us/library/ms684247.aspx
I went to the registry
then Tasks, then Audio, then changed the Clock Rate from decimal 10000 to decimal 9000.
=> no more glitches
By the way, changing the task priority settings didn't help.
I don't know if this is a general solution or if the problem was specific to my hardware but my 2K€ PC is a multimedia machine again ;)
maestromosh - Strange that you are seeing this with the m-audio too. My ASIO4ALL settings for the PODxt and UX2 are the defaults that came up. Latency - 32 in and out, Kernal Buffers: 2 (use hardware buffer unchecked) Buffer size 512.
Interesting that the x3 driver works better on Vista. I'm probably going to get one.
I do have better performane on the PODxt than the UX2 with Gearbox, but I'm assuming that is because the xt is doing all the heavy lifting, where-as with the UX2 the computer is doing all the work.
Good luck with ASIO4ALL - I hope it helps.
thanks for your reply. there are indeed some good points in your thread. i will try to disable multiprocessing and see whats happening.
ASIO4ALL is my weapon of choice too - i use this, if i want my internal soundcard to play the midiclick in cubase on XP and it works fine.
on vista it doesnt seem to have any effect on the latency and glitches at all. can you please tell me how you configured your asio4all?
but in fact i wonder, if this is a line6 problem, why my m-audio asio driver also fails to work.
PS: i now use the line6 POD x3 live, which appears to be a little better on vista. i guess its because i dont have to use gearbox anymore. but - as soon as i use some plugin for re-amping such as guitar rig 2, the glitches reappear. VST instruments like EZdrummer doesnt play right and the glitches are there too.
maestromosh - I had the same problem with my UX2 Toneport. Line6 is the culprit - their ASIO vista drivers are not very good yet. They don't officially support Vista (see their forum). But I was able to get it to work:
1) ASIO4ALL seems to work way better than Line6's ASIO driver. Better latency, etc.
2) If you want to use Line6's ASIO driver you must disable multi-processing in your DAW software (if it lets you). For some reason Line6's driver doesn't work well at all with multi-processing is enabled. ASIO4ALL works perfect with multi-processing enabled.
oh - and as a workaround i installed XP on a small partition on my laptop. the device manager prompts with some undeclared internal hardware (-> no way to get drivers for XP from sony), but my audio software works fine.
just to get this straight - i hate to have two kinds of OS on my pc, so i'd rather get vista working with no yellow exclamation marks in the device manager than always have to select which way i want to boot.
thanks a lot for your answer! i REALLY appreciate that!
ok. and now on with the issue =)
first off - i cooled down a little... =)
the first 4 steps you listed above were the things i did long long before i posted my "frustration" here.
as for the devices i use the m-audio fasttrack pro and the line6 guitarport with gearbox software. both devices come with an ASIO driver. i use the guitarport more often - so the guitarport ASIO is my driver of choice most of the time.
i have cubase SX3 and Ableton live 7. i have the syncrosoft licence control center for vista. so this works fine with me.
but - no matter what asio driver i use the effect is still the same.
i usually open gearbox to jam a bit - this is where it seems to work more or less ok, as though i have to raise the asio buffer. the latency is around 8-10ms in this stage (3ms-5ms on winXP). but as soon as i open whatever recording software, everything fails. the asio driver seems to have problems sharing what it receives, and the playback, even with gearbox closed and ONLY beeing used for playback, sounds like a broken cellphone in an aquarium.
so with this clear, i would in fact be happy with you explaining to me how to use the tool you mentioned =)
thanks a lot in advance
Sorry to hear about your frustration with running your audio production software on Windows Vista. Getting the latency down to an acceptable level can be challenging given the wide range of things that can impact the OS’s ability to do this. I wish I could just simply give you a value to type in, or checkbox to click on to resolve the problem but in reality it will require some research on your part to track down through the process of elimination the cause of the problem. Ideally, once the actual cause can be determined it will lead to a solution.
There are 4 areas that generally need to be looked into:
• The audio software package.
• The audio device and driver being used.
• The ASIO driver (if applicable).
• Compatibility issues with other drivers on the system.
Here are my suggestions for checking on the above list of items:
1. Go to the audio hardware vendor’s support site or forum and see if they have recommendations for driver/hardware for running on Windows Vista and if they do, make sure the hardware you are using is on that list. Microsoft does do some ProAudio hardware testing but I believe the hardware vendor’s site would have the most up-to-date information. It’s not clear to me what audio device you are using. If you can provide me with that information I can check as well.
2. As with the hardware, I would also visit the software vendor’s support site or forum and see what they recommend for Vista. You mentioned Cubase in your post. Here is a link to the list of Steinberg software versions that they will support under Vista:
3. If the above fails to provide information that leads to a solution then I would make a more general request for help through the various pro-audio forums. Finding someone with an audio device and software product similar to what you are using could be key in coming up with a solution.
4. You also mentioned that you were using an ASIO driver. It would be worthwhile to verify you are using an ASIO driver that is capable of providing the latency you need on the Windows Vista platform. I would check with the ASIO driver provider (assuming it did not come with the software) and find out what they indicate can be expected on Windows Vista. Again, their support web-site and forums are the best place to get this type of information.
5. If it is an issue with other device drivers on the system taking too much time servicing their devices then locating that device is important. Microsoft does provide the tracelog tool in the DDK that when used with the "–dpcisr" parameter does allow you to measure DPC and ISR execution times for drivers on the System. If all indications are that the software and hardware combinations you are using should be working at the latency levels you need, then it is possible that driver behavior is the culprit. It takes some interpretive skills to use the reports to pinpoint a likely driver with execution times that could be causing the problem but you could consider this a “when all else fails” option. If you get to this point, let me know and I can provide more details on how to use this tool.
Program Manager – Windows Audio
oh. my hardware specs are:
- Intel® Core™ 2 Duo Prozessor T5500, supports Enhanced Intel SpeedStep® Technology
- 2GB DDR RAM
- NVIDIA® GeForce® Go 7400
- vista home premium
*all the latest updates and patches to every piece software and drivers are installed
first of all, i dont really know if this is the right place to write this, but since i am more or less tired of searching for the correct spot in the microsoft product support files/blogs/blblablabla, i decided to post it here. oh, and sorry that this is something i read in here somewhere before...
well... i am a kinda professional musician, and i use several External USB audio interfaces and stuff like that.
ok, and now my question: did ANY of those hundrets of windows vista developers ever run a test with audio production software? like Steinbergs Cubase/Nuendo or Ableton Live? i just really dont understand why my dualcore machine with 2GB ram isnt able to let me record/playback music without forcing me to set the asio driver buffer sizes up to 2048+ and make the production flow and latency simply unacceptable.
i used the same hardware (older versions of course, i now own new and up to date gear) on pcs like a 700Mhz cpu and 512mb ram without any issues or audio dropouts and really low latency (3ms).
next problem is, that i bought my new laptop from sony, and vista was pre-installed. therefore no manufacturer drivers for win-xp...
2000bucks, i could have used for buying a mac. and i HATE mac.
anyways... all the time you guys from microsoft write/say things like "improved audio and everything" but what good is an improvement, when my everyday tasks just stopped working.
i saw someone on this blog crying for refunds... this would be wonderful. but who will give me a refund for all the software i bought to work with which exceeds the value of 10.000s of dollars?
oh - am i a whiner? this is a huge load of money for me, and the only thing i am indeed expecting is, that my gear WORKS.
is it so hard to KEEP some essential standarts?
i hope this wasnt too offensive - i would have been much more reasonable, if i wasnt actually losing money with each day my gear doesnt work.
i would love to talk to someone in charge at microsoft but but gave up on thinking that this would do any more good than shattering my nerves.
if this IS in fact the wrong place to post this, please give me a link or e-mail adress where i can send this and get a honest and helpful response.
Dear Hakon Strande,
Thank you again for your explanation. I will try to find new and good drivers for my system.
Is that list of 5 required hard low latency RT activities actually correct?
1 & 2 (read from mass storage and decode) are it seem to me, not things that need to be particularly low latency as a simple lock free ring buffer will decouple then from the low latency RT part and make the requirement here one mainly of throughput with very mild RT constraints. In fact 1 will have trouble meeting a 10ms deadline as soon as the drive does a thermal recalibration (or even just has the head in the wrong place)!
3 (Transfer to card buffer) does need to be hard RT, but is probably mostly in kernel space anyway, and if the architecture (which I have not yet played with) allows a list of buffer pages to be handed to the driver then this is a trivial in kernel activity. Probably the ideal thing would to be able to memory map the ring into kernel space and have the driver automatically update the read pointer every time the card interrupt fires? Being able to create different sized rings would then provide for whatever latency requirement applied for the application. Still, I haven't actually programmed with the Vista audio model, so I probably shouldn't comment on the low level approach.
step 4 (Send the card buffer to the converters) is not something the OS has anything to do with on any card newer then the Gravis Ultrasound or SB16, even they did this in hardware.
So that leaves us with 3 being the only hard RT bit worthy of the name for a simple playback app.
Now I will grant you that incompetent driver authors are a big problem everywhere (Mostly video card drivers!), but was under the (possibly mistaken) impression that the video drivers (IMHO the worst offenders for taking locks and holding them) were exiled to userspace in Vista (and thus should be preemptable)? In fact, once the memory is allocated, is there really any reason for the audio ISR to run with **ANY** global locks held?
Note: I have not written any audio apps on Vista, so may be making some very dubious assumptions here.
We try our best to influence our partners to focus on quality. I wish I could tell you that storage/network/graphics driver developers care deeply about audio glitch issues but they simply don't so whatever we can't catch in our test may cause the end user trouble.
The Windows Vista audio system runs in user mode with only the audio driver part of the audio pipeline left in keernel mode. I can assure you that it is getting regular CPU cycles unless a bad 3rd party driver holds off the entire OS from executing.
As for your transcode issue I don't have a work around for you that does not require decode/encode other than getting an AVR that supports WMA Pro SPDIF (multi-channel WMA format for SPDIF transmission).
It seesm from your description that your friends have no issues which again lead me to believe that your issue is system/device specific and not an overall weakness in the Windows audio system.
Hakon Strande - Microsoft PM
Sorry for the trouble.
To make things clear here is in detail what is going wrong at my side:
- I used the latest drivers available on the ASUS website. The mainboard type is written above and I don't know if these are certified drivers, it's all that is available so for me there is no other option.
- Yes encoding is needed: I'm playing Windows Media Video with a 5.1 WMA track in it, and my receiver is not able to decode WMA. I use AC3Filter for this and at least two of my friends use exact the same way of working without any problem.
- The system has nothing else to do at that moment, I'm just playing the movie.
I agree that it is most likely the driver that is not well written, but since you deliver the OS it is some kind of your responsability that hardware manufacturers deliver great quality drivers, and if there is something going wrong to contact and push them to make it right. In this case, it is new hardware so the support should be there.
Also, the entire 'sound-stack' in Vista, is it running in kernel-mode or user-mode? If it is changed from Kernel to user-mode then it looks to me that it hasn't got the correct priority compared to the other services running on the system.
More apecific. It's 5.1 tracks
Maybe i still have one more question. The problem lies in WMV and WMA files. These files need to be converted to AC3 because my amplifier doesn't support those formats.
What to do with this?
Thnx for the information. I am going to check all the options you gave me and try again.
Sorry to hear about your gig.
As I told Jason, audio glitching is typically not due to the audio device or the audio driver but more likely caused by other software components you are running on your system or just badly behaved kernel mode drivers for various other devices.
On a system used for time and streaming critical applications like LIVE music I would set my system up with great care.
If I run Windows Vista I would make sure that:
- I use a Windows VISTA LOGO certified system from a reuptable Windows system vendor.
- No applications are installed or devices attached that I don't specifically need for the system to perform that key task.
- No non-essential drivers are running (modem, bluetooth, network, etc disabled)
- All the drivers that ARE running are Windows VISTA Logo signed.
- I would use the native USB Audio driver for the high-quality add-on input-output device so I don't have to install any unsigned 3rd party audio driver.
- Stable and well tested Windows Vista LOGO compliant graphics card (no top of the line gaming card where pre-release drivers tweaked for optimal graphics performance sometimes take shortcuts/employ hacks that can hurt streaming performance)
Questions to ask yourself:
1) Is your laptop a Windows Vista Logo certified system (no - Windows "capable" does not count). Meaning, did the laptop SHIP with Windows Vista and does it have a Windows Vista LOGO on it?
2) Are all your device drivers signed by the Windows Hardware Quality Lab (WHQL) with the Windows Vista Logo driver signature?
3) Did you make sure all your drivers are the latest available logo signed versions from Windows Update and/or your system/device vendor's web site?
4) How "busy" is this system with regards to applications installed, services/processes running? In other words is the DJ application the ONLY application installed on top of the clean OEM installed version of the Windows OS?
5) Are other application's audio streams glitching too or is it only your DJ application? How about a typical song played by the Windows media player?
6) If only your DJ application is glitching - is it written to take advantage of the Windows Vista Multi-media class scheduler service? Does the DJ app ISV specifically list Windows Vista as a supported OS for this application?
As with any OS I can build/set-up a rock solid performing machine if I pay attention and limit what I ask the system to do but I can on the other hand also create a stumbling joke of a system depending on the software that I install on it and the devices I attach - like my 3 year old Windows XP kitchen laptop where my family has installed several hundred different apps and where only the routine Windows Update download has kept the system somewhat up-to-date with security patches. That old thing can't play a 2 second system sound without glitching but I don't expect it to either because there is no way the hundreds of applications and myriad of device drivers I have added to this system over the years and the ways these may interact/conflict with eachother were tested by the system vendor or by Microsoft.
The test matrix of all those things interacting at once is just too vast to think anyone could cover it all. My point is that Windows is a platform built to perform as many tasks as possible in the best manner possible but if you have ONE critical task then tailor your system for that task and make use of the Windows Vista LOGO certification program to ensure you get a logo compliant system , logo compliant devices and logo compatible applications.
The "Certified for Windows" logo program is the way we try to ensure a decent experience with Windows - it is certainly not a perfect program and does not catch all issues but it is sure better than no testing at all and if you stray from it you are in somewhat uncharted territory.
Hakon Strande - Microsoft
Host based real-time AC-3/DTS/etc ENCODING is resource intensive and should be avoided on anything but a very powerful system. Luckily you don't need to encode if you are playing DVD or HD-DVD/BD content as the media comes with the audio track already compressed in one of those formats.
Your HD-DVD/BlueRay media player is capable of sending the audio data in COMPRESSED form (AC-3, DTS, etc) out your SPDIF connector so you don't need to use a software encoder. To do this you must match the compressed format support of your AVR with the format exposed to the application by the Windows Sound Control Panel. Select the digital compressed format (like AC-3) that your AVR supports in the properties page of the SPDIF output device. Then start your player application and set it to stream compressed content to the SPDIF output. Ensure you AVR is set to receive AC-3 data.
Also, anyone with audio glitching problems should first ensure they have the latest drivers for their network device, their graphics device, their soft-modem, their storage device (HD), etc. Also disable as manu non-essential devices as possible (like the modem - a device notorious for drivers that hold the system too long in DPC/ISRs causing glitches) to minimize the risk of these causing streaming problems.
Personally I have no problems playing HD-DVD content on my Windows Vista PC - but I am very careful about what software I install/allow to run on my home-entertainment PC and I keep all my drivers up-to-date.
If you need more detailed/direct product support please use the Microsoft Product Support Services: http://support.microsoft.com/
I got a specific problem with my SPFIF. When i want to see an HD movie from my Hard Disc, my audio glitches. It looks like that it can't be decoded or so... I use AC3 filter to convert my datastream to Dolby Digital. The datastream seems to be interupted by something, don't know.
My mainbord is a Asus P5B and i use the onboard audio. Tried using a optical cable and a coax cable. both have the same result.
Hope there is a sollution to my problem.
I get your point.
Vista is a busy OS, that spends all resources on different, multiple tasks, but not on the current task.
Good thing today's CPUs are capable of performing such gymnastics.
But, hey, have you actually _seen_ what the audio output looks like? It is not a processing glitch, it is glitch produced by some punked Vista drivers, that read the local files incorrectly.
My DJ show got spoiled last night( I had to use laptop w/Vista ).
I am pissed.
I use one of the leading Music Recording programs for the PC - Sonar by Cakewalk. On our forum there is an ongoing debate about XP verses Vista. I'm one of the few Vista users. Most of the people that use Sonar or other PC based recording software will not switch to Vista because it is perceived that Vista's latency (milliseconds between when your recorded input signal can be processed by the CPU and then come back out through an output device) is inferior to XP. This is critical because longer latencies will sound strange to the client (recording artist - let's say a singer). The singer wants to hear their voice processed without delay.
A lot of people contend that XP can deliver very low latencies without glitching - 3ms, where as Vista is much higher - maybe 10ms. Of course 10ms if perceivable, whereas 3ms is not. This single factor keeps a lot of professionals stuck in the XP mode.
I've heard of some Microsoft studies that show Vista beating XP in performance with WaveRT and MMCSS, but I have not seen any of these studies.
Can you comment on this? Also, if there are any known comparisons that show Vista verses XP in a latency comparison please post a link.
Hey guitartrek: a good place to start is Larry Osterman's blog at http://blogs.msdn.com/larryosterman/.
Can you provide the exact name or a link to the Windows Vista Blog site about audio? You've got a ton of blogs and I can't find this one.
I have Acer TravelMate 6592G. I expierence glitches expecially on USB
connected Sound Blaster. When I use the on-board sound card, the glitches are shorter and occur fewer times.
On WinXP there were no glithes even on the USB Sound Blaster. Please fix this in SP1.
[Sorry to post again.. I can't edit my last one.]
Disregard my hard disk reference, it seems a high CPU load actually reduces the latency on my system with Vista, according to that program.
You'd think it'd be the other way 'round....
At low or idle CPU load, it's around 980us, with high CPU load it's around ~60us, the same as XP.
Ok, I'm done now :-)
Hey m_coupe: nice find with that latency check program (http://www.thesycon.de/deu/latency_check.shtml).
I found that it is low in XP and high in Vista, with the exact same system.
However, in Vista when I run a program that gives any of the hard disks a good workout, this will for some (unknown) reason reduce the latency to the same as XP's.
Weird... anyhoo, I hope that helps with getting to the bottom of this.
LenardG (and others), right on the money.
Running XP on this computer with two different soundcards, both work flawlessly, even under heavy CPU load.
Running Vista with the same two soundcards, both glitch at least once every 30 seconds, even when the CPU is idle.
What would be nice is to see a future entry 'Vista SP1 resolves audio issues'. Other than that, it's not a bad OS once it's tweaked up to your personal settings and standards.
I recently bought a new notebook and I am also affected by these glitches. Both my previous and new notebooks run Windows Vista Ultimate. The old one has no glitches, this new one has more powerful hardware and still it has glitches (both have a crappy onboard audio chip, although I think now from the same manufacturer).
I find your explanation for the glithces - "Windows is not a single-function device like a CD player" - rather amusing. The technical explanaion is nice, but how come other operating systems, even older Microsoft systems are capable of handling such a thing, and Vista is not?
I just hope this problem can be solved by Microsoft (and/or device driver writers), because quite frankly I find it ridiculous that a simple thing like audio playback cannot be handled flawlessly in Windows Vista.
Hello, may be alittle late but I resolved the problem yesterday buy installing windows xp drivers of the sound card on vista... use the *.inf only. If everything goes ok sound won't glitch or stop.
Hope it helps.
And Merry X-Mas ;)
can you please stop avoiding the question, why highly complex tasks (like playing mp3 files) just became a problem with the latest OS?
Correct me if I am wrong, but what you are basically saying is that users experiencing 'glitches' just can not grasp (or forget) the fact that playing back music can be (or is) a very complex task?
But still, it seems, you fail to offer an explanation on why these tasks worked flawlessly on older OS.
In conclusion, I appreciate your honesty and effort to help, but I feel that avoiding answering that question probably frustrates the already frustrated Vista user even more.
Hoping my directness will be appreciated,
could you please help me where to post the issues in Vista Sp1 (location)?
I'm experiencing serious popping, snapping, and stuttering issues with the audio playback on my Vista Ultimate machine. The description of this behavior is very similar to those of others tied to this thread. I’ve also found posts from gamers, av pros, creative product users, nvideo/ati video card owners, etc…. I haven’t quite exhausted all channels, but it would certainly make sense to include your team.
Here's an audio sample: http://www.4inno.com/Media/20071205SmashingPopsCracklesVlog.wmv
*Line6 gearbox software v3.5 with guitar port USB interface (used for recording and playback)
*Sony Vegas 8.0a capture utility
*SigmaTel HD codec 6.10.5290.0 rear microphone input
I’ve tried various monitoring configurations (headphones, no monitoring, Sigmatel HD analog/spdif outs) and I believe that my set up is not the culprit (i.e. no feedback loops…). The popping is like clipping and it occurs randomly. I’m 99% convinced that the issue is not isolated to the Line6 since I was experiencing similar popping issues with DV video playback from Vegas 8.0. I also notice the Windows sounds (from sound theme) also exhibit playback problems.
There’s a lot of variability with the issue. I recently reinstalled the Intel Viiv drivers and I believed for a second that the issue was resolved. No luck….
Here’s a quick overview of what I’ve checked/done:
*Updated BIOS firmware
*PCI latency checked and tested (32-256 cycles). Set back to 32 now
*Fully patched with Microsoft
*Updated to most recent drivers. Intel Viiv, 945G chipset drivers,
*Disabled non essential services (i.e. search indexing, antivirus, readyboost, etc…).
*Added additional RAM (3070 GB usable, PC4200 dual channel)
*Set up SATA RAID 0 set, 2 WD 7200 rpm 16 MB cache drives
*Set up dual boot with 64bit Vista Business (Line6 software/hardware not supported on 64 bit; defeats the purpose)
What else? I turned the virtual memory page file off.
I recently upgraded to Vista Home Premium (from XP). I too am plagued with these audio glitches and have spent what seems like days trying to resolve them. My problems seem to be specifically related to iTunes (and Quicktime used to process the audio for it). Playing audio in other apps such as WMP is fine. I have nForce4 SLI chipset (AMD) and AC97 on board audio. I have tried changing settings in Quicktime, upgrading to the latest chipset drivers, removing all but essential processes, increasing iTunes CPU priority, trying Quicktime 7.2 and 7.3, using different versions of iTunes, turning off sound enhancements and the list continues. I am really frustrated by this issue and the most annoying thing is that under XP with the same apps I had no issues whatsoever. Having invested time and money upgrading to VISTA I do not want to go back to XP if possible so I was glad to find this blog and hear that Microsoft are aware of these issues and trying to resolve them. I look forward to this and to the next article in this series.
I feel better now (just a little).
I would like to add that much of the audio glitching that I've experienced appears to be related to excessive DPC (deferred procedure call) latency. I run Mark Russinovich's Process Explorer (http://www.microsoft.com/technet/sysinternals/default.mspx) instead of the standard Windows Task Manager. It shows what % of the CPU is being devotd to DPCs. Whenever the audio glitching occurs, the DPC % of CPU is usually 10% or higher.
I think too many of the Vista device drivers out there are creating excessive use of DPC calls which interrupt all other processing, including audio and video. Maybe they are forced into this by the changes to the Vista architecture or DRM requirements, who knows. I know that Nvidia doesn't seem to know how to write a driver for their Dual Tuner card that doesn't cause audio glitching.
I have noticed persistent audio glitching on my Dual Core AMD running Vista Media Center. It seems to be related to the Nvidia Dual TV tuner card. Nvidia's current Vista driver is so lame that it creates audio glitches about once every two seconds on most cable channels. I was forced to install the Nvidia XP driver (surprisingly it works under Vista) to fix this problem, although it also creates audio glicthes whenever the tuner changes channels. Nvidia apparently has no clue how to write correct Vista drivers without creating excessive DPC calls. None of these audio glitches happened with the XP Media Center using the same tuner card, so I have to wonder why the Vista drivers are causing so many audio problems. That's not acceptable in a Media Center PC.
I have a Dell XPS M1710 laptop with a core 2 duo processor and 4GB of RAM. I run Vista Ultimate. I also run 2 - 3 Windows XP Virtual Machines in VMWare, have Outlook 2007 open, IE7, and one to two terminal server connections open (oh yes, I earn every dime I make).
While doing all that, I listen to online radio or my music collection via WMP. I very seldom if ever enounter a glitch or skip.
You guys need to check your hardware or something.
Oups, heres the link:
I noticed my audio glitching the day I plugged in my headphones. I solved it by forcing Vista's Exclusive mode using ASIO4ALL and Foobar2000 -- I wrote it all down in a word doc on my blog. Hope it helps.
I got a brand new Quad (Q6600), 4GB of Ram and and RME Hammerfall and I still get glitches.
W T F ! Great job Microsoft, great job...
I'll soon switch to Apple and Logic 8 if this continues
One thing I am wondering is who decided to remove 6.1 support after it was added into XP?
It seems as i am left with 5.1 or 7.1!
How do I get my 6.1 back without going back to XP?
Here is one little tool that I discovered that helped me to trobleshoot many audio glitches with tons of sound cards with my audio apps:
Then open the Device Manager, and start disabling non-essential hardware. There is a good chance that you'll find some device driver that is somewhat greedy in holding the CPU.
Another thing to check is that if your computer have a AGP or PCI graphics card (but not PCI Express) is that some graphics drivers in order to perform well on benchmarks monopolize the PCI bus for longer periods than what would be considered polite. The result, you get a few more FPS in your shooter, but at the expense of everything else. Sometimes you can set the PCI latency for the graphics card in the BIOS, and sometimes through some software tools. A good point to start on this:
Finally, start disabling unnecessary services. Many musicians have dual boot configurations, one just for music with everything disable and another one for the rest. In my case, I just have a bunch of scripts that disable everything that is not needed when I'm going to play with music.
Doing all of this I managed to eliminate glitches on pretty much all of my sound cards (MOTU UltraLite, NI Audio Konttrol 1, NI Kore, Echo Indigo DJ, M-Audio Firewire Audiophile, M-Audio Ozonic, etc...)
I saw this and just had to share my experience because after searching forums and other sources I know this is very widespread.
I have a Dell E1505 with the standard Sigmatel sound and a Dell 1500 wireless network card. In my case and many others the Dell wireless driver is definately causing audio 'gliches'. About every minute it will have static for a few seconds. If the wireless card is turned off, the sound is fine.
My biggest problem is that RTM of Vista is almost a year old now, yet Dell still does not bother to fix the issue. We as consumers are helpless.
My second is a desktop with an Intel motherboard and built in Analog Devices sound. There are no drivers from the manufacturer, but Windows Update includes drivers for it. Yet the sound simply stops working after a while. A reboot is the only way to get it back, but it just happens again.
Two systems, both audio has problems, and there is simply nothing the consumer can do. That is the most frustrating part. Both of these have been discussed in newsgroups and technology user forums so I know I am not alone.
Really why is playing audio so difficult? Microsoft has created the problem by making it difficult.
Microsoft has emphasised so much on backwards compatibility and creating "Application compatibility" settings, then they go and break something so simple like audio.
Don't even mention simple file copying and networking...
I tried to assign one core just for winamp.exe process, but CTRL+ALT+DEL "effect", always get some glitches in the sound.
I have a REALTEK HD AUDIO 888 7.1, I don't know if this integrated audio card has a preprocessor, or support hardware buffer, but maybe with a high quality PCI/PCIex soundcard glitches dissapear.
I have not had any problems with standard windows sound (save for Skype glitches which are fixed with high priority) but adjusting setting for low latency ASIO applications I have found harder than it should be. No way is commonly known of giving the sound card driver high priority - save the blanket approach of giving priority to services rather than programs that is sometimes recommended. Also the "properties" of a program file should contain some way of setting the priority.
A thought: on multi-core systems, if one or more cores could be reserved for the audio driver and audio applications, wouldn't virtually zero latency with no glitches be acheivable?
The MAZZTer: Yeah I know, but if the system it is almost idle (nearly impossible with Vista however), why the glitch is still happening?
LarryOsterman: Your explanation makes more sense to me. I really think that Vista its way more better than XP (only on a newer machine. 2gb ram at least, dual core), those glitches with CTRL+ALT+SUPR, high HDD activity (for example when closing VMWare Workstation with two running VMs and selecting Suspend machines) and waking up my LCD are the only complains I have using Vista.
Anyway, My Creative EAX 8.1 performs outstanding thanks to Windows Vista sound enhancements and sound handling :)
How can you seek to excuse this ?? 'Windows is not a single-function device like a CD player' is not a quick answer, it is an excuse.
Vista demands higher performance hardware than an any OS that has gone before it. Many people have multiple core processors and 2GB or more of RAM.
And yet playing audio requires such negligable bandwidth, a standard CD audio stream needing 150k/sec. If Vista can't keep up with this it is an embarrassment for Microsoft.
I'm not a gamer but I thought MS touts Vista as a serious gaming platform able to support high frame rate lifelike graphics. How can this be when it struggles to maintain anything as mundane as an audio stream ?
Here's what I as a music producer have learned from reading music magazines and participating on many forums:
1. Music software performs worse on Vista than it does on XP -- more glitches. Even with good Vista drivers.
2. There is no compelling feature in Windows Vista for an audio producer. As true 64-bit music apps start to come on line, there's some justification for going Vista64, but it will be some time before all the software packages we depend on will all play nice in 64-bit.
3. WaveRT has only limited utility, limited hardware support, and no advantage for music production over ASIO.
4. No software vendor in the music software world has released a program that requires Vista. They're only recently coming on line with versions that officially support Vista.
And I have no chip on my shoulder about Vista. I was in the Beta program before it was released. I just know it doesn't offer anyone serious about audio much except headaches.
i congratulate you on a very sound intellectual and erudite theoretical examination of the treatise. i am sure that you feel satisfied and delighted with your cool stuff and i hope you continue to travel the world.
however may i kindly ask what you are planning to do about audio skipping for those poor unfortunate folk like me who stupidly updated with vista when xp sound worked perfectly. you may be intellectually stimulated to know that my sound works perfectly on os-x
Why does Windows Vista page excessively? and why does it take more than 5 minutes to copy 8 files from a USB thumb drive to a hard disk? Why does mac not have the same problem?
- 7200 rpm 200 GB Western Digital Hard disk
- 2 GB DDR2 SDRAM
- default configuration of Windows VISTA.
Nice backgrounder, but no specifics
This article amounts to "it's so difficult", but it's the same set of contentions and trade-offs that XP and older OSs had to face.
There's nothing I can see that is specific to why Vista can't do this stuff properly, e.g. what great new Vista functionality we have that exists at the expense of smooth multimedia playback.
The bottom line seems to be that Vista doesn't manage these things as effectively as XP, and therefore is less effective as a multimedia platform.
jtu100: Audio Rendering applications are more than welcome to do that on Vista. And the Vista audio engine can accomodate that behavior. Of course, it's going to consume a fair amount of memory to achieve what you want, and you might have to totally reset the machine to stop rendering audio, but if that's what you want, I believe that you can do it.
Erwin Reid: Interestingly enough, when you hit CTRL-ALT-DEL, you switch to the "secure desktop". When that happens, on some display drivers, it totally resets the video hardware. I could easily imagine that during such a reset operation, you might encounter a "lock out" situation.
I'm not saying that's what's happening in your situation, but it's a possible explanation.
Actually my friend who is a musician still uses Windows 98SE in a dual boot scenario with XP as in some scenarios 98SE performs better with his programs, something about Midi drivers. I think he may use XP a bit now, but for music Im sure he wont touch Vista for a while, perhaps a special Boot mode for Musicians and musical tools would help.
Fortunately I experienced this problem only during use of my old DVD-ROM which must operate in PIO mode for it to work under the Vista.
I am thinking about the following:
There are two kinds of programs. One kind are games or communication programs which can not predict the played sound beyond small amount of ms. The other kind are audio and video players which usually have few seconds of sound data for future playback and they provide those data in advance to the api.
Would it be reasonable to mix up to 20ms (or more) of available future data (so something like 10ms from first kind of application, full 20ms from audio player) during each 10ms step into the hw buffer? In the simplest implementation this would redo 10ms of sound in the glitch free case during each iteration.
Now when one update is missed, the sound sourced from programs with small amount of future data would have the glitch (because data were not available when that part of buffer was mixed for first time) however sound from audio player would not.
I'm blaming immature drivers. I had horrid problems with Audigy 4 audio breaking up when typing on a USB keyboard (actually PS/2->USB converter) on Vista SP1 beta.
The problems went away when I installed Creative's own drivers. I'm still suspicious of exactly how good the USB keyboard drivers are, but haven't had an issue since.
Hey Jaxim -
Without more details about your specific hardware, it's difficult for me to even speculate about what is going on, but the most direct way to investigate a solution is communicate with team who made your hardware: Creative.
The issues you are describing (6.1 config problems) belong firmly in the camp of Creative who built both the hardware and drivers that are designed to be used with their hardware.
Have you contacted them directly to make them aware of your problem you are experiencing? Also, there are some recent driver updates on the Creative site (even from this month) which may be available for your hardware -- do you have the latest for your HW?
Hope this helps!
* * *
Hey Chuba -
I'm sorry you are having VOIP glitching issues on Windows Vista.
Hearing about experiences like yours is one of the reasons I chose to write this post.
Unfortunately, without more details about your hardware, apps, and drivers, I have no idea why your VOIP is glitching on Windows Vista when it worked fine on XP. This is total speculation, but your issues may have something to do with variable latency in the capture path that can’t be ‘fixed’ by the dynamic thread priority adjustment or more predictable scheduling that can sometimes be mitigations for CPU or other resource contention issues. I’ll address more on these topics in my next post in this series.
While it can be unpleasant to discuss or even acknowledge ‘what doesn’t work,’ this dialog is intended to both acknowledge and address the complexity and deficiencies around glitching issues. I also hope to re-frame the (IMHO false) perception that it is even possible to build, test, and ship a ‘glitch-free’ multi-tasking, multi-purpose OS that always works flawlessly on the vast and random array of last, this, and next year’s apps, hardware, and drivers.
I’m also not offering excuses or suggesting that your issues are not bugs or issues for us to investigate – your experience may very well be caused by Windows bugs -- but the actual root causes of the glitching issues we’ve investigated to date are usually due to more subtle and complex interactions or latencies between apps, DSPs, specific drivers and hardware than can simply be blamed on ‘bad programming’ in Windows.
Thanks for sharing your experiences, Chuba, and I hope we can learn more about (and perhaps even fix?) the glitching you’re experiencing.
* * *
This is ridiculous. My laptop worked absolutely fine under XP. Whatever I was doing, VoIP worked fine. Now with Vista, I tried 7 different VoIP programs and I always get gliches, cracks and noise.
IT IS NOT "THE HARDWARE", IT IS NOT "IMPOSSIBLE", IT IS JUST VISTA WHICH IS BADLY PROGRAMMED.
Jtu100, that works as long as nobody would ever listen to a larger music file.. say.. a 200-megabyte live mix.
My have no qualms about Vista except when it comes to how it handles audio, specifically its speaker management.
I have a 6.1 speaker system that I used successfully in XP. When I got a new Vista computer, I installed my sound card into the new computer and updated my drivers. However, I am only able to use 2 front speakers and I can't utlize the other speakers.
Everytime, I tried to set the speakers options to 5.1 and attempt to test the speakers, the sound would crap out and the options would revert to stereo instead of 5.1. (Unfortunately, there is no 6.1 option even though I have a 6.1 speaker system. )
Microsoft's stance on this kind of subject is that the fault of the driver and the manufacturer (Creative in this case) needs to update the driver. Unfortunately, Creative has updated its driver in March 2007, so either they updated their drivers but they didn't address my specific problem, or Microsoft changed the audio architecture so much that audio manufacturers CAN'T fix these finds of problems. It has to come from Microsoft.
I never experienced glitching in music or sound playback until Windows Vista. The article above states that a "Windows machine today is commonly used simultaneously as..." listing many functions. No machine has EVER been used simultaneously for all those things.
When MS first announced that Vista could guarantee glitch-free media playback because of new kernel scheduling APIs my first thought was "what glitching?" since I'd never experienced it outside of DOS on slow machines. Now ironically, with Vista, I do get that wonderful experience. On a new PC.
Steve - Thanks for posting this article.. I'm hoping that in the second part of the series you will mention how and why "glitching" is appearing (sounding) on Windows Vista computers when those same exact computers when Windows XP was installed had no issues with sound quality.
Previous to Windows Vista, i had rarely - if ever experienced glitching - be it on a brand new machine, or an old machine on its way out, and the times it did occur, it occured when many programs were open or the computer was going through a processing intensive task... Now on my Windows Vista machine it occurs when i scroll in internet explorer, alt+tab between programs, and many other non-trivial things..
You can go on and on about how vista is more complex than XP, and programs take up more memory, etc.. but quite honestly what it comes down to is this - for a RTM operating system from microsoft to experience these issues on a daily and regular basis during trivial actions - even on a brand new computer - that is completely unacceptable.
Here is the solution for music playback:
- Decode the entire music file (or at least a big chunk of it)
- Send the entire thing into soundcard/system memory (no latency here... takes no time to copy a few megabytes)
- Tell the soundcard to play it
- Soundcard plays the music with no interaction with the O/S, uses DMA etc to read from memory
- O/S sends messages to soundcard to stop/start playback etc.
Now, presumably we would need new APIs to do this, and there will be other problems, but essentially I can't see why this can't be accomplished. Soundcards used to even have embedded memory... should be able to use it for asynchronous MP3 playback!
To “The MAZZter”:
Thanks for your comments.
1) WinAMP could use the Multimedia Class Scheduler (sometimes abbreviated MMCSS) in Vista - it automatically provides guaranteed CPU time slices through special thread priority mechanisms to media apps without the need to fight for priority with other non-media apps.
2) All of Vista's improvements to the audio pipeline are IMO not moot for the millions of Vista users who have Vista logo compliant PC hardware. The nForce2 is based on a legacy integrated audio device technology called AC-97 which is now replaced in Vista Logo’d systems with what Intel ships as “HD Audio” hardware. “HD Audio” is the name of a hardware specification and is an evolution of the older AC-97 standard. It allows higher quality audio from integrated solutions (when designed well) and also enables the Microsoft WaveRT audio driver model which is among the innovations in Windows Vista that helps enable audio driver (and thus system) stability, lower roundtrip latency and improved glitch resilience.
3) Yes, bad kernel mode drivers can still starve the Windows OS audio pipeline by holding the system off for tens or even several hundreds of milliseconds in long DPCs/ISRs but the culprit can be the storage driver, the network driver, the modem driver, the graphics drivers, the virus scanner, etc - just as easily as the audio driver.
4) nVIDIA made a business decision to not support your system’s chipset for Windows Vista and that is their prerogative. Many OEMs and ODMs make similar decisions in the system or device context when a new OS arrives. If your OEM does not support the new OS on your system (i.e they do not have drivers for the new OS on their web site) that may be a motivation to stick with your current OS until you get a new machine that has the Microsoft stamp of approval for that OS; the Designed for Windows Vista Logo in this case. The logo is our only way to tell the consumer that the machine has been tested to a certain degree with the new OS and enables the experiences and the SW innovation in this new OS. Look for the Windows Vista logo on the device and system to ensure you get the best Windows Vista experience.
5) BTW, there is no "Microsoft" audio driver for the nForce2 Audio Processing Unit. All audio driver software for that chipset comes from nVIDIA and the drivers are Windows XP tested and certified only.
I get glitches when media player switches from one song to next if I *Enable Enhancements* for my sound card. My sound card is *Sigmatel High Definition Audio CODEC* and here is screenshot of what I am talking about - http://i33.photobucket.com/albums/d74/chaks_2k/vista-sound-enhancements.png. The screenshot shows that the Enhancements are disabled.
Any idea why is this happening? I have installed up-to-date Vista SP1 Pre Patches and also checked this installing SP1 Beta. The problem still persists.
slimCODE: To slightly elaborate on what Steve said, more buffering == more delay between what you see on the screen and what you hear.
For example, if there is a 1s buffer, when you play music it will take 1 second until you start hearing music. If you hit pause or stop music will continue playing for an extra second before it pauses or stops.
Videos will be ~990ms out of sync (unless the video app offers a method to resync audio and video) because it expects the 10ms buffer and you create a huge compatibility problem for ALL programs there. Of course it wouldn't surprise me if many video apps don't compensate for the 10ms... it's not noticeable anyways.
Then we have games, where the audio is dynamically generated based on what happens in the world... because of this there is no way to predict in advance what sound effects should be playing. So you end up with enemies firing at you with no appropriate sound effects playing until 1 second later. Good for a sci-fi game where the speed of sound has been drastically slowed by some inexplicable occurrence, but not much else.
There are actually some programs (I know a couple game console emulators) which allow you to adjust a software audio buffer size... this can be done to demonstrate that the audio easily becomes noticeably out of sync with the video with larger buffer sizes. And the reason usually these programs allow adjustment is to let you balance the delay from longer buffers with hitching from shorter ones (ideally you'd experiment to find the shortest buffer that doesn't hitch).
Erwin: That menu is intentionally processed ahead of music data because if your computer is slowed down by a CPU hogging app, you still want C+A+D to respond fast. So it goes above all other processes (or so I imagine) and so you might get some hitching.
However repeatedly pressing C+A+D and dismissing the dialog is not something many users will be doing often, so if that is the best you can come up with I guess Vista doesn't handle multimedia TOO badly...
My thoughts exactly, atehrani.
I don't suppose we're going to see the good, ol', free-from-DRM Sound Stack from Windows XP being reintroduced in Vista SP1?
All I do know that while Vista is *supposed to* suck less than XP for audio, it definitely sucks more than OS X's Core Audio or Linux's ALSA/JACK. MS is so enterprise-focussed that they ignore audio and video pros who're in minority compared to business users worldwide.
I agree that playing music without glitches is a difficult task, but I honestly believe that this has been solved many years ago. The last time I remember my MP3s glitching was back when I had a P75mhz (which should be of no surprise). The only other time I had my MP3s glitch was when I upgraded my PC to Vista. This same machine (exact same hardware) which had XP running on it, *never* had an MP3 glitch. On Vista, sound **constantly** glitched. Merely scrolling web pages caused sound issues.
Obviously the problem is most likely poor driver support in combination with the re-arch of sound/video in Vista (and sprinkle in some DRM).
Those are the true reasons why Vista has a poor multimedia experience (don't get me started on video).
Because honestly my mobile phone can play MP3s, while I surf the web, on a call and text message; all without any glitches.
Plus my PC with the exact same hardware running multiple OSes, only Vista seems to have issues with playback (even OSes running in Virtual PC do better).
I know I haven't had any experience yet with the 64bit version of Vista Home Premium, but I would say that its the CPU when im running WMP11 and heavy intensive games eather on the computer itself or even on the net my computer to seem sluggish. I know its not the exact same problem but I know what your going threw. I heard that 64 bit was a hassle anyways from the get go.
I experience a bit of "glitching" on VISTA Media Center - just with the picture, not the sound. I am using a AMD 4600+ with 4GB RAM, VISTA Home Premium 64 bit. My TV tuner is an ATI TV Wonder 650 PCI. Everything works well, except I do notice a bit of stuttering when I have a flash intensive website open at the same time. Anyone else experience this sort of behaviour?
Press CTRL+ALT+DEL to display those screen with options like task manager, etc.
Then place your mouse pointer over "Cancel" (while you're listening some music), click and press CTRL+ALT+DEL again, and click, and CTRL+ALT+DEL again, etc.
A lot of sound glitches, no?
Even if your player is with HIGH priority, I think is something with Vista itself and the new audio management.
I hear a small glitch when I resume from blank screen (after 10 minutes idle).
Hey Xepol -
The general consenus is that we need more data to actually understand what you are seeing on your dual core hardware.
From LarryO, regarding your comment:
“Without more information on what your compute bound thread is doing, there’s no way of explaining what is going on in your application. If you’d care to provide us with a code sample that demonstrates the behavior you’re describing, we’d be more than happy to look at it to see if we can understand why you’re seeing the behavior you’ve described.
In general, Windows tries to schedule each thread on the last processor on which it ran, but that logic can be defeated by actions taken by the thread."
Hope this helps!
<b>Hey slimCODE </b> -
Great comment. You are correct that buffering more data is relatively trivial and could easily solve many classes of glitching issues... however, this buffering also comes with a significant cost: increased latency.
Increased latency can also cause serious issues for communications apps, games, and pro/prosumer audio applications, so 10ms is a sort of middle ground -- and this is still too high for many applications such as pro recording apps.
Also, there are many ill-behaved device drivers in use today that may occasionally lock out the CPU for, in some extreme cases, even hundreds of milliseconds.
I'll get more into these issues in my second post in this series.
* * *
"playing back music involves "work" that must be done at least every 10 milliseconds so that there can be a continuous stream of music out to your speakers"
You won't convince me that in today's machines (and even the ones a little older), a sound card can't buffer more than 10 milliseconds worth of sound. I'd like some explanations on this one!
Xepol: That tells me that Windows is actually somehow running the single threaded process on both cores.
This indicates one of the following (to me at least):
- 1) It's not actually single threaded
- 2) The CPU display is lying
- 3) I accidentally ran the process twice
My fix would probably be to try again but this time lock the process into a specific processor affinity, limiting it to one core.
Winamp's solution to glitching is to move it's process priority up to High, thus ensuring even if another process starts hogging the CPU, winamp will still be allocated the CPU time it needs.
It works because Winamp also manages to keep its CPU usage low. If it didn't, it could slow down or hang the entire OS when it ran (not a desirable outcome).
At this point I would like to stop presenting useful information and blow some steam in a bit of a rant, FYI. You can stop reading now if you want to.
Of course, all of Vista's work on multimedia glitches is moot from my point of view since nVidia stopped supporting my integrated audio (nForce 2) starting with Vista, the drivers Microsoft provides are botched (sound continuously glitches regardless of CPU load or other factors). The nForce XP drivers don't work either (same sound problem).
The odd thing is I used to have the same problem on XP with both Microsoft and nVidia made drivers but then it went away with an nVidia driver update.
Actually, I think there is more to this scenario that is described.
IE: The thread scheduler seems to be a little wonky.
Why do I say this? Simple. Take a dual core machine running idle, say both cpus below 10% usage. Now, run a single threaded task that is exceptionally CPU intensive.
What would you expect to see? One CPU at 10%, the other CPU at 100%. What do you actually see? Usually both CPUs peaked.
Tells me that the thread scheduler is doing something very very strange making it that much harder to get your 10ms job done in time.