Latency og ASIO-drivere

Latency = forsinkelse. Når dit audioprogram gennem lydkortet gemmer på harddisken, så sker det i klumper – også kaldet buffer. Hvis man vælger en stor buffer, så bliver der en stor forsinkelse i signalet, da CPU'en ikke kan gemme data på harddisken, før bufferen er fyldt op. En lille buffer fyldes hurtigere op og kan derfor gemmes hurtigere (input latency).

Grunden til at man bar brug for buffere, er, at det giver CPU'en tid til at ordne andre ting som fx at opdatere skærmen, tjekke, om du har flyttet musen, osv. osv.
(se output latency illustreret i en informative video fra Richard Ames Music, fra ca. 10:00 tidspunktet)

Lad os antage at bufferen er sat til 256 samplinger i sekundet. Vi kører med 44.1 kHz., hvilket betyder at maskinen arbejder med 44100 samplinger i sekundet. Vi skal så finde ud af hvor lang tid det tager at fylde en buffer på 256 op. Regnestykket ser sådan ud: 256 / 44100 = 0,0058sek = 5,8 ms.

CPU'en har altså op til maximalt 5,8ms, hvor den kan tage sig af andre ting, men hvis ikke den når at blive færdig og vende tilbage for at tømme bufferen inden de 5,8ms er gået, så får du "huller" i lyden.
Så jo mindre buffer, desto hårdere presser du CPU'en til at arbejde for lydkortet, og kan den ikke leve op til det hastighedskrav, så må du lave bufferen større. Og du får dermed også større forsinkelse i lyden.

Bare lige for at sætte disse tal i relief: Lyden bevæger sig 340m/s eller 34cm/ms. Så hvis du står 3 meter fra dine højttalere, så har du allerede hér en latency på 300 / 34 = 8,8ms. Hvilket naturligvis ikke gør det mindre vigtigt at skære af latency'en alle steder, hvor det er muligt. Men hvem har nogensinde hørt en musiker beklage sig over forsinkelsen fra sine monitorer?

Ovenstående udregning (input latency) er dog kun en lille del af den samlede latency på vej fra dit instrument over lydkort til computer og tilbage igen via lydkort og ud til monitor.
Der bruges også tid på konvertering fra analog til digital, USB bus'en har en buffer og der skal konverteres tilbage igen fra digital til analog. Det kaldes samlet set for "round trip latency".

Det illustreres her med et billede fra en artikel om latency hos lydkortproducenten PreSonus.

Lavere Latency er muligt med: 1) en hurtigere CPU, 2) en bedre driver (ASIO).

ASIO latency
ASIO er en standard for audio device drivere lavet af Steinberg. ASIO forsøger så vidt muligt at gå uden om Windows eller Mac styresystemet og lave en mere effektiv kommunikation mellem audio interface og software. Afhængig af lydkort-driver, CPU og kHz kan man komme ned på en latency på mellem 2 og 10 ms, hvilket er acceptabelt.

Input latency
....opstår, når lydkortet ikke kan processere input'et "i tide". Det optagne signal kan ligge nogle samplinger senere end det indgående signal. Optager man flere spor i lag-på-lag teknik, så vil hvert nyt spor være et antal samplinger forsinket i forhold til det forrige. Og arbejder man med mange spor, så skrider hele projektet. Heldigvis kan de fleste programmer tage højde for denne latency.

Windows latency
Windows MME-drivere er ikke særligt gode, men der er rygter om at kommende opdateringer af chip set og af især DirectX vil rette kraftigt op på dette. Latency i Windows MME kan sagtens være på op mod 50-100 ms.

DirectX latency
DirectX er vel nok Microsofts forsøg på at lave noget "ASIO-lignende", men det er altså ikke særligt godt endnu, men der arbejdes hele tiden på at forbedre det.
Nogle unge knøse har lavet deres egne Asio-drivere til lydkort, som ellers kun bruger MME eller DirectX, og de du'r og de er selvfølgelig gratis. (Se længere nede på siden).
Hvis dit lydkort ikke har Asio-drivere, men kun en slags emuleret ASIO MME eller ASIO DirextX, så bør du i det mindste vælge DirectX-modellen. Men rigtig ASIO 2 fra Steinberg er "the real thing" – eller Asio4All, som beskrives sidst på siden.

Direkte monitering klarer ærterne
Hvis dit lydkort har en direkte monitor udgang, så kan det langt hen ad vejen klarer problemet med forsinkelse. Lydkortet kan sende input'et direkte til en udgang – fx høretelefon, så signalet ikke først skal ind omkring computeren og softwaren. Det er især vigtigt med programmer, der endnu ikke kan arbejde med Asio-drivere.

Asio-driver hastighed med onboard lydkort

Et af de spørgsmål man ser igen og igen på Nettet er:
"MIDI-lydene er forsinket ved indspilning fra mit midi-keyboard, hvordan slipper jeg af med forsinkelsen?"

Som regel har spørgeren en computer med et onboard lydkort (onboard = loddet fast til selve bundkortet i computeren). I "gamle dage" blev computere leveret med et "rigtigt" SoundBlaster lydkort på PCI-bussen, og de havde altid en synth chip fra fx E-MU på kortet og havde derfor ingen forsinkelse i MIDI-lydene (men der var selvfølgelig stadig en forsinkelse i Audio).
Onboard-lydkort bruger som udgangspunkt Windows egen software-synth (leveret af Roland). Synthen hedder Microsoft GS Wavetable og den har altid en forsinkelse på 200-400ms. Denne forsinkelse kan man ikke slippe af med ved at bruge en ASIO-driver.
Man skal skelne mellem audio-forsinkelse (som kan forbedres med en god Asio-driver) og så midi-synth-forsinkelse, som man har med Microposoft GS Wavetable.
MS GS Wavetable er måske forsinket 300ms og oven i dette har du så en audi-forsinkelse på måske 100ms. I alt en forsinkelse på 400ms eller næsten et halvt sekund. Det er umuligt at arbejde med.

Microsoft GS Wavetable er den store synder
Derfor må du først og fremmest droppe MS GS Wavetable, da det er her, du kan hente den største besparelse i forsinkelsen. Det kan du gøre ved at bruge et VST-instrument. Der følger nogle gange et VST-instrument med i fx Cubase eller Band-in-a-Box. Ellers må du ud at købe et.
Men du kan også bruge en af de mange synther, der findes. Vi har også sat en vejledning op, så du bare kan downloade og gå i gang. Klik på "Midi-synth uden forsinkelse" i venstre margin.

Asio-driver klarer audio-forsinkelsen
Dernæst må du forsøge at komme af med Audio-forsinkelsen.
Onboard-lydkort har ikke asio-drivere, som ellers kan speede Audio godt op. Men det er der flere private udviklere, der har gjort noget ved, og det betyder, at du fx kan bruge et VST-instrument i Cubase uden at der kommer nævneværdig forsinkelse – og så er disse alternative ASIO-drivere gratis og frem for alt lette at installere – og de funker!

Jeg har testet Asio4All (til både Windows XP, Vista og Windows7).
Det er let af installere og lige så let at fjerne igen, så kast dig ud i det og se, om det fungerer med dit onboard lydkort.

Så kan du starte dit musikprogram og teste, om den valgte latency giver problemer.
Det er forskelligt fra program til program, hvordan man vælger Asio4All som "lydkort".
I Sibelius 7 skal du ind i fanebladet Play, og i venstre side klikker du på pilen lige under mixer-symbolet:

...så kommer du ind i "Playback Devices", hvor der i nederste venstre side er en knap, der hedder [Audio Engive Options...]
Klik på den, og du får dette vindue op, hvor du foroven skal vælge [Asio4All]

...og som du vil se, kan du herefter vælge en Buffer size på fx 256 og dermed få en latency på kun 9,98ms, hvor den måske tidligere var på 70-100ms.

Normalt vil det nu fungere uden nogen særlig forsinkelse i lydene, men hvis der slet ingen lyd kommer ud, så kan det sikkert indstilles ved at klikke på knappen [ASIO Setup], hvor der kan vælges mellem forskellige udgange på dit (fysiske) lydkort.

Bemærk, at Asio4All lader til at hindre, at andre programmer kan benytte højttalerudgangen, så længe Asio4All bruger den. Det giver god mening, for hvis flere programmer bruger den på samme tid, kan det være svært at garantere en lav latency. Derfor skal du heller ikke bruge Asio4All til andre programmer end dem, hvor det faktisk er vigtigt, at der er lav forsinkelse – fx i Sibelius. Og når du arbejder i Sibelius, så er det nok også sjældent, at du samtidig vil afspille en Youtube-video, men nu kender du årsagen, hvis der ikke er lyd på din Youtube video.

Mere om latency her: www.presonus.com/community/Learn/The-Truth-About-Digital-Audio-Latency
Og fra Harmony Central: www.harmonycentral.com/articles/all-about-computers-and-audio-latency
Richard Ames om CPU-hastighed i DAW's: www.youtube.com/watch?v=GUsLLEkswzE

Tilbage til vores info & support sider.