18 lipca 2010

Latencja i sterowniki ASIO

Jeżeli zaczęliśmy zajmować się home-recordingiem szybko okaże się, że zintegrowana z płytą główna karta dźwiękowa jest niewystarczająca. Podstawowe powody, dla których musimy poważnie rozważyć zakup dedykowanej karty dźwiękowej, to kiepska jakość przetworników analogowo cyfrowych (AC) i cyfrowo analogowych (CA) oraz wysoka latencja konstrukcji zintegrowanych. Kiepskie przetworniki AC szybko dadzą się we znaki przy próbie zarejestrowania jakiegokolwiek materiału z zewnętrznych źródeł np. gitary czy klawiszy - dźwięk będzie mało dynamiczny, zniekształcony i mocno zaszumiony. Wysoka latencja, uniemożliwi nam całkowicie wykorzystywanie komputera jako procesora dźwięku do pracy w czasie rzeczywistym. Granie na gitarze przy pomocy programów typu Guitar Rig (emulacja wzmacniaczy i efektów gitarowych) lub wykorzystywanie wtyczek VSTi przy współpracy z klawiaturami sterującymi MIDI okażą się niemożliwe. Najprościej mówiąc, latencja to …

ASIO, Steinberg Media Technologies GmbH


… opóźnienie pomiędzy wydaniem rozkazu do komputera, a czasem reakcji którą usłyszymy z głośników. Czas ten zależny jest min. od karty dźwiękowej i od tego ile obliczeń musi wykonać komputer aby móc wysłać sygnał na wyjście karty dźwiękowej.

W przypadku odtwarzania plików mp3 latencja jest niezauważalnie mała ponieważ nie jest to skomplikowana operacja dla dzisiejszych komputerów i kart dźwiękowych. Jeżeli natomiast w programie DAW* będziemy chcieli przesłuchać np. 20 ścieżek i na każdej nałożyć po kilka efektów (chociażby podstawowe - kompresor, bramka szumów, limiter, korektor czy pogłos) to okaże się że opóźnienie z jakim dźwięk jest dostarczany do głośników zaczyna być problematyczne.

W tym miejscu należy wyjaśnić, że cała zabawa z latencją polega na ustawieniu jej z pewną rezerwą, aby przy najbardziej obciążających przeliczeniach komputer nadążył z przetworzeniem dźwięku.

W środowisku Windows, przetwarzanie dźwięku z niską latencją wiążą się z sterownikami ASIO Audio Strem Input Output (Strumieniowe Wejście / Wyjście Audio). Są to sterowniki przygotowane przez firmę Steinberg i zaprojektowano je z myślą o wykorzystaniu komputera jako części studia nagrań. W odróżnieniu od sterowników dostarczanych z systemem Windows (kiedyś MME, teraz WDM) które świetnie sprawdzają się podczas słuchania muzyki, oglądaniu filmów czy grania, sterowniki ASIO mają zastosowanie raczej przy produkcji, gdzie latencja może być krytycznym czynnikiem.

Zasada jest prosta, jeżeli tylko jest taka opcja to używamy ASIO. Większość sprzedawanych obecnie interfejsów audio czy to wewnętrznych – PCI, PCI Express, czy zewnętrznych – USB, Firewire obsługują ten typ sterowników. Jedyne co musimy zrobić, to w ustawieniach programu odnaleźć miejsce gdzie wybiera się sterownik.

Poniżej zrzut ekranu z programu Cubase firmy Steinberg:




Jak widać łączna latencja to nieco ponad 5ms (5 milisekund = 0,005 s). Składa się na to latencja wejścia – 2,667 ms i wyjścia – kolejne 2,667ms. Jest to czas potrzebny komputerowi do przetworzenie sygnału podanego na kartę na cyfrowy (przetwornik AC), obróbka dźwięku (procesor DSP na karcie dźwiękowej) oraz przetworzenie sygnału cyfrowego na analogowy (przetworniki CA) i podanie go na wyjście karty.


Na liście widzimy wszystkie zainstalowane na komputerze sterowniki ASIO, w tym przypadku:




- ASIO 2.0 - ESI Juli@ dedykowany sterownik do karty dźwiękowej, dostarczany razem z kartą. Zapewnia najlepszą (najmniejszą) latencję.
- ASIO DirectX Full Duplex Driver sterownik oparty o DirectSound. Jeżeli mamy sterownik dedykowany (z nazwą karty dźwiękowej) to powinniśmy go wybrać. Jeżeli nie mamy, najlepszym wyborem będzie DirectX Full Duplex
- ASIO Multimedia Driver sterownik najgorszy z możliwych. Gwarantowana latencja rzędu 900 ms.
- ASIO4ALL v2 po zainstalowaniu ASIO4ALL (o którym kilka słów można przeczytać nieco niżej) będzie on dostępny we wszystkich DAWach. Daje możliwośc wybrania karty dźwiękowej (gdy posiadamy więcej niż jedną) i płynną regulację latencji.
- ReaRoute ASIO sterownik dostarczony z programem Reaper firmy Cockos

Każda karta powinna mieć również swoje ustawienia, gdzie dobieramy poziom latencji.




Latencja podawana jest w próbkach (samples), czyli najmniejszych częściach dźwięku w postaci cyfrowej. Standardowo pracujemy z częstotliwością próbkowania 44,1 kHz (częstotliwość zgodna z standardem Audio CD) aby obliczyć latencję w ms, dzielimy ilość próbek na częstotliwość próbkowania. Np. 512 / 44100 = 0,0116 s czyli 11,6ms. Po zmianie latencji na poziomie sterownika (wybierając ilość próbek) w DAWach (nie wszystkich) będziemy mieć informację o latencji w sekundach / milisekundach.

UWAGA! Nie powinno się ustawiać najniższej możliwej latencji za wszelką cenę. Może to doprowadzić do zacinania się dźwięku. Spokojnie możemy ustawić latencję na 10ms (5ms input, 5ms output) ponieważ dźwięki dochodzące do nas z opóźnieniem do ok. 15ms i tak traktowane są przez nasze ucho jako jeden sygnał. Dlatego nawet grając przy takiej latencji na gitarze z użyciem programów typu Guitar Rig nie powinniśmy usłyszeć opóźnień.

W miarę potrzeby jeżeli będziemy mieli bardzo dużo efektów na wielu ścieżkach i będziemy słyszeć przerywany dźwięk, można zwiększać latencję celem odciążenia komputera – dajemy mu więcej czasu na konieczne obliczenia. Zwłaszcza podczas pracy nad nagraniem i tak nie zależy nam na pracy w czasie rzeczywistym jak w przypadku grania na gitarze/klawiaturze sterującej MIDI.

ASIO4ALL czyli ASIO bez ASIO

Projekt ASIO4ALL (ASIO dla wszystkich) to próba stworzenia uniwersalnych sterowników ASIO dla wszystkich kart dźwiękowych pracujących pod systemem Windows. Aby móc zainstalować sterowniki ASIO4ALL należy:

- mieć zainstalowane sterowniki WDM (od Windows XP integralna część systemu)
- udać się na stronę www.asio4all.com
- ściągnąć i zainstalować sterowniki

Najlepiej ściągnąć najnowszą wersję stabilną (w momencie pisania 2.9), z betą mogą być większe problemy. Po zainstalowaniu możemy cieszyć się ASIO nawet na zintegrowanych kartach Realtek.

ASIO4ALL pozwoli nam wybrać kartę dźwiękową i latencję wg własnych preferencji:




Co zyskujemy dzięki ASIO4ALL?

Na pewno nie uda się ”podkręcić” karty, ale dostajemy bardzo wygodne narzędzie chociażby do płynnego regulowania latencji. Chociaż ASIO4ALL to wciąż wykorzystanie sterowników WDM, to jednak jest szansa, że algorytmy wykorzystywane przez te sterowniki mogą poprawić nieco ergonomię pracy. Trzeba po prostu spróbować i porównać, zwłaszcza że nic nas to nie kosztuje.

--

* DAW – Digital Audio Workstation, czyli Cyfrowa stacja robocza audio to program komputerowy służący do produkcji muzycznej. Współczesne programy DAW są to kompleksowe rozwiązania do rejestrowania, edycji i publikacji nagrań. Wspierają sterowniki niskolatencyjne ASIO 2, Core Audio (MAC), różne wtyczki programowe – VST, VSTi, DirectX, RTAS (Pro Tools) oraz standard MIDI. Popularne programy DAW to min Cubase [Steinberg], Sonar [Cakewalk], Samplitude [Magix], Pro Tools [Digidesign], czy Logic [Apple] oraz Digital Performer [MOTU] (ostatnie dwa tylko na komputery MAC).


____________________________________________________________________
Wszelkie prawa zastrzeżone 
Copyright © Michał Pytko 2010 

9 komentarzy:

  1. A jest sterownik ogólny tak jak ASIO na MAC OS X ? bo w Core Audio nie ma regulacji Latencji :(

    OdpowiedzUsuń
  2. Ciężko mi cokolwiek powiedzieć, bo nie mam przyjemności pracować na Macu. Poszukaj gdzieś ustawień bufora, powinna być opcja ustawienia ilości próbek.

    OdpowiedzUsuń
  3. Zastanawiam się nad tym jak ustawić asio4all używane podczas nagrywania w DAWie jednocześnie za pomocą dwóch zsynchronizowanych zegarowo ale różnych interefaców. Czy kompensacja latencji powinna być taka sama? Jak ustawić pozostałe opcje? Co z Hardware Bufferem? dzięki za każdą poradę!

    OdpowiedzUsuń
  4. Witam Wszystkich,
    może Kumuś udało się rozwiązać problem dużej latencji w przypadku interfejsu : Focusrite Saffire 6 USB.
    Kupiłem go ponieważ znalazłem na forum dużo pochlebnych opinii, niestety latencja przy minimalnym buforze (na którym da się użyć jako tako samplera Kontakt 4) wynosi około 20 ms.

    Używam drivera oryginalnego ASIO ze strony producenta.

    Komputer to w miarę nowa maszyna : I5, 4GB RAM , dysk esata, Windows 7 x64.

    Będę wdzięczny za info, lub poradę jaki interfejs w granicach do 1000 zł będzie w 100% miał niską latencję i dobrze współpracował z NI Kontakt.

    pozdrawiam Robert

    OdpowiedzUsuń
  5. Focusrite Saffire 6 USB, spróbuj pod xp-kiem.

    OdpowiedzUsuń
  6. Dzięki wielkie, bardzo przydał mi się ten wpis :)

    OdpowiedzUsuń
  7. Bardzo dobry wpis. Pozdrawiam serdecznie.

    OdpowiedzUsuń
  8. Moim zdaniem bardzo fajnie opisany problem. Pozdrawiam serdecznie.

    OdpowiedzUsuń