Клуб DiyAudio
Источники аудиосигнала => Цифровые => Тема начата: standov от 11 Июня 2015, 11:34:12
-
Предистория
Есть сетап в котором собран в одном корпусе ПК и DAC через XMOS USB c гальваноразвязкой. ПК в корпусе трудится на убунте через ALSA без ресамплинга (теоретически bitperfect), ниче так трудится, но черт дернул меня обмерять его rmaa. В общем при подаче синуса вижу много высоких гармоник уровня образно -105-110дб. Меня бы это не сильно волновало - хреновая схемотехника еще что, но перебросил вход на виндовый комп и с него все чистенько и еще и полка шумовая опустилась на 5-10дб.
Уже третий день бьюсь что это может быть?
Сначала думал что дело в земле, мол цап и пк сидят на одной, оторвал - ниче не поменялось
Думал дело в конфиге алсы, все повыбрасывал, гуглил по ночам - без изменений
Кабель менял
Встроенный комп в отдельную розетку даже включал )
ПС причем когда я перебрасываю вход DAC на другой комп я встроенный не отключаю, тоесть если он куда и срет то срет в обоих случаях и теоретически одинаково
Выглядит это так
[attachment=1][attachment=2]
и добавил...
Высокие гармоники видны в VA, к сожалению скрин сделать уже не могу, разобран ) вот там где "трава" в rmaa в VA виден десяток гармоник на обоих каналах от синуса (
-
Похожее в винде происходит, если в дровах XMOS не переключаешь частоту, те стоит 44 а ты пытаешься мерить 96...
-
нет, в винде выставлено 24/96 и я читаю регистры с сабри - говорит 96 приходит. и в винде как раз вообще все ок, проблема в линухе.
ПС под линухом сабря тоже говорит 96.
Из дежурной идеи - xmos настроен в линухе только на 32bit i2s. я так понимаю что у сабри все-же "родной" 24 (хотя тут я сильно не уверен). Возможно в винде драйвера xmos как-то переключают программно на 24 i2s, сегодня попробую резисторами законфигурить железно на 24 и в линухе
-
xmos настроен в линухе только на 32bit i2s.
да, вполне возможно что из за этого.
-
хотя похоже гоню, это 9008 24. а 9018 32 и регистры у меня на 32бита вроде как стоят (надо перепроверить будет)
и добавил...
Эксперимент с 32-х битных файлом показал что дело таки в alsa которая каким-то диким образом 24 в 32 преобразовывает. Теперь думаю что с этим делать
-
Сам спросил - сам ответил ) Замена алгоритма ресампла у ALSA на samplerate_best делает ее по замерам - идентичной винде. Всем спасибо )
-
standov, я думал, частота не менялась, менялась только разрядность данных, верно? Мне в голову и не приходило, что при этом ресамплер задействуется.
-
Используется, я тоже не думал но нашел толковую статью на сей счет - простое добивание нулями снизит уровень на 48дб, потому так не делают а грубо говоря умножают
-
Интересно... Я кучу времени слушал с Debian'а музыку, драйвер карты на входе принимает 32 битный поток, если не ошибаюсь (где-то формат выставлял), а вот делал ли я что-то с настройкой ресамплера, я даже и не помню.
-
Ну я очень не думаю что разницу слышно, на 16/44 искажения ниже младшего бита, в 24/96 уже видно на графиках, это было скорее спортивное - выжать максимум на исходном материале
-
Отнекропостю - по рецептам собаководов переключил alsa на soxr ресамплер, использование цпу уменьшилось а графики хоть на вднх выставляй - идеально
-
standov, конечный alsa.conf можно на всякий случай?
-
Одним алса-конфигом дело не обходится, soxr ресамплер включается через подмену библиотек при запуске плейера
В моем случае:
LD_PRELOAD=/usr/lib/i386-linux-gnu/libsoxr-lsr.so.0 ALSA_CONFIG_PATH=/usr/share/alsa/alsa.conf ./jive