Nebojte se funkcí v DAW - Plug-in Delay Compensation

Nebojte se funkcí v DAW - Plug-in Delay Compensation
Nebojte se funkcí v DAW - Plug-in Delay Compensation

Po několikaměsíční odbočce a jakémsi miniseriálu (o směrování signálu) uvnitř našeho seriálu o DAW, se vrátíme zpět na hlavní cestu. Dnešní díl bude zaměřen spíše na teorii než na nějaké skutečně praktické použití. Ale to, co chci sdělit, není vůbec od věci vědět a mít na paměti. Budeme se bavit o kompenzaci zpoždění jednotlivých plug-inů.

 

Všechny digitální systémy mají nějaké zpoždění, prostě potřebují nějaký čas na to, aby provedly potřebné výpočty na procesoru a zvuk byl zpracován požadovaným způsobem. Dokonce i hardwarové rekordéry nebo hardwarové syntezátory mají zpoždění. Jen ho tolik nevnímáme jako u počítačů, protože u rekordérů je to v podstatě jedno a u syntezátorů je zpoždění menší než u počítačů. (Například proto, že na jejich pozadí neběží obrovský operační systém, který se v případě klasického počítače kromě zpracování zvuku stará ještě o spoustu dalších úkonů; a také výkyvy v latenci, tzv. jitter, jsou u hardwarových nástrojů - v podstatě opět ze stejného důvodu - nižší).

Vícero plug-inů v groups v side-chainu
Vícero plug-inů v groups v side-chainu

Hrajem’

Pošleme zvuk (třeba kytaru) do zvukové karty, odsud jde signál po USB kabelu do počítače (už tady vzniká nějaké zpoždění a jitter kvůli přenosu dat přes USB), tam se dostane do DAW, které úkoluje procesor. V DAW je signál zpracováván ve stopě. Na danou stopu aplikujeme nějaké virtuální efekty (plug-iny). Jedná se o kytaru, použijeme tedy simulaci kytarového aparátu (snímací hlavy, mikrofonu, efektů, zesilovače, reproboxu) a případně přidáme ještě nějaké další efekty, aby to bylo zajímavější. Každý jeden z těchto efektů potřebuje čas, aby byl výsledný zvuk propočítán. A teď tu máme druhou stopu, například zpěv. Na ten samozřejmě nebudeme aplikovat simulaci kytarového aparátu, ale použijeme klasickou (nutnou) trojici kompresor, ekvalizér, reverb, a jak už dnes bývá zvykem, také nějaké automatické doladění, ne? Myslím, že je zřejmé, že tyto efekty potřebují úplně jiný čas pro zpracování zvuku, než ty, které jsme aplikovali na zvuk kytary.

LatencyMon pro detekování latence
LatencyMon pro detekování latence

Nojo, ale my přece potřebujeme, aby tyto stopy byly naprosto synchronní. Když zahraje kytarista přesně se zpěvákem, musí to být i po zpracování zvuku efekty naprosto přesné. A to ne jen tak halabala, prosím pěkně. Jde tady o milisekundy. O to, aby ve výsledku byly jednotlivé smíchané stopy opět synchronní, se naše DAW interně postará samo. Konkrétní řešení se maličko liší, ale princip je v podstatě všude stejný.

 

Hodinový strojek

Jak to funguje uvnitř? DAW samozřejmě ví, jaké plug-in jsou v jaké stopě použity. A také ví, kolik času bude každý jeden plug-in potřebovat na to, aby byl pomocí něj zvuk zpracován. Jedná se o parametr Latency, který můžete v některých DAW u jednotlivých plug-inů vidět. (To, že danou hodnotu v okně DAW vidíme, ještě neznamená, že té hodnotě můžeme věřit - bohužel; ale kompenzaci zpoždění se věřit dá a nebo si ji můžeme sami ověřit.). Dané DAW tedy sečte hodnoty latence všech plug-inů dané zvukové stopy a celou stopu posílá ke zpracování s předstihem tak, aby se vše stihlo. Ve výsledku je tedy daná stopa právě o tuto hodnotu součtové latence předsunutá dopředu. Jednoduché, že? Ještě nejsme u konce.

Latence systému, buffer: 2048 samplů
Latence systému, buffer: 2048 samplů

FX kanály

Uděláme to trošku zajímavější a v signálové cestě použijeme nějaké Sendy a kanály FX, případně i Groups. To znamená, že ze stopy zpěvu pošleme signál přes Send do FX „Vokály“, na které použijeme nějaký společný reverb. A kytaru naopak pošleme do Groups „Rytmika“ a i na ni aplikujeme nějaký efekt (třeba aspoň EQ). Už vidíte, jak se nám to začíná zamotávat? DAW musí samozřejmě započítat do předsunutí dané stopy i ty efektové plug-iny, které jsou použity v těchto kanálech FX a Group. Se stopou Group je to poměrně jednoduché. Prostě se latence plug-inů ze stopy Group přičte ke zpoždění stopy. Ale s kanálem FX je to ještě zajímavější. Na výstup posíláme přece čistý signál bez efektů kanálu FX, ale zároveň na výstup posíláme i signál s efekty kanálu FX právě přes FX. Takže i zde musí dojít k synchronizaci. Jenže signál do Sendu musí být poslán s menším zpožděním než signál na výstup dané stopy. Konkrétně pouze s negativní hodnotou zpoždění, které mají plug-iny pouze dané stopy, bez FX. Tím se kompenzuje zpoždění kanálu FX.

Latence systému, buffer: 32 samplů
Latence systému, buffer: 32 samplů

Ještě toho nemáte dost? Zkuste se zamyslet nad zasíláním signálu z jednoho kanálu FX do jiného FX a zároveň do Groups. A pokud si chcete opravdu procvičit mozek, zamyslete se nad tím, jak to celé funguje ještě při zapojení side-chainu, který posílá signál z jedné (řídicí) stopy do jiné (řízené) stopy a tam nějakým způsobem řídí chování některého z efektů, který je na určité pozici v signálovém řetězci. To zní jako domácí úkol, ne?

 

Nahrávání

Na závěr tady máme specialitku v podobě nahrávání do stopy s efekty. Například právě nahrávání kytary, kdy kompletní simulaci kytarového aparátu provádíme pomocí plug-inů v počítači. Na jednu stranu bychom čekali kompenzaci zpoždění plug-inů, aby byl signál synchronní. Ale prakticky to provést nelze, protože signál tvoříme my teprve tím, že jej zahrajeme. V takovém případě tedy kompenzace zpoždění plug-inu fungovat nemůže a aplikována není. Jednoduše není aplikována právě na tu stopu, která je zrovna připravena k záznamu (Record Enable nebo Arm Record).

Psáno pro časopis Muzikus