PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : X-fi unpraktisch und mit mysteriösen Treibern?


Grasso
2013-03-18, 01:55:03
Hallo,

Creative läßt einen den CA20K-Chip umprogrammieren, je nachdem ob man zockt (Gaming), glotzt (Entertainment) oder flötet (Audio Creation). Ich habe von Creative aber keine Auflistung gesehen, was die einzelnen Modes wirklich können. Techspot meint dies. (http://www.techspot.com/reviews/hardware/soundblaster_xfi/soundblaster_xfi-6.shtml)
Auzentech sieht das ähnlich: http://www.forum-3dcenter.org/vbulletin/attachment.php?attachmentid=45210&stc=1&d=1363571248

Gothic und Gothic II verwenden sowohl DLS-Musik als auch DirectSound3D. Die Musik verändert sich je nach Spielsituation. Arrangements und Themen werden gemischt und gehen nahtlos ineinander über. Vielleicht kommt noch ein Crescendo. In einem Epos aus der dritten Perspektive ist die Ortung der Grunzer und Reden weniger wichtig, aber man kann Gothic auch selbstbewußt spielen.

Musik- und DirectSound3D-Stimmen besitzen dieselben Rechenanforderungen, nämlich Tonhöhen- und Lautstärkeänderung. Soundblaster live!/Audigy (EMU/CA10K) hat zwei Engines mit je 32 Stimmen. Hall, Chorus usw. (als EAX in Spielen und für MIDI-Musik) wird dazwischengequetscht. Gothic I/II wird damit komplett hardwarebeschleunigt. Auch Vortex 2 macht das gut. Leider laufen diese Chips auf modernen Hauptplatinen und unter modernen Betriebssystemen nicht gut, würde ich sagen.

x-fi räumt Effekten und Wavetracing im Gaming-Modus gebührenden Platz ein. Es müßte auch noch für hardwarebeschleunigtes, gut klingendes DLS, das unter Windows ein Teil von DirectX ist, reichen. Ich frage mich, was die von Daniel K und PAX gemoddeten Treiber tatsächlich ändern, außer Bass und Höhen ein dB anzuheben, nach DolbyLive zu suchen und irgendwas --ja was?-- von Auzentech einzubauen.

:smile:

ux-3
2013-03-18, 07:19:07
Nach deiner Tabelle frage ich mich, warum man je den Entertainment-Modus anmachen würde? Er kann ja scheinbar nichts besser als Gaming. Vermutlich nur, um ein unverändertes Signal zu bekommen?

Andi_669
2013-03-18, 08:18:16
Daniel K moddet nichts an den Treibern, der packt nur die ganzen Module zusammen u. sorgt dafür das die alle auf dem gleichen stand sind, u. miteinander klar kommen.

PAX pfuscht an den Einstellungen rum deswegen habe ich die auch nie benutzt.

Grasso
2013-03-18, 14:32:53
Nach deiner Tabelle frage ich mich, warum man je den Entertainment-Modus anmachen würde? Er kann ja scheinbar nichts besser als Gaming. Vermutlich nur, um ein unverändertes Signal zu bekommen?
Ich denke für DolbyDigitalLive. Beim nVidia Soundstorm (nForce 2 und Xbox?) war DDL eine feste Funktionseinheit, die man zusätzlich zu DirectSound3D verwenden konnte. Bei x-fi übernimmt das der DSP, der für alles zusammen (plus EAX, MIDI, ...) zu schwach ist.

Danke, Andi. Ich konnte eine x-fi günstig erstehen. Mit dem neuen K10/770 und Win5 würden meine live! und Vortex 2 wohl noch mehr knacksen und/oder abstürzen. Naja, so habe ich eine Menge Kram rumliegen, aber das geht vielen von uns wohl so. Wenn die Treiber denn wenigstens funzen...

ux-3
2013-03-18, 14:48:01
Ich denke für DolbyDigitalLive.

Das funktioniert modusunabhängig.

Gast
2013-03-18, 15:40:47
Hallo,
Hi

x-fi räumt Effekten und Wavetracing im Gaming-Modus gebührenden Platz ein. Es müßte auch noch für hardwarebeschleunigtes, gut klingendes DLS, das unter Windows ein Teil von DirectX ist, reichen.
Im Prinzip hast du doch schon verstanden, worum es geht, und kannst dir die Frage quasi selbst beantworten. Imo ist der Switch Game/Creation/Multimedia nur eine Einstellung, die das interne Datenmanagement auf der Karte beeinflußt.
Das stammt noch aus Zeiten, wo PCI-Soundkarten nur 'niederrangig' ins System eingebunden waren. Afaik wird im Gaming-Mode nahezu der komplette X-Ram zum buffern von Soundsamples verwendet. Für spezielle EAX-Effekte ist dies wohl auch nötig. Das ganze läuft ähnlich wie bei Grafikkarten. Häufig benötigte Sounds werden auf der Karte zwischengespeichert, um Latenzprobleme zu vermeiden/zu verringern. Im Creation-Mode sind es unter anderem die Wave-Samples für HQ-Midi, die im XRam landen, und im Multimedia-Mode wird das X-Ram als Cache für unterbrechungsfreie Streams verwendet. Zumindest ist das meine Vorstellung und der Hinweis des Herstellers zum Thema 'bitmatched playback/recording' paßt da auch irgendwie dazu. Ohne ausreichend Zwischenspeicher sind solche Funktionen nicht machbar.

Jetzt könnte man meinen, daß dies in Zeiten von PCIe nicht mehr erforderlich ist. Dies ist imo jedoch ein Irrtum, da über PCIe noch viel stärker bestimmte Datenpakete priorisiert werden. Schau dir mal an, mit was sich die PCIe x1 Slots auf diversen Mainboards heutzutage alles einen Hard-IRQ teilen müssen. Manchmal haben die Hersteller sogar die USB 2.0-Controler auf dem selben IRQ liegen wie die PCIe x1 Slots. Ein 'wahrer Traum' für alle Gaming-PCs, welche Multimedia-Keyboards und Gaming-Mäuse verwenden, und wo das ambitionierte BF3-Kanonenfutter von heute gleich mal die Pollrate auf 1000Hz hochprügelt. ;)

Ich hatte seinerzeit mal die Hoffnung, daß die Latenz-Geschichten mit PCIe endlich der Vergangenheit angehören. Das Gegenteil ist eingetreten. Tools wie der dpc-Latency-checker erfreuen sich mittlerweile einer ungebremsten Popularität.
Mit diesem Tool lassen sich miese PCIe-Treiber und -Geräte ausfindig machen, welche den Bus blockieren. ;)

Ob man letztlich einen X-Fi-Chip braucht, der einen Mode-Switch besitzt, hängt davon ab, wieviel XRam die Karte hat. Je weniger XRam die Karte hat, desto sinnloser, würde ich meinen. Hinzu kommt dann aber noch die technische Qualität des Mainboards. Je schlechter der Chipsatz und je katastrophaler die IRQ-Belegung, umso sinnvoller erscheint es mir, wenn man eine Karte hat, mit der man den PCIe-Engpässen entsprechend gegensteuern kann.

Was ich ein bischen Schade finde ist, daß Creative sich diesbezüglich nicht in die Karten schauen läßt und viele Funktionen schlicht nicht dokumentiert sind. Paßt irgendwo zum mieserablen Treibersupport. Letzten Endes will man wohl dem berüchtigten Backwards-Engineering entgegenwirken. Nichts wäre schlimmer, wenn es sich herausstellte, daß man über einen X-Fi-Chip unter Umgehung der HDMI-Schnittstelle (und damit unter Umgehung von HDCP) geschützte HD-Inhalte 1:1 kopieren könnte. Besonders 'prekär' erscheint mir die Vorstellung, daß so ein 'bitmatched'-Playback-Chip gar keinen Unterschied zwischen Audio-/Video-Daten macht. Was eine entsprechende Software aus so einem 'bitmached'-Datenstream alles zaubern könnte..... :devil:

Grasso
2013-03-18, 21:51:12
Hi,

DMA/Busmaster ist natürlich so eine Sache. Beim Hochfahren wird ein isochroner Transport zwischen Audiobeschleuniger und Hauptspeicher eingerichtet. Die SB live! macht das für 64 48KHz-Mono-Kanäle, schaufelt also stets 5 MB/s über den Bus, egal wie viele Stimmen wirklich wiedergegeben werden.

Zu jedem Kanal (busmaster channel) gehören drei Zeiger, nämlich für Dateistart, derzeitiger Lese-/Schreibposition und Ende. Wenn die Karte an den Bus rangelassen wird, füllt sie ihren Puffer für alle Kanäle auf. Busmaster (Karte), PCI-Kontroller und Hauptprozessor müssen sich auf ein Schema einigen, die keinen überfordert.

Ein PCI-Durchlauf besteht aus 256 Takten. Ein PCI-Busmaster-Zugriff ist mindestens 8 und höchstens 248 Takte lang. Die Ensoniq Audio PCI braucht für Busmaster mindestens 16 Takte am Stück, sodaß die "PCI latency" auf >=16 eingestellt werden sollte.

Alle PCI-Geräte besitzen Leseregister für minimum grant (dasselbe wie PCI latency, nur in grün) und maximum latency (wie lange zwischen "ich will" und "du darfst"). Diese zwei Werte werden im Gegensatz zur "PCI latency" in 8-fachen Takten angegeben, sodaß der PCI-Kontroller 8 Durchläufe vorausplanen kann. Siehe hier (http://www.reric.net/linux/pci_latency.html)

Das typische PCI-Problem ist ein hörbares Kriseln. Soundkarten besitzen genug Puffer, um selbst einen Monsterdurchlauf (8 * 256 PCI-Takte) ohne frische Daten zu überstehen. Doch der EMU10k (SB Live!) (http://emu10k1.sourceforge.net) kennt nur 20bit-Adressen. Fragt mich nicht, wie dann 32MB Soundfonts abgespielt werden können!

Die maximum latency der Sound- und Netzwerkkarten, die ich mir angeschaut habe, scheint mir jedenfalls sinnlos niedrig; viel niedriger, als es der Puffer erlauben würde, und niedriger, als es auf einem Bus mit einigen 32- und 64-Taktern erfüllt werden könnte. Das wird wohl ein Relikt von ISA sein. Der PCI-Kontroller ignoriert diesen Wert wohl auch. Und Grafikkartentreiber stellen ihre PCI latency auf das Maximum von 248. Das Herunterhacken dieses Werts verschlimmert es nur, weil der Code 248 voraussetzt.

Wenn der Kontroller die Geräte der Ringelreihe nach ranlassen würde, gäbe es trotzdem guten Klang. Tut er aber offenhortlich nicht. i440BX ist für PCI der halbwegs funktionierende Standard, alles andere eher traurig. Mit APIC soll die Interruptbehandlung schneller geworden sein, doch läuft eine Live! oder Vortex2 unter Win98 besser als unter WinXP mit APIC.

Zurück zur x-fi, 2MB Puffer sind sicher gut, um das Busmastergehakel zu umgehen. Würde man 128 Kanäle mit 64 MB puffern, hätte man schon zu große Latenz. Es kommt vor, daß auf Soundkarten Hardware eingesetzt wird, die schon der Treiber nur zu einem Bruchteil ausnutzt; Turtle Beach Hurricanes waren da klasse. Auch bei Grafikkarten werden ja oft Sachen gebaut, die kaum Verwendung finden.

Bitgenaues Durchschleifen von SPDIF läßt die ganze Rechenpower des DSPs gewollterweise ungenutzt. Daß man dieses Konzept "mißbrauchen" könnte, um an eifersüchtig bewachte Daten zu kommen, kann schon sein. Ich würde aber eher daran denken, den DSP kodierte Signal dekodieren zu lassen. Was natürlich auf dasselbe hinausläuft. :D

Match-Maker
2013-03-19, 12:47:00
Hm, interessanter Thread!
Ich habe jetzt nicht mehr so alles im Kopf, was ihr gepostet habt und außerdem kenn ich mich da eh net so aus, allerdings hätte ich auch ein paar Fragen:
Gibt es einen Daniel-K-Treiber für PCIe X-Fis unter Windows 8 64 Bit?
Wie kann ich jetzt nochmal überprüfen ob es beim PCIe 1x Slot zu Stalls kommt? Wenn ja, kann ich da irgendwas optimieren?

Gast
2013-03-19, 15:21:46
Zurück zur x-fi, 2MB Puffer sind sicher gut, um das Busmastergehakel zu umgehen. Würde man 128 Kanäle mit 64 MB puffern, hätte man schon zu große Latenz.
Ja und nein. Die Latenz erhöht sich ja nur, wenn der Puffer über PCIe mit neuen Daten geladen werden muß und die Bus-Kapazität überschritten ist. Je nachdem wie die Cache-Strategie im Treiber aussieht, befinden sich die benötigten Daten für manche der 128 Kanäle ja bereits im X-Ram. (Dabei gehe ich vom Anwendungsfall: Computerspiel aus.) Mit nur 2MB XRam kann man in dem Bereich keine Bäume ausreißen. Ich habe daher nur Karten mit 64MB im Einsatz.

Bitgenaues Durchschleifen von SPDIF läßt die ganze Rechenpower des DSPs gewollterweise ungenutzt. Daß man dieses Konzept "mißbrauchen" könnte, um an eifersüchtig bewachte Daten zu kommen, kann schon sein. Ich würde aber eher daran denken, den DSP kodierte Signal dekodieren zu lassen. Was natürlich auf dasselbe hinausläuft. :D
Es gibt da noch einen anderen Denkansatz. - Aber da ich kein Freund von illegalen Kopien bin, denke ich über sowas nicht laut nach. Wenn das seinerzeit mal alle gemacht hätten, wäre uns das Vista-Treiber-Modell vielleicht erspart geblieben: Ab Windows XP aufwärts kein unmittelbarer Zugriff mehr auf die Hardware.... natürlich nur im Sinne der User.... um die Stabilität der Systeme zu verbessern. ;)

Gibt es einen Daniel-K-Treiber für PCIe X-Fis unter Windows 8 64 Bit?
Ich verwende den Treiber schon unter Windows 7 nicht mehr, da es (zumindest für meine X-Fi) einen funktionierenden Treiber von creative gibt. Auch für Windows 8 wurde unlängst ein offizieller Treiber veröffentlicht. Hier im 3DCF gibt es sogar einen eigenen Thread zu diesem Treiber. Den Daniel-K-Treiber brauchte man afair nur, wenn man seinen PC mit Windows Vista 'infiziert' hatte . :D

Wie kann ich jetzt nochmal überprüfen ob es beim PCIe 1x Slot zu Stalls kommt?
Das merkst du von alleine. Das System scheint immer wieder mal kurz zu hängen, obwohl Grafikkarte und CPU laut Taskmanager in keinster Weise ausgelastet sind. Und vor allem das Gerät, welches du im PCIe 1x Slot betreibst, läuft dann nicht rund.
Wenn es wirklich übel wird, so daß nichtmal mehr YouTube-Videos fehlerfrei am Stück abgespielt werden können, dann solltest du den dpc-latency-checker laufen lassen. Mit dem latency-checker findet man aber oft nur solche Problemfälle, die bereits im Idle den Bus überlasten.

Wenn ja, kann ich da irgendwas optimieren?
Da gibt es eine Menge Sachen, die man machen kann.
1. Man schaut in die IRQ Belegungstabelle im Handbuch vom Mainboard, ob man seine Soundkarte wirklich im bestmöglichen PCIe 1x Slot untergebracht hat. Wenn der Slot sich den IRQ mit dem LAN-Chip oder dem USB 2.0-Controller oder einem zusätzlichen SATA/USB3.0 Controller oder gar den veralteten PCI-Slots teilt, dann ist das nicht gut und man nimmt einen anderen Slot (soweit vorhanden/benutzbar).
Falls sich der Hersteller im Handbuch zu diesem Thema ausschweigt, kann man sich im Windowsgerätemanger die Geräte nach Ressourcen auflisten lassen. Hier ist jedoch Vorsicht geboten, da die Soft-IRQs nicht notwendigerweise mit den Hard-IRQs übereinstimmen.
2. Falls man eine Grafikkarte mit HDMI-Ausgang benutzt aber nicht deren HD-Audio-Chip, dann sollte man den zugehörigen HD-Audio-Controller im Windowsgerätemanager deaktivieren. Das gleiche gilt für Multimedia-Keyboards, welche einen unmittelbaren Anschluß für analoge Headsets/Aktivboxen/Mikros bereitstellen, die nicht genutzt werden.
3. Wenn man eine Gamermouse hat und deren USB-Controller den selben IRQ nutzt wie ein anderes Gerät (zB. Soundkarte über PCIe x1), dann kann man probieren die Pollrate abzusenken und die DPI-Auflösung verringern, um die Datenpakete zu verkleinern und die Abfragehäufigkeit zu verringern.

Es gibt aber wohl auch Mainboards, bei denen alles nichts hilft. Da muß man dann die Karten aus den PCIe 1x Slots rausnehmen und Onboard-Sound aktivieren oder ein gutes USB-Headset kaufen. In solchen Härtefällen kann man das Mainboard nur noch verschenken oder wegwerfen eBay. Die meisten Mainboards (vor allem die billigeren) bestechen durch eine optisch umfassende Ausstattung (Slots und Features noch und nöcher). Aber wenn man anfängt diese auch tatsächlich zu nutzen wird man unter Umständen bemerken, daß das Mainboard ursprünglich nur für den Einbau einer CPU, einer Grafikkarte und bis zu 4 Speichermodulen entworfen wurde. Jede zusätzliche Erweiterung rumpelt dann mehr schlecht als recht vor sich hin. ;)

Grasso
2013-03-19, 19:14:37
Ja und nein. Die Latenz erhöht sich ja nur, wenn der Puffer über PCIe mit neuen Daten geladen werden muß und die Bus-Kapazität überschritten ist. Je nachdem wie die Cache-Strategie im Treiber aussieht, befinden sich die benötigten Daten für manche der 128 Kanäle ja bereits im X-Ram. (Dabei gehe ich vom Anwendungsfall: Computerspiel aus.) Mit nur 2MB XRam kann man in dem Bereich keine Bäume ausreißen. Ich habe daher nur Karten mit 64MB im Einsatz.
Ich glaube nicht, daß das Caching sonderlich "intelligent" verwirklicht ist. Es gibt doppelt so viele Kanäle wie mit der SB Live!, sodaß 10 MB/s über den Bus geschaufelt werden. 10 MB/s : 2MB = 1/4 Sekunde, was ja wohl eine zu große Latenz ist. Wenn der Onboard-RAM aber für Hall/Wavetracing verwendet wird, bin ich glücklich.

Ab Windows XP aufwärts kein unmittelbarer Zugriff mehr auf die Hardware.... natürlich nur im Sinne der User.... um die Stabilität der Systeme zu verbessern. ;)
Der Wolf könnte sich auch mal was neues einfallen lassen, immer dieser olle Schafspelz...

[Problemlösungen...]
Gothic II läuft auf K8, 1 GB, nForce 3, Radeon 9600 und Vortex 2 unter Windows 98 SE stabil und sauber, hat aber Nachladeruckler. (Unter Windows XP gibt es weniger Ruckler, aber dafür krizzelt und kräscht es.) Weil ich so gierig auf mehr als 200% Sichtweite war, muß ich jetzt wieder leiden. ;)

Gast
2013-03-20, 12:37:29
Verstehe ich richtig, dass laut TechSpot die X-Fi in allen anderen Modi außer dem Audio Creation Mode auf 48kHz resampled?
Also sollte ich für Musik am besten diesen verwenden?

Gast
2013-03-20, 13:25:57
Weshalb würdest du das tun wollen, selbst wenn auf 48kHz resampled *würde* (was bei Material, das in niedriegeren Sampleraten vorliegt, wohl eher nicht geschieht)? Hast du Goldöhrchen, die Frequenzen über 22kHz noch wahrnehmen können? ;)

Match-Maker
2013-03-20, 15:07:14
Moin,
also was ich manchmal habe, sind kurze Mini-Ruckler beim Spielen, welche aber unvorhersehbar und nur ganz kurz auftreten. Eventuell liegt es aber auch an meiner Festplatte, da ich nur eine ganz gewöhnliche HDD verwende (Mini-Nachladeruckler?). Keine Ahnung. Auf jeden Fall habe ich aber ein Billig-Mainboard (siehe Signatur oder Profil), welches nur einen PCIe x1 Slot hat, in dem halt meine Soundkarte steckt. Den HD-Audio Sound der Grafikkarte habe ich jetzt auch erstmal deaktiviert. Werde auch mal ins Mainboard-Handbuch schauen. Mal sehen, was sich noch tun lässt...

-GENO-
2013-03-20, 17:09:44
Weshalb würdest du das tun wollen, selbst wenn auf 48kHz resampled *würde* (was bei Material, das in niedriegeren Sampleraten vorliegt, wohl eher nicht geschieht)? Hast du Goldöhrchen, die Frequenzen über 22kHz noch wahrnehmen können? ;)
Was hat den die Abtastfrequenz mit der Tonfrequenz zu tun? Das die Abtastfrequenz bei 48kHz liegt heißt doch nicht das das gesamte Tonmaterial dann mit 48kHz Tonfrequenz losquietscht.

Gast
2013-03-20, 19:14:03
Die Audigy 2 hat noch auf 48kHz hochgesampelt, soweit ich weiß sollte das bei der X-FI auch im Gaming-Modus nicht mehr passieren.

Man kann es übrigens hören, eine Audiodatei mit 44,1kHz Abtastrate die einen Sinuston nahe 20kHz erzeugt auf einer Audigy2 hörbare Geräusche. Mit 48kHz Abtastrate nicht.

Auf einer X-Fi kann man das nicht hören, für mich ein Hinweis, dass Sounds nicht resamplet werden.

Grasso
2013-03-27, 00:42:48
Was hat den die Abtastfrequenz mit der Tonfrequenz zu tun? Das die Abtastfrequenz bei 48kHz liegt heißt doch nicht das das gesamte Tonmaterial dann mit 48kHz Tonfrequenz losquietscht.
Nein, das heißt es nicht. Sie kann mit höchstens der halben Abtastfrequenz, hier also 24 KHz losqietschen. Sie muß es auch nicht aber sie kann, wenn die Tonquelle dies sagt. In der Praxis kann sie auch die halbe Abtastfrequenz nicht mehr wiedergeben, denn der Audio-Antialiasingfilter hat eine Bandbreite von etwa 9/20 fs.

Match-Maker, zwar besitzen moderne Rechner so viel Speicher, daß sie die Festplatte im laufenden Betrieb gar nicht mehr brauchen sollten. Doch selbst das Betriebssystem versichert sich regelmäßig, daß noch alles stimmt, und geht mal pinkeln. Die Ruckler bei Gothic 2 konnte ich übrigens loswerden, indem ich Windows 98 seinen Dateicache wieder selbst verwalten lasse, anstatt ihn auf größer 16MB und kleiner 64MB einzuschränken. Das schweift aber langsam echt ab.

Was die Gäste über's Resampeln sagen, macht Sinn. Allerdings soll der CA20K-Chip (x-fi) auch stark verbesserte Resamplingeinheiten besitzen. Dann könnte immer noch resampelt werden, die Artefakte würden aber unter dem Rauschteppich liegen. Wie auch immer, ich finde, daß man Soundkarten lieber mit symmetrischen Ein- und Ausgängen statt höheren Bitraten und Abtastfrequenzen ausstatten sollte. Die x-fi, ich meine die reine Steckkarte, ohne Paneelenerweiterung, hat ja auch nur noch einen externen Eingang. Zum Zocken eher egal, aber halt nur noch Spannplatte statt Massivholz.