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).
Windows egen driver til at håndtere audio og buffer m.m. er ikke særlig god. Derfor bruger man en såkaldt ASIO-driver i stedet. (Klik og gå direkte til Asio4All driveren længere nede på siden.)

Grunden til, at man har 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, ca. fra tidspunktet 10:00)

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 bussen har en buffer og der skal konverteres tilbage igen fra digital til analog. Det kaldes samlet set for "round trip latency".

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.
Der følger "altid" en ASIO-driver med, når du køber et lydkort.

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-driver er ikke særligt god. Latency i Windows MME kan sagtens være på op mod 50-100 ms. Den nye WASAPI-driver i Windows 10 er langt bedre, men en ASIO-driver vil stadig være bedst.

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.

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. Den lyder forfærdelig 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.

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.
Vi har den billigste løsning til dig, nemlig vores vejledning til Coolsoft VirtualMIDISynth til 99 kr.
Læs mere her, hvor du også kan lytte til de virkelig gode instrumentlyde: www.indigo2.dk/softsynth

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. Her kommer Asio4All til undsætning.

ASIO4ALL

Jeg har testet ASIO4ALL (til både Windows XP, Vista, 7 og 10).
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 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 nederst er en knap, der hedder [Audio Engine Options...]
Klik på den, og du får dette vindue op, hvor du foroven skal vælge [Asio4All].

Klik på knappen [ASIO Setup...] for at få nedenstående vindue op:

...og som du vil se, kan du herefter vælge en Buffer size på fx 128 og dermed få en latency på kun ca. 5ms, 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 vælge en anden lydkort-udgang. Du vælger ind- og udgang for ASIO-driveren i venstre side af nedenstående vindue:

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.
Så lad være med at have en YouTube-video stående åben i baggrunden, samtidig med at du bruger et andet program, der anvender ASIO.

Mere om latency her: www.presonus.com/learn/technical-articles/Digital-Audio-Latency-Explained
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.