Jump to content

    
Sign in to follow this  
alexdsp

USB-AUDIO-MIDI и как с этим жить дальше

Recommended Posts

Я не очень понимаю, что понимается под "интермодуляционно-шумовым пъедесталом". У меня, в том файле, что я выкладывал, уровень спектральной плотности шума полной петли, который геометрически складывается из шумов ЦАП и АЦП, в районе 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

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

Share this post


Link to post
Share on other sites
Ещё раз заверяю, что так называемый протокол USB-AUDIO никоим образом не "ущербный" и в нём, в некотором смысле ВООБЩЕ не заложено никаких механизмов которые так или иначе касаются качества как такового.

 

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

 

Говоря об ущербности, я рассматриваю этот вопрос с хай-эндной стороны, для звуковух он вполне применим

Share this post


Link to post
Share on other sites

В адаптивном режиме нет НИКАКОЙ необходимости в выделенной синхронизации. Все клоки МОИ СОБСТВЕННЫЕ с наименьшим возможным джиттером который позволяет природа-мать и НИ С ЧЕМ они не синхронизируются. Просто вводится обратный канал, по которому плата ссобщает драйверу USB о том, сколько данных на следующий слот ей надо, плюс ФИФО и всё остальное по барабану... Я этот режим реализовывать не стал, т.к. пришлось бы здорово вылизывать программу по скорости и объёму, а у меня там ещё и МИДИ, не полезло бы в ПЗУ наверняка, хотя... глаза боятся, а руки делают, может дойдут руки...позабыл уже многое, 2 года назад я это всё делал...

Таким образом, этот самый USB, при правильной реализации доставляет хлопот не более чем любой PCI. А если ещё и приспичит, то можно написать свой драйвер и тогда вообще никакая спецификация USB-AUDIO НЕ НУЖНА! Со всеми вытекающими последствиями... никакого "родного" SRC от MS, данные будут приходить "бит в бит". Я-то как-раз хотел чтобы никаких сторонних драйверов не было. Это довольно удобно, таскаю с собой ноутбук и свою плату, или вообще только с одной платой, на любом компьютере с XP всё живёт отлично...

Share this post


Link to post
Share on other sites

Извеняюсь. С юсби не работал. Но то, что читал - в стандартном режиме винды не понимают дискритизацию выше 48. А у Вас проскочило 88.2. Как это?

 

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

 

Если не затруднит, кинте мне на мыло ссылки на документы которыми вы пользовались, при разработке.

Share this post


Link to post
Share on other sites

Сразу оговорюсь, для USB-AUDIO никаких специальных драйверов не нужно, они встроены в WIN.

А с дискретизацией как раз проблем нет никаких, кроме одной, но очень большой :)

Дискретизацию можно поставить какую угодно, а лучше, из соображений здравого смысла и пропускной способности 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

А выбор микросхемы, не знаю, дело хозяйское, смотря какие характеристики требуется получить...

Share this post


Link to post
Share on other sites

Я пытался найти дешёвый PCI контроллер с spdif. Таких нет. По USB рассматривал вариант на FTDI245, пропускной способности вроде должно хватить. Через плис в него сливаеш, а со стороны виндов по псевдо кому или напрямую через DLL вытаскиваеш и сливаеш в WAV файл. Прогу то я могу написать и для плис-а прошивочку сварганить. Но это не стандартное подключение.

Но если возьмусь делать, то скорее всего так и придется.

Share this post


Link to post
Share on other sites

Пришлите краткое описание, если Вам не трудно, на адрес

micro51@nm.ru

Данную разработку можно использовать (если я правильно понял) в

настольных МИДИ-пианино с молоточковой клавиатурой (импортные аналоги ОЧЕНЬ дорогие).

Можно организовать поштучное производство, имея связь с заводом.

Какова цена Вашей платы?

Share this post


Link to post
Share on other sites

Для aal.

К сожалению, на FTDI245 так просто всё не получится. Как минимум, придётся писать специальный аудио драйвер под WIN для вашей железки, и это уже не будет USB-AUDIO. Про PCI я вообще не говорю, это и так ясно, устройство будет абсолютно не мобильное...

Share this post


Link to post
Share on other sites

Для micro51.

Если в клавиатуре уже есть МИДИ интерфейс, то да, несомненно будет очень удобно через мою плату подключить к USB такую клавиатуру. Главное же, то что одновременно с этим можно в полном дуплексе оцифровывать внешние сигналы и выводить звук наружу. Сразу оговорюсь, у меня, в этой плате НЕТ МИДИ-синтезатора, только контроллер, если это важно. Хороший МИДИ-синтезатор очень сильно нагружает по себестоимости, а качество увы на всех не угодишь. Да к тому же, современные компьютеры по производительности таковы, что в настоящий момент музыканты предпочитают использовать такие гибкие программы как Gigasempler и иже с ними.

Я попробую порыться дома, я делал небольшое описание на страничку, сегодня вечером вышлю, наверное...

Share this post


Link to post
Share on other sites

Случаино увидел эту тему и хотел бы собрать такое устройство для себя.

Или куплю уже готовое такое устройство устройство.

Я так понимаю что микроконтролер имеет защиту, так что вопроса с авторскими провами не возникнет. И если устройство действительно работает так как вы пишите, то я думаю стоит подумать о начале мелкосерийного производства. Спрос думаю будет. Прошу Вас выслать ответ мне по адресу alexagap@inbox.ru

Share this post


Link to post
Share on other sites
Если кому-то вдруг приспичит делать что-то подобное хочу предупредить о следующем: реализация USB-AUDI в системе WIN это что-то... короче, сделать 24 бита без глюков мне так и не удалось.

 

А почемубы не передать компу частоту дискретизайии 72 кг вместо 24бита. Реально паковать в этот поток 24битные данные. Передаёш два семпла а потом 16 бит где 8 бит расширяют первый семпл а другие 8 бит второй. В реальном времени это не послушать но зато можно сливать на диск или конвертировать. А можно состряпать прогу которая будет конвертить на ходу.

Share this post


Link to post
Share on other sites

Это всё просто замечательно, но только очень жалко, что драйвер USB-AUDIO об этом ничего не знает, и объяснить ему всё это не представляется возможным. Вся эта кухня была затеяна как раз и ради того, чтобы никаких драйверов никуда не устанавливать, а пользоваться встроенными

Share this post


Link to post
Share on other sites
Это всё просто замечательно, но только очень жалко, что драйвер USB-AUDIO об этом ничего не знает, и объяснить ему всё это не представляется возможным. Вся эта кухня была затеяна как раз и ради того, чтобы никаких драйверов никуда не устанавливать, а пользоваться встроенными

 

Так драйвер можно и оставить а вот программу клиент написать

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this