Teac UD-301 + DSD + Linux

Попробовал наконец-то проиграть DSD-файлы на своем сабжевом ЦАПе.

Сначала толком ничего не вышло. Вроде Deadbeef умеет играть – на деле так и не запустил native playback. И, как я понял, ядро должно уметь USB-интерфейс для этого (судя по попадающимся в гугле статьям про поддержку XMOS – значит, и для местного тоже должно что-то быть, а не просто модуль usb-audio). При ресемпле (кстати, стоит сразу потыкать опции в настройках плеера на тему ресемплинга – там много чего “лишнего” для корректного вывода потока на ЦАП) звук таки выводился, но – в обычном формате, PCM.

Примерно по той же причине не работали и другие опробованные плеера – mpv, например.

Вообще, на основе тех граблей, по которым походил, можно вычленить несколько пунктов, чтобы не перечислять все плеера и их опции, с которыми я игрался:

  • USB-конвертер должен поддерживаться ядром. Поэтому любой плеер у меня и не получилось бы запустить – устройство просто не реагировало на входящий поток.
  • Плеера умеют работать с DSD, скормленные им файлики проигрывались
  • Если включить ресемплинг – то плеер начинал выдавать уже PCM-поток. В таком случае работал usb-audio и ЦАП играл в рамках разрешения PCM-потока.

Наигравшись со всем этим, скачал с сайта Teac ASIO-драйвер для винды и их фирменный плеер. Прокинул ЦАП в виртуалку, поставил все это, скормил файл, запустил. Играет – правда, заикается. Ну, как минимум, убедился, что все работает и лампочка на ЦАПе не для красоты.

После этого снова баловался с Deadbeef’ом, “брутфорся” разные варианты настроек. Плюс поискал возможность вывода DSD в MoC (помнилось мне, что где-то видел в настройках опции DoP – оказалось, это был MPD). MoC, кстати, несмотря на вроде как поддержку DSD, файлики с расширениями DSD/DFF/DSF не видел в принципе.

Гуглинг по теме “linux dsd dop play” в итоге привел меня к этой статье: https://www.rollofone.com/?p=309 – тут есть пример строчки для конвертирования DSD-файлов в DoP в FLAC-контейнере. Пришлось собрать dsf2flac – https://github.com/hank/dsf2flac

И вот уже этот файл при проигрывании Deadbeef’ом наконец-то зажег заветный индикатор на ЦАПе. Пробовал, кстати, сначала играть его в audacity – тот как-то иначе выводит сигнал. Музыку слышу, но сквозь шум.

Если подвести итог, то DoP на сейчас – единственный вариант слушать DSD на моем ЦАПе.

В самом Deadbeef’е, как я понял, поддержки DoP пока нет – хотя уже несколько лет, как запланирована.

В mpd есть поддержка, плюс она там гибко конфигурируется. Т.е., обычные файлы могут играться как обычно, а DSD будут прозрачно заворачиваться в DoP. Пока не пробовал, нужна проверка.

4 мысли о “Teac UD-301 + DSD + Linux”

  1. В продолжение изысканий на тему SACD. Скачал Dire Straits в образе. Образ в файлы рипается этим: http://sacd-ripper.github.io – можно просто зайти в каталог sacd_extract, там cmake . && make. Получаем бинарь sacd-extract. Рипаем чем-то в стиле sacd_extract -2 -i Brothers\ In\ Arms.iso -p. Получаем подкаталог с файликами. Дальше конвертим упомянутой в статье утилитой: ls -1 *.dff | while read i ; do dsf2flac -d -i “${i}” “${i}.flac” ; done – получаем DoP’ы. Слушаем :).

  2. Хм. Наткнулся на https://community.roonlabs.com/t/what-is-required-for-native-dsd-on-linux/20795
    Глянул у себя:
    rain@walkbook:~$ cat /proc/asound/card1/stream0
    TEAC Corporation TEAC UD-301 at usb-0000:00:14.0-2, high speed : USB Audio

    Playback:
    Status: Stop
    Interface 1
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800
    Data packet interval: 125 us
    Interface 1
    Altset 2
    Format: S32_LE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800
    Data packet interval: 125 us
    Interface 1
    Altset 3
    Format: S32_LE DSD_U32_BE
    Channels: 2
    Endpoint: 1 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800
    Data packet interval: 125 us

    DSD_U32_BE есть. Значит, оно должно уметь native DSD?

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