Изначально этот текст планировалось посвятить свеженькому бета-релизу Audirvana, наконец-то доступному для пользователей Windows. Я далее кое-что расскажу о нем, но прежде хотелось начать с одного технического казуса, поменявшего сценарий всего материала.
Казалось бы, сравнительный эксперимент сулил предельно простую процедуру. Ну, по крайней мере, мне так казалось. Вот тебе крутая аудиокарта, замыкаем у нее входы/выходы в режим loop-back. Заряжай ASIO-драйверы в меню Audirvana Plus, запускай тестовый файл и снимай показания в RMAA. Потом то же самое проделываем для Jriver и Foobar. Смотрим разницу. Но «не так быстро», сэр…
Неверный аналог, верная цифра
Если мы работаем в RMAA, то USB ASIO аудиокарты нельзя поделить пополам, чтобы одна программа только воспроизводила, а RMAA только записывала. Поэтому для подобных измерений нужен еще один компьютер и еще один ЦАП, желательно с минимумом собственных артефактов, которые не должны затмить возможные отличия транспортов. И здесь снова эксперимент зашел в тупик. Отразит ли ЦАП смену софт-плеера в своем аналоговом выхлопе? И это будет что-то такое, что заметит RMAA?
Дело в том, что практика показывает небольшие колебания измеренных цифр даже при повторном прогоне в той же самой конфигурации. С помощью RMAA можно выявить присутствие земляной петли в схеме. Программа позволяет уверенно диагностировать уровень шумов, характер искажений и профиль цифровых фильтров, но оцифровка динамического аналогового сигнала не может повторяться с точностью бит в бит. Да, эта разница будет ниже порога человеческого слуха, но всегда будут какие-то небольшие разбеги показаний в уровне шума, где-то что-то обязательно изменится. Насколько релевантными должны быть измеренные отличия?
А нам надо именно бит в бит, мы же любим заниматься ловлей блох, не так ли? Так что приступаем ловить не просто блох, а микробов, которые сидят у них на спинках, и весь дальнейший анализ аудиопотоков будем проводить строго в цифровой форме.
Условия эксперимента
Стандартные наборы тестовых сигналов RMAA в 24 бит / 44,1 кГц и 24 бит / 96 кГц поочередно воспроизводились в трех аудиоплеерах Audirvana, Jriver и Foobar, подключенных по ASIO к USB-конвертеру SOtM dX-USB HD.
После SOtM сигнал направлялся по оптике для захвата рекордером Sony PCM-D100. Сам рекордер никакого вмешательства в полученный цифровой поток не производил, поскольку синхронизировался с клоком источника как slave-устройство и лишь записывал в свою память WAV-файлы, которые предстояло проанализировать, а также подгрузить их в интерфейс RMAA для вычисления отклонений.
Отметим, что для чистоты эксперимента каждый тестовый образец запускался дважды. В самом конце тракта эти пары будут сверяться между собой, чтобы удостовериться в стабильности передачи и идентичности потока. А сейчас наконец вернемся к собственно первопричине написания данного обзора.
Audirvana заглянула в окошко
На фоне всяких рум-корректоров и навороченных серверных клиентов типа Roon традиционные софт-плееры немного приуныли, но тем не менее по-прежнему радуют разумной ценой до ста долларов. Audirvana стала одним из лидеров среди аудиофилов-маковедов, и ее грядущее появление на рынке Windows причинило локальный ажиотаж.
Надо сказать, что Jriver за эти годы изрядно поднадоел. К звуку не было претензий, но этот интерфейс хотел управлять всем — и картинками и видео — и оттого был довольно громоздким. К дизайну меню Jriver привыкнуть я так и не смог, хотя в 24-й версии, его наконец изменили, и все более-менее гармонизировалось.
Забавно, что к моменту, когда Jriver сменился на серенькие фреймы и начал отдаленно напоминать продукты Apple, то Audirvana наконец шагнула навстречу Windows c бета-версией. Дистрибутив можно скачать на форуме компании и затем обсудить его с разработчиком Дамиеном Плиссоном из Франции, который поможет с настройками и оперативно внесет правки в исходный код. Например, за время подготовки материала моя жалоба об отсутствии поддержки WavePack 32bit float была оперативно удовлетворена, а более свежий апдейт загрузился автоматически при запуске аудиоплеера.
Настройки и впечатления
Понятное дело, что пробная версия пока далека от совершенства и, наверное, каждый отметит для себя определенные баги. Но ряд важных моментов уже можно выделить. Во-первых, вшитый в прогу Tidal теперь умеет подключаться к ЦАПу по ASIO. А ведь этот протокол до сих пор не реализован в фирменном приложении Tidal для Windows, позор! Разумеется, в меню Audirvana Plus присутствуют и земляки из Qobuz.
Список установленных драйверов структурирован по ASIO и WASAPI. Нажатие на определенный драйвер открывает границы поддержки форматов данного железа, тоже весьма наглядная и информативная штука.
Audirvana показывает размерность потока, который приходит (внизу слева) и уходит (внизу справа) на USB-приемник аудиокарты. Например, видно, что некоторые MQA-альбомы поступают на воспроизведение с дискретностью 192 кГц, хотя на выходе они уже всего 96 кГц. Вообще для MQA-потока важно правильно установить обработку MQA в настройках программы, если та не определила ваш ЦАП как MQA-совместимый. Помимо обхода MQA, существуют еще два режима — Renderer и Decoder.
Если ваш ЦАП имеет MQA-прошивку, не спешите ставить логически напрашивающийся MQA Decoder. Первичную распаковку должна сделать сама Audirvana, поэтому в установках должно стоять MQA Renderer. И только тогда на вашем ЦАПе зажжется заветный MQA-огонек.
Из претензий мне как олдскульному пользователю не очень интересен приоритет синхронизации (как основного менеджера музыкального контента). Перетащить файлы в окошко можно, но вот присвоить исполняемую программу (Audirvana) расширению файла пока не выйдет.
В целом понравилось, что программа довольно легко себя ведет в диспетчере задач и шустро работает. Звук Tidal-потока получается прекрасным благодаря ASIO и гибким возможностям воспроизведения из памяти.
Принудительная конвертация PCM в DSD увеличивает нагрузку процессора i7 с нулевых значений почти до 100 процентов, и рано или поздно в таком режиме программа вылетает. Так что эксперименты с различного рода ресемплерами мы оставим на потом для полноценного релиза.
Бывает ли цифра тоже неверной?
Утилита RME показала, что Audirvana умеет передавать 32-битное аудио, чего, например, не делает Foobar. Вообще 32 бит — это и есть протокол, в котором работает USB ASIO. Следует понимать, что при попытке регулировки громкости в цифровом домене поток будет пересчитан в 32 бит, а затем обратно округлен до 24 бит, и об оригинальных данных можно забыть.
Не поймите меня превратно. Речь не идет о разоблачении века. Я сам в момент написания статьи слушаю музыку, уровень которой понижен цифровым регулятором громкости. Именно для снижения ошибок квантования при редактировании использовалось сначала 24-, а потом 32-битная разрядность. 32 х 6 = т.е. уровень возможной ошибки превышает любые тепловые шумы электроники и отправляется за все мыслимые пределы на минус 180 дБ!
Но в наших экспериментах, конечно же, громкость сигнала изменять никто не будет, везде она установлена на максимальное значение; ресемплеры и прочее отключено, т.е. direct-режим. Цель исследования — узнать, вмешивается ли в оригинальный аудиоданные конкретный аудиоплеер? Причем интересно сравнить данные побитово до последней циферки.
В этом нам должна была помочь утилита bit compare в плеере Foobar. В CD-рипах Bit compare успешно определяет разницу смещений, считывающих CD-приводов, корректирует оффсет и сравнивает собственно конечную сумму двух образцов. В нашем случае она, увы, не везде сработала корректно из-за различной длины записанных отрезков.
Далее, вслед за коллегами из IXBT, пришлось разочароваться в Audio DiffMaker и лезть в HEX-редактор, чтобы лично посмотреть на WAV-образцы в виде «сырых данных» — т.е. таблиц с исходными байтами. Я ведь не шутил, когда говорил про микробов на спинках блох — вот же они, как на ладони. Что удалось выяснить?
Выводы эксперимента
1. В конфигурации (USB ASIO – SPDIF – WAV) запускались пары одинаковых тестовых аудиофайлов RMAA 24 бит / 44 кГц и 24 бит / 96 кГц. Воспроизведение выполнялось на одном и том же, а затем на разных аудиоплеерах в форматах WAV, FLAC, AIFF и ALAC. Т.е. в эксперименте была обеспечена устойчивая повторяемость результата каждого из источников.
2. Для поставленной задачи популярные инструменты сравнения аудиофайлов (утилита Foobar bit-compare и Audio DiffMaker) могут работать некорректно из-за различной длины записанных образцов, либо пересчета потока в 32 бит с плавающей точкой.
3. Проверка целостности цифрового массива оценивалась сначала в HEX-редакторе Neo. Если поток подвергся какому-либо пересчету, таблица оригинальных данных не была бы сохранена вообще.
4. Окончательная верификация проводилась в HEX-компараторе HexCmp, позволяющим при сравнении вручную установить оффсет начала аудиоданных в табличном массиве «сырого кода». Программа укажет на разницу в случае частичного несовпадения битов в паре оригинальных и записанных данных. После применения оффсета HexCmp показал, что вся аудиоинформация, полученная от Audirvana, Jriver и Foobar, совпала на уровне битов с оригинальными образцами RMAA 24 бит / 44 кГц и 24 бит / 96 кГц.
5. Цифровые массивы данных (тестовые файлы RMAA 24 бит / 44 кГц и 24 бит / 96 кГц), полученные от Audirvana, Jriver и Foobar продемонстрировали одинаковые с оригиналами показатели в RMAA-замерах с точностью до пятого разряда после нуля. Отличные от нуля значения интермодуляционных искажений, которые присутствуют в таблице даже у оригинального образца RMAA, объясняются погрешностями формулы подсчета данных в 32 бит, к которым подмешивается дизеринг.