Skillnad mellan versioner av "Latency"
Claes (Diskussion | bidrag) m |
Claes (Diskussion | bidrag) m |
||
(8 mellanliggande versioner av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
− | |||
Latency (kallas ibland ''latens'' på svenska) är en fördröjning som uppstår både vid audiohantering och midihantering i ett [[DAW]]-system. | Latency (kallas ibland ''latens'' på svenska) är en fördröjning som uppstår både vid audiohantering och midihantering i ett [[DAW]]-system. | ||
+ | =Vad är latency?= | ||
Många tror att latency bara beror på [[ljudkort]]et, men det handlar alltså om hur snabbt hela systemet kan fungera. | Många tror att latency bara beror på [[ljudkort]]et, men det handlar alltså om hur snabbt hela systemet kan fungera. | ||
− | När man spelar in [[audio]] så får man räkna med både input och output latency om man monitorlyssnar på den signal som spelas in genom DAW-programmet. Input och output latency läggs ihop för att få den totala latencyn i systemet (kallas ofta "round trip latency"). | + | När man spelar in [[audio]] så får man räkna med både input och output latency om man monitorlyssnar på den signal som spelas in genom DAW-programmet. Input och output latency läggs ihop för att få den totala latencyn i systemet (kallas ofta "round trip latency"). Inspelningen hamnar alltid "sample accurate" i DAW-programmet, eftersom input latency kompenseras automatiskt, så det är bara medhörningen som drabbas av latency. |
När man spelar in [[midi]], så finns det ingen input latency att ta hänsyn till, utan det är bara eventuell latency i [[klaviatur]]en, midihanteringen (dessa brukar vara i princip försumbara) - och om man spelar upp ljudet från ett [[VSTi]], systemets output latency. | När man spelar in [[midi]], så finns det ingen input latency att ta hänsyn till, utan det är bara eventuell latency i [[klaviatur]]en, midihanteringen (dessa brukar vara i princip försumbara) - och om man spelar upp ljudet från ett [[VSTi]], systemets output latency. | ||
Rad 16: | Rad 16: | ||
De flesta brukar tycka att det är hållbart med en latency upp till omkring 10ms - men det beror både på hur kinkig personen är och vad det är för [[instrument]] man spelar på. | De flesta brukar tycka att det är hållbart med en latency upp till omkring 10ms - men det beror både på hur kinkig personen är och vad det är för [[instrument]] man spelar på. | ||
+ | |||
+ | |||
+ | =Ljudkort= | ||
+ | För lägsta möjliga latency så väljer man ett [[PCI]] eller PCIe-ljudkort. De sitter direkt på PCI/e-bussen i datorn och går alltså inte via något [[extern]]t [[interface]] - och det gör att deras hantering av ljudet blir snabbare. | ||
+ | Andra alternativ är [[Firewire]] och [[USB]], där Firewire som regel är det som kan ge lägst latency av dessa, eftersom det har [[DMA]]-överföring. Under vissa förutsättningar kan faktiskt USB1 ha lägre latency än USB2, men då begränsas man till max 2 kanaler in/ut. | ||
+ | |||
+ | Vissa tillverkare har lyckats komma runt den onödigt slöa USB-hanteringen i operativsystemet i sina nyare [[extern]]a ljudkort, så att de får ner latency nära samma nivå som för Firewire. | ||
+ | |||
+ | Det mesta av problemen med latency, kommer dock av att datorn inte är kraftfull nog för att hantera den låga latency som man vill köra med. | ||
=Drivrutiner= | =Drivrutiner= | ||
− | Det finns vissa generella Direct X eller Multimedia-drivrutiner för ljudkort, som ibland är valda som default i DAW-programmet - och de ger ofta en latency på 0.5 sekund eller ännu mer. Man ska därför inte använda dessa, utan man ska använda sig av de dedikerade låglatency-drivrutiner som följer med ljudkortet - och ställa in i DAW-prgrammet att denna drivrutin ska användas. Olika drivrutiner förekommer för olika DAW-program och plattformar, som t ex ASIO, WDM, CoreAudio. Om man har ett enklare ljudkort som det inte finns låglatency-drirutin till, så kan [[ASIO4ALL]] fungera. | + | Det finns vissa generella Direct X eller Multimedia-drivrutiner för ljudkort, som ibland är valda som default i DAW-programmet - och de ger ofta en latency på 0.5 sekund eller ännu mer. Man ska därför inte använda dessa, utan man ska använda sig av de dedikerade låglatency-drivrutiner som följer med ljudkortet - och ställa in i DAW-prgrammet att denna drivrutin ska användas. Olika drivrutiner förekommer för olika DAW-program och plattformar, som t ex [[ASIO]], [[WDM]], [[CoreAudio]]. Om man har ett enklare ljudkort som det inte finns låglatency-drirutin till, så kan [[ASIO4ALL]] fungera. |
=Samplingsfrekvens= | =Samplingsfrekvens= | ||
Med högre [[samplingsfrekvens]] kan man köra med lägre latency - men bara om datorn har tillräcklig prestanda för att hantera det... | Med högre [[samplingsfrekvens]] kan man köra med lägre latency - men bara om datorn har tillräcklig prestanda för att hantera det... | ||
+ | |||
+ | |||
+ | =Belastning= | ||
+ | Om man har många plugin-effekter och virtuella instrument igång, så kan man behöva öka latency för att datorn ska hinna med att hantera allting. Situationen kan bara förbättras genom att man kör med färre plugins eller skaffar en snabbare dator. | ||
+ | |||
+ | Ett alternativ kan också vara att avlasta datorn genom att installera något [[DSP]]-kort, där kortets effekter körs av en separat processor istället för datorns [[CPU]]. Dessa kort kan dock inte hantera [[native]]-plugins, utan bara plugins som är gjorda för det aktuella DSP-kortet. | ||
+ | |||
+ | |||
+ | =Hur räkna ut latency?= | ||
+ | Ljudkortets drivrutin anger latency till [[DAW]]-programmet, som visar detta i sina inställningar för Latency/Buffersize. Det innehåller oftast summan av både [[ASIO]] och omvandlarnas fördröjning (normalt tar omvandlarna 1-2ms för sitt jobb). | ||
+ | |||
+ | Latency är knutet till samplingsfrekvens (kHz) och buffersize (antal samples), enligt formeln: | ||
+ | |||
+ | Buffer/Samplingsfrekvens = ASIO Latency | ||
+ | |||
+ | [[Frekvens]]en är [[samplingsfrekvens]] i kHz och ASIO Latency blir i millisekunder. | ||
+ | |||
+ | Som exempel kan vi ta 44.1kHz och 128 i buffersize, vilket blir ca 2.9ms på ett håll och alltså ca 5.8ms roundtrip + omvandlarnas latency på 1-2ms, med andra ord ca 6.8-7.8ms totalt. Eventuella fördröjningar i datorns interface och drivrutinerna kan också tillkomma, men där är det svårare att säga något generellt. Avståndet från högtalare till örat tar också tid, som man kan vilja ta med i beräkningen. Mer om det här nedan. | ||
=Rimligt med jakt på låg latency?= | =Rimligt med jakt på låg latency?= | ||
− | Ibland är folk kanske överdrivet kinkiga när det gäller att jaga lägsta möjliga latency. 10ms motsvarar ju ett avstånd på ca 3,4 meter (ljudets hastighet i luft är ju ca 340m/s) - ett avstånd som kanske inte är helt ovanligt om man exempelvis spelar [[gitarr]] och sitter en liten bit bort från sin [[förstärkare]]. Att ha en latency på 10ms kan däremot kännas väldigt konstigt om man spelar trummor, eftersom det ju är ganska ovanligt med så långa armar... ;) Sitter man vid ett [[trumset]] så finns ju trummorna oftast inte mer än någon meter från öronen - och alltså bör det kännas mer rätt om man kan ställa ner latency på ca 3ms. | + | Ibland är folk kanske överdrivet kinkiga när det gäller att jaga lägsta möjliga latency. 10ms motsvarar ju ett avstånd på ca 3,4 meter (ljudets hastighet i luft är ju ca 340m/s) - ett avstånd som kanske inte är helt ovanligt om man exempelvis spelar [[gitarr]] och sitter en liten bit bort från sin [[förstärkare]]. Att ha en latency på 10ms kan däremot kännas väldigt konstigt om man spelar trummor, eftersom det ju är ganska ovanligt med så långa armar... ;) Sitter man vid ett [[trumset]] så finns ju trummorna oftast inte mer än någon meter från öronen - och alltså bör det kännas mer rätt om man kan ställa ner latency på ca 3ms. Detta om man lyssnar med hörlurar - annars kan man behöva ta hänsyn till avståndet från högtalarna till öronen också... |
Rad 40: | Rad 67: | ||
==MIDI== | ==MIDI== | ||
− | Om man spelar in [[midi]], | + | Om man spelar in [[midi]], kan man göra så, att man lyssnar på [[synt]]ens eget ljud medan man spelar in (för att vid uppspelning ändra till kanaler med virtuella instrument i sin DAW), så får man syntens ljud utan latency, men i så fall får man leva med att man inte hör riktigt rätt ljud under inspelning... |
+ | |||
+ | Om man har ett klaviatur utan eget ljud, så finns det dessvärre inget sätt att undvika latency. | ||
+ | |||
[[Kategori:Datorer]] | [[Kategori:Datorer]] | ||
[[Kategori:Mjukvara]] | [[Kategori:Mjukvara]] |
Nuvarande version från 17 april 2014 kl. 10.10
Latency (kallas ibland latens på svenska) är en fördröjning som uppstår både vid audiohantering och midihantering i ett DAW-system.
Innehåll
Vad är latency?
Många tror att latency bara beror på ljudkortet, men det handlar alltså om hur snabbt hela systemet kan fungera.
När man spelar in audio så får man räkna med både input och output latency om man monitorlyssnar på den signal som spelas in genom DAW-programmet. Input och output latency läggs ihop för att få den totala latencyn i systemet (kallas ofta "round trip latency"). Inspelningen hamnar alltid "sample accurate" i DAW-programmet, eftersom input latency kompenseras automatiskt, så det är bara medhörningen som drabbas av latency.
När man spelar in midi, så finns det ingen input latency att ta hänsyn till, utan det är bara eventuell latency i klaviaturen, midihanteringen (dessa brukar vara i princip försumbara) - och om man spelar upp ljudet från ett VSTi, systemets output latency.
När man spelar upp så är det däremot bara output latency som är intressant eftersom allting är lika mycket fördröjt då - och det innebär att man utan problem kan ställa latency till maxvärdet vid mix, för att minska belastningen på datorn.
Hur yttrar sig fenomenet?
Om man spelar in exempelvis sång, så får man monitorlyssningen något fördröjd, beroende på hur kort eller lång latency man kör med. På samma sätt märker man denna fördröjning om man spelar in midi, där det blir latency från att man trycker ner tangenten på klaviaturet tills man hör ljudet från sitt VSTi spelas upp. Ljudet spelas alltid in på rätt plats i DAW-programmet, så det är alltså medhörningen som påverkas av fenomenet. Sjunger man med perfekt timing till musiken som programmet spelar upp, så spelas alltså sången in med perfekt timing, även om man får medhörningen av sången fördröjd i lyssningen medan man sjunger. Med en kraftigare dator och ett bra ljudkort kan man som regel ställa ner latency på kortare tider - men om man ställer in latency för lågt, så börjar det uppstå knaster och sprak - och urspårad synk, så det gäller att hitta rätt.
De flesta brukar tycka att det är hållbart med en latency upp till omkring 10ms - men det beror både på hur kinkig personen är och vad det är för instrument man spelar på.
Ljudkort
För lägsta möjliga latency så väljer man ett PCI eller PCIe-ljudkort. De sitter direkt på PCI/e-bussen i datorn och går alltså inte via något externt interface - och det gör att deras hantering av ljudet blir snabbare. Andra alternativ är Firewire och USB, där Firewire som regel är det som kan ge lägst latency av dessa, eftersom det har DMA-överföring. Under vissa förutsättningar kan faktiskt USB1 ha lägre latency än USB2, men då begränsas man till max 2 kanaler in/ut.
Vissa tillverkare har lyckats komma runt den onödigt slöa USB-hanteringen i operativsystemet i sina nyare externa ljudkort, så att de får ner latency nära samma nivå som för Firewire.
Det mesta av problemen med latency, kommer dock av att datorn inte är kraftfull nog för att hantera den låga latency som man vill köra med.
Drivrutiner
Det finns vissa generella Direct X eller Multimedia-drivrutiner för ljudkort, som ibland är valda som default i DAW-programmet - och de ger ofta en latency på 0.5 sekund eller ännu mer. Man ska därför inte använda dessa, utan man ska använda sig av de dedikerade låglatency-drivrutiner som följer med ljudkortet - och ställa in i DAW-prgrammet att denna drivrutin ska användas. Olika drivrutiner förekommer för olika DAW-program och plattformar, som t ex ASIO, WDM, CoreAudio. Om man har ett enklare ljudkort som det inte finns låglatency-drirutin till, så kan ASIO4ALL fungera.
Samplingsfrekvens
Med högre samplingsfrekvens kan man köra med lägre latency - men bara om datorn har tillräcklig prestanda för att hantera det...
Belastning
Om man har många plugin-effekter och virtuella instrument igång, så kan man behöva öka latency för att datorn ska hinna med att hantera allting. Situationen kan bara förbättras genom att man kör med färre plugins eller skaffar en snabbare dator.
Ett alternativ kan också vara att avlasta datorn genom att installera något DSP-kort, där kortets effekter körs av en separat processor istället för datorns CPU. Dessa kort kan dock inte hantera native-plugins, utan bara plugins som är gjorda för det aktuella DSP-kortet.
Hur räkna ut latency?
Ljudkortets drivrutin anger latency till DAW-programmet, som visar detta i sina inställningar för Latency/Buffersize. Det innehåller oftast summan av både ASIO och omvandlarnas fördröjning (normalt tar omvandlarna 1-2ms för sitt jobb).
Latency är knutet till samplingsfrekvens (kHz) och buffersize (antal samples), enligt formeln:
Buffer/Samplingsfrekvens = ASIO Latency
Frekvensen är samplingsfrekvens i kHz och ASIO Latency blir i millisekunder.
Som exempel kan vi ta 44.1kHz och 128 i buffersize, vilket blir ca 2.9ms på ett håll och alltså ca 5.8ms roundtrip + omvandlarnas latency på 1-2ms, med andra ord ca 6.8-7.8ms totalt. Eventuella fördröjningar i datorns interface och drivrutinerna kan också tillkomma, men där är det svårare att säga något generellt. Avståndet från högtalare till örat tar också tid, som man kan vilja ta med i beräkningen. Mer om det här nedan.
Rimligt med jakt på låg latency?
Ibland är folk kanske överdrivet kinkiga när det gäller att jaga lägsta möjliga latency. 10ms motsvarar ju ett avstånd på ca 3,4 meter (ljudets hastighet i luft är ju ca 340m/s) - ett avstånd som kanske inte är helt ovanligt om man exempelvis spelar gitarr och sitter en liten bit bort från sin förstärkare. Att ha en latency på 10ms kan däremot kännas väldigt konstigt om man spelar trummor, eftersom det ju är ganska ovanligt med så långa armar... ;) Sitter man vid ett trumset så finns ju trummorna oftast inte mer än någon meter från öronen - och alltså bör det kännas mer rätt om man kan ställa ner latency på ca 3ms. Detta om man lyssnar med hörlurar - annars kan man behöva ta hänsyn till avståndet från högtalarna till öronen också...
Hur slipper man latency?
Audio
Ofta har DAW-system eller ljudkort funktioner för att slippa ifrån latency - men nackdelen är att man då inte kan lyssna med DAW-systemets effekter, utan monitorlyssningen routas direkt till utgången innan ljudet går in till DAW-programmet, så att man inte får lyssningen efter all behandling på det spår man spelar in för stunden.
Vissa ljudkort innehåller en DSP-effektenhet, som kan användas för att få effekter i medhörningen utan att behöva få dem från sin DAW och utan att effekterna spelas in på det aktuella spåret. Det som oftast används är reverb, eftersom en del tycker att det känns bättre att sjunga med reverb i lurarna, än att höra rösten helt torr.
Om man spelar in audio och använder en hårdvarumixer, så kan man köra monitorlyssning separat i den och skicka exempelvis en tappning till ljudkortet - och därmed inte behöva bry sig om alls vilken latency systemet är inställt på, men förstås med nackdelen att man inte kan lyssna med effekter från sin DAW, utan måste ha en effektenhet inkopplad i mixern om man vill ha ett feelingreverb medan man sjunger.
MIDI
Om man spelar in midi, kan man göra så, att man lyssnar på syntens eget ljud medan man spelar in (för att vid uppspelning ändra till kanaler med virtuella instrument i sin DAW), så får man syntens ljud utan latency, men i så fall får man leva med att man inte hör riktigt rätt ljud under inspelning...
Om man har ett klaviatur utan eget ljud, så finns det dessvärre inget sätt att undvika latency.