OK, jeg skal prøve etter beste evne og mest mulig forenklet:
Adaptiv:
1. PCen sender ut en lydstrøm basert på samplingsraten og med egen klokke.
2. USB-lydkortet mottar lydstrømmen og tilpasser egen klokke etter lydstrømmen. Om innsignalet har en klokkerate på 44 050 Hz i stedet for nøyaktig 44.1kHz så kan ikke lydkortet gjøre noe med det
3. PCen korrigerer lydstrømmen ut etterhvert lydstrømmen avviker fra egen klokke
Asynkron:
1. USB-lydkortet genererer en noenlunde nøyaktig klokke, selv om denne også vil ha noe jitter som alle andre klokker
2. USB-lydkortet setter blant annet opp en enveiskanal via USB mot PCen. På denne kanalen sender lydkortet klokkefeedback.
3. PCen tar klokkefeedbacken og regner ut hvor mye utstrømmen fra PCen på samme USB-grensesnitt må korrigeres for å tilnærme seg USB-lydkortklokken etter beste evne
4. Dette gjentas igjen og igjen
Som du ser vil asynkron USB kun være et remedie mot PCens antatte klokkejitter. Feedback er, som du helt sikkert skjønner, noe som nødvendigvis må kommer i etterkant av at data er overført. Det vil derfor være et lite tidsintervall mellom det tidspunktet USB-lydkortet merker at klokken på innstrømmen avviker fra egen klokke, til PCen har fått feedback-signal på dette og har klart å korrigere feilen. Dette pågår kontinuerlig. I tillegg vil fremdeles jitter i selve den elektriske overføringen være et like stort tema som vanlig fra PCen til USB-lydkortet.
Den vanlige misforståtte og uriktige virkemåten til asynkron USB:
1. PCen sender ut en lydstrøm til USB-lydkortet
2. USB-lydkortet tar inn strømmen, bufrer den og reklokker med sin egen klokke
Basert på denne virkemåten oppstår naturlig misforståelsen om at overføringen ikke teller så lenge dataene er riktige, siden dataene uansett klokkes ut på nytt. Men dersom man faktisk tenker etter så finner man imidlertid fort ut at dette ikke hadde fungert i praksis. Når man slaver PCen til klokken til USB-lydkortet så må PCen på ett eller annet vis motta enten et klokkesignal eller et korreksjonssignal (feedback) og da ryker allerede prinsippet om uavhengig reklokking direkte i lydkortet uten at kretsen mot PCen og selve PCen blir en faktor.
Hvis man dropper dette og lar PCen styre sin egen klokke i stedet, mens data bare dyttes vilkårlig til bufferet før lydkortet gjør sin greie med egen klokke så får man et problem med å avgjøre hvor stort bufferet må være. Hva om PCen går konsekvent 100hz feil klokkemessig på sampleraten. Bufferet vil ikke kunne klare å håndtere dette over tid. Man er derfor avhengig av at PCen på ett eller annet vis mottar klokkefeedback fra lydkortet og i prinsippet havner man da på den faktiske virkemåten til asynkron USB.
Håper dette var sånn noenlunde forståelig