Перейти к содержимому


 

 

Album Player (Aplayer)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13099

#13076 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 14:46

IgorA, вы ошибаетесь. Начиная с API 23 (Android 6.0 Marshmallow) даже для записи можно использовать 192 кГц и 32 разряда.
Действительно, параметром PROPERTY_OUTPUT_SAMPLE_RATE можно зафиксировать выходную частоту дискретизации на все время сессии, что очень удобно для некритичных приложений, ленивых разработчиков, либо сознательного решения для оптимизации автономности. Но никто не заставляет так делать. Во многих плеерах для десктопов тоже можно так делать. И что? Windows тоже залочен под одну частоту?

Ну и немножко первоисточника (из описания API 27):

Sample rate

As of API M, sample rates up to 192kHz are supported for AudioRecord and AudioTrack, with sample rate conversion performed as needed. To improve efficiency and avoid lossy conversions, it is recommended to match the sample rate for AudioRecord and AudioTrack to the endpoint device sample rate, and limit the sample rate to no more than 48kHz unless there are special device capabilities that warrant a higher rate.

Сообщение отредактировал si.tempo: 14 May 2018 - 14:49


#13077 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 14:59

Вы сами сейчас цитируете текст, в котором сообщается о поддержке номинальных 192KHz с автоматическим преобразованием их при необходимости в частоту, поддерживаемую устройством, и рекомендуется сразу выбирать адекватную частоту, не превышающую частоту самого устройства (endpoint device sample rate).

То есть в точности то же самое, о чём шла речь в двух предыдущих моих сообщениях.

Что касается Windows, то там WaveOut и DirectSound, да, аналогично залочены на одну частоту. Но она переключается в системных настройках.

#13078 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 15:02

ПРИ НЕОБХОДИМОСТИ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


В аудиофильских плеерах такой необходимости нет.

#13079 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 15:15

А у какого тогда плеера есть необходимость в ресемплинге? У не аудиофильского?
Естественно, что речь в цитатах идет об автоматическом преобразовании в частоту поддерживаемую устройством.
Любой плеер может от этого уклониться, но сделают это и без него.

#13080 OFFLINE   BSV

BSV

    Постоялец

  • Пользователи
  • 139 сообщений

Отправлено 14 May 2018 - 15:31

IgorA, В таком случае ресемплинг в Андроиде реализован совсем недурно в плане качества, т.к. хай-рез в том же UAPP звучит весьма впечатляюще. Кстати, а Вы не в курсе как в некоторых плеерах реализован так называемый Hi-Res драйвер, который посылает аудио-поток вроде как более прямым путем к аудио-устройству?

#13081 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 15:33

Да не сделают. Вы правда не понимаете?

#13082 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 15:43

Просмотр сообщенияsi.tempo (14 May 2018 - 15:33) писал:

Да не сделают. Вы правда не понимаете?

Я понимаю, что сделают. И понимаю почему.
А вот понимаете ли Вы смысл того текста, который сами же процитировали вверху страницы?

#13083 OFFLINE   BSV

BSV

    Постоялец

  • Пользователи
  • 139 сообщений

Отправлено 14 May 2018 - 15:44

IgorA, Нашел описание Hi-Res драйвера плеера UAPP: http://www.extreamsd...es-audio-driver
Цитата оттуда:
"The HiRes direct driver in USB Audio Player PRO tries to work around that problem by accessing a so-called 'direct' audio path of the Android audio system. Using this direct path, audio can be passed to the chip in 24-bit at all the sample rates that the chip supports, without resampling or other audio degrading 'features' of Android."

#13084 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 15:52

Просмотр сообщенияBSV (14 May 2018 - 15:31) писал:

IgorA,  Кстати, а Вы не в курсе как в некоторых плеерах реализован так называемый Hi-Res драйвер, который посылает аудио-поток вроде как более прямым путем к аудио-устройству?

В деталях я реализацией этого варианта не интересовался, но что-то есть в Poweramp и там к каждому устройству может требоваться адаптация.
По этому поводу большая тема на их форуме:

http://forum.poweram...-the-newer-790/

Но там, где нет на аппаратном уровне управления опорной частотой,  от ресемплинга не избавиться в любом случае.

#13085 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 15:59

IgorA, попробую объяснить попроще.
1. Пользователь запускает плеер.
2. Выбирается устройство, через которое будет выводиться звук.
3. Плеер посылает всякие запросы на устройство вывода, в том числе getSampleRates, в ответ на который устройство вывода присылает ответ, в котором содержится массив значений частот дискретизации, поддерживаемых устройством.
4. Пользователь выбирает трек и нажимает воспроизведение.
5. Плеер считывает параметры трека и устанавливает параметр выходной частоты дискретизации равным частоте дискретизации выбранного трека, если такая частота поддерживается устройством вывода. Если не поддерживается, плеер может или отказаться воспроизводить трек, или спросить пользователя, надо ли делать передискретизацию, или любое иное действие, заложенное разработчиком.

Я понятно объяснил?

p.s.
getSampleRates added in API level 23
int[] getSampleRates ()
Returns
int[] An array of sample rates supported by the audio device.

Сообщение отредактировал si.tempo: 14 May 2018 - 16:07


#13086 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 16:06

Я могу лишь еще раз попытаться объяснить Вам, что и в Windows, и в Android, стандартные API вывода звука принимают входные потоки с различными частотами дискретизации и автоматически преобразуют эти потоки в стандартную частоту дискретизации устройства.

#13087 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 16:11

А я могу еще раз попытаться объяснить Вам, что они будут это делать только если вы с этим согласны.

Любой программист может написать приложение, которое не будет использовать стандартную обработку.

Сообщение отредактировал si.tempo: 14 May 2018 - 16:12


#13088 OFFLINE   BSV

BSV

    Постоялец

  • Пользователи
  • 139 сообщений

Отправлено 14 May 2018 - 16:15

si.tempo, Игорь, конечно, очень крут, но не настолько, чтоб от его согласия или не согласия зависели алгоритмы функционирования подсистем Android :NOno:

Сообщение отредактировал BSV: 14 May 2018 - 16:17


#13089 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 16:19

IgorA, я понимаю, вы защищаете свое раннее утверждение.
Вот это:

Просмотр сообщенияIgorA сказал:

В андроиде в звуковое API зашит неотключаемый ресемплинг и ограничение разрядности. Обойти это могут либо программисты, переделывая системные модули под своё устройство, либо плееры, выводя через USB на внешний ЦАП, вообще без участия аудиосистемы андроида.
Но в Андроиде не зашит неотключаемый ресемплинг и ограничение разрядности. Это было когда-то, но давно уже нет.

#13090 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 16:23

Просмотр сообщенияsi.tempo (14 May 2018 - 15:59) писал:

int[] getSampleRates ()
Returns
int[] An array of sample rates supported by the audio device.

Зачем же Вы обрезаете текст справки по функции на самом важном месте?

Там еще добавлено в конце:

Note: an empty array indicates that the device supports arbitrary rates.

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

И теперь вопрос на понимание ситуации и смысла этой функции:

Может ли быть произвольной частота дискретизации, используемая не для передачи в API с дальнейшим ее автоматическим преобразованием, а частота, аппаратно поддерживаемая текущим устройством?

#13091 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 16:34

Просмотр сообщенияIgorA сказал:

Зачем же Вы обрезаете текст справки по функции на самом важном месте?
Это не самое важное место. Это вообще не важное место, применимо к аудиофильскому плееру. Мы ведь говорим о высококачественном выводе звука? Не так ли?
В таком случае речь идет исключительно об устройствах, поддерживающих Hi-Res, в которых никогда не вернется пустой массив.
Не передергивайте, пожалуйста.

#13092 OFFLINE   BSV

BSV

    Постоялец

  • Пользователи
  • 139 сообщений

Отправлено 14 May 2018 - 16:40

si.tempo, Если б все было так просто, то стали бы разработчики аудиофильских плееров напрягаться лишний раз, разрабатывая Hi-Res драйверы с заточкой под конкретные устройства?

#13093 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 16:50

Просмотр сообщенияBSV сказал:

si.tempo, Если б все было так просто, то стали бы разработчики аудиофильских плееров напрягаться лишний раз, разрабатывая Hi-Res драйверы с заточкой под конкретные устройства?
Раньше это действительно было непросто, но за последние два года, с появлением новых стандартов, чипсетов и API это становится все проще. Прорывным стал как раз Андроид 6.0 (API 23), появившийся 2015 году. А сейчас актуален уже API 27. Андроид развивается стремительно.

Сообщение отредактировал si.tempo: 14 May 2018 - 16:50


#13094 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 16:50

Даже в устройстве,  залоченном на 48KHz, эта функция вернет либо  большой список частот, либо пустой массив. Поскольку это частоты не аппаратной опорной частоты, а частоты, допустимые для потоков, передаваемых API.

Как Вы понимаете тезис из собственной цитаты?:

it is recommended to match the sample rate for AudioRecord and AudioTrack to the endpoint device sample rate

Какие две sample rate здесь сопоставляются?

Сообщение отредактировал IgorA: 14 May 2018 - 16:53


#13095 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 17:02

Бесполезно.

#13096 OFFLINE   BSV

BSV

    Постоялец

  • Пользователи
  • 139 сообщений

Отправлено 14 May 2018 - 17:27

si.tempo, Ваш диалог с Игорем  очень ярко демонстрирует разницу между знатоком и экспертом (без обид))

#13097 OFFLINE   si.tempo

si.tempo

    Знаток

  • Пользователи
  • 153 сообщений

Отправлено 14 May 2018 - 17:34

BSV, да что вы, какие обиды)
Есть еще одна разница, я пишу под Андроид, а Игорь, не знаю, похоже, что нет.

#13098 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 14 May 2018 - 21:41

А вот тест реального, а не воображаемого, Android 7 на Samsung Galaxy  Note 8:

http://eng.soomal.co...10100000185.htm

Там подключали по USB ЦАП Matrix с цифровым индикатором входной частоты.

Результаты: исходники до 96KHz ресемплируются в 48KHz, а от 96 и выше - в 192.
Как мудро, не  правда ли, не то что у простых, где всё в 48.

Догадливые должны сами догадаться, что при этом происходит с внутренним выводом.

И резюме:

According to the test results, Note 8 will have SRC when connecting with an external audio device, which has a negative effect on the audio performance.

#13099 OFFLINE   IgorA

IgorA

    Эксперт

  • Автор темы
  • Продвинутые
  • 3344 сообщений

Отправлено 17 May 2018 - 09:26

Доступна бета-версия Album Player for Linux.

32-разрядный плеер
http://albumplayer.r...player32.tar.gz
64-разрядный плеер
http://albumplayer.r...player64.tar.gz

32-разрядный рендерер
http://albumplayer.r...nderer32.tar.gz
64-разрядный рендерер
http://albumplayer.r...nderer64.tar.gz

Что нового:

1) Для SACD, DSF, DFF добавлена поддержка режима вывода Native DSD ( PCM и DoP уже поддерживаются) .

2) В панель основных настроек добавлена опция вывода исходников 16 бит в 16-разрядном режиме, которая отображается, если драйвер поддерживает 16-разрядный вывод. Если опция не включена, весь вывод идет в 32- или 24- разрядном режиме.

Поддержка Native DSD требует учета конкретной модели ЦАПа в коде ядра.
В актуальных версиях Linux уже присутствует поддержка Native DSD для следующих ЦАПов:
iFi Audio micro/nano iDSD, Matrix Audio X-Sabre, Matrix Audio Mini-i Pro, OPPO HA-1 , Pro-Ject Pre Box S2 Digital , Gustard DAC-X20U, DIYINHK DSD DXD 384kHz, JLsounds I2SoverUSB, Aune X1S 32BIT/384 DSD DAC, PS Audio NuWave DAC, T+A DAC, ITF-USB DSD, Amanero - Combo384.

Для ЦАПов на XMOS обычно есть возможность добавить поддержку других моделей, добавив их VendorID и ProductID в файл /sound/usb/quirks.c и пересобрав модуль /kernel/sound/usb/snd-usb-audio.ko.
Инструкции, например, здесь:
https://l8sae-rexhn1....com/10008.html
Я так пару ЦАПов добавил. Поскольку есть разные варианты значения доп.параметра altsettings (2 или 3) и два возможных режима вывода DSD (U32_BE и U32_LE), может потребоваться перебор вариантов для нахождения рабочей конфигурации. Сборка должна выполняться с указанием в config файлах точного номера установленной подверсии ядра, иначе модуль не загрузится. И при автоматических обновлениях ядра своя версия заменится на стандартную, поэтому обновления надо отключать в таких случаях.

Напоминаю инструкции по установке и использованию плеера.

Плеер выводит напрямую через драйвер ALSA. При установке отключается автоматическая загрузка сервера PulseAudio.
Восстановить её можно, добавив ";" в начало строки "autospawn = no" в файле /etc/pulse/client.conf (с перезагрузкой).

Устанавливается на любой распространенный дистрибутив Linux x86 и x64.
Для установки скачать и распаковать архив, соответствующий используемой платформе.
Скрипты для запуска плеера с правами root подразумевают, что плеер распакован в папку /usr, но их можно изменить или запускать плеер иначе.

Запускать плеер можно и из терминала, и из графического файлового менеджера.

После распаковки архива надо однократно выполнить в папке плеера под root файл pulseoff ( sudo ./pulseoff ) и перезагрузиться.
Проще всего на любой конфигурации запускать программы от администратора, используя файловый менеджер mc.
В терминале запустить sudo mc. После этого все программы, запущенные из панелей менеджера, будут с root правами.

Для использования плеера запускается файл aplayer. Первый раз надо запустить плеер обязательно с root правами.
Открыть в браузере веб-интерфейс по адресу localhost:7778 для локального доступа или ip_компьютера:7778 по сети.
Для рендерера вместо 7778 следует указывать 7779.
Перейти в панели настроек (вызывается правой нижней кнопкой на панели) на вкладку Card, найти в списке доступных нужную карту,
ввести в поле ввода ее номер и нажать кнопку "Select card". Плеер после этого должен автоматически завершиться.
Карту достаточно выбрать один раз для плеера или рендерера. Выбор действует на обе программы.

После этого можно приступать к обычному использованию плеера.
Управление плеером в целом аналогично использованию веб-интерфейса для Windows.
Отличия следующие:
∙ В левом верхнем углу панели плеера находится кнопка включения/выключения режима радио. При включении этого режима плеер вместо текущего плейлиста отображает каталог радиостанций, который находится в папке Radio и может редактироваться пользователем.
∙ В правом нижнем углу панели плеера находится кнопка вызова панели настроек.

Для рендерера правила использования и управление аналогичны плееру (тот же веб-интерфейс), но запускается файл ap2renderer.

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

#13100 OFFLINE   Сергей_58

Сергей_58

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 48 сообщений

Отправлено 17 May 2018 - 15:13

Спасибо Игорь, за обновы!





Похожие темы Collapse

  Название темы Форум Автор Статистика Последнее сообщение

Количество пользователей, читающих эту тему: 4

0 пользователей, 1 гостей, 0 анонимных


    Yandex (2), Bing (1)

Rambler's Top100 Рейтинг@Mail.ru