Перейти к содержанию
    

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сразу оговорюсь, для 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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

[email protected]

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для aal.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для micro51.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы, похоже так и не поняли о чём я говорил и какое отношение к джиттеру и USB это имеет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...