Я бачу купу тверджень, що Джек швидше Pulse і має меншу затримку. Як це так? Чому Pulse називає себе легким, а хлопці Джека називають це жирним? Чи може хтось розбити внутрішність цих двох демонів мирянам?
Я бачу купу тверджень, що Джек швидше Pulse і має меншу затримку. Як це так? Чому Pulse називає себе легким, а хлопці Джека називають це жирним? Чи може хтось розбити внутрішність цих двох демонів мирянам?
Відповіді:
Джек вимагає від вас - знаючого користувача -, щоб налаштувати сервер для визначення найменшої затримки обробки вашої машини. (Затримка обробки - це час, який потрібен серверу для переміщення даних до / з клієнтських додатків, а потім надсилання / отримання чергового "відрізка" аудіо-зразків за межами системи.) Джек або доставить ці шматки аудіоданих вчасно, або це не вдасться і дасть вам недоїдання буфера (іноді його називають "випаданням"), або з'являється і натискає). Якщо Джек послідовно отримує недоліки, то ваша робота - або перезапустити сервер з різними налаштуваннями, або змінити щось у клієнтських додатках, щоб зробити їх ефективнішими, щоб ви могли дотримуватися своїх аудіо термінів. Оскільки налаштування вашого сервера застосовуються рівномірно для всіх клієнтів, Джек є досить корисним для маршрутизації аудіо серед кількох аудіопрограм та отримання прогнозованих результатів. (Тобто це як підключення "гнізда" до різних аудіокомпонентів.)
Імпульс призначений мінімізувати кількість випадків, коли аудіо виходить із-за того, що сервер не дотримується граничного терміну для надсилання / отримання звуку поза системою. Мабуть, це намагається зробити, обираючи великий буфер для клієнтських додатків, які не вимагають низької затримки обробки , а потім "вводити" зразки в цей буфер для клієнтських додатків, у яких раніше термін. Якщо він спробує ввести зразки так швидко, що він пропустить термін і спричинить недоїдання, Pulse автоматично збільшить найменший час, який дозволить клієнту відправити оновлення звуку на сервер. Імпульсні документи чітко заявляють, що надвисока затримка-- скажімо, менше 10 мс затримки в обробці- не є метою дизайну. Зважаючи на те, що сам Linux (і, можливо, ваше обладнання) не був розроблений для планування аудіо в режимі реального часу, я був би схильний їм повірити.
З точки зору конфігурації користувача, Pulse є "легким". (Можна сказати, що Pulse має низьку затримку конфігурації , що, на жаль, багато програм для аудіо Linux, мабуть, не враховують.) З точки зору своєї основної складності порівняно з Джеком, Pulse "жирний".
Щоб отримати остаточну відповідь про те, що швидше, вам просто доведеться отримати пристрій зворотного зв'язку і виміряти затримку в зворотному напрямку у власній системі, щоб знати правду. Затримка в зворотному напрямку - це час, який ваша система потребує для обробки аудіо та отримання того, що обробляється, назад в систему. В Інтернеті є навчальні посібники, які пояснюють, як це зробити під Linux. Це дасть вам уявлення про те, що ви насправді шукаєте, яка сприймається затримка - час, який проходить з моменту запуску події (наприклад, загравання струн гітари) до моменту, коли ви вперше почуєте звук що дає результати (наприклад, чути акорди гітари).
Нарешті, майте на увазі, що і Pulse, і Джек сидять над ALSA у більшості дистрибутивів GNU / Linux. Я знаю, ви запитуєте лише про Джека проти Пульса. Але якщо ви використовуєте єдину аудіо-програму, яка може підключитися безпосередньо до ALSA, немає можливого способу, що додавання Pulse або Jack дозволить отримати меншу затримку, ніж лише ALSA. У цьому сенсі і Пульс, і Джек "жирні".
tldr; ALSA одна найшвидша, Джек корисний для з'єднання декількох аудіоприкладних програм, і Pulse, мабуть, найпростіший у використанні, коли вам не байдуже надто низькі затримки. Ігноруйте будь-яку документацію або дискусії, де використовується термін затримки, не пояснюючи, який тип затримки мається на увазі. (На жаль, як офіційні документи Джека, так і записи блогу Леннарта про Pulse потрапляють до цієї категорії.)
Примітка . Можуть бути випадкові випадки, коли ви хочете використовувати єдину аудіо-програму, і вона має крихкий інтерфейс ALSA та пристойний інтерфейс Джека. У такому випадку використання Джека може зменшити затримку. Але якщо ми говоримо про додатки, призначені для мінімізації затримок, то такі випадки мають бути рідкісними. Але підключіть пристрій для зворотного зв'язку і перевіряйте мою гіпотезу!
Вони насправді схожі за тим, що є звуковими серверами . JACK розроблений для реагування в режимі реального часу / низької затримки, що вимагається професійними аудіо рішеннями. PulseAudio орієнтований більше на загальний робочий стіл (де застосовуються менш суворі потреби). ПА, здається, важчий, ніж JACK - більш складний спосіб спонукає до великих витрат. В Linux обидва використовують ALSA для реального виводу в кінцевому підсумку. За допомогою ПА дані часто переводяться з ALSA (вихід програми) в PA (обробка) до ALSA (вихід), що, звичайно, повільніше, ніж маршрут JACK-ALSA. З іншого боку, він прозорий для додатків, які не можуть використовувати його на власному рівні, оскільки він пропонує їм віртуальну звукову карту з інтерфейсом ALSA.
У будь-якому випадку, якщо ви не збираєтеся створювати музику або не можете жити без регулювання гучності додатків (або перенаправляти звук на іншу машину через мережу), звичайний ALSA зробить чудово, з меншими накладними витратами. Деякі драйвери можуть робити апаратне змішування, і навіть якщо ні, ALSA може змішуватися за допомогою плагіна (можливо, не настільки швидко, як JACK, але "нормальне" використання повинно бути нормальним).
Джек призначений для додатків, які потребують низької затримки, наприклад: аудіоінженерія / створення для музикантів, відео-виробників тощо
Імпульс призначений для звичайних настільних додатків (не сподівайтесь на низьку затримку)
alsa
і oss
вихіднийРівень користувальницького простору Alsa (не драйвери) робить мінімальний (затримка між [*])
У більшості випадків Pulse - найкращий вибір для постійних користувачів настільних ПК. Джек - найкращий вибір для музикантів тощо.
Це насправді не питання "проти". Спочатку рум'яна ми можемо побачити, що вони обидва "сервери звуку". Таким чином, можливо, для висновку потрібно просто вибрати між ними. Це не так. Порівняйте, наприклад, відеокамеру та камеру FLIR, обидві - це камери. Але між ними не просто «вибирати». Вони виконують дуже різні ролі, ці ролі можуть бути компліментарними, але вони жодним чином не є конкурентоспроможними. Кожному потрібен джек, або одному потрібен пульс, або одному може знадобитися і те, і інше. Вибір визначається проблемною областю, а не функціональними елементами, такими як певна затримка.
Щодо "FAT" проти ні, термін використовується в занадто багато способів, щоб мати справжнє значення. Але, як правило, термін FAT, що використовується, коли додаток "робить все для вас", більш-менш. "Легкий" схильний до того, щоб ви завантажили потрібну вам нечутливість, можливо, вибираючи з палітри варіантів і відкидаючи решту. Імпульс - це програма "великої краплі", якій ви даєте кілька параметрів і, майже все, вона йде. Потрібна чи ні, велика кількість функціональності завантажується при запуску пульсу. Джек є однією крихітною і марною програмою, на яку ви склеюєте будь-яку кількість плагінів, програм тощо для створення того, що вам потрібно. Програмісти схильні розглядати світ з боку машинних ресурсів.
Отже, імпульс - це сервер змінної затримки, а джек - фіксований. Це їх конкретні проблемні сфери. Якщо ви просто дивитесь телевізор або слухаєте музику по мережі, вам неодмінно хочеться пульсу. Якщо ви намагаєтеся відтворювати живу електронну музику, вам, безумовно, потрібен джек. Якщо ви дивитесь телевізор і робите важку обробку звукових потоків, вам, безумовно, знадобляться і те, і інше.