Windows (Vista) Audio stottert


… und/oder das Streamen von Videos hakt. Vista steht in Klammern, aber ich nehme an, dass das Problem auch für XP bestehen könnte. Eigentlich wollte ich hier keinen Eintrag schreiben, aber nachdem mich das Problem wirklich lange (genauer: immer wieder mal) beschäftigt hat, hilft meine Lösung vielleicht doch jemandem.

Vorweg: Es ist eine Art Erfahrungsbericht mit einer Lösung, die mir geholfen hat. Ich gehe davon aus, dass soweit alles stimmt, aber sollte ich irgendwo totalen Blödsinn erzählen, dann nehme ich natürlich gerne entsprechende Kommentare zur Kenntnis 😉

Symptom

Läuft ein Musik- oder Videoplayer (Winamp, Windows Media Player, Songbird etc.) gibt es einigermaßen unregelmäßige Aussetzer bei der Soundwiedergabe. Aussetzer ist jetzt mein Begriff der Wahl, allerdings fiel es mir tatsächlich bei der Recherche schwer den – vermutlich – zutreffendsten Begriff zu finden. Alternative Suchbegriffe waren u.a. stottern, stutter, leak, kratzen und weitere, die mir schon gar nicht mehr einfallen. Hinsichtlich Symptomen ist noch interessant, ob die Aussetzer direkt nach einem frischen Windowsstart auftreten oder erst nach einer Weile. In meinem Fall verzögert. Ebenfalls bei mir zutreffen war, dass Aussetzer noch zusätzlich verschärft werden konnten durch das Browsen mit Firefox bzw. Internetzugriff auch mit anderen Programmen – eigenartiger Weise nicht mit dem Internet Explorer. Zeitweise hatte ich auch Probleme mit einem hakenden Mauszeiger, allerdings vermute ich, dass es da keinen unmittelbaren Zusammenhang gab.

(Falsche) Lösungsansätze

Das falsch ist eher subjektiv denn absolut (belegt) zu verstehen. Ich fasse hier nur mal kurz zusammen, was mir alles nicht geholfen hat.
Natürlich wird man zunächst die Suchmaschine seiner Wahl zur Lösung des Problems heranziehen. Einige Suchbegriffe hab ich ja bereits genannt, wenn es dann hinterher bei mir schon Begriffskolonnen wurden – mal mit Fokus auf die in verdacht geratene Onboard-Netzwerkkarte, mal die Onboard-Soundkarte und schließlich noch mal mein Mainboard (Gigabyte GA-EP35-DS3) selbst.

Wie gewöhnlich findet man Unmengen an Blog- und Foreneinträgen, in der Regel mit der generischen Empfehlung  “Aktualisiere deine Treiber”, “Aktualisiere dein BIOS” – sicher nicht falsch, hilft aber häufig eben nicht. Klassiker ist auch, dass man doch mal seine Festplatte defragmentieren oder seinen Arbeitsspeicher testen/auswechseln sollte – mag ja in dem ein oder anderen Fall was dran sein, aber diese Tipps erscheinen mir mittlerweile eher als “Hardware-urban legends“. Ebenfalls einer Klassiker, dabei aber recht brachiale Lösung: Windows neu installieren. Eine Lösung zu der ich mich nicht aufraffen konnte, die aber in meinem Fall sogar geholfen hätte. Ebenfalls sehr häufig empfohlen wird, dass man doch mal auf einen Sharing-Konflikt bei den IRQs diverser Hardware prüfen sollte. Führt in der Regel auch nicht weiter, aber wer’s prüfen will: Start > Ausführen > msinfo32.exe und unter Hadwareressourcen > Konflike/Gemeinsame Nutzung gucken. Im Gerätemanager nachschauen – [Windows + Pause] > Gerätemanager – schadet sicher sicher prinzipiell auch  nicht.

Geholfen hat mir das alles nicht, aber dafür hab ich nun wirklich die aktuellsten Treiber und das aktuellste BIOS. Es schließt natürlich nicht aus, dass dies bei dem ein oder anderen bereits reichen kann, allerdings suggerieren versandende Foren-, Artikel- oder Blogkommentare gegenteiliges in vielen Fällen. Noch erwähnt sei, dass auch bisweilen Lautsprecher als Problem vermutet wurden. Dazu dann noch mal kurz im Epilog.

Richtiger Schritt zur Lösung

In die richtige Richtung lief es bei mir, als ich nach meinem Mainboard als Fehlerquelle suchte. Unter anderem tauchte dann ein Forumsthread Gigabyte P35 motherboards and DPC auf. Vorweg gesagt: man findet nicht nur zu Gigabyte, sondern auch anderen Herstellern mit dem P35 Chipsatz (wahrscheinlich auch anderen) viele Beiträge, die ein BIOS/Chipsatztreiber-Problem annehmen. Interessant ist zunächst, dass der Begriff DPC Latency fiel und es ein Tool gibt um diese zu prüfen: DPC Latency Checker.

Stark verkürzt geht es dabei darum, dass Windows kein echtes Multitasking-System ist und Treiber sequentiell (nacheinander) ihre Anfragen an den Prozessor schicken müssen. Die Anfragen kosten Zeit und ein schlechter Treiber kann soviel Zeit beanspruchen, dass andere zeitkritische Anwendungen ins Stocken kommen – also insbesondere bemerkbar bei Streaming Media (Musik/Video). Eine genauere Erklärung wird beim Latency Checker selbst gegeben. Wen es interessiert, der sollte sich auch die zwei Artikel Advanced DPCs und insbesondere Vista Multimedia Playback and Network Throughput von Mark Russinovich (der “Winternals-Mann”) durchlesen.

Man holt sich also den Checker und dieser stellt die aktuelle Latenz grafisch dar. Der Haken an der Sache ist, dass er nicht anzeigt welches Gerät diese gerade verursacht. Das komplexere MS-Programm RATTV3 scheint dies theoretisch zu können, allerdings ist es für XP ausgeschrieben und zeigt bei mir unter Vista auch nur ein “Cumulative Histogram for:” für “()” und “Unknown  (Unknown)”. Nun, der Latency Checker reicht ja auch. Aufgrund der ganzen Artikel hab ich ohnehin die Vermutung, dass sich der Graph – sollte er denn permanent im roten Bereich liegen, ansonsten wird dieser Beitrag wohl aber auch keine Lösung bieten – in den grünen Bereich verschieben wird, sobald die Netzwerkkarte deaktiviert wird. Aber….

Haken der Lösung

DPC (Bei Festplatenscan)Ja, aber. Die Beschreibung beim DPC Latency Checker suggeriert, dass das Problem sei, dass ein “schlechter” Treiber ständig und ohne Not Anfragen stellt und das so “mal eben” festgestellt werden könnte. Wenn dem faktisch bei der Analyse so ist, dann ist das Problem wahrscheinlich ausgemacht und wenn der aktuelle Treiber nicht hilft, dann hilft vielleicht alternative Hardware. Aber gehen wir mal davon aus, dass ein “guter” Treiber nur dann aktiv wird, wenn eine Anwendung (z.B. Winamp oder der Browser) eine Anfrage stellt. Und wenn dies der Fall ist, dann würde ich ganz natürlich erwarten, dass der Graph ausschlägt, wenn z.B. eine Anwendung startet oder läuft. Das ist auch beobachtbar. Provoziert durch eine Anwendung, eine Art Dateiscan, krieg ich auch sowas wie links dargestellt hin (was zu sehr eigenwilligen Soundausgaben führt).

Ob nun eine Anwendung oder der Treiber per se Probleme verursacht, sobald man das entsprechend beanspruchte Gerät deaktiviert ist die Ursache völlig gleich und der Graph wird schon runtergehen.

Lösung

Möglicherweise ist es ja eine Binsenweisheit, aber ein ausdrücklicher Hinweis, dass auch eine Anwendung das Problem sein könnte, wäre schon meines Erachtens angebracht.  Um es nicht zu unterschlagen: Google spuckt auch meine Comodo Firewall als Kandidaten für DPC-Probleme aus. Entsprechend wäre der Checker aber natürlich auch am verlässlichsten, wenn man wirklich keine Anwendung laufen hat. Am besten also wohl einen Neustart machen und dann erst mal alles schließen was so mitstartet  besser noch sukzessive, so dass man ggf. den Verursacher von Aussetzern erkennen kann.

Das wäre wohl der beste Weg, aber ich bin dem Problem eher über einen kleinen Umweg (naja, eigentlich war er sehr direkt) auf die Schliche gekommen. Da die Netzwerkkarte schließlich zumindest als Teilproblem ausgemacht war, der Treiber aber aktuell war, hab ich entnervt TCPview angeschmissen. Eigentlich hab ich da gar nichts mehr erwartet (langsam war ich auf dem Trichter, dass es vielleicht wirklich am Mainboard-Chipsatz liegen könnte), aber da war ein Programm ganz eifrig dabei ständig Verbindungen aufzubauen. Erfolglos, da in der Firewall geblockt – bringen ja doch was die Dinger. Das Log ist voll mit Verbindungsversuchen alle 2 Sekunden. Nur warum sollte eine Datei winmgr.exe mit der Beschreibung “Windows File Manager” das tun. Websuche nach Dateiname und IP zu der sich verbunden werden sollte lieferte dann diese Infos von ThreatExpert. Trojaner anscheinend, wirklich sicher bin ich mir aber noch nicht, was es gemacht hätte. Die IP allein deutet auf ein dubioses ehemaliges Forum hin.  Allerdings hat weder mein Virenscanner, noch ein Onlinescanner eine Warnung produziert, auch nicht bei direktem Check der Datei… Und wo sie herkam – nun, das haben wohl Trojaner so an sich, dass man das nie so recht weiß.

Aber mit Abschuss des Prozesses ging die Latenz erheblich runter, wo sie doch vorher quasi permanent im roten Bereich war – seit dem Tag auch keine Probleme mehr mit der Hintergrundmusik. Deswegen hätte ein Neuinstallation natürlich auch geholfen. Übrigens: Prozessorlast hat der Prozess nicht verursacht, allerdings hätte der Prozess und seine Bezeichnung schon stutzig machen sollen. Allerdings war ich so dermaßen auf dem Trichter, dass es ein Hardware-/Treiberproblem sein müsste… Andererseits stutzig gemacht hat mich von Anfang an, dass die Aussetzer erst nach einer gewissen Laufzeit von Windows auftraten.

Epilog

Das ganze hat mich wirklich Nerven gekostet. Und – auch wenn es ein wenig peinlich ist – auch Geld. Allerdings ist die 20 Euro-Soundkarte tatsächlich gefühlt besser, aber vielleicht ist das ja auch eher ein psychologisches Moment (“Nein, der Kauf war nicht völlig sinnlos”) 😉

DPC (aktuell)Im Endeffekt war es aber nicht die Hardware und kein “doofes” Vista. Obwohl Russinovichs Blogartikel schon ein wenig mangelnde Voraussicht nahelegt und es scheint mir, dass das auch ein Grund für das Windows Vista tcpip.sys Connection Limit sein könnte (was es allerdings schon unter XP gab, dort aber vertretbar simpel geändert werden konnte). Trotzdem war es einfach nur ein Programm. Wer weiß – vielleicht hätte es nicht mal etwas merklich gestört wenn es erfolgreich raustelefonieren hätte können. Im Zweifel würde ich aber davon ausgehen, dass nicht bösartige Programme allein für so einen Effekt verantwortlich sein können.

Gerade im Moment sieht mein Graph jedenfalls wie links dargestellt aus. Es laufen zig Programme und trotzdem kommt Depeche Mode vollkommen störungsfrei am Ohr an. Ja, da sind immer noch rote Spitzen, aber die sind sehr sporadisch gegenüber vorher und sorgen für keine Aussetzer. Da ich mich schon vor einem ganzen Weilchen aus den Reigen der “Ich merk’s nicht mehr, aber den Messwerten nach geht’s noch besser”-Optimierer verabschiedet habe, reicht mir das.

Tja, das war’s eigentlich… Ach, ich erwähnte ja oben noch, dass ab und an Musikboxen als Problemursache vermutet werden. Das habe ich bei mir immer verworfen, weil es mir absurd schien, dass alles eine gute Weile lief und Aussetzer (an bestimmten) Stellen nicht reproduzierbar waren. Neben Aussetzern hatte ich aber noch das Problem, dass die Musik manchmal plötzlich extrem leise oder laut wurde, aber ich hielt das nur für zwei unterschiedliche Effekte bei gleicher Ursache. Hier hat Murphy dann zugeschlagen. Nachdem ich obige Lösung hatte und ganz glücklich war, wurde es nämlich plötzlich nochmal leise. Man soll Geräte ja nicht anthropomorphisieren, aber manchmal ist es echt schwierig sich das ins Gedächtnis zu rufen und nicht einfach reinzutreten (umm nein, ich neige nicht zur Gewalt gegen Menschen) . Ums kurz zu machen – die Boxen waren nicht das Problem, wohl aber deren Kabelfernbedienung (Creative Inspire). Die scheint einen Wackelkontakt zu haben. Manchmal springt die Lautstärke, wenn man daran rumspielt (natürlich nicht Lautstärkeregelung direkt regelt ;)). Eigentlich ist da nicht mal wirklich etwas zum Wackeln, wenn man reinguckt. Im Moment läuft’s stetig und ich fang mich schon an zu fragen, ob ich phantasiert habe (ne, schon recht sicher ;)). Da wird man aber auch irre. Und das alles für ein bisschen Entspannungsmusik – leicht ironisch.