2006-09-24

 

Latency - introduktion

Nackdelen med att spela in igenom en dator är att man aldrig kan spela in i absolut realtid. Det uppstår alltid en (om än minimal) fördröjning från att du spelar/sjunger en ton, till att den "fastnar" på hårddisken eller strömmar ut ur högtalarna.

Denna fördröjning kallas på engelska för latency och vi har i princip lånat in uttrycket i svenskan, åtminstone i dessa kretsar.

Att få låg latency i Linux är precis som i Windows ett mer eller mindre komplicerat åtagande.

BAKGRUND

Musik handlar mycket om tajming, att slå ner rätt tangent vid rätt tillfälle, att slå an en sträng eller sjunga ett ord i samma ögonblick som ett annat instrument gör sin grej. Det är därför som latency är så viktigt, för om man missar i tajmingen låter det till slut väldigt illa. Särskilt vid sånginspelning är det viktigt att latencyn är låg.

Det finns flera faktorer som påverkar latency:
Olika ljudkort belastar systemet olika mycket. USB-ljudkort, till exempel, får oftast högre latency på grund av utformandet av USB-standarden och dess prestanda. Även AD/DA-omvandlare och annan elektronik på ljudkortet kan påverka fördröjningen.

Generellt sett gäller att ju snabbare dator och ju mer optimerat system du har desto lägre latency går det att arbeta med.

Ju effektivare och mer beprövade drivrutiner som finns för ljudkortet, desto större chans att få en låg latency.

Minnesbuffertens storlek påverkar även den latencyn. Paradoxalt nog så blir det mindre fördröjning ju mindre bufferten är, eftersom den töms och fylls på med kortare intervall. Detta ökar också belastningen på datorn, vilket föranleder punkten ovan om datorkraft. Det finns dock en gräns där datorn inte hinner med att spela upp utan störningar och det är den gränsen man ska försöka att balansera på, men inte överskrida.

Ju högre samplingsfrekvens, desto mindre fördröjning. Detta eftersom bufferten fylls på och töms snabbare ju fler samples per sekund som den arbetar med. Dock ökar belastningen på datorn i motsvarande grad. Dubblad samplingsfrekvens ger i princip dubblad belastning.

Latencyn går att räkna fram genom att dividera minnesbuffertens storlek med samplingsfrekvensen. Exempel: 256 frames / 96000 Hz = 0,00267 = 2,67 millisekunders latency.

Hur mycket latency ska man då ha? En fördröjning på tre millisekunder eller mindre är så gott som omöjlig att uppfatta. För de flesta är även tio millisekunder inga större problem. Säkrast är dock att ligga på cirka fem-sex millisekunder, vilket räcker till även för sångpålägg.

I jämförelse kan man göra en uträkning i ett rum där man som lyssnare sitter på tre meters avstånd ifrån högtalarna/monitorerna. Detta ger en fördröjning (enligt avstånd m / ljudhastighet m/s) på 3 / 343 = 8,7 millisekunder.

ALTERNATIVEN

Det finns tre sätt att få låg fördröjning i systemet. De har alla varierande svårighetsgrad och det kan vara bra att hålla en garvad linux-nörd i handen under åtminstone en av dem:
Dessa alternativ är, för den som är nybörjare, förmodligen listade i ordningen, svår, svårare, svårast, men vi ska försöka bena ut ett och annat som kan hjälpa dig på vägen mot ett sjukt låg-latencysystem.

Häng med.

Comments:
Alltså, rätta mig om jag har fel - men latency spelar väl ingen som helst roll utom i mjukvarusyntsammanhang och om man saknar hårdvarumonitor? Alla DAW:ar kompenserar väl för den latency man har så att allt man spelar in blir synkat. Det är bara när man trycker på "record" som latencyn märks, i form av en liten fördröjning innan inspelning/uppspelning startar. Eller?
 
Skicka en kommentar



<< Home

This page is powered by Blogger. Isn't yours?