Клиент-серверный проигрыватель MPD звучит действительно шикарно и порадует самого изощренного аудиофила, но если вы прочли предыдущие материалы об аудио в Linux, то вероятно вовсе не для того, чтобы слушать музыку с аналоговых выходов простенького звукового чипа встроенного в материнскую плату.
Мы будем выводить звук с mpd в виде цифры на высококлассный внешний ЦАП используя оптический или коаксиальный выход, который так же называется SPDIF.
Оптический кабель — а во лбу его горит маленький фонарик
SPDIF — Sony/Philips Digital Interface — цифровой интерфейс (способ передачи информации) разработанный совместно Sony и Philips. Я предположу, что тут было как обычно, Philips разработала, а Сони к ней за компанию прилепилась, аналогично тому, что было с форматом CD-диска. В тот момент была большая грызня по поводу цифрового интерфейса и одно и тоже предлагали разные фирмы под своими названиями, например Тошиба тот же SPDIF (Сони/Филипс) выпускала под названием TOSLINK, хоть и ограниченный до оптического сигнала.
Возможно вас немного штормит, когда вы слышите оптический вход, коаксиальный вход, SPDIF, TOSLINK, IEC 958 type II и тд.
Реально это одно и тоже.
SPDIF позволяет передавать как оптический сигнал, так и электрический. Электрический передается по коаксиальному кабелю, а оптический по специальному оптическому (стеклянному или пластмассовому кабелю, где с одной стороны мигает лампочка, а с другой стороны этого кабеля видим этот же свет).
Т.е. SPDIF — это и оптика и коаксиал. Другое название SPDIF — это IEC 958 type II. Если же видите название TOSLINK, то это тоже SPDIF, только ограниченный оптическим методом транспортировки данных.
На фото оптический выход заткнут черной заглушкой от пыли
Еще одно название SPDIF, которое можете встретить — EIAJ Optical.
Вот на фото тоже пример оксюморона — выход назвали и СониФилипсом и Тошибой сразу
Да, есть еще AES/EBU — это все тот же SPDIF, только упрощенный, потребительский, он не требует такой дорогой аппаратной части, как полноценный SPDIF.
Оптический метод имеет главное преимущество, на него не могут повлиять электрические помехи (поля, наводки), так как это просто моргающий свет.
А за коаксиалом вроде бы в плюсах меньший джитер.
Да, коаксиальный, это антенный кабель. Может иметь и RCA-разъемы
Итак, мы хотим вывести с компьютера сигнал по оптике или коаксиалу. Теперь мы знаем, что это один и тот же SPDIF, поэтому реально наше желание звучит, как «хочу вывести звук с компьютера на ЦАП по SPDIF».
Откуда в компьютере возьмется коаксиальный или оптический выход — тут 2 варианта. Это либо звуковая карта имеющая такой выход (самый распространенный и качественный вариант — звуковая карта EGO-SY Juli@ или ее аналоги) или SPDIF-выход с материнской платы.
EGO-SYS Juli@
Если в документации на материнскую плату такой выход описан, а реально вы его не видите, не оптического, не коаксиального (выглядит как обычный RCA, разъем под «тюльпанчики»), то скорее всего вам нужно купить планочку с этим разъемом, которая подключится к материнской плате (затраты — копейки).
Сравнить качество выхода SPDIF c материнской платы и с Juli@ я не могу, у меня нет такого «хвостика» для материнской платы и я не читал документации на плату, есть ли в моей такое вообще (скорее всего есть), поэтому здесь уже на ваше усмотрение и возможности. Я использую Juli@.
Хорошо, нам нужно, чтобы MPD-проигрыватель подавал аудиофильскую цифру на SPDIF-выход звуковой карты Juli@ или какая там у вас (ниже я использую встроенный в материнскую плату звуковой чип Realtek ALC888, но хвостика с разъемами оптики и coaxial у меня все равно нет, так что это просто демонстрация как это сделать).
Сперва узнаем, как называется цифровой выход командой.
aplay -L
Обратите внимание, что L именно большая.
Видим вот такую простыню:
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default:CARD=Intel
HDA Intel, ALC888 Analog
Default Audio Device
sysdefault:CARD=Intel
HDA Intel, ALC888 Analog
Default Audio Device
front:CARD=Intel,DEV=0
HDA Intel, ALC888 Analog
iec958:CARD=Intel,DEV=0
HDA Intel, ALC888 Digital
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=Intel,DEV=0
HDA Intel, ALC888 Analog
и тд, весь листинг не стал приводить.
Я выделил то, что мы ищем:
iec958:CARD=Intel,DEV=0
Так называется SPDIF-выход звуковой карты, на который и должен подавать данные mpd через ALSA.
Осталось только сказать mpd, что сигнал подавай на iec958:CARD=Intel,DEV=0
Для этого откроем файл конфигурации проигрывателя
sudo -e /etc/mpd.conf
Теперь находим секцию, которая отвечает за вывод звука через alsa, она выглядит примерно так:
#
# An example of an ALSA output:
#
audio_output {
type «alsa»
name «My ALSA Device»
# device «hw:0,0» # optional
# mixer_type «hardware» # optional
# mixer_device «default» # optional
# mixer_control «PCM» # optional
# mixer_index «0» # optional
}
Как видите, большинство строк закомментировано. Нужно расскомментировать всего 1 строку
device «hw:0,0» # optional
и изменить ее вместо «hw:0,0» вписав найденное нами название iec958:CARD=Intel,DEV=0 (у вас оно будет какое то другое, но так же начинаться с iec958, напомню, что iec958 — это другое название все того же S/PDIF).
Получиться вот так:
device «iec958:CARD=Intel,DEV=0»
Теперь сохраняйте файл конфигурации Ctrl+O и выходите Ctrl+X.
Рестартуйте mpd-сервер
sudo /etc/init.d/mpd restart
или перегрузитесь, как вы привыкли в Windows.
С этого момента mpd передает цифровой звук сразу на внешний цап и вы получаете прекрасное звучание на своей аудиосистеме.
А теоретически, качество выхода SPDIF c материнской платы и с Juli@ должно быть разное?
Вами упущен USB выход, как вариант для снятия цифрового сигнала. Или качество сигнала с этого выхода ниже всяких похвал, плохой джитер и этот выход не заслуживает внимания?
Вообще то я все описал, как нужно делать, просто расширьте видение.
aplay -L
смотрите как обзывается ваш USB цап и эту строчку точно как описано в материале вставляете в mpd.conf.
У меня цап Sabre 9018 на Amanero USB обзывается вот так:
sysdefault:CARD=Amanero
Combo384 Amanero, USB Audio
Default Audio Device
Т.е. в моем случае строчка будет иметь вид:
device «sysdefault:CARD=Amanero»
После чего сохраняем файл и рестартуем mpd.
Проверил — работает.
Действительно,отзовитесь кто может пролить свет на первый вопрос,мне тоже интересно.Не обязательно джулию,может другая звуковая с оптическим выходом..
Я не знаю, не пробовал. Должно быть разное, там же ресивер SPDIF. Жулия же полупрофессиональная, там чипы (по модели) получше в теории, а на матплате скорее всего совсем примитивный чип спдиф с минимальной обвязкой. Но это умозрительно. Послушать лучше. Надо посмотреть, может на работе где такой хвостик валяется под спдиф.
У его-сиса были майя 44 схожие с жулией. У асус ксонара эсти наверное что то должно быть неплохое, ибо он почти целиком в стационарные цап типа есенсе и сту перелез.
Разницы не будет и не должно быть. Цифровой выход сделан полностью по одной и той же спецификации. Что в крутой карте, что в интегрированной на материнке. Так же и USB как интегрированные в системную плату, так и в виде модуля PCi(PCIE) но работают они одинаково в рамках одного стандарта USB2.0 к примеру.
Спецификация то одна, а вот железо разное, и реализация разная, отсюда и джиттер разный. Встроенное железо обычно очень уныло, ибо цена отдельной железки (зв.карты или видеокарты) может быть больше, чем вся материнка. А вещи типа джули и прочих хороших карт уже умеют делать это лучше. Асинхронный ЮСБ в теории может сделать это еще лучше, но тут еще больше зависит от железа и софта к этому железу. Он в принципе и был разработан для борьбы с джиттером.
Асинхронный USB разработан для передачи потокового аудио с минимальной задержкой и буферизацией (ASIO) без применение пакетизации с повторными перезапросми при возникновении ошибки. Создавался этот формат в первую очередь для музыкантов, потом его подхватили производители ширпотребовсой аудиоаппаратуры. К борьбе с джиттором этот формат ни какого отношения не имеет. А джиттер же будет зависеть от качества тех генераторов, которые установлены непосредственно В ЦАП и в приемнике S PDIF (опорный кварц). Так как после приема аудиопотока после s pdif или usb, данные все равно пересинхронизируются.
Именно для борьбы с джиттером все и делается)
Плохие clock в компьютере неизбежны, качество блоков питания в компе посредственное (дискретные звуковые карты исправляют это хотя бы гальваноразвязкой), поэтому качество SPDIF фиговенькое, пример по замерам:
streamed output from Mac Book Toslink 1607ps;
streamed output from Apple Airport express Toslink 2418ps;
Более-менее хорошее — это ~200ps и меньше.
А вот про асинхронный юсб:
Asynchronous: in this mode an external clock is used to clock the data out of the buffer and a feedback stream is setup to tell the host how fast to send the data. A control circuit monitors the status of the buffer and tells the host to speed up if the buffer is getting too empty or slow daown if its getting too full. Note this is still isochronous, the host is continuousley sending samples, there is no «per packet handshake» going on. Since the readout clock is not dependant on anything going on with the bus, it can be fed directly from a low jitter oscillator, no PLL need apply.
Жалко, картинку не вставить сюда с диаграммой.
Там еще много чего интересного есть, но суть та же. На юсб можно сделать лучше, но сложнее и соответственно дороже.
Но это все выжимки из статей в моей интерпретации, могу ошибаться. Если у вас есть более глубокое понимание вопроса, расскажите, будет интересно.
То что Жулия лучше по спдиф, чем то что в матплате, это умозрительно очевидно, Вопрос в другом — слышно ли на слых, что в матплате спдиф хуже и насколько или в пределах «показалось». Тут же деньги тоже на деревьях не растут. Если на слух не поймешь, по крайней мере в своем тракте, то и смысл изголяться?
асинхронный усб был сделан, потому что обычный был для аудиопросто ужасен. Поэтому сделали обратную связь, чтобы приемная аппаратура сообщала отправляющей получила ли она пакет и передавать ли следующий и с какой скоростью, чтобы более менее навести порядок. Так то вы зря про усб думаете,как о чем то выдающемся, его просто с ноутбуками поудобнее использовать, да и то еще вопрос — драйвера надо и прочий геморой. Хороший спдиф вы получите почти всегда в нормальных аппаратах, а вот усб скорее будет плохой, чем хороший.
Не поленился, подключил по цифре от мат платы, выведенной через планку. И что же я услышал? Да опять же тот самый джиттер в виде потрескиваний на заднем плане (иногда и вперед выскакивали довольно громкие щелчки) и едва заметного подтормаживания, даже наверное заикания. Это особенно заметно, когда идут какие то всплески в музыке на средних и высоких частотах. Говорить о восприятии музыки уже совсем не хочется. В общем, я не перестаю считать, что встроенный цифровой выход никуда не годен.
Я как то не уверен, что потрескивания — это джитер. Джитер — это размывание сигнала, из за того, что данные отсчитываются не в то время, когда надо и возникает дрожание, которое должно скорее как более мутное воспроизведение и потеря локализации ощущаться. По крайней мере я так думаю. А трески — это больше похоже на то, что процессора не хватает или буфера. В альсе кстати этот самый буфер можно увеличить, там есть ряд дополнительных возможностей, можно и тики увеличить и буфер, и указать сколько плеер сразу песни в себя (в память) всасывает.
Потрескивания это не джиттер, а глобальные прокиды данных. Джиттер же приводит к искажению младших разрядов ЦАП, и ухом его не так просто услышать.
У меня бывало при плохих условиях (длиннющий юсб кабель 7 м из тонкой жилы) до полной остановки воспроизведения.
Если что, то я об этом, цитата:
джиттер вносит в сигнал искажения, подобные детонации — явлению, вызванному неравномерностью движения магнитной ленты в аналоговом магнитофоне вследствие несовершенства лентопротяжного механизма. Однако, вносимые цифровым джиттером искажения существенно заметнее искажений звука, вносимых детонацией.
А вот о восприятии механической детонации:
Восприятие человеком зависит от модулирующей частоты:
до 4 Гц — «плавание» звука
5-15 Гц — «дробление»
15-25 Гц — «дрожание»
25-100 Гц — «хриплость», «грязь» на средних частотах
свыше 100 Гц — дополнительные тоны (явно слышимые призвуки)
Все это очень даже слышно при определенных условиях. При чем начинается с потрескиваний, которые потом переходят в «хриплость», «дрожание», потом звук плывет и стоп.
Сейчас я услышал потрескивания и сделал вывод, что это и есть начальное проявление джиттера.
С буферами в свое время игрался на фубаре под виндой. Если делать сильно меньше или больше оптимального значения, то еще быстрее наступает то, о чем писал выше. Процессор загружен на 1%, меньше просто не показывает.
Джи́ттер (англ. jitter — дрожание) или фазовое дрожание цифрового сигнала данных[1] — нежелательные фазовые и/или частотные случайные отклонения передаваемого сигнала.
Т.е. отставание или опережение сигнала относительно фронта. ЦАП пытается это исправить и дописывает младшие биты, пусть так. НО это же не может никак не сказаться на звуке? Я сначала получил практику, а потом нашел объяснение но системного понимания пока нет.
Джентльмены, давайте вместе придем к пониманию вопроса!
Тогда сможем найти и ответ на вопрос, что же лучше и где джиттер меньше. В нем ведь вся загвоздка.
Все, кого интересует данный вопрос, не поленитесь, прочитайте 15-16 страницы:
http://forum.ixbt.com/topic.cgi?id=90:280-15
Да вроде все и разъяснили. Только у меня сообщения ваши появляются почему то перед моим сообщением, хотя когда я писал ничего небыло из них и получается, что вы ответили, а я как бы по новой отвечаю. А это потому что когда я писал — небыло других сообщений, и причем 2-3 часа их там небыло. Не знаю, что за причуды движка чтоли.
Мое еще одно сообщение вообще не появилось…
А по теме, вот статья, более приземленная для понятия информация есть на 15 и 16 страницах (но вообще она вся целиком полезна, особенно если осмыслить до конца все аспекты проблемы):
http://forum.ixbt.com/topic.cgi?id=90:280-15
Я нашел его. Система из за ссылок посчитала спамом. Ничего не пропадает, я все потом вручном режиме просматрвиаю. Изредка в спам попадают реальные сообщения, но в основном всякий спамерский мусор туда уходит.Спамопомойщики все не угомонятся.
Подведу краткий вывод с вашего позволения именно касаемо темы джиттера при передаче звука. SPIDF передает сигнал на цап без проверки, дошло ли и как дошло. Суть в том, что есть два устройства, передатчик и приемник и чтобы передать сигнал нужны задающие клоки с таковым сигналом в них обоих. А правильность этих тактов, читай клоков, в свою очередь зависят от питания. В компьютерном БП оно так себе, с шумами и наводками, отсюда клок в компе гуляет с бОльшими отклонениями. Поэтому встроенный spdif будет плох. Дискретные карты уменьшают эту проблему хотя бы гальванической развязкой, но карта по-прежнему находится внутри системного блока и наводки неизбежны. Идеально, если одно устройство будет тактовать другое, тогда будет полное совпадение скоростей и наступит аудионирвана. Но такую обратную связь предлагают только оч дорогие устройства. ЦАП же тоже свой клок имеет. И тоже неидеальный, но в силу лучшего питания (вот почему важно хорошее питание, типа R-core или тор-трансформатора, а не импульсные БП) имеет меньшее отклонение. А при несовпадении этих клоков получается переполнение или опустошение буфера цапа, что ведет к потере данных. В асинхронном юсб ЦАП может притормозить или ускорить поток, чтоб буфер был не переполнен или опустошен. Однако, если джиттер будет велик из-за например плохого кабеля, и будут потери, то никакой проверки данных нет, поток так и идет дальше с пропусками. Т.е. 100% не гарантирует даже асинхронный юсб. Однако, он следит за буфером и при хороших условиях джиттер мал и незаметен. Его просто загоняют в такие размеры, чтоб не было заметного влияния, но он есть всегда. Отсюда можно сделать вывод, что для звука предпочтительнее асинхронный юсб. Замечу также, что проблема джиттера имеет место только при преобразовании цифры в аналог. При цифровой передаче данных между устройствами, если случились потери по каким-то причинам, данные просто передаются еще раз и хрен бы на этот джиттер.
вопрос за канал передачи : так какой же вариант соединения музыкальнее — по оптике или по меди? или в идеале ( при качественных проводах) звучание должно быть одинаковым? я предполагаю, что мы используем хороший транспорт от CD-проигрывателя и отправляем на классный ЦАП ( те со стороны железок потери минимальны)
Потенциально все говорит о преимуществах меди. Но у меня оптика, потому что есть провод такой.