Анон, что делать?
Ни в какую не работает emu 0404 usb на выход spdif (и коаксил и тослинк).
Есть 2 девайса в 1 ной карте:
root@pulse:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 1: USB [E-MU 0404 | USB], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: USB [E-MU 0404 | USB], device 1: USB Audio [USB Audio #1]
Subdevices: 1/1
Subdevice #0: subdevice #0
Нулевой девайс это похоже что аналоговая часть. Покрайней мери:
root@pulse:~# aplay -D plughw:1,0 piano2.wav
Аналогичная команда для 1 девайса (цифровой выход)
root@pulse:~# aplay -D plughw:1,1 piano2.wav
Посмотрел /proc/asound/card1/stream1. Пишут что поддерживается только несколько режимов.
E-MU Systems, Inc. E-MU 0404 | USB at usb-0000:00:1d.7-4, high speed : USB Audio #1
Playback:
Status: Stop
Interface 1
Altset 17
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100
Data packet interval: 1000 us
Interface 1
Altset 18
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 48000
Data packet interval: 1000 us
Пробую установить их вручную
root@pulse:~# aplay -f S16_LE -r 48000 -D hw:1,1 piano2.wav
Playing WAVE 'piano2.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
root@pulse:~# aplay -f S16_LE -r 44100 -D hw:1,1 piano2.wav
Playing WAVE 'piano2.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
Возникает предположение, что что-то тут не работает. Или цифровой выход карты или вход колонок, а может колонки и карточка хотят общаться в каких то разных форматах.
Для теста включаю на карточке режим мониторинга в spdif. (перенаправляет звук с линейного входа в spdif минуя ПК) Кручу регулятор чувствительности входов, в области максимума регуляторы шуршат так как они и должны шуршать, и этот звук слышно из колонок.
Значит интерфейс spdif работает!
Возникает 2 предположение, что звук aplay не доходит до spdif. И это было бы не просто узнать, но благо что у меня имеется осциллограф.
Подключаюсь к коаксиальному spdif. Настраиваю синхронизацию и вижу, что идет периодический сигнал.
картинка
Заголовок несколько периодов и примерно 15 периодов без изменений (тупа меандр). Причем в заголовке похоже что меняется только 1 бит (может он канал определяет).
Тоесть по меньшей мере до колонок доходит тактовый сигнал.
Вывожу тестовый файл как и прежде:
aplay -D plughw:1,1 piano2.wav
Сигнал идет с точно таким же периодом, таким же заголовком (меняющийся 1 бит), передается какое-то битовое содержимое, собственно звук, который не слышно.
Аналогично с явным указанием параметров:
aplay -r 44100 -f S16_LE -D hw:1,1 piano2.wav
Тот же период сигнала, такой же заголовок, передается какое-то содержимое. Звука нет.
И самое интересное, тест с мониторингом через spdif (как выше).
картинка
Внезапно: абсолютно идентичного типа сигнал, тот же период, тот же заголовок/преамбула, присутствую какие-то данные. Только этот сигнал СЛЫШНО, в отличии от всего предыдущего!
Ничерта не понятно. Похожие сигналы одновременно и слышно и неслышно. Что это вообще такое?
Скажи, правильно ли я понимаю, что если звук не воспроизводится через aplay, то бессмысленно пердолиться с какими-то экзотическими конфигурациями alsa? (никаких конфигов алса, пулсы (самой) и прочего Г нет, тестировалось и на полноценных debian и кастрированных OpenWRT системах с одинаковым результатом)
На тирече специалисты советуют мне декодировать дамп с помощью мокрописечного матлаба или GNU Radio. Тогда можно будет выдрать из потока структуру в которой передаются параметры звука. Может быть они разные при выводе с ПК и мониторинге, и все дело в этом. Но это слишком сложно и нипонятно.
Есть ли более простой вариант как разобраться с помощью конфигов, консольки и на худой конец конпеляции?