hifionpc.com

Высококачаственный звук при помощи компьютера
It is currently Fri Jul 28, 2017 1:07 pm

All times are UTC




Post new topic Reply to topic  [ 11 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Mon Feb 06, 2012 11:09 am 
Offline

Joined: Mon Jan 30, 2012 10:14 am
Posts: 8
Приобрёл Pegasus II Linear, подключил к USB 2.0 под XUbuntu и весьма удивился - при заявленных характеристика USB-приемника устройство спокойно справляется с потоком 24 бита 192 кГц, при этом никаких искажений не слышно. На пегасе при этом загорается индикатор потока в 96 кГц. Естественно, никаких ресемплеров (ни аппаратных, ни програмных) в тракте комп-пегас нет, pulseaudio я не использую, чистый ALSA в монопольном режиме. Я, собственно, почему удивлен: в Win ограничение по входу максимум 96 кГц и для послушки винил-рипа 24 бит 192 кГц в фубаре приходится включать даунсемплинг до 96 кГц. Потоки 44 кГц и 48 кГц отыгрываются как предполагается, с родной частотой, о чем говорят индикаторы на фронтальной панели пегаса. Кстати, с потоком в 22050 кГц тоже всё интересно (да, есть у меня и такое - старинные оцифровки квартирников, когда компьютеры были большие, а дискеты - маленькие) - он апсемплится до 44 кГц. Кто-то может объяснить, что происходит на входе пегаса? Может он как-то сам поток ресамплит? Спрашиваю чисто из спортивного интереса.


Top
 Profile  
 
PostPosted: Mon Feb 13, 2012 12:53 pm 
Offline

Joined: Thu Apr 22, 2010 9:50 am
Posts: 120
Location: Россия, Новороссийск
Интересно... А сам "драйвер" или что там в Linux'е - не может рисэмплить? Если подать заведомо неподдерживаемую частоту, например, те же 22050кГц - будет сообщение об ошибке?


Top
 Profile  
 
PostPosted: Tue Feb 14, 2012 8:33 pm 
Offline

Joined: Sun Sep 20, 2009 9:44 pm
Posts: 347
ЮСБ в фулл спид режиме ну никак не может пропустить 192К стерео. Т.е. это уже не ограничение виндоуз - это уже физические приделы интерфейса.
Конечно, как там все устроено в линуксе я не знаю, но осмелюсь предположить следующее.
Авторы драйвера или звуковой системы вцелом подумали и решили, что если поток поддерживается устройством то пускают его так, если нет -то приводят по возможности к ближайшей кратной частоте, в потом или прореживают (из 192 в 96) или вставляют семплы из 22,05 в 44,1. Это требует очень мало процессорного времени и не подгружает систему - а пользователю удобно, и не надо заморачиваться с тем, что и как выводить. А возможно, там и полноценный ресемплер есть, который при случае включается. Если так - то разработчикам респект и уважуха :)


Top
 Profile  
 
PostPosted: Wed Feb 15, 2012 4:15 am 
Offline

Joined: Thu Apr 22, 2010 9:50 am
Posts: 120
Location: Россия, Новороссийск
Читал, что в FullSpeed USB всё же может пропустить 192кГц, но только 16 бит.


Top
 Profile  
 
PostPosted: Sat Feb 18, 2012 9:42 pm 
Offline

Joined: Mon Jan 30, 2012 10:14 am
Posts: 8
Nikolay_Po wrote:
Интересно... А сам "драйвер" или что там в Linux'е - не может рисэмплить? Если подать заведомо неподдерживаемую частоту, например, те же 22050кГц - будет сообщение об ошибке?


Нет, сообщений об ошибке нет. Драйвер не ресемплит, если принудительно не включить ресемплер (а это весьма не просто без напильника и админских рук).


Top
 Profile  
 
PostPosted: Sat Feb 18, 2012 9:49 pm 
Offline

Joined: Mon Jan 30, 2012 10:14 am
Posts: 8
Nikolay_Po wrote:
Читал, что в FullSpeed USB всё же может пропустить 192кГц, но только 16 бит.


Но ведь пропускает. Незадача :( Видимо секрет в поддержке USB Audio Device class 2 http://www.opensound.com/forum/viewtopic.php?f=3&t=4375


Top
 Profile  
 
PostPosted: Sat Feb 18, 2012 10:10 pm 
Offline

Joined: Mon Jan 30, 2012 10:14 am
Posts: 8
svolkovoy wrote:
ЮСБ в фулл спид режиме ну никак не может пропустить 192К стерео. Т.е. это уже не ограничение виндоуз - это уже физические приделы интерфейса.
Конечно, как там все устроено в линуксе я не знаю, но осмелюсь предположить следующее.
Авторы драйвера или звуковой системы вцелом подумали и решили, что если поток поддерживается устройством то пускают его так, если нет -то приводят по возможности к ближайшей кратной частоте, в потом или прореживают (из 192 в 96) или вставляют семплы из 22,05 в 44,1. Это требует очень мало процессорного времени и не подгружает систему - а пользователю удобно, и не надо заморачиваться с тем, что и как выводить. А возможно, там и полноценный ресемплер есть, который при случае включается. Если так - то разработчикам респект и уважуха :)


Хотелось бы, чтобы было именно так. Но при подключении другого DAC (AIWA AWP-ZX7) с поддержкой только 16 bit 44.1/48.0 kHz воспроизведение потоков, отличных от поддерживаемых, приводит к ошибке устройства.

Думаю, если бы уважаемый ubit в эту тему подтянулся, он бы сразу ответил на этот вопрос - как-никак это он занимался разработкой софта. Хотелось бы его послушать.


Top
 Profile  
 
PostPosted: Mon Feb 20, 2012 5:24 pm 
Offline

Joined: Tue Sep 29, 2009 5:09 pm
Posts: 80
24bit@192kHz мы НЕ поддерживаем.

В соответствии с §5.6.3 "Isochronous Transfer Packet Size Constraints" (USB Specification, Rev. 2.0) максимальный Payload для Full-Speed составляет 1023 байта.

Для 24bit@192kHz считаем:
Дано:
24bit = 3 byte
2 канала (стерео)
Получаем:
192 x 3 x 2 = 1152bytes > 1023bytes

А что говорит lsusb можете опубликовать?


Top
 Profile  
 
PostPosted: Tue Feb 21, 2012 1:54 pm 
Offline

Joined: Mon Jan 30, 2012 10:14 am
Posts: 8
C payload всё понятно.
Вечером, когда дома буду, обязательно запощу всё возможное: lsusb, версии alsa, ядра и xbmc с конфигами.


Top
 Profile  
 
PostPosted: Tue Feb 21, 2012 8:05 pm 
Offline

Joined: Mon Jan 30, 2012 10:14 am
Posts: 8
Разобрался. libsamplerate по-умолчанию настроен на defaults.pcm.rate_converter "samplerate_best" - он апсемплит или даунсемплит до ближайшего, перевариваемого устройством, рейта. Т.е. всё оказалось, как сказал Сергей. В доках и конфигах это не описано, нашел в исходниках (нововведение в alsa 1.0.24). Понял, что не так, подключив старый Lexicon Alpha, который внезапно воспроизвел 24/192, хотя он его в принципе съесть не может.

Как решается (если нужно):

в /etc/asound.conf добавить строку

defaults.pcm.rate_converter "samplerate_linear"

Хотя смысла в этом чуть менее, чем ноль - потоки, которые пегас поддерживает по-умолчанию, идут на него без ресемплирования. Собственно, вопрос решен.

Просьба только ногами не пинать. Это я по серверам больше, а в цифровой музыке пока что начинающий (эксперименты 10летней давности не в счет - я на 10 лет из волны выпал).

Оффтоп: Pegasus 2N разорвал в клочья Lexicon Alpha по всем фронтам. Чрезвычайно доволен вашим продуктом. Спасибо вам.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group