PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Звук (http://pccar.ru/forumdisplay.php?f=174)
-   -   USB AUDIO на RK3066 (http://pccar.ru/showthread.php?t=18640)

Rage2 13.09.2014 00:58

а не пробывал подкинуть правленую либу libtinyalsa.sо от нексуса?
http://pccar.ru/showpost.php?p=306106&postcount=4684 правда она под 4.4.4

tsynik 13.09.2014 10:37

Цитата:

Сообщение от aluver (Сообщение 305579)
То есть абсолютно не хочет откликаться на команду вывода контролов.
Куда копать?

В синтаксис, а так же читать alsa.org ;-) Насколько я все позабыл, в качестве девайса нужно указывать то что у /dev/sndxCx по номеру, и все параметры важны то есть нужно писать примерно:

alsa_amixer -c 1 [2? 3?] -D 0 -d
alsa_amixer -c 1 [2? 3?] -D 0 scontrols
и тд.

Как минимум указать номер карты с контролом к которому обращаетесь.

На A10 я без проблем крутил микшер из консоли через alsa_amixer, но, там была фишка (как минимум в библиотеке), что нужно было инициализировать контрол через обращение к микшеру и установке мастер громкости в 0, после этого все крутилось ;-)

aluver 13.09.2014 14:49

Цитата:

Сообщение от tsynik (Сообщение 306344)
В синтаксис ...
Как минимум указать номер карты с контролом к которому обращаетесь.

Уже пробовал - пишет ошибку контрола. У меня все просто Card 2 Device 1
Соответственно пишу
alsa_amixer -c 2 -D 0 scontrols
а он ругается.
Пробовал и стоковый звук крутить (карта 0) - тоже не поддается.
Ошибку не вспомню конкретно... Надо повторить.
И с дебагом не пробовал.
Цитата:

Сообщение от tsynik (Сообщение 306344)
нужно было инициализировать контрол через обращение к микшеру и установке мастер громкости в 0, после этого все крутилось ;-)

Интересно... Спасибо. Посмотрю в asound.conf как мастер обозван и попробую...
Единственное сомнение. У меня тоже правкой so по методу Rage2 роутинг на USB сделан. То есть при такой подмене получается, что USB-DAC "наследует" настройки альсы (название контролов и т.д.) из asound.conf или нет?

aluver 14.09.2014 13:21

Попробовал. Вот такая ошибка.
Код:

u0_a71@android:/ $ su
root@android:/ # alsa_amixer -c 0 -D 0 -d
ALSA lib external/alsa-lib/src/control/control.c:902:(snd_ctl_open_noupdate) Invalid CTL 0
amixer: Mixer attach 0 error: No such file or directory
1|root@android:/ # alsa_aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: RK29WM8731 [RK29_WM8731], device 0: wm8731 PCM wm8731-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: RKHDMII2S [RK-HDMI-I2S], device 0: HDMI PCM rk-hdmi-i2s-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@android:/ #

Что бы это значило?

tsynik 14.09.2014 14:09

Цитата:

Сообщение от aluver (Сообщение 306383)
Что бы это значило?

Хм, попробовал на свистке с RockChip - такая же история. Не работает микшер. Тут может или версия старая, или в ядре что недовключено например...

aluver 14.09.2014 15:28

Вложений: 1
А если поменять местами порядок указания карты и девайса, то ошибки нет, и проглатывает. Но достучаться до контролов не получается...
Код:

root@android:/ # alsa_amixer --device 0 --card 0 controls
root@android:/ # alsa_amixer --device 0 --card 0 contents
root@android:/ # alsa_amixer --device 0 --card 0 scontents
1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'Speaker Playback Volume'
Wrong control identifier: Speaker Playback Volume
1|root@android:/ # alsa_amixer --device 0 --card 0 sget 'Speaker Playback Volume'
amixer: Unable to find simple control 'Speaker Playback Volume',0

1|root@android:/ # alsa_amixer --device 0 --card 0 sset 0 'Speaker Playback Volume'
amixer: Unable to find simple control '0',0

1|root@android:/ # alsa_amixer --device 0 --card 0 sget 'DAC L2 MUX'
amixer: Unable to find simple control 'DAC L2 MUX',0

1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'DAC L2 MUX'
Wrong control identifier: DAC L2 MUX
1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'Speaker Playback Switch'
Wrong control identifier: Speaker Playback Switch
1|root@android:/ # alsa_amixer --device 0 --card 0 cget 'Mono DAC Playback Volume'
Wrong control identifier: Mono DAC Playback Volume
1|root@android:/ # alsa_amixer --device 0 --card 0 cset 'Mono DAC Playback Volume' 0
Wrong control identifier: Mono DAC Playback Volume
root@android:/ # alsa_amixer --device 0 --card 0 controls -i
root@android:/ # alsa_amixer --device 0 --card 0 scontrols -i
root@android:/ # alsa_amixer -c 0 -D 0 scontrols -i
ALSA lib external/alsa-lib/src/control/control.c:902:(snd_ctl_open_noupdate) Invalid CTL 0
amixer: Mixer attach 0 error: No such file or directory

1|root@android:/ # alsa_amixer -D 0 -c 0 controls -i
root@android:/ #

asound.conf во вложении. Куда копать - ума не приложу

tsynik 14.09.2014 16:18

Цитата:

Сообщение от aluver (Сообщение 306388)
asound.conf во вложении. Куда копать - ума не приложу

AlsaMixer я так понимаю тоже будет молчать ;-)
Если список контролов драйвером отдается другим (отуда названия?), может помочь замена библиотеки libasound.so и бинарников. Просто в вашей сборке они не рабочие к примеру (так как их никто не пользует и не проверял) ;-) Ну а может alsa и в вашем ядре урезана / выключена вообще? Потому как есть 100 вариантов без оной! Что за ядро / устройство?
Вот ссылки на git библиотеки и утилит, если есть желание собрать самостоятельно под 4.4:
https://github.com/Matricom/external_alsa-utils
https://github.com/Matricom/external_alsa-lib
(отсюда)

ХМ, к примеру на рокчипе 3188 для HDMI нет никаких контролов. Подключаю внешний DAC (PCM2704) - там всего 2 штуки, причем уровень громкости отсутствует в scontrols, но регулируется через controls:

root@rk3188:/ # cat /proc/asound/cards
0 [RKHDMII2S ]: RK-HDMI-I2S - RK-HDMI-I2S
RK-HDMI-I2S
3 [DAC ]: USB-Audio - USB Audio DAC
Burr-Brown from TI USB Audio DAC at usb-usb20_host-1, full speed
root@rk3188:/ # ls /dev/snd
controlC0 controlC3 pcmC0D0p pcmC3D0p timer
root@rk3188:/ # alsa_amixer -d -c 0 -i controls
root@rk3188:/ # alsa_amixer -d -c 3 -i scontrols
Simple mixer control 'PCM',0
root@rk3188:/ # alsa_amixer -d -c 3 -i controls
numid=1,iface=MIXER,name='PCM Playback Switch'
numid=2,iface=MIXER,name='PCM Playback Volume'
root@rk3188:/ # alsa_amixer -d -c 3 contents
numid=1,iface=MIXER,name='PCM Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=128,128
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cget numid=2
VERIFY ID: numid=2,iface=MIXER,name=''
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=128,128
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cset numid=2 100,100
VERIFY ID: numid=2,iface=MIXER,name=''
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=100,100
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cget name='PCM Playback Volume'
VERIFY ID: numid=0,iface=MIXER,name='PCM Playback Volume'
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=100,100
| dBminmax-min=-128.00dB,max=0.00dB
root@rk3188:/ # alsa_amixer -d -c 3 cset name='PCM Playback Volume' 60,60
VERIFY ID: numid=0,iface=MIXER,name='PCM Playback Volume'
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=128,step=0
: values=60,60
| dBminmax-min=-128.00dB,max=0.00dB


так что список элементов микшера и имена зависят от конкретного устройства! И их, при рабочей alsa, может и не быть!

aluver 14.09.2014 16:48

Цитата:

Сообщение от tsynik (Сообщение 306393)
Если список контролов драйвером отдается другим (отуда названия?), может помочь замена библиотеки libasound.so и бинарников. Просто в вашей сборке они не рабочие к примеру (так как их никто не пользует и не проверял) ;-) Ну а может alsa и в вашем ядре урезана / выключена вообще? Потому как есть 100 вариантов без оной! Что за ядро / устройство?

Названия я брал из стокового asound.conf (во вложении пред.сообщения).
Устройство - магнитола Klyde KD-8016 на RK3066. Ядро 3.0.38+ Андроид 4.2.2. Обитаем здесь http://4pda.ru/forum/index.php?showtopic=557670&st=3300
Звук в стоке идет на аудиопроцессор WM8731. Управляются 4 канала звука. Отсюда, как я понимаю, и такие замороченные названия контролов в asound.conf

tsynik 14.09.2014 17:10

Цитата:

Сообщение от aluver (Сообщение 306398)
Звук в стоке идет на аудиопроцессор WM8731. Управляются 4 канала звука. Отсюда, как я понимаю, и такие замороченные названия контролов в asound.conf

Воооот ;-) Получается, что чистая незамутненная цифра (причем в стерео варианте скорее всего, но это зависит от драйвера/библиотеки звука, которая формирует поток) или уже декодированный аналог идет на внешнюю микросхему, и у меня есть подозрение, что регулировка уровней идет вообще как-нибудь по i2c или что там специальным apk / библиотекой, и к alsa и рокчипу это имеет отношение не более чем нулевое ;-) Причем, судя по даташиту, WM8731 - двухканальный, и их вообще должно быть 2 штуки ;-)

Но! При подключении внешней многоканальной карты вполне можно будет рулить её микшером и уровнями громкости (на _аналоговых_ выходах), если _её_ микшер обеспечивает такую возможность ;-) На моей SB - Live 5.1 например только общий уровень крутится, причем даже не поканально.

p.p.s. Мне только не понятна проблема невозможности регулировки уровня на внешнем DAC. На моем свистке RK3188 как на HDMI, так и на внешних USB DAC, когда я кручу уровни громкости Android (Multimedia, Notifications, etc) уровень звука изменяется (что логично)...

aluver 14.09.2014 20:50

Цитата:

Сообщение от tsynik (Сообщение 306399)
Мне только не понятна проблема невозможности регулировки уровня на внешнем DAC. На моем свистке RK3188 как на HDMI, так и на внешних USB DAC, когда я кручу уровни громкости Android (Multimedia, Notifications, etc) уровень звука изменяется (что логично)...

Вот-вот. Штатные крутилки (и кнопки) громкости моей магнитолы как раз и привязаны к регулировке уровня именно на чипе WM, и именно по i2c. Мне же нужны команды андроид для регулировки Multimedia-контрола андроид-микшера при подключенном USB-DAC. А с нулевой картой я просто пробовал это делать для теста, чтобы понять управление альса-миксером. Так как в моем asound.conf пока нет ниодной строчки про мой usb-девайс. И как их придумать я не знаю. :blush:
Может и не альса мне нужен вовсе. Может есть какая-то уникальная готовая прога-миксер для андроид, которой можно кнопки магнитолы назначить... :dntknw: Кнопок запасных у меня хватает. Стрелки вверх-вниз на руле например. То есть штатная громкость останется функционировать. А вот эти кнопки будут конкретно громкостью Multimedia управлять.
А если оно еще для регулировки громкости будет апсэмплить звук до 96/24 и даунсэмплить обратно для вывода андроидом на DAC, то это вообще будет сказка.
Ну а а если сможет отдать апсэмпленную цифру без обратного даунсэмплинга, не смотря на ограничения Андроид, то я эту прогу готов купить.

tsynik 14.09.2014 21:44

Цитата:

Сообщение от aluver (Сообщение 306405)
Мне же нужны команды андроид для регулировки Multimedia-контрола андроид-микшера при подключенном USB-DAC.

Как раз эти команды никак не привязаны к какому-либо железу, назначаются на произвольные коды и определены для разных клавиатур в .kl файлах (/system/usr/keylayout/*.kl), типа того:

key 217 VOLUME_DOWN
key 139 VOLUME_UP

программно эти KeyEvent легко генерирует тот же Tasker по разным условиям, и нет проблем для программиста добавить их в любой сервис. Таким образом будет использован штатный функционал и микшер Android.

Цитата:

Сообщение от aluver (Сообщение 306405)
Кнопок запасных у меня хватает. Стрелки вверх-вниз на руле например. То есть штатная громкость останется функционировать. А вот эти кнопки будут конкретно громкостью Multimedia управлять.

Если нажатия этих кнопок как-то попадают в Андроид (KeyEvent Display из Маркета в помощь) - то можно назначить на них любые действия через .kl файлы.

Цитата:

Сообщение от aluver (Сообщение 306405)
А если оно еще для регулировки громкости будет апсэмплить звук до 96/24 и даунсэмплить обратно для вывода андроидом на DAC, то это вообще будет сказка.
Ну а а если сможет отдать апсэмпленную цифру без обратного даунсэмплинга, не смотря на ограничения Андроид, то я эту прогу готов купить.

Бессмысленное действие. Поток 44100 16bit имеющий качество компакт-диска, не станет лучше, а скорее всего только хуже после любых преобразований (плюс это доп. вычислительная нагрузка).
Ограничения Android - надуманные, по большому счету их нет, просто не добавлены большие частоты в framework / библиотеке вывода звука. Я например добавлял 48000 в либу для A10, и так же можно было дописать туда 96000 или 24bit, вот только - зачем? Где источники в таком разрешении и что именно будет это раскодировать в вашей машине?

aluver 14.09.2014 23:22

Цитата:

Сообщение от tsynik (Сообщение 306410)
Как раз эти команды никак не привязаны к какому-либо железу, назначаются на произвольные коды и определены для разных клавиатур в .kl файлах (/system/usr/keylayout/*.kl), типа того:

key 217 VOLUME_DOWN
key 139 VOLUME_UP

В Generic.kl есть:
key 113 VOLUME_MUTE
key 114 VOLUME_DOWN
key 115 VOLUME_UP
В андроид попадают только через интерпретатор команд платы MCU магнитолы, но есть прога CarAudioService, которая "слушает" этот поток и по указанным ей кодам кнопок MCU генерирует события нажатия кнопок Андроид. Вот только автор ограничился воспроизведением/паузой и сменой треков. И на ЛС на xda не отвечает...
Ну ничего, найдем программистов. Главное - правильно сформировать ТЗ.
Цитата:

Сообщение от tsynik (Сообщение 306410)
Если нажатия этих кнопок как-то попадают в Андроид (KeyEvent Display из Маркета в помощь) - то можно назначить на них любые действия через .kl файлы.

Огромное спасибо за наводку!

Цитата:

Сообщение от tsynik (Сообщение 306410)
Бессмысленное действие. Поток 44100 16bit имеющий качество компакт-диска, не станет лучше, а скорее всего только хуже после любых преобразований (плюс это доп. вычислительная нагрузка).
Ограничения Android - надуманные, по большому счету их нет, просто не добавлены большие частоты в framework / библиотеке вывода звука. Я например добавлял 48000 в либу для A10, и так же можно было дописать туда 96000 или 24bit, вот только - зачем? Где источники в таком разрешении и что именно будет это раскодировать в вашей машине?

Цель - не дать убить звук на малой громкости. Ведь чем меньше громкость в случае регулировки ее в цифре, тем меньше эффективная используемая разрешающая способность. И тем больше эффект округления текущих значений амплитуды, после деления исходного значения пропорционально проценту уменьшения громкости. Грубо говоря, если человек способен "расслышать" низкий битрейт и на малой громкости, то в данном случае, из-за _относительного_ снижения битности каждого значения амплитуды, при уменьшении громкости он услышит худший звук, нежели услышал бы при регулировке громкости усилителем. Это как пытаться нарисовать график по точкам на миллиметровке, только не целом всем листе, а на маленькой узкой и длинной полоске от этого листа. То есть звук при громкости 50% будет уже по сути не 16/44, а 8/44. А 50% громкости это еще очень разбираемая громкость. И так далее, дальше/ниже - хуже.
Усилитель по коаксиалу от USB-DAC может переварить 96/24 и даже больше. Так почему не использовать это? Прибавили дополнительные разряды к 16 битам, повысили частоту и крутим громкость практически без потерь "разрешения" звука.
А нагрузка вычислительная не больше, чем от любого программного эквалайзера. Добавленные дополнительные разряды первоначально заполняются нолями, а вот алгоритм повышения частоты можно и посложнее выбрать. Здесь уже интерполяция в помощь. Ну уж если современные камни справляются с задачами эмуляции профессиональных процессоров эффектов, то быстродействие на регулировке громкости пострадать не должно. У меня двухъядерный 1,6ГГц, должно хватить :).

SPablo 15.09.2014 11:14

DAC должен использовать все свои биты для хорошего разрешения и детального звука.
Регулировка звука на таблетке-тогда проще вообще DAC не ставить.
Вариант 1 - ставить ALPS как в проекте у Rage2 (высокое качество звука, мех. регуль)
Вариант 2 - ставить регуль на PGA2310-PGA2320 от BureBrown (высокое качество звука, элект. регуль)

SPablo 15.09.2014 11:38

Очень хороший звук с PCM2702E выходит, для авто даже с лихвой.
Начальный аудиофильский DAC c встроенным ЦФ, USB интерфейсом.
Думаю надо платы заказать мелкой серией, если найдется необходимое количество желающих...

aluver 15.09.2014 13:39

Цитата:

Сообщение от SPablo (Сообщение 306428)
DAC должен использовать все свои биты для хорошего разрешения и детального звука.
Регулировка звука на таблетке-тогда проще вообще DAC не ставить.
Вариант 1 - ставить ALPS как в проекте у Rage2 (высокое качество звука, мех. регуль)
Вариант 2 - ставить регуль на PGA2310-PGA2320 от BureBrown (высокое качество звука, элект. регуль)

Про ALPS писали, что сдулись по качеству. Тонкий слой графита истирается моментально. Про PGA тут почитал http://forum.vegalab.ru/showthread.php?t=32295&page=2, расстроился...
Цитата:

Сообщение от SPablo (Сообщение 306429)
Очень хороший звук с PCM2702E выходит, для авто даже с лихвой.
Начальный аудиофильский DAC c встроенным ЦФ, USB интерфейсом.
Думаю надо платы заказать мелкой серией, если найдется необходимое количество желающих...

Я желающий! Где, почем? Кто делает? Сколько минимальная серия?

SPablo 15.09.2014 13:59

Цитата:

Тонкий слой графита истирается моментально.
Это понятие относительное, но правда в этом есть.
Цитата:

Про PGA тут почитал http://forum.vegalab.ru/showthread.php?t=32295&page=2, расстроился...
Это зря. PGA2310/PGA2311 по характеристикам превосходит любой, даже очень дорогой усилитель в авто. Эти микры чуть ли не в HiEnd ставят, а вы расстраиваетесь из-за переписки какой то.

SPablo 15.09.2014 14:08

Цитата:

Я желающий! Где, почем? Кто делает? Сколько минимальная серия?
У меня схема:
PCM2702E (DAC USB) BureBrown
OPA2132 (фильтр, буфер) BureBrown
PGA2311 (рег. громкости) BureBrown
Atmega8 (управляет PGA, энкодер, индикация)
Конденсаторы: WIMA FKP-2 , ELNA

БП-импульсный + стабы LM317/337 - доробатывается

Обкатаю схему и можно заказать платы на производстве.
Вроде и от 20шт можно

Rage2 18.09.2014 19:21

SPablo, Я б взял себе на пробу. Дай знать как будут готовы. И цену в ЛС.

BlkDem 18.09.2014 20:08

Цитата:

Сообщение от SPablo (Сообщение 306275)
Вставил в машину ASUS me180 (memo pad8, 8" RK3188)
Модули собрал, автозагрузку сделал.

Сделай доброе дело, выложи модули сюда, плз.
Идеально - дамп твоей прошивки.
Спс.

BlkDem 18.09.2014 20:11

Кста, заменил Hold X на DNS p72w. Хост есть, хаб енаблен. Модули из шапки подошли.

mas_u 19.09.2014 00:11

Может было было уже, но все равно спрошу.
Как разделить аудио потоки, например для навигации и мультимедии.
Необходимо что бы голосовые подсказки навигации стримились, например, на внутреннее аудио, а музыка на внешнею звуковую карту?

tomy_gun 28.12.2014 13:43

Привет всем знатокам! Столкнулся с проблемой по подключению USB Cambridge DACMagic 100 (http://www.cambridgeaudio.com/produc...a/dacmagic-100) к китайскому ГУ на платформе КGL c Rk3066 Андроид 4.2.2 MCU 1.95. Перепробовал оба варианта которые предложил ув. Rage2, а так-же ув. Aluver, ув. tsynik и другие. Сдвиги безусловно есть. Звук уже не идет на аналоговые выхода, и в терминале ЦАП определяется как 2. С1 USB Cambridge DAC Magic 100 под номером два как и у Aluver`а. Пробовал методику Rage2 сперва, условно назовем, pcmC2D0p, и АLSA Card: 2, затем методу Aluver`а pcmC2D0p с дровами от UGT39. Результата ноль. Терминал видит ДАК, звука нет, не через юсб ни через аналоги. Если терминал и соответственно Голова видят USB DАС, тогда дрова(модуля) стоят правильно и загвоздка в чем то ином? Или ж пока звук не выводит надо менять модуля(дрова)? Или ж паяться, вот только что и к чему? Ща изучаю прошивку ядра и тд, но мне кажется двигаюсь не в правильном направление и где-то раньше не уловил суть. Буду очень благодарен любой помощи или наводке!

aluver 28.12.2014 18:21

Аппарат шикарен для авто. Как реализовано питание?
USB в асинхронном режиме реализован. Читал где-то, что в связи с этим могут быть проблемы с распознаванием в андроид.
Если ДАК определился, можно попробовать послать на него звук (без правки номера девайса в модуле .so)
Код:

alsa_aplay -Dhw:2,0 -f cd /dev/urandom
Должно шипеть. Если шипит, значит проблема в роутинге. Какие дрова сейчас? Раз магнитола KGL, у нас идентичные прошивки. А значит должны работать именно выложенные мною дрова.

tomy_gun 28.12.2014 19:03

Спасибо=). Сейчас запитано от родного, и сей девайс находится у меня на столе (ГУ и ЦАП). Если получится прикрутить ДАК, тогда буду решать проблему с питанием, обязательно отпишусь. Пол года проездил с ГУ и вот третью неделю езжу с отверстием в торпеде, борюсь. Дрова стояли ваши, снес андроит 4.2.2 пробовал на 4.4.2 ща переставляю обратно и отпишусь через несколько мин пока проведу манипуляции с девайсом.

(без правки номера девайса в модуле .so) - раньше не знал, писал с изменениями. Сейчас написал без, но увы:

Цитата:

Код:
alsa_aplay -Dhw:2,0 -f cd /dev/urandom
Ввел код пишит:
Цитата:

set_params:1054: Sample format non available
Available formats:
- S24_3LE
Чет подобное было тут:
http://pccar.ru/showthread.php?t=18640&page=6

Но у меня так и не получилось, постоянно ошибки, даже когда пишу так:
Цитата:

alsa_aplay -Dhw:2,0 -f S24_3LE -r 44100 /dev/urandom
Ща еще раз пробую.

Попробовал, как и в те разы, пишит:
Цитата:

Playing raw data '/dev/urandom' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Mono
aplay: set_params:1060 : Channels count non available
Попробовал еще такой код:
Цитата:

alsa_aplay -Dhw:2,0 -f S24_3LE -сd 44100 /dev/urandom
В ответ:
Цитата:

aplay: main:514: value 0 for channels is invalid
Попробовал еще такой код:
Цитата:

alsa_aplay -Dhw:2,0 -f S24_3LE /dev/urandom
В ответ:
Цитата:

Playing raw data '/dev/urandom' : Signed 24 bit Little Endian in 3bytes, Rate 8000 Hz, Mono
aplay: set_params:1060 : Channels count non available

Вариантов больше нет.

aluver 28.12.2014 20:14

Все правильно. Я сразу не просек, что данный девайс только 24 бита играет. Формат в примерах выше ни разу не угадан. Последний раз ближе всего, только 8000Гц моно почему-то. Попробуйте так:
Код:

alsa_aplay -Dhw:2,0 -f S24_3LE -r 44100 -c 2 /dev/urandom
Можно также попробовать подсовывать тестовые файлы в формате 24 бит 44.1 или 48 кГц желательно стерео.
Код:

alsa_aplay -v -Dhw:2,0 test.wav
Тут подробнее http://magnitola.org/usb-audio-dac-a...it-96-khz.html

tomy_gun 28.12.2014 20:20

Попробовал програмку:

USBAudioTester
https://play.google.com/store/apps/d...usbaudio&hl=ru

Я выбрал частоту 44100. Он увидел мой ДАК и зашипел, последовательно левый канал потом правый, потом перестал, хотя операция программы еще продолжалась. На ДАКе загорелся диод при первой попытке 44100, я попробовал еще раз и он написал ошибку "Could not start USB Streaming". Сейчас перезагрузился попробую еще раз.

Попробовал но на частоте 48000. Всё тоже самое только диод уже горел на 48.

awtoap 28.12.2014 20:23

Если не ошибаюсь, то 24 бита это не стандартный формат для вывода. Либо 16 либо 32. Просто если ЦАП принимает только 24 бита, то тупо отсекается самый старший байт.

tomy_gun 28.12.2014 20:34

Цитата:

Сообщение от awtoap (Сообщение 315754)
Просто если ЦАП принимает только 24 бита, то тупо отсекается самый старший байт.

Я не совсем понял - отсекается самый старший байт. Тоесть если так то ДАК не получится прикрутить?

aluver 28.12.2014 20:47

Ничего никуда не отсекается. Откуда такие заключения? 24 бита поддерживаются андроидом. Просто гугл принял формат 16/44.1 за постулат. Но мы в данный момент воспроизводим нештатными средствами. Читаем тему, что я выше приводил.
Цитата:

Сообщение от tomy_gun (Сообщение 315753)
Я выбрал частоту 44100. Он увидел мой ДАК и зашипел, последовательно левый канал потом правый.
Попробовал но на частоте 48000. Всё тоже самое только диод уже горел на 48.

Принципиально работает. Просто с переключениями какие-то проблемы. Возможно из-за того как раз, что дак работает по асинхрону.

tomy_gun 28.12.2014 20:50

Цитата:

Сообщение от aluver (Сообщение 315752)
Попробуйте так:
Код:

alsa_aplay -Dhw:2,0 -f S24_3LE -r 44100 -c 2 /dev/urandom

Попробовал как написано в этом коде, аж подлетел от звука, колонки зашипели! Выдернул ЮСБ чтоб спастись =)

Вывод: на ДАК подается сигнал через ЮСБ

Цитата:

Принципиально работает. Просто с переключениями какие-то проблемы. Возможно из-за того как раз, что дак работает по асинхрону.
дак работает по асинхрону - попытки подключения возможны или дак не подружится с андроидом?

Какой следующий шаг, что б заставить работать медиа?

Попробовал поставить USB AUDIO PLAYER PRO Trial, как посоветовал Rage2
https://www.google.com/url?q=https:/...rial_1.4.5.apk

Когда воспроизвожу аудио файл пишит ошибку:
Цитата:

No USB audio device found: enable the option 'Play throught Android' in the preferences if you want to play without DAC attached

aluver 28.12.2014 21:12

Ну вот. То есть моно он не жрет. Дальше в общих случаях менять в so номер девайса по умолчанию. Но как андроид будет выводить 24 бита - я не могу пока придумать... может проще купить свисток попроще? :-)
Сейчас на нашем форуме по магнитоле http://4pda.ru/forum/index.php?showtopic=557670&st=8960 есть товарищ 2x4ever, который уже альсу в ядро полностью внедрил и занимается реализацией поканальных задержек на 7-канальной юсб-звуковухе, а также среди его задач софтверный апсемплинг звука андроид. Можно попросить его помочь. Я не настолько программист.

Rage2 28.12.2014 21:21

Думаю что Асинхрон не влияет....у меня есть обе версии сабры...обе работают без бубнов. Так что полагаю дело не в этом.
И вообще, есть подозрения, что для асинхрона нужны другие дрова....на гитхабе натыкался на такие.

tomy_gun, Если шипит, значит дрова, и сама шина юсб исправна...
осталось дело за роутингом.
Можно юзать плеер для музыки https://play.google.com/store/apps/d...layerpro&hl=ru
Ему дрова вообще не нужны, у него свои...вроде как пашет напрямую с железкой, минуя либы, микшеры да и саму ОС...

Цитата:

Сообщение от aluver (Сообщение 315758)
товарищ 2x4ever, который уже альсу в ядро полностью внедрил и занимается реализацией поканальных задержек на 7-канальной юсб-звуковухе, а также среди его задач софтверный апсемплинг звука андроид.

Нихерасе...интересненько..
З.ы только не в ядро...а в ОС.

tomy_gun
, способ правкой либы...это костыль. И работать скорее всего в твоем случае не будет. Там формат 44.1/16bit.
Да и как то жалко губить потенциал такой крутой вещицы как Cambridge DACMagic 100.
Лучше прикрутить альсу! Только этот путь!

aluver 28.12.2014 21:39

http://www.audiomania.ru/content/art-2761.html а вот тут написано, что он и 16 бит поддерживает!
Пробуем еще разик вот так
alsa_aplay -Dhw:2,0 -f cd -r 44100 -c 2 /dev/urandom
И кстати можно еще посмотреть поддерживаемые форматы как-то так
root@android:/ # cat /proc/asound/card2/stream0

tomy_gun 28.12.2014 21:41

aluver Спасибо большое за помощь! За последний час сдвинулся с мертвой точки больше чем за всю прошлую неделю. И спасибо за совет обратиться к 2x4ever, обязательно попытаю счастье.

Цитата:

Пробуем еще разик вот так
alsa_aplay -Dhw:2,0 -f cd -r 44100 -c 2 /dev/urandom
И кстати можно еще посмотреть поддерживаемые форматы как-то так
root@android:/ # cat /proc/asound/card2/stream0
Понял пробую!

Rage2 Плеер попробовал, когда воспроизвожу аудио файл пишит ошибку:
Цитата:

No USB audio device found: enable the option 'Play throught Android' in the preferences if you want to play without DAC attached
Цитата:

способ правкой либы...это костыль.
- не понял ни слова =)) далеко не програмист)

Цитата:

Лучше прикрутить альсу! Только этот путь!
- это как?
Если то как Вы описывали в Вариант№2 (http://pccar.ru/showpost.php?p=251689&postcount=102) то тоже ничего не вышло=(

Цитата:

Да и как то жалко губить потенциал такой крутой вещицы как Cambridge DACMagic 100.
Хочется чудо саунд - фронт Focal K2 Power 165 KR, тыл Hertz HSK 165.4 XL, усилитель Alpine pdx-f4, полная вибро и шумо изоляция авто, и в этой связке самый слабый оказывается китаец ГУ, потому и хочется прикрутить что-то серьезное типа Cambridge DAC.

tomy_gun 28.12.2014 21:53

Цитата:

И кстати можно еще посмотреть поддерживаемые форматы как-то так
root@android:/ # cat /proc/asound/card2/stream0
Попробовал, на что получил ответ:
Цитата:

Playback:
Status: Stop
Interface 1
Altset 1
Format: S24_3LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000
Попробовал вот это:
Цитата:

Пробуем еще разик вот так
alsa_aplay -Dhw:2,0 -f cd -r 44100 -c 2 /dev/urandom
В ответ:
Цитата:

set_params:1054: Sample format non available
Available formats:
- S24_3LE

aluver 28.12.2014 21:57

Цитата:

Сообщение от Rage2 (Сообщение 315759)
Нихерасе...интересненько..

Да, углубился он некисло. Если все получится, то основной функционал DSP реализует - задержки и эквализация (количество полос ограничено только мощностью проца).
Приведу фрагмент из переписки (надеюсь,он не будет против)
Цитата:

По поводу подвижек. Я купил для тестов дешманскую звуковуху на cmedia 7.1 канальную, она заводится ок. Далее я собрал полную альзу с поддержкой ladspa, попробовал плагин Parametric 4-х полосный. На двух каналах он грузил проц на 12 процентов. Вобщем поколупался пару дней, оптимизировал его под NEON, и расширил до 12 полос. Вобщей с этим параметриком по 12 полос на каждый из 8 каналов загрузка проца получется около 18 процентов. Теоретически на фронты можно сделать по 31 полосе. Я планирую поканалку сделать на фронт. Хай пас и лов пасы жрут немного, пару процентов. С задержками засада, нет готового ничего. Все плагины для всяких эхо для диджеев и реверба. Пришлось написать. Но т.к. андроид работает в 16/44.1 то минимальная задержка в 1 семпл - это 22 микросекунды, т.е. 7 мм. Если сделать апсемплинг до 88.2 чтобы без артефактов. Тогда можно до 3 мм уменьшить шаг. Сам по себе плагин задержки не несет нагрузки на процессор.
Теперь я доделываю плагин для управления всем эти *****м через alsamixer. Чтобы можно было все это крутить в онлайне и делать пресеты. Дальше я планирую использовать alsa-aloop - виртуальная звуковуха в нее перенаправить весь вывод из андроида, и есть софтина alsaloop, это сервис который может записывать из aloop и передавать на реальную звуковуху. Это все для того чтобы избежать плясок с пересборкой андроидной части. Ну и последнее - это написать модуль ядра, который будет перехватывать крутилку громкости и фейдеры в приложении настроек звука и крутить громкость через alsamixer.
А для обсуждаемого здесь кембриджа думаю коллеге все же лучше найти место дома, а в машину поставить какой-нить M2TECH hiFace 2 с рязаньприбором мк2 и вуаля. По качеству будет достаточно. И негромоздко.

tomy_gun 28.12.2014 22:18

Цитата:

а в машину поставить какой-нить M2TECH hiFace 2 с рязаньприбором мк2 и вуаля. По качеству будет достаточно. И негромоздко
У него выход Output S/PDIF, а в моей связке усилитель Alpine pdx-f4 не имеет входов таких. А что если подключить M2TECH hiFace 2 к андроиду, от свистка в Cambridge DAC, а уже оттуда на усилок? Или это агония уже))?

Rage2 28.12.2014 22:30

Цитата:

Сообщение от aluver (Сообщение 315763)
Да, углубился он некисло. Если все получится, то основной функционал DSP реализует - задержки и эквализация (количество полос ограничено только мощностью проца).
Приведу фрагмент из переписки (надеюсь,он не будет против)
.

Я так и не нашел его постов на эту тему, как оказалось у вас общение через ЛС. Спасибо что поделился, интересно.:wink2:

Вот еще один грамотный чел трудится
http://magnitola.org/usb-audio-dac-a...ml#post2716636
Результаты тоже впечатляют.

Rage2 28.12.2014 23:57

tomy_gun,
Цитата:

Цитата:

способ правкой либы...это костыль.
- не понял ни слова =)) далеко не програмист)
И я не программист))
Я имел виду о способе с правкой в hex редакторе штатной либы. Это костыль...."кривой способ."

Нужно прикручивать(если нет) и настраивать альсу. Не обязательно ту что я выкладывал...она вообще от ТВ-приставки и непонятно какой версии.

Пища для опытов...
http://forum.xda-developers.com/show...08&postcount=4
http://magnitola.org/usb-audio-dac-a...ml#post2194844
http://habrahabr.ru/post/140529/
http://4pda.ru/forum/index.php?showtopic=327420
http://magnitola.org/usb-audio-dac-a...ml#post2151582
http://4pda.ru/forum/index.php?showtopic=254155

Главное не опускай руки и не падай духом! :wink2:
И делись результатами мучений))

alex_MORPH 19.03.2015 11:19

Всем привет, прочитал почти всю ветку, но не понял, почему тут хотят использовать какие-то Кэмбриджи, M2TECH HiFace. Классические автомобильные процессоры уже не в моде? У меня дикое желание уйти от 99-го пионера в пользу китайца на rk3066/rk3188 с внешним процессором и оптикой из китай-г.у. Мой план примерно такой:
- купить китай г.у. на вышеуказанных процессорах, докупить к ним Сабру (вот тут вопрос, не понятно какая будет точно работать, пусть с бубном http://hifimediy.com/DACs/9018-dac такую пробовали?).
- Из Сабры пустить оптику в Helix DSP, громкость которого привязать на кнопки руля (вроде вполне реально).
- Уже из Helix DSP коротенькие межблоки распустить по усилителям, по-канальная трёхполоска + саб.
В теории всё должно быть чудесно. С какими подводными камнями я могу сталкнуться? Всё это не очень дешевое удовольствие, не хотелось бы купить и потом, чтобы оказалось, что мой план неосуществим.


Часовой пояс GMT +4, время: 09:48.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot