Защо има латентност?

Качено от mic на Thu, 05/13/2021 - 21:52

Всеки път, когато запиша една писта, записът е забавен с около 150 милисекунди (ms). Не звучи добре. Представи си, че свириш един бас с предварително записаните барабани, но, когато слушаш полученото, басът закъснява при всеки такт.

Забавяне в записаната вълна

Може би това е заради моето свирене и моето Focusrite Scarlett и Windows оборудване, но не е. Виждал съм същото с MAudio и Linux, а и с различни софтуери (DAW). Забавянето не се получава, ако записвам със същият компютър, но с вътрешната не-USB (PCI) звукова карта. С други думи, не е заради моето свирене. С Focusrite, латентността е една и съща при различните записани писти и при различните сесии. Същата е и с различни софтуери.

Според мен, това е едно забавяне на свиренето по време на записа. Пистата с барабаните идва по-късно, отколкото трябва, което ме кара да свиря на китарата и баса по-късно и което прави един забавен запис.

Два вида латентност

Има два вида латентност. Едната е забавянето между свиренето на готовите писти и записа на една нова писта. Това е латентността, от която се интересувам. Другата е забавянето между сигнала, който се записва и същия сигнал, които се свири обратно при директния монитор. Това не е тази, от която се интересувам.

Ясно ми е, че ASIO поправя това, но всичките ми проби бяха без ASIO. Не ми е ясно защо трябва един патентован софтуер (ASIO) за да се справим с нещо толкова просто. Няма кой знае какво при изпращането на един сигнал към звуковата карта за свирене и при приемането на един друг сигнал при записа.

Какво причинява латентността? Доста неща работят по време на свиренето и записа на звук: софтуерът, драйверът на звуковата карта, операционната система (и процесора, и USB) и самата звукова карта.

Софтуерът

Не мога да си представя, че софтуерът причинява забавянето, особено когато това се получава с различни софтуери и даже и с такива, които използвам от много време и на които имам доверие.

Тъй като съм създал такъв софтуер, мога да измеря неговата латентност. Отнема около 3 ms да се започне свиренето и записа и да се изпрати сигнала за свирене към устройството за свирене. Да, има една постоянна разлика между позицията на свиренето и записа, която е около 15 ms, но на това не можем да имаме доверие. Въпреки че можеш да измерваш точната позиция на свиренето и записа, тези стойности на практика не са прецизни. Така или иначе, нищо от това не може да причини едно забавяне от 150 ms.

Звуковата карта

Не може звуковата карта да е проблема. Все пак плащаме доста пари за звукови карти, които се славят с малка латентност. Приемам, че пробите, направени от производителите на звуковите карти са верни. Даже и ако един от производителите дава неверни данни, не може всичките да са такива.

Драйверът, операционната система, USB, процесорът

Трудно е да видим какво става между софтуера и звуковата карта. Не знаем всичко, което се върши от драйвера, операционната система, USB и процесора. Но можем да направим няколко извода.

ASIO явно дава ниска латентност, защото подминава операционната система. Но ако операционната система е проблема, защо всичко работи със звуковите карти, които са на PCI?

Имаме и процесора. Всичката работа, която се върши от драйвера, операционната система и USB ще мине през процесора, заедно с всичката работа на софтуера (но не на звуковата карта). Процесорът е потенциалното задръстване. Нещата сигурно ще станат по нормални, ако процесорът е по-свободен.

Това е така. Получава се една по-малка латентност, след като затворих всички други програми и други процеси. Но разликата е малка. Може би махнах около 30 ms от моите 150 ms, но останалите 120 ms са си проблемни.

Може би проблема е с USB. Но пък тогава имаме това:

The Aardvark Direct Mix USB 3

Това е старата Aardvark DirectMix USB 3. Използвах я преди десетина години. На практика, нямаше никаква латентност.

Все още работи. Все още НЯМА ЛАТЕНТНОСТ. Все още не се нуждае от драйвери.

Това съм аз, когато удрям по микрофона с барабаните.

Един запис без латентност

Aardvark обаче вече не е в бизнес.

Може би проблемът е с драйвера. Но това е лудост. Един драйвер, който е създаден от една компания с фокус върху звук с ниска латентност, дава висока латентност. Това може да е така, ако компанията обръща много внимание на драйвера за ASIO и не толкова за драйвера без ASIO.

Защо има латентност?

И така, защо има латентност? Нямам представа. Различните обяснения, които съм виждал, нямат смисъл. Не е толкова трудно да се работи с аудио.

И преди някой да коментира за размерите на буферите: Тук не говорим за директните монитори от софтуера, така че размера на буферите не важи. Така или иначе, пробите ми са с най-малките буфери в моя софтуер, дължината на които е около 1 ms.

автори: mic

Добави нов коментар

Filtered HTML

  • Freelinking helps you easily create HTML links. Links take the form of [[indicator:target|Title]]. By default (no indicator): Click to view a local node.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.