h├ęt platform voor online multimediatrainingen

Wat is latency en hoe voorkom je vertraging tijdens een audio-opname?

Wat is latency en hoe voorkom je vertraging tijdens een audio-opname?

Door: Rob Swart
Wanneer je audio opneemt met behulp van digitale audio workstation software (DAW), krijg je onherroepelijk te maken met latency en de buffer. In dit artikel bespreken we wat latency is, hoe het ontstaat en hoe je er zo goed mogelijk mee werkt?

Wat is latency?

Latency en de buffer zijn onlosmakelijk verbonden aan de opname van digitale audio. Zodra analoge audio jouw geluidskaart of audio-interface binnenkomt, moet het worden omgezet in eentjes en nulletjes. Dit wordt gedaan door de analoog naar digitaal converter. Ook wel bekend als de ADC. Dit omzetten kost tijd en zorgt voor een vertraging in de afluistering. Deze vertraging wordt ook wel latency genoemd. Om latency te kunnen controleren dien je de buffer van je audiosoftware goed in te stellen.

Een analogie ­čśČ

Een analoog audiosignaal kun je voorstellen als een waterstraal. Stel je wilt het aantal deeltjes kalk meten dat per seconde in de waterstroom voorbijkomt. Dan is dit natuurlijk lastig te doen terwijl het water stroomt. Het beste kun je een maatbeker pakken en deze exact ├ę├ęn seconde onder de waterstraal houden. Vervolgens meet je het exacte aantal deeltjes kalk met de juiste apparatuur. Voordat je echter kunt beginnen met meten moet je dus wel eerst een seconde wachten tot de maatbeker de juiste hoeveelheid water bevat.

De analoog naar digitaal converter (ADC)

Bij een analoog naar digitaal converter voor audio (ADC) werkt het ongeveer hetzelfde. Om de frequenties in analoge audio te kunnen meten en om te zetten in digitale data, wordt een buffer gebruikt (onze maatbeker). De grootte van de buffer wordt gerekend in samples. De waarden van het aantal samples varieert van 32 tot wel 4096 samples. Des te groter de buffer, des te langer het duurt voordat deze vol zit en de ADC kan beginnen met het meten en digitaliseren van de audiowaarden.
Na het vullen van de buffer komt het ‘Sample and Hold’ proces. De audiowaarden worden tijdelijk vastgehouden, gemeten en omgezet in digitale data. Vervolgens worden de digitale waarden opgeslagen in een bestand en begint het proces overnieuw. De buffer wordt weer gevuld met de volgende hoeveelheid audio, gemeten, omgezet en opgeslagen.

Aansluitingen van een audio-interface

De digitaal naar analoog converter (DAC)

Wanneer je bijvoorbeeld een zangeres opneemt, is het natuurlijk van groot belang dat zij haar stem direct terughoort samen met de muziek van de bestaande audiosporen. Dit gebeurt via een zogenaamde hoofdtelefoonmix. Via de hoofdtelefoonmix hoort de zangeres of zij de juiste toonhoogte zingt en lekker in de groove van de muziek zit.
Terwijl de bestaande muziekdata afspeelt wordt de binnenkomende zang door de ADC gedigitaliseerd en in een bestand opgeslagen. Daarna moet de zang natuurlijk ook weer zo snel mogelijk worden afgespeeld, zodat de zangeres zichzelf terughoort in de timing van de muziek.

Alle audio in je software wordt afgespeeld door de digitaal naar analoog convertor. Ook wel bekend als de DAC. De bestaande muzieksporen zijn al digitaal en worden door de DAC omgezet in analoge audio en naar de hoofdtelefoon worden gestuurd. De opname van de zang moet echter eerst het digitalisateproces van de ADC doorlopen. De tijd dat het omzetten van de zang in beslag neemt is afhankelijk van de ingestelde buffergrootte. De zang loopt dus nu ten opzichte van de muziek een vertraging op. Namelijk de tijd die nodig was om de buffer te vullen.

“Hoeveel tijd is dat dan?”, zul je wellicht denken. Dit is volledig afhankelijk van de samplerate. Met een eenvoudig sommetje wordt snel duidelijk hoeveel tijd het bufferen in beslag neemt. Opnemen doe je natuurlijk met jouw keuze digitale audio workstation software. Ook wel bekend als een DAW. Bekende software is Logic Pro X, Cubase, Ableton Live en Pro Tools. Bij het aanmaken van een nieuwe sessie of project in je DAW, stel je altijd de samplerate in.
Wanneer je bijvoorbeeld een samplerate hebt ingesteld van 44.100 Hz betekent dit dat de DAW 44.100 samples per seconde verwerkt. Stel je buffer heeft een grootte van 1024 samples dan kun je de tijd die nodig is om de buffer te vullen als volgt berekenen. 1000 milliseconden gedeeld door 44100 samples maal 1024 samples van de buffer. Omdat de vertragingen heel kort zijn rekenen we een seconde in 1000 milliseconden. Hier komt afgerond een vertraging uit van 23 milliseconden.

Zolang de vertraging onder een bepaalde tijdsduur valt, ervaart de zangeres deze niet als storend. Dit heeft alles te maken met hoe het menselijk gehoor tijdsverschil tussen geluiden waarneemt. Dit wordt bepaald door het zogenaamde Haas-effect. De ruim 23 milliseconden uit ons rekenvoorbeeld is flink en zal wel als vervelend worden ervaren. Om de zangeres dus lekker te kunnen laten zingen dient de buffer bij opname zo klein mogelijk te zijn.

Het nadeel van een kleine buffer

Een kleinere buffer zorgt er dus voor dat de opname zo snel mogelijk verwerkt wordt en met een minimale vertraging wordt afgespeeld ten opzichte van de bestaande audiosporen. Een kleine buffer heeft echter wel een nadeel. De buffer moet nu veel vaker worden gevuld en er moet vaker data moet worden omgezet.

Ik zal nog een voorbeeld geven met een makkelijke analogie. Wanneer je een brandje wilt blussen in je tuin met een theekopje, moet je heel vaak van de kraan naar de brand hollen voordat het vuur gedoofd is. Dit is uiterst vermoeiend. Voordeel is wel dat je kopje snel gevuld is en het eerste beetje water snel bij de brand is (oftewel een kleine vertraging of latency). Wanneer je de brand met een emmer wilt blussen, moet je langer wachten totdat je emmer vol zit en je naar het brandje kunt lopen. Je hoeft echter veel minder vaak te lopen om de brand te blussen. Je wordt dus minder snel moe. Dit principe geldt ook voor de processor van je computer. Bij een kleinere buffer moet deze veel harder werken dan bij een grotere buffer.

We kunnen concluderen dat we bij opname altijd een zo klein mogelijke buffer nodig hebben. Dit zorgt voor een kleine vertraging of lage latency. Het belast echter wel je computer meer. Hierdoor heb je tijdens opname minder processorkracht over voor bijvoorbeeld effect-plugins of virtuele instrumenten. Het kan daarom voorkomen dat je bufferfoutmeldingen krijgt bij opname omdat er al teveel plugins actief zijn op sporen die afspelen. Je kunt dan je buffer vergroten, maar dat geeft weer een hogere latency. Beter is het om dan tijdelijk wat plugins of sporen met zware plugins uit te schakelen. Des te sneller je computer is, des te meer sporen met plugins je kunt afspelen tijdens het opnemen met een kleine buffer.

De buffer bij het mixen

Bij het mixen is alle audio al opgenomen. Alle sporen worden dus exact gelijktijdig uitgelezen en door de DAC omgezet naar analoge audio voor de afluistering van je mix. In dit geval kunnen we de buffer op de grootste waarde zetten. We zullen dan hoogstens een (kleine) vertraging hebben tussen het moment van drukken op de afspeeltoets en het daadwerkelijk horen van alle audio. Dit komt omdat er ook een afspeelbuffer is. Die vertraging is natuurlijk helemaal niet erg. Alle audio wordt namelijk exact gelijk afgespeeld.

Moderne daws hebben aparte buffers voor de sporen die worden opgenomen en de sporen die afspelen. De sporen in opname gebruiken een kleine buffer voor een lage latency en de sporen die afspelen gebruiken een grotere buffer. Dit zorgt voor een minimale belasting van de processor zodat je tijdens opname veel meer plugins kunt gebruiken op de overige sporen.

Praktische bufferwaarden

Zoals gezegd wordt de grootte van de buffer gerekend in samples. Wat zijn dan praktische waarden voor opname? Buffergroottes beginnen bij 32 samples en lopen op in verdubbelingen zoals 64, 128, 256 et cetera. Vaak eindigen ze bij 1024 of 2048 samples. Bij een samplerate van 44.100 Hz, oftewel 44.100 samples per seconde, spreek je over vertragingen van respectievelijk 0,7ms, 1,4ms, 2,9ms et cetera. Persoonlijk vind ik een opnamebuffer van 128 samples maximaal. Dit is ook afhankelijk van wat je opneemt. Zang of audio met een langzame attack en decay zoals viool, kunnen nog met 128 samples. Bij het opnemen van percussie en drums daarentegen is 128 samples al aan de hoge kant. Een buffer van 64 of liever 32 samples is prettiger om de drummer of percussionist een optimale afluistering te bieden. Het is allemaal natuurlijk ook nog eens afhankelijk van de muziekstijl en het talent.

Vaak zijn het aantal milliseconden, die daws als vertragingsindicatie geven, wel hoger dan hierboven aangegeven. Dit komt omdat je naast de opnamebuffer ook te maken hebt met andere vertragingen. Bijvoorbeeld die van de USB-bus, de Thunderbolt-bus en de digitaal analoog converter. De totale vertraging van het moment dat audio bij opname je audiointerface binnenkomt, tot aan het moment dat je het weer hoort in je monitoren of hoofdtelefoon, noemen ze een roundtrip latency. Het doorloopt daarbij dus het volledige signaalpad.

Voor de eenvoud heb ik in dit artikel geen rekening gehouden met de vertragingen die het DAC proces en de plugins kunnen veroorzaken. De vertraging die door de DAC wordt veroorzaakt zorgt ervoor dat de zangeres de opname iets later hoort. Hierdoor zal haar stem ietsjes te laat worden opgenomen. Goede DAWS weten echter wat deze vertraging is en zetten de audio bij het stoppen van de opname iets eerder in de tijd. Typisch de lengte van de DAC vertraging.

Het compenseren van de vertraging die wordt veroorzaakt door het verwerken van plugins, wordt plugin delay compensation genoemd. Hoe dat werkt is een onderwerp voor een ander blogartikel ­čÖé

Hopelijk heb je nu een beter inzicht in het fenomeen latency gekregen. Wat is jouw ervaring met buffering en latency?