В прошлом материале про работу основных принципов звуковой подсистемы на примере Windows, в комментариях вызвало негативную реакцию утверждение автора, что качественный звук в Linux, соответствующий принципу BitPerfect (передача данных «бит в бит”) является лишь предположением, а как оно на самом деле, достоверно не знает никто из-за отсутствия такой проверки.
В этом материале мы такую проверку как раз и сделаем, расставив все точки над «i».
Linux в бизнесе решает в основном узкоспециализированные задачи, в которые звук, видео и графика не входят (для серьезных проектов в это области используется Windows и MAC). Для обычных (домашних) потребителей, Linux является или хобби (построить ОС под себя), или бесплатной ОС, когда нет денег на Windows/MAC (например на работе, где руководство решило сэкономить на лицензиях).
Последние пару лет Linux стал более широко распространен среди обычных пользователей благодаря продажам ноутбуков, где вместо DOS («черного экрана без ничего») уже был установлен Linux. С учетом последних международных событий нет сомнений в том, что Linux и дальше будет проникать в компьютеры рядовых пользователей и получать более широкое распространение.
Теперь о неприятном для «фанатов-линуксоидов». Диалог о качестве звука часто складывается так:
— Как в Linux со звуком, он там лучше/хуже, чем в Windows?
— Конечно лучше, это же Linux, в нем ничего лишнего и он гибко настраивается!
— Да ничего подобного, у меня в Linux все плохо со звуком
— А вот и нет, у меня под Windows вообще не работает, а под Linux определилось и все супер!
— А проверяли на побитовую точность (BitPerfect)?
— Зачем? Там же все прозрачно и понятно. По логике проблемам негде взяться.
— И ни у кого подозрений даже нет?
— Ну, некоторые интересовались. Слушали и под Linux и под Windows. Под Linux большинству нравится больше.
— А гарантии или материальную ответственность кто-то дать может, что действительно все «бит-в-бит»?
— Зачем это? Ведь говорю, слушали, сравнивали, Linux лучше, какие еще гарантии? И вообще, Linux, он бесплатен…
— Но ведь Windows проверяли и он показал побитовую точность в Wasapi и если звук в Linux отличается, то значит он дефектный.
-Вы просто ничего не понимаете….
На форумах можно найти множество рекомендаций и настроек по звуковой части Linux, но вот фактических данных, что эти настройки гарантируют качество на уровне бит-в-бит (BitPerfect) нет. На дворе 2015 год, вопрос о корректности вывода данных возникает постоянно, но желающих сделать проверку самостоятельно не нашлось… А минусы лишь за подозрение в непогрешимости Linux показывают, что вопрос еще и болезненный.
В чем важность теста Linux на BitPerfect?
Правомерно ли сомневаться в качестве звуковой подсистемы Linux, если ее никто корректно до сих пор так и не проверил? Пока нет проверки и результата, что Linux работает корректно, рекомендовать Linux в состав высококачественных аудио систем то же самое, что и утверждать «на авось». К счастью, качество звука, это не точность расчетов запуска ракеты в космос, что бы сильно переживать. Или может дело в том, что подавляющее большинство использует встроенные или бюджетные звуковые карты? Кто тратит только на внешний ЦАП более $1000, обычно более привередлив и требователен к качеству звука. Если уж обсуждаются «золотые USB кабели» то уж математику ОС явно стоит проверить.
Варианты проверки на BitPerfect
Сверка записи фрагмента
Проверить систему можно разными способами, одним из которых является запись фрагмента по цифровой петле, а после в бинарном виде сверка бит в бит. Однако такой тест очень трудоемкий и требует наличие звуковой карты с цифровым входом и выходом. Дополнительно такой тест требует звукового редактора, который будет работать в определенной разрядности, а не во float данных (с плавающей запятой) для экономии ресурсов. Если верить пользователям Linux, то эта ОС достаточно распространена среди ценителей качественного звука и пусть тест и муторный, он вполне осуществимый, тем не менее его так никто и не сделал. Это говорит или о несерьезном отношении к звуку со стороны пользователей Linux, или о низкой квалификации в этой области со стороны пользователей, не представляющих, как такой тест сделать на практике.
Проверка с помощью специализированного оборудования
Второй вариант достаточно простой, взять какой-нибудь ЦАП с функцией проверки побитовой передачи — но вот беда, такой ЦАП (например Audiolab M-DAC) стоит под $1000. Если пользователь Linux стал приверженцем системы из финансовых соображений, то подобные устройства у него вряд ли есть.
Субъективное прослушивание
Остается последний вариант, это субъективное прослушивание. К сожалению, тест по определению не обладает высокой степенью точности и может давать даже заведомо ложный результат.
Прежде всего, тест должен соответствовать концепции двойного слепого прослушивания, что организовать не всегда просто.
Далеко не все звуковые карты поддерживают 44.1 кГц напрямую, очень многие (особенно популярные карты от Creative и встроенный звук) не имеют прямой поддержки 44.1 кГц — там всегда есть ресемплинг в 48 или 96 кГц. И конечно же разницу можно услышать между воспроизведением в Linux и Windows, но субъективное сравнение с такими картами – это сравнение качество ресемплеров, а ни как не концепции «бит-в-бит».
Если карта поддерживает 44.1 кГц напрямую, то можно действительно сравнить звучание подсистемы, но реально ли отчетливо услышать добавленный дизеринг (очень тихий шум) при микшировании? Это маловероятно даже на очень дорогих трактах. Т.е. мы можем придти к мнению, что все в порядке, но внутренне опасаться, что возможно на каких-то композициях мы теряем некоторую музыкальную составляющую, что система дает результат не на 100%, а на 99.99%.
С чем сравнивать? Формально, если Linux выводит звук верно, звучание должно ничем не отличаться от звука Windows из под WASAPI. Заниматься же просто прослушиванием, «нравится/не нравится» смысла нет, т.к. это будет просто выбор того звука, который нравится, а не которых соответствует концепции «бит-в-бит».
Тест BitPerfect в Linux
Что бы расставить точки над «i» и фанаты Linux смогли или прокричать «мы же говорили, что Linux самый лучший» или «ну и что, что побитовой передачи нет, зато звучит то как хорошо!», автор предложил сделать проверку побитовой передачи звукового потока с помощью упомянутого выше Audiolab M-DAC, обладающего аппаратной проверкой данных. Для теста необходимо воспроизвести специальный проверочный wav файл и подать звуковой поток на M-DAC, на любой цифровой его вход (SPDIF, TOSLINK или USB). Встроенный анализатор соответственно выдает статус по BitPrefect в режиме проверки. На текущий момент для M-DAC существует два файла с разрешение 44,1 кГц 16 бит и 96 кГц 24 бит.
Предлагалось привести компьютер с установленным Linux со звуковой картой с цифровым выходом. Альтернативный вариант – это компьютер с Linux со свободным USB портом для подключения M-DAC напрямик и соответственно передачей звукового потока по USB (вариант менее желательный, т.к. вдруг бы M-DAC не определился в системе?).
Что показательно, кто громче всех считал бредом само наличие сомнения качества звуковой подсистемы Linux, не посчитали необходимым поучаствовать в тесте.
Практическое тестирование
На предложение проверить Linux откликнулся ValdikSS, предоставив ноутбук с установленным Linux (KDE). Отдельной звуковой карты не было, поэтому к ноутбуку подключался M-DAC по USB. M-DAC определился сразу и ничего не помешало проведению теста.
Перед тестом в Linux была проведена отдельная проверка M-DAC в Windows из под Foobar2000. Под WASAPI из foobar2000 для тестовых файлов 44/16 и 96/24 M-DAC отрапортовал статусом “Bit Accurate”, а при выборе Direct Sound соответсвенно «Test Failed» — микширование подсистемы Windows не осталось незамеченным.
Убедившись, что M-DAC работает корректно, приступили к проверке в Linux.
Использовалось для проверки три плеера, VLC, MPV и GStreamer. При настройке в Pulse Audio двух поддерживаемых частот 44.1 и 96 кГц для всех плееров можно было наблюдать корректную работу автомата опорной частоты (при соответственно отключенных ресемплерах в настройках плееров). При выставлении значения регулятора громкости в 100% M-DAC отрапортовал “Bit Accurate”, что указывает на полностью корректную передачу данных от плеера до самого ЦАП.
При передаче звукового потока напрямую в ALSA, не задействуя Pulse Audio, возникли сложности.
USB приемник в M-DAC принимает поток исключительно в 24 бит. При выборе WASAPI в Foobar2000, отдельно выставляется разрядность выходного потока и звук есть только при выборе 24 бит. Т.е. преобразованием разрядности занимается непосредственно Foobar2000, по сути добавляя «пустые» 8 бит. Т.к. преобразование происходит корректно, то тест с файлом для 44кГц 16 бит проходит положительно. Аналогично в Linux при выводе звука в Pulse Audio, именно Pulse Audio делает преобразование (и по результатам теста – корректно).
А вот в ALSA не удалось отправить 16-ти битный поток, который бы из ALSA поступил в 24 бит в M-DAC по USB и тест для 44.1 и 16 бит был провален. Тест же для 96 кГц и 24 бит прошел корректно, что дает основания считать, что если у звуковой карты на прием доступен режим в 16 бит – то будет полный порядок.
В комментариях предлагается поделится мнением, как можно конвертировать 16 бит в 24 в ALSA, если это возможно.
Впечатления со стороны
Общие впечатления автора со стороны, как пользователя Windows.
Очевидные плюсы звука в Linux
Среди плюсов можно отметить, что настройки в Pulse Audio/ALSA имеют прямое отношение к любому программному плееру и соответственно количество и разнообразие плееров гораздо больше, чем плееров в Windows c настройкой Wasapi (настройка доступна только в параметрах плеера). Особо выигрышно тут выглядят видеоплееры, т.к. под Windows из видеоплееров с WASAPI пока доступен лишь Light Alloy.
Очевидные минусы звука в Linux
Отладка параметров с использованием консоли. Возможно, освоить консоль не долго. Но это лишнее время, которое потребуется потратить пользователю, вместо того, что бы получить сразу быстрый результат в Windows.
Воспроизведение DSD потока, получающего более широкое распространение последние пару лет, пока под большим вопросом.
Итог тестирования
Тест показал, что Linux действительно можно использовать в составе Hi-Fi/Hi-End систем с концепцией BitPerfect. И если раньше Linux подходил на эту роль теоретически, и давал повод для сомнений, то проведенный тест показал, что концепция BitPerfect является реальностью и доказанным фактом.
Автор Кузнецов Роман @ romanrex
Автор: SOUNDPAL