Asio

Voor Windows is het verstandig om ASIO (Audio Stream Input.Output) te gebruiken omdat deze er voor zorgt dat de hardware (onze geluidskaart en interne computercomponenten) voor audio zo direct mogelijk worden aangesproken.
Dit scheelt vertraging die we latency noemen.

Een “buffer grote” verteld de computer hoeveel data hij “klaar” moet zetten zodat deze verwerkt kan worden. Als we deze buffer op veel zetten dan zit er tijd tussen dat wat we doen en wat we horen. We horen het immers niet eerder dan wanneer de buffer gevuld is met data om af te spelen.
AsioBuf
Voorbeeld, we spelen een sample (fragment) af door op een midi keyboard toets te drukken. Op moment dat we de toets indrukken zal het fragment in de buffer geladen worden en daarna aan de geluidskaart aangeboden worden.
Stel we hebben onze buffer op 1024 samples en ons fragment is gesampled op 44.1kHz.
Er zal dan voor (1024/44100) 23,2ms audio geladen worden en daarna aan de geluidskaart aangeboden worden. Dit is dan onze latency (nog even los van Firewire of USB buffers). Zetten we echter de buffer op 256 samples dan wordt het (256/44100) 5,8ms. De buffer zal echter dan ook sneller weer gevuld en gelezen moeten worden. Als onze processor snel genoeg is kan dat zonder problemen, anders zullen we klikken en ploppen horen op momenten dat de buffer leeg is en nog niet gevuld is door de computer.

Er zal dus vertraging zijn tussen het moment dat we in een microfoon zingen die op onze geluidskaart aangesloten is en het geluid nadat het digitaal in de computer opgeslagen is weer via deze geluidskaart afgespeeld kan worden.

“Zero-latency” of “Direct monitoring” zijn in deze gevallen handig.

Vaak wordt hiervoor het digitaal domein in de geluidskaart omzeild en wordt het analoog ingang signaal gelijk aan de analoog uitgang signaal toegevoegd.
Zolang we alleen aan het afspelen zijn zal een kleine vertraging tussen het op play drukken en het horen van het geluid niet hinderlijk zijn.