Собираем свой цифровой плеер (c материнской платой на Intel)

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

Какой буфер? Если в буфер пришел битый фрейм причем тут буфер? Нет запроса на повтор от слова совсем. Целостность не проверяется, квитирования нет. Матчасть почитайте немножко. :slight_smile:

Берем опускаем буфера АСИО до минимальных и начинается сочный треск вперемешку с музыкой. При этом передача не прерывается, потому что источнику пофиг абсолютно на приемник.

Повторяю - это все реализуется программно. Не причел или пришел с ошибкой - переповтор и отправка заново. Размер буфера позволяет получить повторно пакет.

Нет в стандарте переповтора. И не будет. И небыло. Сами организуете, драйвер АСИО напишете? Я на сундуке по АСИО и ВАСАПИ два обзора специально делал, в свете USB аудио именно. На докторголове висит моя ссылка на Гордона Ранкина и его обьяснение почему влияют кабели USB.

В стандарте на udp тоже нет повторов. И тем не менее ТВ смотрите по компьютеру. Это все реализуется уровнем выше. Сейчас как раз программист делает девайс для вывода звука по усб с ифона, но это другая тема уже

Понятно написал я про АСИО и треск с минимальными буферами? Все просто как палка-веревка. Нет обратной связи и кодов восстановления тоже не предусмотрели. Потерялся пакет,ну судьба у него такая. Хрюк вместо него и дальше.

Увеличивайте буфер. В грамотно реализованом оборудовании будет пофиг на кабель УСБ, данные так или иначе прийдут. При таких вот сокращениях буфера или реализации в которой все играет с колес- влияние будет

Вы же с одного города, в реальном баре получится быстрее :grin:

3 лайка

Реально? Ну тогда да :slight_smile:
А почему не видно с какого города человек? Такая инфа не помешала бы.

Увеличиваем буфер, падает качество звука. Вот такая петрушка. :wink:

2 лайка

Не вижу никакой связи между качеством и размеров буфера. ЗАвисимость есть только с задержкой. Действительно лучше это лично обсудить, а то похоже о разных вещам говорим.
Кстати плююсь сильно на mpd на драйвера под линукс. Вообще не вариант - можно винду конечно поставить, или сменить концепцию. DSD нормально играет другой программой сижу слушаю - субьективно немного лучше стало

Раз в Новосибе, есть аудио оборудование затестировать супер крутой езернет кабель? :slight_smile: на котором услышишь разницу?

Ну и что мне снова Олегу высылать Vodka теперь?))

Пусть по памяти сравнит :slight_smile: Сравним с тем, что у него щас стоит :slight_smile:

Здравствуйте.

Похоже вы что-то не дочитали про то как работает USB.

Есть USB и есть USB audio. Есть разные режимы USB audio.
В зависимости от реализации есть аппаратный буфер у передатчика и приемника, он совсем не большой. Задача софта буфер наполнять. Если буфера нет то отправлять данные не реже частоты кадров.

Вот тут более-менее доходчиво написано
http://www.xmos.com/news/articles/17888


http://www.thewelltemperedcomputer.com/HW/USB_DAC.htm

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

Если система сильно занята или неправильно настроена может запросто случиться ситуация когда из программных буферов что-то не попадет в аппаратную часть вовремя. А вся философия обработки аудио строиться на том что звук прерывать нельзя в отличии от картинки. Картинку мозг достроит даже если часть пропала, Звук нет. Поэтому кто не успел того и небыло.

Соответственно, если вам надо DSD, то лучше используйте цап который понимает DSD и софт только байтики перекладывает и процессор совсем не грузит. Если цап не понимает DSD то конвертируйте в оффлайне не налету.

Проблемы так же часто появляются у SoC (System on Chip) ARM архитектур из за того что весь ввод вывод, включая USB, вешают на один контроллер, и невозможно приоретизировать прерывание пришедшее от USB работающей с цапом или прерывание от диска или сетевого адаптера.

1 лайк

Это не важно, в любом случае драйвер звуковой управляет процессом и устройство уже поверх стандартов. И тут можно реализовывать любые механизмы защиты от потерь. У меня такой задачи не стоит, чтобы реализовать, но я не вижу принципиальных сложностей. Полагаю кто-то подобное реализует.
Насчет конвертации DSD соглашусь частично. Если комп тянет его проигрывание и конвертацию в PCM - пусть лежит.
Непонятно как mpd так сделан, но реально он не успевает проиграть DSD в то время как другие плеейеры даже не напрягаются - это вопрос к библиотекам которые используются или где-то накосячили програмеры mpd.

не помогло

Кто-то из уважаемых инженеров эту идею реализовал и не избавился от влияния качества кабеля? Правильно понял?

Там по последней ссылке есть информация о цапах работающих в bulk режиме.
Насколько это соответствует действительности я не проверял.

bulk mode это настоящий полноценный ассинхронный режим с перезапросами. Собственно файлы в нем и передаются.

Про это и говорил. Правильный подход. Но надо чтобы и остальные узлы не подкачали, тогда будет пофиг какие кабеля (в рамках разумного)