Latency

Iedereen die iets met muziek doet op een computer krijgt ermee te maken: latency. Maar wat is het eigenlijk, hoe ontstaat het en wanneer heb je er wel of geen last van?

Een computer of ander digitaal apparaat heeft altijd een bepaalde hoeveelheid tijd nodig om een opdracht uit te voeren. Dus ook om een opname of sample af te spelen, geluid op te nemen of een synthesizerklank te produceren.  Tussen het moment dat het apparaat de opdracht krijgt iets te doen en het moment dat het geluid uit je speakers komt zit onvermijdelijk een beetje vertraging: latency.

Bij digitale apparaten zoals stagepiano’s, synthesizers maar ook digitale mengtafels is het apparaat specifiek ontworpen om die latency zo beperkt mogelijk te houden. Je moet dan denken aan hooguit 2ms (milliseconden). Ter vergelijking: als je monitorspeaker of gitaarversterker één meter van je oor vandaan staat, duurt het al zo’n 3 ms voor het geluid de weg van speaker naar oor heeft afgelegd. 1 of 2 ms is dus in bijna alle gevallen verwaarloosbaar.

Computers zijn tegenwoordig zo snel dat de latency ook hierop minimaal kan zijn. Maar helemaal nul wordt het nooit. Daarom wordt muzieksoftware zo ontworpen dat die latency zoveel mogelijk omzeild wordt en je er als gebruiker dus weinig of niets van merkt. Zie kader.

 

Voorbeelden waarbij latency optreedt, maar waar je er – als het goed is – niets van merkt:

  • Afspelen van muziek: tussen het moment dat je op ‘afspelen’ klikt en de muziek daadwerkelijk klinkt, zit altijd een beetje tijd. Maar in de praktijk merk je dat nauwelijks.
  • Opnemen van muziek: op dezelfde manier komt geluid de computer ook eigenlijk iets te laat binnen. De software schuift in feite elke opname een fractie op naar voren, zodat het weer klopt.

Plugins: elke plugin (effect binnen je DAW) heeft tijd nodig voor zijn signaalbewerking (zgn plugin delay of plugin latency). Je DAW compenseert dit door het signaal er iets te vroeg doorheen te sturen. (Plugin Delay Compensation). Dit staat meestal automatisch aan. Alleen als je een plug-in realtime gebruikt, zoals bijvoorbeeld een synthesizer plug-in of gitaar amp simulatie, kun je wel last hebben van de latency van de plugin, maar in de praktijk is deze meestal verwaarloosbaar klein.

Goed, tot zover geen probleem dus met latency. Wanneer heb je er dan wél last van?

Vooral in één situatie: als we live willen musiceren via een computer. Je wilt bijvoorbeeld een synthesizer plugin van Logic bespelen vanaf je MIDI keyboard. Of je gitaargeluid door een amp simulatie plugin sturen. Of in een opnamesituatie een koptelefoonmix maken via je DAW.

Als de latency in zo’n situatie te groot is, ga je dat meteen merken. Je drukt een toets in en het geluid komt duidelijk te laat. Je zingt in de microfoon, maar je hoort je stem later terug door de koptelefoon – een soort echo / chorus effect. Muziek staat of valt met timing, dus teveel latency is onwerkbaar!

Manieren om de latency te verkleinen

Meestal is er een mogelijkheid om de latency te verkleinen, als de volgende drie zaken optimaal zijn:

  • Hardware (interface)
  • Driver
  • Buffersize

Hardware

Het is bijna vanzelfsprekend dat een professionele geluidsinterface (bijv op USB) beter presteert dan de standaard jack output van je laptop. De electronica in een externe interface is gemaakt voor muziektoepassingen zoals opnemen en sequencen, dus presteert ook qua latency eigenlijk altijd beter.

Driver

Een driver is een stukje software dat de schakel vormt tussen in dit geval je audio interface / geluidskaart en de muzieksoftware. Bij zowel Mac OS X als Windows zitten standaard drivers voor geluidskaarten van bijvoorbeeld laptops en PC’s. Bij professionele audio interfaces horen meestal specifieke drivers die je moet installeren.

De kwaliteit van de driver is van groot belang voor een stabiele werking van je setup, maar ook voor de hoeveelheid latency. Hoe beter de driver, hoe minder latency deze veroorzaakt.

Hier begint vaak de eeuwige Mac vs. Windows battle onder muzikanten. Want toegegeven: de standaard audiodriver van Mac OS X is van een veel betere kwaliteit en heeft een veel lagere latency dan het audiosysteem van Windows. Mensen die bijvoorbeeld met Sibelius werken op een standaard Windows laptop zonder externe audio interface, weten dat de latency in zo’n setup onwerkbaar groot is.

dus, Stap 1:
Zorg voor een professionele audio interface met goede driver. Alles op USB (liefst USB2 of 3) of Thunderbolt is eigenlijk goed tegenwoordig. Check de specs: de te verwachten latency is daar altijd in vinden. Of je op Mac of Windows draait maakt dan vaak niet veel meer uit: de driver van de interface is bepalend.

Buffersize

Elke driver / geluidskaart maakt gebruik van een buffer. Een buffer vormt als het ware een datareservoir om te zorgen dat de datastroom (dus het geluid) niet meteen onderbroken wordt als de computer even moet rekenen. Het is goed te vergelijken met een waterleiding met reservoir en kraan, zie kader.

Als de aanvoer van water start, loopt eerst het reservoir vol. Daarna stroomt het water pas naar de kraan. Als de aanvoer even onderbroken wordt, blijft het water gewoon uit de kraan stromen, tot ook het reservoir leeg is. Hoe groter het reservoir, hoe veiliger. Maar ook: hoe meer vertraging in het systeem.

Hoe groter de buffer, hoe veiliger. Het duurt immers lang voordat de buffer leegloopt als er een onderbreking van de aanvoer plaatsvindt.

Maar: een grotere buffer betekent dus ook meer latency!

Waarom zetten we de buffersize dan niet altijd op “extra small”? Omdat er dan grote kans is op “drop-outs”, klikjes en gekraak omdat de computer de datastroom niet “bij kan houden”. Zeker als je computer bijvoorbeeld niet veel werkgeheugen heeft of de jongste niet meer is, kan hij het niet bijbenen en krijg je onderbrekingen in het geluid. De buffer moet dus wel groot genoeg zijn om dit te voorkomen.

Conclusie:

  • Moet de computer veel rekenen? Grotere buffersize nodig. Voorbeelden: mixen met veel tracks en plugins.
  • Is er minder rekenwerk? De buffer kan vaak kleiner. Resultaat: kleinere latency. Bijvoorbeeld: een notatieprogramma, een project met maar een paar tracks, weinig plugins, etc.

Buffersize vergroten: meer latency, maar stabielere werking
Buffersize verkleinen: minder latency, maar meer kans op storingen

Stap 2 in het verkleinen van de latency is dus: het kiezen van de juiste buffersize.

Buffersize wordt uitgedrukt in samples. Werkbare groottes liggen meestal tussen de 64 en 256 samples. Daarboven wordt de latency voor live musiceren te hoog. Voor mixen kun je gerust naar 1024, je merkt er dan immers weinig van.

Tot slot is het natuurlijk verstandig om in de opnamefase zo min mogelijk (onnodige) plug-ins ingeschakeld te hebben, omdat die de latency tijdens het terugluisteren vergroten. Eén van de grote voordelen van duurdere systemen zoals Protools HD is dan ook dat deze zo gemaakt zijn dat je latency-vrij plug-ins kunt draaien tijdens het opnemen.

Buffersize instellen in diverse software

Niet genoemde programma’s hebben vaak vergelijkbare menu’s

Sibelius:
Play => Playback Devices (kleine pijltje rechts onder in vak ‘Setup’
Dan: Audio engine options.

Logic Pro:
Preferences => Audio
I/O buffer size

Cubase:
Devices => Device Setup
In het menu links kies je voor VST audiosystem
Je ziet dan zowel de input- als output latency weergegeven.
Om de buffersize te veranderen, ga je links naar het submenu van je audio interface (bijvoorbeeld: Focusrite Scarlett) en klikt op Control Panelrechts.

Tip: voor Windows bestaat de freeware driver ASIO4ALL, een universele driver die de latency op je standaard geluidskaart drastisch kan verkleinen.
Helaas werkt de driver voor zover ik weet maar met één programma tegelijk, en kun je dus niet in Sibelius werken en tegelijk op YouTube iets beluisteren.

Meer lezen? https://sonimus.com/home/entry/tutorials/58/audio-latency-tutorial.html

© Peter Favier 2018 – Dit artikel valt onder een Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Vragen of reageren? info@peterfavier.com