Det hela är inte så konstigt egentligen även om det kan vara svårt att förklara/förstå.
Det vi pratar om här är hur dataströmmen kommer från disk till D/A-omvandlarna och det finns ungefär lika många lösningar på detta som det finns konstruktörer. Jag skulle vilja peka på några aspekter som är väldigt avgörande ur prestandasynpunkt.
Interrupt - Hur bra hanterar ljudkretsarna interrupt? Måste man via mjukvara polla (dvs fråga) dem ofta för att ta reda på olika statusbitar eller kan kretsarna själva generera interrupt vid de tillfällen de behöver uppvaktning? Hanterar drivrutinerna eventuella interrupt med hög eller låg prioritet och är mjukvaran effektivt skriven?
DMA - Idan använder alla ljudkretsar i regel DMA (Direkt Memory Access) för att hämta det data som ska spelas upp. Det hela går ofta till på så sätt att mjukvaran (CPU:n) lägger en hel hög med data i internminne som ljudinterfacet sedan kan hämta själv och behöver således ingen uppvaktning förrän allt data är uppspelat och nytt måste läggas i minnet. Det här är en viktig del av systemet som måste fungera effektivt för att prestandan inte ska bli lidande.
Röster/Voices - Ljudinterface måste kunna spela upp, inte bara varsitt ljud per kanal, utan många olika ljud spelas ofta upp i samtidigt. Det kallar man röster och det är sällan (aldrig?) som ljudkorten är bestyckade med en D/A-omvandlare per röst utan de ljud som ska spelas upp måste först mixas samman digitalt innan de kan spelas upp. Frågan är hurvida ljudkretsarna kan göra denna bearbetning själva eller om det måste göras av mjukvara/drivrutinerna (CPU:n)? Ett väldigt simpelt stereoljudkort kan ha två FYSISKA röster (en D/A per kanal) men det kan stå kanske 64röster i databladet. Det innebär att de 64rösterna mixas samman av drivrutinerna i mjukvara innan de skickas till kortet och det är inte bra.
DSP-effekter - Idag är det vanligt med DSP-effekter (t.ex EAX) och om detta ska göras på riktigt sätt så ska det vara en äkta hårdvaru-DSP inblandad (DSP = Digital Signal Processor). En DSP kan lägga på ekon, filter och andra effekter utan att någon annan hårdvara eller mjukvara behöver göra några beräkningar. Man helt enkelt talar om för DSP:n vilken effekt man vill ha och den gör jobbet. Men det är enbart så som det ska vara. Så är ofta inte fallet, utan ljudkretsar som säger sig ha EAX-stöd kan sakna DSP och alla effekter måste således genereras i mjukvara vilket är oerhört ineffektivt.
Uppackning - Dagens avancerade spel och program innehåller en ohygglig mängd ljud och det skulle ta en oerhörd plats att ha allt data uppackatat, okomprimerat och färdigt för uppspelning. Därför är allt i regel ihopbakat för att underlätta filhanteringen och spara utrymme (Det är nästan enbart i studiosammanhang man använder sig av ljudkort som direkt kan accessa och packa upp data ut ljudbanker från disk). I detta fall är prestandan mest beroende av hur effektiv mjukvaran man kör är och mindre på drivrutiner och hårdvara.
Det blev myckt text det här. Jag tror jag nöjer mig så länge.