Форум автозвука и установки музыки в автомобиль
Показано с 1 по 10 из 2599

USB DAC и USB Audio для Android

Комбинированный просмотр

  1. #1
    Новичок Соискатель
    Репутация
    Репутация: 0
    Регистрация
    02.01.2016
    Город/село
    Kiev
    Сообщений
    2
    Спасибо (Раздал)
    0
    Спасибо (Получил)
    0

    Re: USB DAC и USB Audio для Android

    Возник вопрос: как подцепить HiFiMeDIY Sabre U2 к андроид смартфону? Нужно какой то переходник с разъема смартфона с выходом USB? Или какой то хаб?

    И еще вопрос юзеру aluver: У вас в подписи указано "ГУ RK3066 Android 4.4.4 -> HiFiMeDIY Sabre U2 24/96 Async USB-DAC -> toslink -> Рязаньприбор X1 mkII (w/mod DSP X5 8channels) -> Focal Performance PS165FX, P25F(ЗЯ)+Pioneer GM-D8601", как удалось подцепить HiFiMeDIY Sabre U2 24/96 Async USB-DAC к Рязаньприбор по оптике? Он же имеет выход 3,5 под наушники, или это не тот DAC?


  2. #2
    Активист Бригадир
    Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация
    Репутация: 66830 Аватар для aluver
    Регистрация
    17.02.2015
    Город/село
    Москва, ЮЗАО
    Сообщений
    581
    Спасибо (Раздал)
    315
    Спасибо (Получил)
    627

    Re: USB DAC и USB Audio для Android

    Цитата Сообщение от linelect Посмотреть сообщение
    как удалось подцепить HiFiMeDIY Sabre U2 24/96 Async USB-DAC к Рязаньприбор по оптике? Он же имеет выход 3,5 под наушники, или это не тот DAC?
    ну раз гугл в Киеве отключили, поработаю за него
    Additional features:
    - The U2 can also work as Asynchronous USB to optical converter when not using the analog output. - See more at: http://hifimediy.com/U2-DAC#sthash.0qOaRzWA.dpuf
    этот выход двойного назначения - и аналоговый, и оптический цифровой. чтобы задействовать последний, необходим переходник miniToslink->Toslink

    После прочтения съесть!


    или сразу кабель с разъемом miniToslink

    По USB OTG уже HoSStiA ответил. Единственное, не все смартфоны обладают функцией USB-Host. Надо проверить Ваш заранее, т.к. без него работать не будет.
    Дежавю - оказывается, в этой же теме все уже написано, причем мною же USB DAC и USB Audio для Android


    ---------- Сообщение добавлено 03.01.2016 в 12:06 ----------

    Цитата Сообщение от HoSStiA Посмотреть сообщение
    Цитата Сообщение от aluver Посмотреть сообщение
    Жаль... в случае с AC3 & DTS он их отправит на spdif в недекодированном виде, то есть неизменно... По крайней мере кино можно посмотреть
    Преобразование WAV/RAW 2ch в PCM 2ch происходит по алгоритмам из одной библиотеки, что AC3 и DTS после "расщепления" видео и аудио ряда (DEMUX).
    Это я уяснил. Я имел в виду, что должно быть возможным заставить потоки AC3 и DTS уходить на spdif без декодирования в PCM. Для фильмового многоканала например.

    Цитата Сообщение от HoSStiA Посмотреть сообщение
    Если вы WAV-декодирование не поддерживалось по умолчанию, пришлось бы добавить строку
    <MediaCodec name="OMX.google.raw.decoder" type="audio/raw" />
    А что будет, если все-таки добавить? Не подхватится гугло-декодером?
    И не забыть еще про соответствующую строчку в cfg
    Цитата Сообщение от HoSStiA Посмотреть сообщение
    Для примера, в Андроиде 5.1 RK предлагается более "тонкая настройка":
    вот. тут-то зачем-то они ее забили... значит должно и в 4.4 подхватиться.

    Цитата Сообщение от HoSStiA Посмотреть сообщение
    Сейчас интересно проверить присвоенное значение
    как я понял, outputDesc назначаются параметры потока, которые установлены для модуля конечного вывода звуковой подсистемы, коим у нас является alsa (???)
    и уже из этих параметров выдирается значение частоты семплирования...
    изначально по коду выше, откуда берется значение AudioSystem::gOutputs.valueFor(output) ?

    может не туда, но в альсе есть еще одно место, где забита частота по умолчанию: alsa.conf - тот, что в user/share
    и хоть она там для dmix, но кто его знает, как оно может повлиять...


  3. #3
    Новичок Соискатель
    Репутация
    Репутация: 0
    Регистрация
    02.01.2016
    Город/село
    Kiev
    Сообщений
    2
    Спасибо (Раздал)
    0
    Спасибо (Получил)
    0

    Re: USB DAC и USB Audio для Android

    Цитата Сообщение от aluver Посмотреть сообщение
    ну раз гугл в Киеве отключили, поработаю за него

    этот выход двойного назначения - и аналоговый, и оптический цифровой. чтобы задействовать последний, необходим переходник miniToslink->Toslink

    После прочтения съесть!


    или сразу кабель с разъемом miniToslink

    По USB OTG уже HoSStiA ответил. Единственное, не все смартфоны обладают функцией USB-Host. Надо проверить Ваш заранее, т.к. без него работать не будет.
    Дежавю - оказывается, в этой же теме все уже написано, причем мною же USB DAC и USB Audio для Android
    Спасибо, извините за неудобства. Прочитал много страниц этой темы, но или пропустил, или не понял про что идет речь, напоролся на недостаток форума как источника информации.

    А по USB OTG вопрос возник потому как на сайте hifimediy есть еще вариант специально под Андроид смартфоны и работоспособность Sabre U2 с андроидом была под сомнением.


  4. #4
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,050
    Спасибо (Раздал)
    11289
    Спасибо (Получил)
    14942
    Автор

    Re: USB DAC и USB Audio для Android

    Цитата Сообщение от aluver Посмотреть сообщение
    может не туда, но в альсе есть еще одно место, где забита частота по умолчанию: alsa.conf - тот, что в user/share
    и хоть она там для dmix, но кто его знает, как оно может повлиять...
    Был бы возможен dmix на RockChip без танцев с бубном, то можно было бы пойти именно этим путем.

    Хардкод, и только хардкод. У данной системы нет конфигурационных файлов или параметров, через которые можно переназначить частоту дискретизации по умолчанию для AudioHAL. Для RockChip она принята в 44100 Гц. Cхожие плеера следующего поколения на процессорах AmLogic используют уже 48000 Гц.

    После прочтения съесть!

    Код:
    diff --git a/hardware/alsa_sound/AudioStreamOutALSA.cpp b/hardware/alsa_sound/AudioStreamOutALSA.cpp
    index e1bbc6f..327b39b 100755
    --- a/hardware/alsa_sound/AudioStreamOutALSA.cpp
    +++ b/hardware/alsa_sound/AudioStreamOutALSA.cpp
    @@ -34,7 +34,7 @@
     #include "AudioHardwareALSA.h"
     
     #ifndef ALSA_DEFAULT_SAMPLE_RATE
    -#define ALSA_DEFAULT_SAMPLE_RATE 44100 // in Hz
    +#define ALSA_DEFAULT_SAMPLE_RATE 48000 // in Hz
     #endif
     
     namespace android_audio_legacy
    @@ -334,7 +334,7 @@ status_t AudioStreamOutALSA::close()
            LOGE("AudioStreamOutALSA::close");
         android::AutoMutex lock(mLock);
         //reset samplerate channels after DirectOutput closed
    -    mHandle->sampleRate = 44100;
    +    mHandle->sampleRate = 48000;
         mHandle->channels = 2;
         mHandle->format = SND_PCM_FORMAT_S16_LE;
         //if(mHandle->handle)


    Сервис AudioFlinger получает системную частоту дискретизации по параметрам, назначаемым в AudioHAL. Как видно, есть определение ALSA_DEFAULT_SAMPLE_RATE , но программисты предпочли не использовать его повсеместно.

    AudioSystem запрашивает AudioFlinger о текущей частоте дискретизации, а остальные приложения уже ориентируются на то, что им назначит AudioSystem.

    С воспроизведением исходного материала с ч.д. 48000 Гц более нареканий не вызывает.

    Экстраполяция из 44100 Гц к 48000 Гц тоже видится корректной, но необходим пересчет всех связанных с частотой дискретизации 44100 параметров. Возможно не только в AudioHAL, но и системных приложениях. Так как из найденных уже недостатков - обрыв воспроизведения на последней секунде из-за некорректного расчета общего времени воспроизведения трека.
    Нажмите на изображение для увеличения
Название: 2016-01-04 (3).png
Просмотров: 0
Размер:	178.6 Кб
ID:	924008Нажмите на изображение для увеличения
Название: 2016-01-04 (4).png
Просмотров: 0
Размер:	105.0 Кб
ID:	924010
    На скриншотах: верхняя пара каналов - запись через S/PDIF, нижняя - импортированный исходный материал.


  5. #5
    Активист Бригадир
    Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация
    Репутация: 66830 Аватар для aluver
    Регистрация
    17.02.2015
    Город/село
    Москва, ЮЗАО
    Сообщений
    581
    Спасибо (Раздал)
    315
    Спасибо (Получил)
    627

    Re: USB DAC и USB Audio для Android

    Цитата Сообщение от HoSStiA Посмотреть сообщение
    С воспроизведением исходного материала с ч.д. 48000 Гц более нареканий не вызывает.
    помедленнее... - я записссывую... (c)
    Я что-то нить потерял - это после каких изменений? Этих?
    Код:
    +    mHandle->sampleRate = 48000
    Либы альсы заменил или сам пересобирал?
    Это после этого стало из 44 в 48 с обрывом последней секунды гнать или еще какие-то изменения были?

    Кстати, вот эта проблема восстановления конфигурации альсы после сна не решилась на примере Allwinner A10? А то на моем ГУ после сна настройки громкости теряются после реинициализации USB-DAC. Сам режим сна не пользую, а вот мировое сообщество на xda требует ответа
    Цитата Сообщение от HoSStiA Посмотреть сообщение
    ... при отключенном питании планшет засыпает через несколько минут отсутствия активности в целях экономии батареи. Соответственно, "засыпают" и устройства, подключенные по USB, т.к. они потребляют 5V питания.
    При возвращении из сна система восстанавливает свое состояние, последовательно переподключая устройства. Но так как моя сборка не знает команды alsa_ctl restore, чтобы прочитать конфигурацию микшера из файла /etc/asound.state,
    а в Андроиде, ко всему прочему, отсутствует механизм запуска сервисов по выходу из сна из /etc/pm/sleep.d/ (как в полных Linux), то необходимо найти альтернативный способ повторить команду
    /system/xbin/alsa_amixer -c 2 sset 'Digital',0 on
    после пробуждения, либо сделать средствами конфигурации,
    /system/usr/share/alsa/alsa.conf или ~/.asoundrc,
    включенным Digital при инициализации карты.
    Если решено, то примерно как?


  6. #6
    Ушел в ЛАС Технический директор Array Репутация: лучше не знать Аватар для HoSStiA
    Регистрация
    11.01.2004
    Город/село
    Столиця
    Сообщений
    13,050
    Спасибо (Раздал)
    11289
    Спасибо (Получил)
    14942
    Автор

    Re: USB DAC и USB Audio для Android

    Цитата Сообщение от aluver Посмотреть сообщение
    помедленнее... - я записссывую... (c)
    Я что-то нить потерял - это после каких изменений? Этих?
    Выше патч с двумя изменениями, которые "запустили" AudioFlinger требуемым образом.
    Оригинальный код библиотеки взят отсюда.

    Цитата Сообщение от aluver Посмотреть сообщение
    mHandle->sampleRate = 48000
    Здесь по феншую должно быть что-то вроде
    Код:
    mHandle->sampleRate = DEFAULT_SAMPLE_RATE
    , но автор успокоился на достигнутом. Следовательно, дальше нужно проверять все расчеты, которые делались для 44100 и принимались как константы.
    Цитата Сообщение от aluver Посмотреть сообщение
    Это после этого стало из 44 в 48 с обрывом последней секунды гнать или еще какие-то изменения были?
    В /system/etc/audio_policy.conf для S/PDIF и HDMI оставил только 48000,
    также для spdif_passthrough изменил
    devices AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET
    на
    devices AUDIO_DEVICE_OUT_AUX_DIGITAL

    Код:
          spdif_passthrough {
            sampling_rates 48000
            channel_masks AUDIO_CHANNEL_OUT_STEREO
            formats AUDIO_FORMAT_PCM_16_BIT
            devices AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET
            flags AUDIO_OUTPUT_FLAG_DIRECT
          }
    Когда будет стабильный результат по всем параметрам, опубликую полный патч.
    Цитата Сообщение от aluver Посмотреть сообщение
    Если решено, то примерно как?
    Пока только поверхностно начал изучать функцию status_t AudioStreamOutALSA::standby()

    После прочтения съесть!

    Код:
    status_t AudioStreamOutALSA::standby()
    374 {
    375     status_t err = NO_ERROR;
    376         LOGD("AudioStreamOutALSA::standby().....");
    377
    378         if(mHandle->curMode == AudioSystem::MODE_IN_CALL)
    379         {
    380                 LOGD("incall mode cannot in standby");
    381                 return NO_ERROR;
    382         }
    383         if(mParent->mXBMCDirectMode) {
    384                 if (!mHandle->handle) {
    385                         //ALOGD("The current is XBMC direct mode and standby UI handle is NULL,so return!");
    386                         return NO_ERROR;
    387                 }
    388         }
    389
    390     android::AutoMutex lock(mLock);
    391
    392     err = mHandle->module->standby(mHandle);
    393 //     LOGD("AudioStreamOutALSA::standby curDev = %d, curMode = %d",mHandle->curDev, mHandle->curMode);
    394
    395     if (mPowerLock) {
    396         release_wake_lock ("AudioOutLock");
    397         mPowerLock = false;
    398     }
    399
    400     mFrameCount = 0;
    401     mParent->mAudioState=0;
    402     //mParent->mDirectMode = 0;
    403     return err;
    404 }


    Цитата Сообщение от aluver Посмотреть сообщение
    А то на моем ГУ после сна настройки громкости теряются после реинициализации USB-DAC. Сам режим сна не пользую, а вот мировое сообщество на xda требует ответа
    Думаю, для таких случаев необходимо в полной мере реализовать alsactl, и запускать при монтировании и выключении устройства с параметрами restore и store соответственно, как это можно делать в linux:

    После прочтения съесть!


    На RockChip не сталкивался остро с этой проблемой.


Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
  cc by-nc-sa