Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB-AUDIO-MIDI и как с этим жить дальше
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
alexdsp
Пару лет назад я серьёзно озадачился SUBJ-ем, и сделал-таки свою звуковую подсистему USB-AUDIO-MIDI всё в одном стакане.
Некое лирическое отступление.... а далее, просто мысли вслух...
По поводу супер-пупер-мега АЦП с поражающими воображение децибелами....
Чтоб реализовать что-то по THD+N превышающее 100 Дб потребуется как минимум многослойка, очень дорогие операционники и вся пассивная часть схемы, ОЧЕНЬ качественное питание и приличная доля практического опыта построения таких систем. Да и вопрос ещё через что это счастье будет подключаться к PC (предполагается, чо подключаем к PC)
Но у меня, опять же, была куча ограничений, чтоб и дёшево было и сердито и работало чтоб почти везде безо всяких мудрых драйверов и типа специального "родного" софта... Поэтому USB-AUDIO и выбрал.
Плюсы: 1) не надо писать драйверов, т.к. вроде бы (потом выяснилось, что именно "вроде бы") в популярных операционках оно уже имеется. 2) Опять же "вроде" имеется питание, аж целых 5 вольт! 3) Ну и там, пресловутая защищённость от помех вынесенного устройства...
В общем, в глубинах сознания ещё тлела мысль о PCI, а руки и глаза уже разводили плату под USB.
Опустив ненужные повествования о моих злоключениях и борьбе с драйверами от MS, перерыв разные форумы ихних же разработчиков, мои печали закончились и всё вроде бы работает очень даже неплохо, НО!
Если кому-то вдруг приспичит делать что-то подобное хочу предупредить о следующем: реализация USB-AUDI в системе WIN это что-то... короче, сделать 24 бита без глюков мне так и не удалось. Очень много версий реализаций драйвера даже от одного сервис-пака к другому, и в результате остановился на 16 битах, ибо если их сделать ПРАВИЛЬНО, то для такой игрушки как у меня , это вполне адекватно. Протрахалса с MIDI много.... ну никак не ожидали разработчики MS, что в одном устройстве может быть и аудио и мидм.... smile.gif
Короче, в результате: питается всё прямо от USB, стерео дифференциальные входы и выходы, и один обычный умощнённый выход на наушники.
Петля тестирования (при помощи RightMarkAnalyzer): встроенный ЦАП во встроенный АЦП даёт где-то 95 Дб динамики. По THD сильно зависит от частоты дискретизации в силу...мать-мать-мать-крософт...smile.gif Я оптимизировал, для работы на частотах 44.1 и 88.2 чтоб музыку слушать было приятственней. Точную цифру не помню... приду домой, сообщу, но оччень неплохо! smile.gif
Хорошо это работает только под XP SP1 и выше, да и то какой-то там QFE нужно доустановить...непомню, весь проект дома лежит...
В общем, что я могу сказать, ОДНАКО ПОЛУЧИЛОСЬ!
Удовлетворил свои амбиции, продать это нереально, в силу раскрученных торговых марок, впаривающих фуфло народонаселению.
Может и было бы это полезно, например музыканту с ноутбуком: и МИДИ клаву надо подключить, и оцифровать что-то и прослушать тут-же, и МИДИ выход тоже есть, если внешний синтезатор подключить надо...
Вот вопрос народонаселению.... совет дайте, что с этим хозяйством делать дальше? Есть соображения какие-нибудь?
kochkuroff
Какую микруху USB -интерфейса использовал, PCM2706 или что-то из семейства TUSB ???
alexdsp
Микросхемка USB - TUSB3200, кодек - AD1838, ну и всякая хитрая мелочёвка аналоговая....
kochkuroff
Я использовал PCM2706, с ней гемор практически отсутствует, распознается без проблем виндами начиная с 98-ой. Но вот реализовать MIDI в ней нереально. Только встроенный ЦАП PCM2706 использовать не рекомендуется, ибо гАвно, лучше повесить на шину I2S что-то вроде AD1857, не забыв про гальваническую развязку с помощью ADUM1400.
alexdsp
А у PCM2706 есть возможность подключать АЦП? У TUSB3200 полная гибкость в этом вопросе, 4 штуки I2S в разных комбинациях. Плюс, это нормальный микроконтроллер, можно написать всё что душе заблагорассудится....
kochkuroff
Есть, но I2S порт только один. Кстати, как я понял, для того чтобы TUSB начала принимать /передавать данные по USB, нужно прогу под нее писать???
alexdsp
Разумеется, писать нужно. Реализовывать весь класс и всё, что с ним связано...
kochkuroff
Не, это геморрой писать под USB AUDIO. Достоинство PCM-ки то что под нее ничего писать не надо. А в целом сам по себе протокол USB AUDIO не обеспечивает высокого качества звучания по причине высокого джиттера (около 2 нс), свести который до более-менее приемлемого уровня 10-50пс весьма и весьма проблематично.
alexdsp
Не знаю, как там по поводу джиттера, но я тестировал систему петлёй, то есть с ЦАПа подавал сразу на АЦП программой RightMark Analyzer. Она всё это видит и тестирует с очень высокой точностью. Динамический диапазон на 16 битах у меня получился 95 дб. По поводу интермодуляционных искажений точной цифры не помню, помню только что эта программа выдала по всем пунктам тестирования в режиме 16 бит 44.1 КГц результат как "Excellent". По этим тестам моя плата, несмотря на её простоту, превосходит почти ВСЕ платы, включая и PCI в ценовом диапазоне до 100 долларов. Разумеется, не обошлось без именно этого "программописания". Просто есть несколько моделей синхронизации при передаче данных аудио по USB. Было много возни, не скрою.
Кстати, интересно какие результаты показывает ваша плата в таких тестах? При желании, могу скинуть файл со своими результатами в виде HTML отчёта, когда вернусь домой.
alexdsp
Вот, не дожидаясь, на работе, со звенящим и просаженным блоком питания и без экранированного шнура (остался дома) тест "навскидку". Сразу получаем динамику 94.3 дб. Всё остальное вообще в норме....
kochkuroff
Измерения приводились на синусоиде или на недетерминированном сигнале???

Я не использовал АЦП, у меня только ЦАП, AD1865N-K, уровень шума ~ 110 дБ. У меня в тракте стоит ASRC AD1896, реклок перед цапом, тактирование от ЭСЛ генератора, джиттер ~10пс . RMAA я не особо верю, поскольку ее результаты не совсем коррелируют со звучанием. На недетерминированном сигнале в случае сигма-дельта ЦАП реальная монотонность вряд ли будет превышать 12-14бит, что соответствует интермодово-шумовому пъедесталу 70-85 дБ. Хотя у промышленных звуковух этот параметр еще хуже.
alexdsp
Понятно, у меня-то полный тракт и АЦП-105дб и ЦАП-108дб. Кодек AD1838A.
Rightmark хорошая программа. И со звучанием очень неплохо кореллирует.
Сигналы она подаёт всякие. Измерение интермодуляционных искажений производится двухсигнальным методом, после чего при помощи FFT выясняются все интересующие значения. По поводу джиттера... в подсистеме USB-AUDIO есть несколько моделей синхронизации, одной из них вообще всё по барабану, пусть хоть на микросекунду всё на шине трясётся, у звуковой платы есть свои опорные синхроимпульсы с малым джиттером, и есть фифо, и есть программа которая следит, чтоб было всё в порядке. По поводу SRC. Если у вас стоит в системе SRS - совершенно понятно, почему вы недовольны качеством звучания. Дело в том, что по страшному секрету, внутри WIN на ЛЮБОЙ частоте дискретизации работает внутренний алгоритм SRC, хоть и довольно неплохой, но в результате у вас в системе получается ДВА SRC.
kochkuroff
Цитата
у звуковой платы есть свои опорные синхроимпульсы с малым джиттером, и есть фифо, и есть программа которая следит, чтоб было всё в порядке.

Что из себя представляет опорный генератор? Какой объем фифо? Как реализована ФАПЧ? Если ФАПЧ реализованна программно, то получение джиттера порядка сотен пикосекунд весьма и весьма сомнительно.

Про SRC в маздае знаю, с этим ничего не поделаешь. AD1896 на несколько порядков лучше маздаевского SRC, так что влияние его на звук по сравнению с маздаевским совсем незначительно. Я пробовал включать его в синхронном режиме, привязываясь к восстановленной тактовой PCM, получается весьма говенно по причине джиттера. В результате забил на эти извраты, поскольку USB я поставил только как довесок к SPDIF/I2S LVDS внешнему ЦАП
alexdsp
По порядку:
Опорный генератор кварцевый. Объём ФИФО: удвоенный размер миллисекундного слота, напр. для 48 КГц 16 бит - это будет 192 байта на один канал, что выше крыши... т.к. пропусков SOF я ещё никогда не видел, а если бы даже они и были, то с этим тоже ведётся программная борьба. ФАПЧ реализована в самом чипе и разумеется с программным управлением. Опять же, по поводу этого несчастного джиттера, всё зависит от полосы пропускания петли обратной связи ФАПЧ. Вне этой полосы, джиттер определяется только самим VCO генератором, его шумом, цепями питания и прочими аналоговыми факторами, а вот внутри полосы собственно трекинг и происходит, и если мы сумеем сделать эту полосу очень узкой и не потерять устойчивость и при этом управлять ФАПЧ, то все негативные последствия уйдут в инфранизкие частоны, что собственно у меня и происходит, это Rightmark показывает абсолютно верно, (просто на картинке отрезаны эти инфранизкие), но эти частоты вообще не слышны! Ну например, ухудшение динамики, в области 3 Гц по -70 дб, кто это услышит !? В наушниках, НИКТО!
> AD1896 на несколько порядков лучше маздаевского SRC, так что влияние его на звук по сравнению с маздаевским совсем незначительно.
А зачем она ВООБЩЕ ТАМ НУЖНА спрашивается?!
Вот ещё такой момент.... может быть у нас немного отличаются понятия "говённо" и "хорошо" smile.gif
Собственно, что это за такое "говённо" и в чём оно выражается? Кстати, настоятельно рекомендую померить свою плату Rightmark-ом, хоть он и не может чего-то там, но по крайней мере, даст очень много ответов на насущные вопросы...
На мой скромный слух, у меня, через USB, качество звучания выше чем через стационарный CD проигрыватель, и это при себестоимости около $25
kochkuroff
Цитата
Вне этой полосы, джиттер определяется только самим VCO генератором, его шумом, цепями питания и прочими аналоговыми факторами


Я глубоко сомневаюсь в высоком качестве встроенного в чип VCO. Вряд ли уровень его джиттера будет меньше 400-500 пикосекунд, что совершенно недопустимо для высококачественного звуковоспроизведения.
Цитата
зачем она ВООБЩЕ ТАМ НУЖНА спрашивается?!

В моем конвертере она используется в синхронном режиме в качестве цифрового фильтра. Тактирование осушествляется от ЭСЛ генератора с джиттером около 10 пс. Непосредственно перед ЦАПом осуществляется реклок.
Цитата
Кстати, настоятельно рекомендую померить свою плату Rightmark-ом, хоть он и не может чего-то там, но по крайней мере, даст очень много ответов на насущные вопросы...

Я измерял спектр выходного сигнала, интермодуляционно-шумовой пьедестал в случае передачи сигнала по интерфейсу I2S LVDS был ниже собственного ИШП анализатора спектра. Теоретически это около -110 дБ. Под USB ИШП был около -70 дБ, что недвусмысленно говорит об ущербности протокола USB AUDIO.

ЗЫ Для устройства стоимостью 25 $ это нормальные параметры. Мои затраты были примерно в 15-20 раз больше :-(, дешевле реализовать РЕАЛЬНЫЙ динамический диапазон >96 дБ к сожалению не получается :-( :-( :-(
alexdsp
Я не очень понимаю, что понимается под "интермодуляционно-шумовым пъедесталом". У меня, в том файле, что я выкладывал, уровень спектральной плотности шума полной петли, который геометрически складывается из шумов ЦАП и АЦП, в районе 20 Гц -125дб, и на 1Кгц стоит "палка" по -111дб. Но это именно спектральная плотность, и она зависит от порядка FFT применяемого при анализе, поэтому конечно, это не вполне корректно... "Палка" в 1КГц понятно откуда, это модуляция всего питания USB активностью SOF пакетов, у меня это можно устранить ценой себестоимости...но незачем... т.к. это всё равно никто и никогда не услышит, и может представлять лишь академический интерес. А по поводу VCO, я уже говорил, что дело в основном в параметрах его петли обратной связи, и методах управления ею.
Теперь по поводу USB-AUDIO.
Ещё раз заверяю, что так называемый протокол USB-AUDIO никоим образом не "ущербный" и в нём, в некотором смысле ВООБЩЕ не заложено никаких механизмов которые так или иначе касаются качества как такового. Это просто транспортный уровень передачи данных, которые потом предполагается выдавать на ЦАП, и наооборот с АЦП в компьютер. Это если рассматривать адаптивный режим. В синхронном, да (моя плата как раз работает в нём) можно ухитриться как-то испортить что-то вкупе с SRC от MSWIN. И более того, самый гнусный вклад в качество звука под USB вносит как раз SRC от MS и никуда от этого не денешься.
Сама спецификация, ни в чём не виновата, она только доставляет данные в нужном темпе, и никак не влияет на джиттер клока звукового кодека, это уже дело исключительно хозяйское.
В начале, когда я только задумывал свой дивайс, я вообще, хотел поставить АЦП от Crystal CS5396, и никаких проблем с джиттером у меня бы не было 100%, просто посчитал, что не прохожу по потреблению, пришлось бы питать систему снаружи, а это неприемлимо....
И ещё, на сайте Rightmark я буквально сейчас зашёл в раздел результатов тестов и был приятно удивлён, что моя плата, работающая на этом самом "ущербном" USB-AUDIO превосходит почти ПО ВСЕМ аудио характеристикам многие другие полу и профессиональные платы, в том числе и PCI, например: Hoontech/STAudio DSP24 MKII, Roland UA-30, Audiotrak ProDigy 192, Creative Audigy Platinum eX, Creative SoundBlaster Extigy
и очень близка по параметрам, к например: RME DIGI96/8 PST
Вот такие дела... ещё раз говорю, если бы мне это было надо, можно было бы ещё что-то улучшать, но я уже ничего не слышу дальше, да и источников звука таких взять неоткуда....
kochkuroff
Цитата
Ещё раз заверяю, что так называемый протокол USB-AUDIO никоим образом не "ущербный" и в нём, в некотором смысле ВООБЩЕ не заложено никаких механизмов которые так или иначе касаются качества как такового.


Ущербность выражена в отсутствии выделенной синхронизации, синхронизация передается в одном потоке с данными, что вынуждает использовать для восстановления тактовой PLL, приводящую к увеличению джиттера. Конечно можно реализовать PLL с джиттером 10-20пс, но это весьма сложно и дорого.

Говоря об ущербности, я рассматриваю этот вопрос с хай-эндной стороны, для звуковух он вполне применим
alexdsp
В адаптивном режиме нет НИКАКОЙ необходимости в выделенной синхронизации. Все клоки МОИ СОБСТВЕННЫЕ с наименьшим возможным джиттером который позволяет природа-мать и НИ С ЧЕМ они не синхронизируются. Просто вводится обратный канал, по которому плата ссобщает драйверу USB о том, сколько данных на следующий слот ей надо, плюс ФИФО и всё остальное по барабану... Я этот режим реализовывать не стал, т.к. пришлось бы здорово вылизывать программу по скорости и объёму, а у меня там ещё и МИДИ, не полезло бы в ПЗУ наверняка, хотя... глаза боятся, а руки делают, может дойдут руки...позабыл уже многое, 2 года назад я это всё делал...
Таким образом, этот самый USB, при правильной реализации доставляет хлопот не более чем любой PCI. А если ещё и приспичит, то можно написать свой драйвер и тогда вообще никакая спецификация USB-AUDIO НЕ НУЖНА! Со всеми вытекающими последствиями... никакого "родного" SRC от MS, данные будут приходить "бит в бит". Я-то как-раз хотел чтобы никаких сторонних драйверов не было. Это довольно удобно, таскаю с собой ноутбук и свою плату, или вообще только с одной платой, на любом компьютере с XP всё живёт отлично...
aal
Извеняюсь. С юсби не работал. Но то, что читал - в стандартном режиме винды не понимают дискритизацию выше 48. А у Вас проскочило 88.2. Как это?

У меня есть желание для себя сделать качественный АЦП на 24/192, но стоит проблема как это дёшево и без проблем засунуть в РС (по драйверам). Возможно ли это в Вашем варианте?

Если не затруднит, кинте мне на мыло ссылки на документы которыми вы пользовались, при разработке.
alexdsp
Сразу оговорюсь, для USB-AUDIO никаких специальных драйверов не нужно, они встроены в WIN.
А с дискретизацией как раз проблем нет никаких, кроме одной, но очень большой smile.gif
Дискретизацию можно поставить какую угодно, а лучше, из соображений здравого смысла и пропускной способности USB, например 96КГц. Беда в том, что какую бы вы ни поставили частоту в железе, WIN всё равно БУДЕТ её передискретизировать. То есть, задействует внутренний алгоритм "Sample Rate Conversion" (SRC), который представляет из себя тяжёлую программу DSP, в зависимости от некоторых обстоятельств, применяются разные алгоритмы. Наиболее распространённый - полифазный фильтр с отводами и т.д. Всё это очень здорово расходует ресурс процессора (хотя на современных компьютерах не так и страшно) и более того, работает на уровне кернела и в мониторе производительности НЕ ОТОБРАЖАЕТСЯ!
Теперь ещё момент, это 24 бита. С этим ещё туманнее... Когда я отлаживался (2 года назад) у меня была WIN ME, и там запустить 24 бита так и не удалось. Видимо, и не удастся в рамках USB-AUDIO. Может быть в WinXP что-то и поменялось, но проверять уже нету сил просто. Поэтому, я советую ограничиться 16 бит, 96 КГц, это по крайней мере точно работать будет.
Теперь о чипах. Как вы сказали "дёшево и без проблем" скорее всего не получится. Если нет времени разбираться с внутренностями USB-AUDIO, есть в природе разные микросхемы, в которых вся энумерация скрыта и остаётся её только правильно включить в схему. Например, как у коллеги в этом топике PCM27xx. Но похоже, проблем "второго порядка" там немало, как я понял...
Я применял TUSB3200. В её составе обычный процессор семейства x51 плюс мощная хардверная поддержка в виде аппаратного DMA, между внутренними буферами памяти и USB контроллером. Микросхема полностью программируемая, но обратная сторона медали в том, что вам самим придётся прописывать практически ВСЁ!.
В общем, каждый решает сам, что ему нужно и удобно.
По поводу информации - надо читать сам стандарт, (Audio Class) не поленитесь, окупится. http://www.usb.org/developers/devclass_docs#approved
А выбор микросхемы, не знаю, дело хозяйское, смотря какие характеристики требуется получить...
aal
Я пытался найти дешёвый PCI контроллер с spdif. Таких нет. По USB рассматривал вариант на FTDI245, пропускной способности вроде должно хватить. Через плис в него сливаеш, а со стороны виндов по псевдо кому или напрямую через DLL вытаскиваеш и сливаеш в WAV файл. Прогу то я могу написать и для плис-а прошивочку сварганить. Но это не стандартное подключение.
Но если возьмусь делать, то скорее всего так и придется.
micro51
Пришлите краткое описание, если Вам не трудно, на адрес
micro51@nm.ru
Данную разработку можно использовать (если я правильно понял) в
настольных МИДИ-пианино с молоточковой клавиатурой (импортные аналоги ОЧЕНЬ дорогие).
Можно организовать поштучное производство, имея связь с заводом.
Какова цена Вашей платы?
alexdsp
Для aal.
К сожалению, на FTDI245 так просто всё не получится. Как минимум, придётся писать специальный аудио драйвер под WIN для вашей железки, и это уже не будет USB-AUDIO. Про PCI я вообще не говорю, это и так ясно, устройство будет абсолютно не мобильное...
alexdsp
Для micro51.
Если в клавиатуре уже есть МИДИ интерфейс, то да, несомненно будет очень удобно через мою плату подключить к USB такую клавиатуру. Главное же, то что одновременно с этим можно в полном дуплексе оцифровывать внешние сигналы и выводить звук наружу. Сразу оговорюсь, у меня, в этой плате НЕТ МИДИ-синтезатора, только контроллер, если это важно. Хороший МИДИ-синтезатор очень сильно нагружает по себестоимости, а качество увы на всех не угодишь. Да к тому же, современные компьютеры по производительности таковы, что в настоящий момент музыканты предпочитают использовать такие гибкие программы как Gigasempler и иже с ними.
Я попробую порыться дома, я делал небольшое описание на страничку, сегодня вечером вышлю, наверное...
kochkuroff
http://vlab.netsys.ru/forum/showthread.php?t=430

- о джиттере USB AUDIO и всем остальном smile.gif
alexdsp
Вы, похоже так и не поняли о чём я говорил и какое отношение к джиттеру и USB это имеет...
alex_ag
Случаино увидел эту тему и хотел бы собрать такое устройство для себя.
Или куплю уже готовое такое устройство устройство.
Я так понимаю что микроконтролер имеет защиту, так что вопроса с авторскими провами не возникнет. И если устройство действительно работает так как вы пишите, то я думаю стоит подумать о начале мелкосерийного производства. Спрос думаю будет. Прошу Вас выслать ответ мне по адресу alexagap@inbox.ru
hww
Цитата
Если кому-то вдруг приспичит делать что-то подобное хочу предупредить о следующем: реализация USB-AUDI в системе WIN это что-то... короче, сделать 24 бита без глюков мне так и не удалось.


А почемубы не передать компу частоту дискретизайии 72 кг вместо 24бита. Реально паковать в этот поток 24битные данные. Передаёш два семпла а потом 16 бит где 8 бит расширяют первый семпл а другие 8 бит второй. В реальном времени это не послушать но зато можно сливать на диск или конвертировать. А можно состряпать прогу которая будет конвертить на ходу.
alexdsp
Это всё просто замечательно, но только очень жалко, что драйвер USB-AUDIO об этом ничего не знает, и объяснить ему всё это не представляется возможным. Вся эта кухня была затеяна как раз и ради того, чтобы никаких драйверов никуда не устанавливать, а пользоваться встроенными
hww
Цитата(alexdsp @ Dec 2 2004, 18:02)
Это всё просто замечательно, но только очень жалко, что драйвер USB-AUDIO об этом ничего не знает, и объяснить ему всё это не представляется возможным. Вся эта кухня была затеяна как раз и ради того, чтобы никаких драйверов никуда не устанавливать, а пользоваться встроенными
*


Так драйвер можно и оставить а вот программу клиент написать
plus
Господа!
Наглость, конечно, с моей стороны, но может есть готовый проект USB-MIDI адаптера? Надо...
Old Nick
Доброго времени суток!

to alexdsp:
Я тоже страдаю подобными извращениями, только куда как с большими требованиями к не-MIDI данным и меньшими компромиссами.
Пользовался, в частности, готовой железкой Yamaha-uw10mx1.
По моим наблюдениям, SRC успешно "отключается" установкой соответствующего volume control в пложение "максимум". Проверено в режиме file1.wav -> USB-AUDIO device -> SPDIF->SPDIF_input ->file2.wav. Совпадает побитно, не считая сдвига. Разумеется, не следует лить 48kHz.wav -> 44.1 USBaudio.

Теперь вопросы.
1.Под какими разливами мелкософта удается получить свыше 16бит и какими средствами и проблемами, помимо упомянутых?
2.Хватает ли фифо на "слабых" машинах и активно используемой мышкой/клавиатурой на том же хабе?
У меня иногда теряются данные при двух USB-AUDIO устройствах или большой активности мыши на Пен-2. На Пен-4 - тоже, но при очень_большой_ активности мыши или одновременном обращениях к "тормозящим" устройствам. При этом, естественно возникают громкие щелчки.
3.Правильно ли я понял, что Вы использовали VCXO (vco с кварцем)? Какая надобность именно в управляемом генераторе?
alexdsp
Old Nick

Много времени прошло и многое подзабылось. Сейчас я уже давно не занимаюсь этим проектом, но кое-что ответить могу.
>> По моим наблюдениям, SRC успешно "отключается" установкой соответствующего volume control в
>> пложение "максимум". Проверено в режиме file1.wav -> USB-AUDIO device -> SPDIF->SPDIF_input
>> ->file2.wav. Совпадает побитно, не считая сдвига. Разумеется, не следует лить 48kHz.wav -> 44.1
>> USBaudio.
Возможно так оно и есть, но не в моём случае. У меня дефолтовая частота дискретизации была 88.2 КГц, поэтому при работе в режимах 48,96 SRC работает всегда, но при 44.1 SRC хоть и работает тоже, но уже по другому алгоритму, по сути не SRC, просто фильтрация с децимацией, что даёт такое высокое качество при прослушивании типового аудио (CD,mp3 и т.д.) Это был мой компромисс. Более того, на честные 96 КГц у меня просто не хватало памяти на FIFO внутри чипа, поэтому и были выбраны 88.2. Позже я понял, что поступил правильно.
>> 1.Под какими разливами мелкософта удается получить свыше 16бит и какими средствами и
>> проблемами, помимо упомянутых?
Этого я с уверенностью сказать не могу, нужно экспериментировать. Поскольку этот проект у меня заглох в силу того, что устройство оказалось никому не нужным (кроме, разумеется меня). В конференциях я видел посты о том, что в ВинХР реализована 24битность, но я уже это не проверял.
>> 2.Хватает ли фифо на "слабых" машинах и активно используемой мышкой/клавиатурой на том же хабе?
Я свою плату включал в USB порт всегда как единственную и про хабы ничего не скажу. Но ни при какой загрузке системы (тем более при активности мышки и прочее) никаких артефактов звука я не наблюдал. Например, при записи CD/DVD, копировании больших потоков данных, сильной активности сети, игрании в игрушку и прочее, звук абсолютно чистый и не прерывающийся. Этой платой я сам пользуюсь и её работой очень доволен. Единственное, я так и не смог запустить её под Линукс, там в ALSA нет SRC как такового и дальше разбираться я не стал.
Объём буферов на плате у меня асолютно минимальный, то есть на 1 миллисекунду звука по два пинг-понг буфера, и всё.
>> 3.Правильно ли я понял, что Вы использовали VCXO (vco с кварцем)? Какая надобность именно в управляемом генераторе?
Да, у меня VCXO с PLL которой я хитро управляю. Это нужно только из за кривости встроенного драйвера usbaudio в MSwin. Ну не хотят они правильно реализовать адаптивный режим работы, поэтому пришлось пользоваться синхронным. Способ конечно, сомнительный, но пока я ещё не встречал ни одной материнки у которой бы нестабильно шли SOF пакеты (к ним я привязан).

С наступающим!
Old Nick
Цитата(alexdsp @ Dec 29 2005, 15:18) *
Я свою плату включал в USB порт всегда как единственную и про хабы ничего не скажу. Но ни при какой загрузке системы (тем более при активности мышки и прочее) никаких артефактов звука я не наблюдал. Например, при записи CD/DVD, копировании больших потоков данных, сильной активности сети, игрании в игрушку и прочее, звук абсолютно чистый и не прерывающийся. Этой платой я сам пользуюсь и её работой очень доволен. Единственное, я так и не смог запустить её под Линукс, там в ALSA нет SRC как такового и дальше разбираться я не стал.
Объём буферов на плате у меня асолютно минимальный, то есть на 1 миллисекунду звука по два пинг-понг буфера, и всё.
>> 3.Правильно ли я понял, что Вы использовали VCXO (vco с кварцем)? Какая надобность именно в управляемом генераторе?
Да, у меня VCXO с PLL которой я хитро управляю. Это нужно только из за кривости встроенного драйвера usbaudio в MSwin. Ну не хотят они правильно реализовать адаптивный режим работы, поэтому пришлось пользоваться синхронным. Способ конечно, сомнительный, но пока я ещё не встречал ни одной материнки у которой бы нестабильно шли SOF пакеты (к ним я привязан).

С наступающим!


to alexdsp:

Спасибо за подробный ответ и поздравление!
Имелся в виду случай именно USB мышки, долбаемой до пяти раз в секунду и по разным местам поля графического или текстогого редактора с одновременным выделением фрагментов. Только в этом случае теряются пакеты, при чем если хаб общий, то часто, а если другой - почти никогда.

Ваш ЦАП фактически тактируется VCXO? На мой взгляд это... м-м неперфектно.

Как проверено экспериментально, даже инфранизкочастотный джиттер отлично слышно как потерю "прозрачности".
Мой случай с максималистским уклоном, была ставка на абсолютно независимый очень хорошо вычищенный клок и дополнительную фифо 64К.
Понятно, что при этом нужно подстраивать что-нибудь другое, т.е.скорость поступления пакетов.
Для начала взял упомянутую Ямаху, в которой это успешно удается делать, подстройкой ейной PLL. Жаль, подпалил я беднягу. Теперь подумываю прикрутить TUSB (Ямаха снята с производства), вот и допытываюсь.
Еще раз спасибо, почитаю что там с изохронными режимами.

С почти наступившим!
NickB
Кто хотел USB-MIDI Сходите на www.ucapps.de
brag
Подскажите плз,если кто знает, как прицепить свой драйвер к аудио-системе виндовой?
Усб-девайс есть,драйвер под него тоже налопатил, читает-пишет через CreateFile нормально.. как теперь сделать так,чтоб он был audio-драйвером?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.