-
Публикаций
5 555 -
Баллов
14 098 -
Зарегистрирован
-
Посещение
-
Победитель дней
15
Тип контента
Профили
Форумы
Пользовательские тракты
Галерея
Колекции
Блоги
Объявления
Магазин
Articles
Весь контент IgorA
-
На передачу уровня громкости отводится один байт. Больше 256 градаций через байт не передать. Но странно, если шаг в "1" дает большой скачок. По моим впечатлениям такое изменение можно и не заметить. Изменения настроек в apconfig действуют при следующем запуске плеера. Может быть, у Вас не сбросилось значение шага "12", заданное изначально?
-
@Chris Rea, добрый день. На вкладке Hotkeys в ap2config в левом нижнем углу можно задать шаг громкости, а правее - локальные и глобальные горячие клавиши. Выбор шага подразумевает, что полный диапазон регулировки громкости - 256 уровней.
-
@vvvzzz Если хочется, чтобы выбранный пресет загружался автоматически, его надо сохранить кнопкой "Save" (в левом верхнем углу панели VST) с именем default.
-
Юрий, здесь проблема не с доступной памятью, а с тем, что декодер библиотеки BASS не может по http протоколу работать с файлами более 2GB, если открывать их именно как файлы. Но можно загружать такие файлы в режиме непрерывной трансляции, в котором для стандартного и Direct Input режимов не будет доступна перемотка. Для этого потребуется добавить при открытии файла проверку на превышение порога в 2GB. В следующем обновлении сделаю. Это относится только к рендереру. В плеере такой проблемы нет, он этот файл в режиме Full Memory воспроизводит.
-
Юрий, если в исходном параметре GRUB_CMDLINE_LINUX_DEFAULT значения "nomodeset" не было, его не надо добавлять. Надо просто дописать в конец существующего значения isolcpus=3. То есть, в Вашем случае "quiet isolcpus=3". Тогда зависания не должно быть. Но документация на параметр isolcpus говорит, что он влияет на пользовательские потоки: This prevents the scheduler from scheduling any user-space threads on this CPU. То есть, потоки ядра системы могут продолжить выполняться и на изолированных таким способом ядрах процессора. Можно ли их разогнать из плеера, используя данные из каталога /proc, надо разбираться.
-
Юрий, на скриншоте выведен список не процессов, а потоков. Поток может представлять собой как процесс в целом, так и его параллельно выполняемый фрагмент. Если посмотреть внимательно, то будет видно, что все экземпляры ap2renderer занимают одну и ту же память. То есть, это один и тот же процесс. Несколько дополнительных потоков могут создаваться библиотекой, реализующей UPnP управление рендерером. Такие потоки, как правило, почти все время находятся в "спящем" состоянии ожидания событий и не потребляют существенных ресурсов. Что касается распределения потоков по ядрам процессора. Плеер при старте воспроизведения перераспределяет ядра для процессов, присутствующих в списке активных процессов в виртуальном каталоге /proc. Но в Linux, в отличие от Windows, нет общего управления ядрами для всех потоков процесса сразу. Поэтому для процессов с доп.потоками требуются аналогичные действия еще и для всех потоков, представленных в папке /proc/pid/task. Этого сейчас не делается, но Linux версия может быть в этом отношении доработана. Более радикальное решение для Linux, доступное и сейчас - освободить последнее ядро для плеера в системных настройках. Если, например, у последнего ядра индекс 3, как на скриншоте, надо в файле /etc/default/grub строку GRUB_CMDLINE_LINUX_DEFAULT="nomodeset" заменить на строку GRUB_CMDLINE_LINUX_DEFAULT="nomodeset isolcpus=3" выполнить update-grub и перезагрузиться.
-
Доступна бета-версия Album Player for Linux. 32-разрядный плеер http://albumplayer.ru/linux/new7/aplayer32.tar.gz 64-разрядный плеер http://albumplayer.ru/linux/new7/aplayer64.tar.gz 32-разрядный рендерер http://albumplayer.ru/linux/new7/aprenderer32.tar.gz 64-разрядный рендерер http://albumplayer.ru/linux/new7/aprenderer64.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.livejournal.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. Изменения настроек режимов и параметров вывода, включая размеры буферов, параметры ресемплинга и т.д. могут выполняться в процессе воспроизведения, что делает удобным сравнение звука при различных настройках.
-
А вот тест реального, а не воображаемого, Android 7 на Samsung Galaxy Note 8: http://eng.soomal.com/edoc/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.
-
Даже в устройстве, залоченном на 48KHz, эта функция вернет либо большой список частот, либо пустой массив. Поскольку это частоты не аппаратной опорной частоты, а частоты, допустимые для потоков, передаваемых API. Как Вы понимаете тезис из собственной цитаты?: it is recommended to match the sample rate for AudioRecord and AudioTrack to the endpoint device sample rate Какие две sample rate здесь сопоставляются?
-
Зачем же Вы обрезаете текст справки по функции на самом важном месте? Там еще добавлено в конце: Note: an empty array indicates that the device supports arbitrary rates. То есть, если эта функция возвращает пустой массив, то затем можно передавать на вывод потоки с любой частотой дискретизации. И теперь вопрос на понимание ситуации и смысла этой функции: Может ли быть произвольной частота дискретизации, используемая не для передачи в API с дальнейшим ее автоматическим преобразованием, а частота, аппаратно поддерживаемая текущим устройством?
-
Я могу лишь еще раз попытаться объяснить Вам, что и в Windows, и в Android, стандартные API вывода звука принимают входные потоки с различными частотами дискретизации и автоматически преобразуют эти потоки в стандартную частоту дискретизации устройства.
-
В деталях я реализацией этого варианта не интересовался, но что-то есть в Poweramp и там к каждому устройству может требоваться адаптация. По этому поводу большая тема на их форуме: http://forum.powerampapp.com/topic/8735-requests-for-hi-res-support-please-state-if-you-are-using-build-704705-or-the-newer-790/ Но там, где нет на аппаратном уровне управления опорной частотой, от ресемплинга не избавиться в любом случае.
-
Я понимаю, что сделают. И понимаю почему. А вот понимаете ли Вы смысл того текста, который сами же процитировали вверху страницы?
-
А у какого тогда плеера есть необходимость в ресемплинге? У не аудиофильского? Естественно, что речь в цитатах идет об автоматическом преобразовании в частоту поддерживаемую устройством. Любой плеер может от этого уклониться, но сделают это и без него.
-
Вы сами сейчас цитируете текст, в котором сообщается о поддержке номинальных 192KHz с автоматическим преобразованием их при необходимости в частоту, поддерживаемую устройством, и рекомендуется сразу выбирать адекватную частоту, не превышающую частоту самого устройства (endpoint device sample rate). То есть в точности то же самое, о чём шла речь в двух предыдущих моих сообщениях. Что касается Windows, то там WaveOut и DirectSound, да, аналогично залочены на одну частоту. Но она переключается в системных настройках.
-
Описание, на которое я ссылаюсь,последний раз обновлялось 8 мая 2018 года. Там речь идет не про ограничение в 48 KHz для входных потоков, а лишь про то, что в итоге всё будет пересчитано в device sample rate. А так - на вход хоть 192 подавай. И вывод через opensl ES в этом отношении ничего не меняет. Пусть в более современных устройствах частота залочена не на 48КГц, а на 96, так все равно ведь залочена.
-
Вот именно в свою звуковую систему андроида и включен неотключаемый ресемплер. А в официальном руководстве для разработчиков от Google сказано: In general, it is best to choose the sampling rate to fit the device, typically 44100 or 48000 in practice. Use of a sample rate greater than 48000 will typically result in decreased quality as a resampler must be used to play back the file. То есть, лучше не делайте больше 48КГц, а то будет еще хуже из-за дополнительного ресемплинга в обратную сторону.
-
@ampir-nnn wdc9341 Даже в смартфонах, сделанных на этом чипе, частота дискретизации для PCM может быть залочена. Вот тесты с использованием RMAA для Samsung S8 и S8+. http://eng.soomal.com/edoc/10100000139.htm Там в табличных результатах видно, что при частотах дискретизации, отличных от 96KHz, динамический диапазон падает на 12dB. Естественное объяснение - и этот ЦАП при воспроизведении PCM залочен в конкретной реализации на 96KHz.
-
amrip-nnn Единичные исключения не меняют общего правила. Число пользователей смартфонов, у которых частота залочена, близко к 100%. ALSA не является стандартным интерфейсом для пользовательских андроид-приложений (попытайтесь найти андроид-плеер, работающий через ALSA), а общим правилом там является автоматический ресемплинг. Я сам андроид-программистом, действительно, не являюсь, но в их форумы, где это обсуждалось, заглядывал.
-
Вот, опять вы не понимая вопроса пишите, ну ладно - каждому своё Что ALSA на андроиде работает я знаю и без Ваших пояснений. Это ничего не меняет в том отношении, что ЦАПы смартфонов залочены на конкретную частоту, то есть, ни о каком аппаратном автомате частоты под андроидом речь не идет. При прямом аппаратном выводе через aplay -D hw:0,0 на андроиде воспроизводятся файлы только с определенной частотой дискретизации. Объясните пожалуйста, как при этом файлы с разными частотами успешно воспроизводятся плеерами, кроме как через "неотключаемый ресемлинг", упоминание которого мной вызвало Ваши протесты?
-
@user20182018 После ресемплера работают VST плагины, если они подключены. В их числе есть и индикаторы уровней, и лимитеры. Настройки фазы в ресемплере влияют на характер артефактов (звона) на границах импульсов. Минимальная фаза обеспечивает отсутствие предзвона, но у нее больше постзвон, линейная - симметричный пред- и постзвон, а средняя - между ними. Что из этого лучше на слух - выбирает сам пользователь. Steep filter 99% обеспечивает минимальный спад на высоких частотах после ресемплинга, но увеличивает звон по сравнению со стандартными настройками. Выбор предпочтения неоднозначен и в этом случае.
-
Для андроида уже есть хорошие плееры, а охватить всё я не могу и не планирую. Тем более, что существующее решение для Linux для декодирования некоторых форматов использует удобные, компактные, но закрытые по исходным кодам библиотеки BASS, поэтому на какую-либо иную платформу, кроме x86_64, плеер легко не перенесется.