Классический форум-трекер
canvas not supported
Нас вместе: 4 232 460

AINUR For Android (A4A) - Большой сборник


 
 
RSS
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Программы, Игры и прочее -> ПО для Android
Автор Сообщение
OctaneS ®
Модератор КПК и Мобилок
Стаж: 13 лет
Сообщений: 3354
Ratio: 9.054
Раздал: 11.81 TB
Поблагодарили: 147722
100%
Откуда: Станция «Венеция»
krevedko.png
AINUR For Android (A4A)
Для функционирования программы необходимы Root права!
AINUR For Android (A4A)
Версия: MK-I (Mark 1) и MK-III (Mark 3)

Последнее обновление: 18.05.2022

Тип раздаваемого файла: Программа
Поддерживаемая ОС: Android 5.x / 6.x / 7.x / 8.x / 9.x - в зависимости от версии.
Тип установщика: RAR/Zip (Для Recovery или Magisk)
Разработчик: Makarojke, Zackptg5, Ahrion и т.д.
Официальный сайт: Удалено
Страница на XDA: AINUR Audio
Пресса: Gadget Hacks & Head-Fi
Marketplace: Отсутствует

Язык интерфейса: Английский (США)
Тип издания: Оригинал

Описание: Звуковой модификатор AINUR разработан с целью оптимизации основного аудио тракта андроид на большинстве устройств. За полтора года существования проекта, нами были изучены прошивки нескольких десятков устройств с совершенно разными конфигурациями. Использование hex дизассемблера для изучения взаимосвязи функций библиотек между собой позволило лучше разобраться в возможностях и рамках сопроцессорных систем. Все это позволило производить более точные манипуляции с файлами и, как следствие, раскрыть музыкальный потенциал смартфонов.

Заранее должен предупредить, что модификаторы AINUR Audio - это штуки очень мощные и серьёзные. Движки малоизучены и в случае возникновения каких-либо проблем, решение будет отыскать намного сложнее чем в случае с ViperFX или Dolby ATMOS. Так что, если вы новичок - не рекомендую начинать с AINUR'ов. Попробуйте для начала движки полегче.
Цитата:
На последнем апдейте NARSIL произошли ключевые изменения: убрана поддержка установки из TWRP и всех root'ов кроме Magisk! Magisk требуется не ниже 19 версии!


Как прошить мод/файл через Recovery спрашивайте в теме по вашему устройству, как установить Recovery читайте там же!
(за помощь в составлении спасибо Вове Большакову)

  1. В: Какие требования у модификаций?
    О:TWRP/Flashfire/Magisk - для установки

  2. В: Мод работает только на Magisk root?
    О: Нет, наш установщик поддерживает magisk15+/supersu/phhsu/cmsu/lossu - моды сами определяют рут и устанавливаются согласно найденному. На нерутованные аппараты так же встанет, но скрипты могут не отрабатывать.

  3. В: Нужно ли удалять предыдущие звуковые моды перед установкой?
    О: Да, желательно на чистую прошивку, без каких-либо других модов, кроме Ainur. Тем не менее это не касается портированных звуковых эффектов - их следует ставить ДО Аинуровских модификаций/аддонов.

  4. В: Как удалить мод?
    О: Прошить архив с модом повторно, так же удаляются аддоны и AML. Владельцы магиска могут удалять прямо их приложения.

  5. В: Деисталятор не удалил мод что делать?
    О: Восстановится из бекапа, или накатить прошивку грязно, т.е. без вайпов.

  6. В: Нужен ли Busybox?
    О: Подразумевается, что в прошивке уже есть ББ. Для магиска бизибокс не нужен.

  7. В: После смены пресета Arkamys-a нужно перезагрузить устройство?
    О: Да!

  8. В: А как понять что сауран работает?
    О: Есть два способа проверки
    1. Если у вас Magisk то Саурон появится в модулях
    2. Если у вас SuperSU то по пути /su/su.d Вы найдете скрипты модов Аинур


  9. В: У меня не загружается аппарат (бутлуп), что делать?
    О: Необходимо снять ADB логи во время бутлупа и прислать на форум, попробуем понять что происходит

  10. В: У меня не работает ХХХХ фича после прошивки мода, что делать?
    О: Попытаться сделать логи ошибок, желательно проделать операцию на стоке, чтобы сравнить их. Прислать логи на форум.

  11. В: А можно 2 аддона одновременно ставить? Например dirac и viper.
    О: Да, конфликта не должно быть

  12. В: Прошил, а приложения не появилось
    О: Модификации Аинур не имеют графической оболочки. Официальным ДСП с "крутилками" является JDSP.

  13. В: В какой последовательности нужно ставить?
    О: В следующей:
      1) Narsil /Sauron
      2) JamesDSP
      3) AML

AINUR Audio


Мод назван в честь легендарного меча, который победил Саурона в легендариуме Толкиена "Властелин колец". Модификация чистит тракт от андроидовских и ОЕМ эффектов (как древний Ainur Nero) и вносит автоматические вносит изменения в различные конфиги, определяя параметры системы и типа устройства. Часть функционала схожа с Сауроном - однако преследует полностью противоположную цель, там где саурон пытается по-максимуму включить и задействовать эффекты - Нарсил старается убрать их, насколько возможно (включая хардварные дсп и прочее).

Особенности:

Базовые:
- Андроид 4.0-Q
- Поддержка рут: magisk19+
- Поддержка процессоров Qualcomm/Exynos/MTK/Kirin/Rockchip/Spreadtrum
- Поддержка 32/64 битных ARM архитектур
- Переживание ОТА апдейтов
- Подборка проп ключей
- Упрощена процедура удаления мода (просто повторно прошейте архив)

- Удаление sfx библиотек

Расширенные:
- Тюнинг микшера Qualcomm/MTK/Exynos
- * Форсированные значения микшера для аппаратов с выделенными ЦАП чипами:
- LG v20/30/30/g6/g7
- LeEco x800/x900
- Nubia z11/z9/z9m
- Axon 7/mini
- Lenovo Vibe X3

* На данный момент изменения вносятся непосредственно в микшер, поэтому часть значений могут сбрасываться фреймворком, ядром, или сервисными приложениями системы (производители телефонов явно не хотят чтобы мы влезали “куда не надо”).

Пользовательские:
Для использования пользовательских установок, необходимо положить файл narsil_useroptions в корень внутренней памяти. Установщик автоматически сделает это при установке MK II. После внесения изменений в файл необходимо переустановить мод.
- Патчинг полиси файлов (крайне нестабильный на данный момент)
- Особые возможности для аппаратов на Qualcomm:
- Выбор принудительной разрядности и частоты дискретизации для основных каналов вывода
- Форсирование значения импеданса

ВАЖНО:

Во время ошибок установки прикрепляйте логи установки магиска.
К ошибкам установки НЕ относятся бутлупы и проблемы со звуком (об этом чуть ниже)
Любые проблемы, подкреплённые неправильными логами будут просто проигнорированы!

Скачиваем и устанавливаем архив MKI (Лежит в папке "AINUR NARSIL MK I")

1. Сперва пробуйте установку с чистым ЮО!
2. Если у вас бутлуп - присылайте ADB логи загрузки
3. Если у вас баги после загрузки (что-то где-то не работает как должно) - делаем логи с помощью матлог
MK I 09.04
- MMT-EX installer fix

MK I 04.03-27.03
- MMT-EX installer
- New aml support

MK I 12.08
- Unity 4.4 update
- Device compatibilty patches & installer fixes

MK I
- Релиз


Названная в честь могучего и всевидящего САУРОНА данная модификация автоматически вносит необходимые изменения, определяя параметры системы и типа устройства. Опираясь на весь опыт, полученный при работе над старыми версиями мода (ныне в архиве и не поддерживаются) мы смогли точно подобрать необходимые параметры для тюнинга комфортного уровня звучания в зависимости от типа процессора и вида устройства.

Особенности:

Базовые:
Андроид 5.0-Q
Поддержка рут: magisk18+/supersu/нерутованный/phhsu/cmsu/lossu
Поддержка процессоров Qualcomm/Exynos/MTK/Kirin/Rockchip/Spreadtrum
Поддержка 32/64 битных ARM архитектур
Переживание ОТА апдейтов
Замена SFX библиотек
Подборка проп ключей
Упрощена процедура удаления мода (просто повторно прошейте архив)

Расширенные:
Тюнинг микшера для различных версий кодеков Qualcomm
Патчи для усилителей динамиков Oneplus 5/5T, HTC m8/m9/10/u11/u11+
Qualcomm Hexagon DSP: принудительная работа DTS Headphone:X модуля
Форсированные значения микшера для аппаратов с выделенными ЦАП чипами:

LG v20/30/30/g6/g7
LeEco x800/x900
Nubia z11/z9/z9m
Axon 7/mini
Lenovo Vibe X3

На данный момент изменения вносятся непосредственно в микшер, поэтому часть значений могут сбрасываться фреймворком, ядром, или сервисными приложениями системы (производители телефонов явно не хотят чтобы мы влезали “куда не надо”).

Пользовательские:
Для использования пользовательских установок, необходимо положить файл sauron_useroptions в корень внутренней памяти. Установщик автоматически сделает это при установке MK II. После внесения изменений в файл необходимо переустановить мод.
Эффекты Fmas (универсальный), Audiosphere и Shoebox (только для qualcomm)
Патчинг полиси файлов (крайне нестабильный на данный момент)
Особые возможности для аппаратов на Qualcomm:
Выбор принудительной разрядности и частоты дискретизации для основных каналов вывода
Форсирование значения импеданса
Установка Aptx/HD библиотек, проп ключей и Hexagon библиотек (требует доработки)

ВАЖНО:

Во время ошибок установки через TWRP - ищем ainur_debug логи в корне sdcard
Sauron находится по адресам: sbin/.magisk/img , or sbin/.core/img /ainur_sauron для магиск


Скачиваем и устанавливаем архив MKIII (Лежит в папке "AINUR SAURON MK III")

1. Сперва пробуйте установку с чистым ЮО!
2. Если у вас бутлуп - присылайте ADB логи загрузки
3. Если у вас баги после загрузки (что-то где-то не работает как должно) - делаем логи с помощью матлог
MK III 12.08.2019
- Unity 4.4 update

MK III 27.05.2019
- Правки установщика

MK III 03.05.2019
- Unity 4.1 update

MK III 31.03.2019
- Unity 4.0 update
- magisk 19 support
- qualcomm 855 support
- various installer fixes

MK III 01.01.2019
- Fully reworked installer (unity & aml updated)
- Support for MTK/Kirin/Exynos mixers
- SFX blobs rebased (including new base for MTK/Kirin/Exynos)
- Reworked props
- New UO features:
- qualcomm acdb replacements, power gating disabling, bt scrambler resampling
- Exynos codec resampling
- MTK codec mixer edits: gain setter, impedance setter, high-pass filter remover
- Reworked UO features:
- Qualcomm codec bitsize & discretization forcements are deepen to support Hexagon DSP as well
- Reworked mixer edits for qualcomm powered devices
- Reworked kernel modules blobs & Hexagon dsp modules
- Further experiments with aptx/hd, including better support for Pie
- Experiments with speakers amplifiers DSPs: (Pixel 1/XL, Pixel 2/XL, Htc u11/11+/12/m9, Mi a2, Mi 8EE/UD, Oneplus 5, Pocophone)

MK II.II 19.06
- AML update & fix

MK II.II 13.06
- AML/Unity update

MK II.II 01.05
- unity update
- various fixes

MK II.II 18.04
- installer fixes

MK II.II 15.04
- unity update
- minor edits & fixes

MK II.II 24.03
- audioserver fixes
- better Treble (Oreo & P) compatibility
- removed policy patches for better AML compatibility

MK II.II 22.03
- Op3/t & Op5/t fixes
- Minor Oreo edits
- Various minor edits

MK II.II 17.03
- Android P support
- Various fixes & edits

MK II.II 11.03
- Android P support
- Various fixes & edits
- Axon7 patches moved to kernel by Skrem339
- Sfx libs changes
- Htc m7-m9 rt5501 & 5506 jack amplifier patches (libs hex patched by UltraM8)
- Htc u11/u11+ speaker amp patches (beware, it blows :) )
- Pixel devices experimental amp patches (sailfish, marlin, taimen, walleye)
- Qualcomm RX HPH edits for HiFi mode
- Oreo aptx/hd, ldac added by LazerL0rd
- Fmas edits
- UO file edited

MK II.I 26.02
- Unity 1.3 update
- Various fixes
- New UO

MK II.I 21.02
- Critical installer fixes
- Completely reworked core libs

MK II.I 07.02-08.02
- Unity based 1.0 installer
- critical fixes

MK II.I 06.02
- AML reworked
- SFX libs install logic patches
- Minor bug fixes

MK II 13.01 (fixed)
- AML 2.9
- Got rid of hw dolby

MK II (beta 1 - stable) 31.12-01.01
- Revamped installer
- Unity/AML v2.8
- Added UO logic
- Rebased SFX libs
- Removed alsa
- HTC U11/U11+ speaker amplifiers patches
- HTC m9/m8/10 amplifier drivers additions (possibly reroute headphones path with tfa amp)
- Full Oreo (8.0+) support
- OP5/5T speaker amp drivers additions for tfa9890
- Added Qualcomm Shoebox 3d and Audiosphere audio effect libs, props & mixer controls
- Added Fmas effect libs & props
- Added UO controls for impedance, bitsize & discretization
- Added snap 820/21/35 Speaker boost & voltage edits from Oreo
- Added Hexagon DTS Headphone:X module, mixer switchers & controller config
- Added Hexagon Dolby modules & mixer switcher
- Added Qualcomm BT resampler (idk if it can even work)
- Reworked props + added some new found by hexing
- Set higher value for preallocated DMA memory buffer
- Added kernel modules for QC codec
- Added APTX/HD libs, props & hexagon cappi libs

MK I.IV.II 03.06
- Правки установщика
- Новые библиотеки

MK I.IV.I 03.06
- Правки установщика

MK I.IV 31.05
- Правки установщика
- добавлен Osm0sis Busybox

MK I.III.I 22.05
- Правки установщика

MK I.III 22.05
- Правки установщика
- Обновление sfx библиотек

MK I.II 16.05
- Правки установщика
- Правки альса скрипта
- Правки сетпроп ключей
- Обновление sfx библиотек (детализация, реверб, сцена)
Файл sauron_useroptions предназначен для включения экспериментальных опций.
Они введены для разнообразия звучания.
Эти опции не обязательно будут работать на вашем устройстве.
Могут быть бутлупы – вас предупреждали (и это не починят).
Найти рабочую комбинацию придется самому

Файл подхватывается во время прошивки - то есть каждый раз внося изменения, необходимо перешивать мод!

Настройка:
1)На любую опцию где нет числовых значений есть только два состояния:
-после “=” false либо пустое значение - так мы не включаем опцию.
-после “=” true - соответственно включаем опцию.
2)На любую опцию где есть цифры мы вписываем нужное значение исходя из собственных предпочтений либо не трогаем для стокового значения.

Универсальные опции – опции работающие(предположительно) на всех процессорах:

1. install.fmas=
Заменяет стандартный ресемплер и виртуализатор. Разработан компанией Fraunhoffer IIS и вероятнее всего расшифровывается как Fraunhoffer Mobile Audio Spatializer.

Опции ИСКЛЮЧИТЕЛЬНО для Qualcomm:

ВАЖНО!
Любые "проблемы", начинающиеся, после использования пользовательских настроек в sauron_useroptions, такие как:
qc.remove.compander=
qc.bitsize=
qc.resample.khz=
qc.impedance=

НЕ СЧИТАЮТСЯ за проблемы и будут проигнорированы. В файле есть пояснения по каждому пункту и выделено, что все эти плюшки могут быть крайне нестабильны.

1. qc.install.asp=
Эффект аудиосферы от Qualcomm (никто не знает что это такое)

2. qc.install.shoebox=
3Д эффект от Qualcomm (никто не знает что это такое)

3. qc.install.pcm_reverb=
Эффект реверберации, который лучше работает с перекодированием канала в PCM

4. qc.install.aptx=
Установка Aptx/HD драйверов(по сути качественный кодек для Bluetooth наушников от Qualcomm, в теории звук не теряет в качестве при просушивании на нужных наушниках. Как на практике – дело каждого).

5. qc.remove.compander=
Выключает компандер для проводных наушников и динамика телефона.
Компандер - компрессор-экспандер. Сжимает и потом расширяет динамический диапазон пытаясь убрать шумы

6. qc.bitsize=
Принудительное выставление выходного динамического диапазона.
Пример: qc.bitsize=16
Так мы выставляем 16 бит – вся музыка в mp3/aac и все стримминговые сервисы идут именно с этим форматом.
Выбор из 16/24/32 так же доступен. (32 бит доступны от 820 снапдрагона и новее)
Выставление значения выше формата музыки грозит искажениями звука.

7. qc.resample.khz=
Принудительное выставление частоты дискредитации
Вы можете выбрать между:
KHZ_44P1 - KHZ_192 (исходя из частоты ваших всех аудиофайлов, включая любую промежуточную частоту)
Вместо “.” (для 44.1 например) пишем P (point)
Не выставляйте значение данной опции выше частоты ваших файлов, это негативно сказываться на звуке.

8. qc.impedance=
Выставление сопротивления(Ом) ваших наушников.
Если вам надо для 32Ом – cтавим:
qc.impedance=32000
Может не работать если нет нужной поддержки в ядре андроида, в связи с чем крайне нестабильная опция – возможна потеря звука.
Для стоковых значений оставляем опции пустыми

9. qc.bt.resample.khz=
Принудительное выставление частоты дискредитации для ваших Bluetooth устройств.
Данная опция очень не стабильна и не исследована, скорее всего выше 48000 частоту не поднять
Вы можете выбрать между:
KHZ_44P1 - KHZ_48 (выше не позволяет ограничение андроида)
Вместо “.” (для 44.1 например) пишем P (point), например - qc.resample.khz=KHZ_48 для 48000khz частоты.

AP: Применяет патчинг audio policy
! ОЧЕНЬ нестабильно, может привести к полной потере звука или к вечной перезагрузке(bootloops) !
AP=

OAP: Применяет патчинг audio output policy
! ОЧЕНЬ нестабильно, может привести к полной потере звука или к вечной перезагрузке(bootloops) !
OAP=

SPF: Принудительная установка 24bit режима для Qualcomm DSP.
Скорее всего работает только sdk26+ (android oreo+) и на новых процессорах (660/670/710/845)
Может также зависеть от прошивки / устройства
! ОЧЕНЬ нестабильно, может привести к полной потере звука !
DSPF=

## EXYNOS OPTIONS ###
ESMPL: Опция ресемплинга для кодека процессоров exynos
Кодек может ресемплить на такие частоты как:
12kHz 24kHz 48kHz 96kHz 192kHz 11.025kHz 22.05kHz
44.1kHz 88.2kHz 176.4kHz 4kH8kHz 16kHz 32kHz
! УБЕДИТЕСЬ что вписали частоту ниже правильно !
**Пример: ESMPL=48kHz для родной частоты 48000 ресемплинга.
ESMPL=

## MTK OPTIONS ###
Выставление сопротивления(Ом) ваших наушников.
[ Импеданс - номинальное сопротивление на входе наушников ]

MIMPEDANCE: Функция выставляет родное сопротивление ваших наушников на стороне кодека.
! Может быть нестабильно!
Если ваши наушники по документации 32Ω впишите 32
**Пример: IMPEDANCE=32
MIMPEDANCE=

MHPF: Хай-пасс фильтр для кодека
[ Хай-пасс фильтр -это звуковой фильтр, который обрезает все частоты ниже частоты установки фильтра ]
Прочитать подробнее можно тут https://en.wikipedia.org/wiki/High-pass_filter
Эта опция включает, либо отключает данный фильтр.
**Пример: MHPF=On - включает (Off выключает)
MHPF=

Ядра
Это проект, в рамках которого проводится моддинг аудио драйверов для получения полного контроля над аудио составляющей смартфонов

Фишки:
Возможность выбрать один из 4 доступных аудио-фильтров (по умолчанию установлен Short Delay Slow. Менять можно так:
Код: выделить все
/sys/module/snd_soc_ak4490/parameters/selected_filter


Возможные варианты:
slow
short delay sharp
sharp
short delay slow (default)

В файл вписываете нужное число, после чего нужно "перезагрузить" аудио поток(можно просто переключить треки либо поставить на паузу секунд на 5)

Возможность отдельно включить Super Slow фильтр (пока что не протестировано)
Возможность регулировать частоту передискретизации (служит для улучшения звука, выводиться звук все равно будет в 44100/48000 герц, по умолчанию стоит максимальное значение 768khz)
CAD Project

Это проект, в рамках которого проводится моддинг аудио драйверов для получения полного контроля над аудио составляющей смартфонов.

1) Возможность выбрать один из 4 доступных аудио-фильтров (по умолчанию установлен Short Delay Slow. Менять можно так:
/sys/module/snd_soc_ak4490/parameters/selected_filter

Возможные варианты:
1 slow
2 short delay sharp
3 sharp
4 short delay slow (default)
В файл вписываете нужное число, после чего нужно "перезагрузить" аудио поток(можно просто переключить треки либо поставить на паузу секунд на 5)
)
2) Возможность отдельно включить Super Slow фильтр (пока что не протестировано)
3) Возможность регулировать частоту передискретизации (служит для улучшения звука, выводиться звук все равно будет в 44100/48000 герц, по умолчанию стоит максимальное значение 768khz)
В ядре поместить все файлы по пути sound/soc/codecs/ak4490
Прошивки на основе Android 8.1 от NFound
HellsGate Kernel от Kranoner

Все файлы находятся в папке "CAD Project"

Различные твики для кодеков Qualcomm WCD93XX
Код: выделить все
drivers/slimbus/slim-msm-ctrl.c
@@ -92,8 +92,8 @@ enum mgr_intr {

enum frm_cfg {
  FRM_ACTIVE  = 1,
  CLK_GEAR  = 8,
  ROOT_FREQ  = 12,
  CLK_GEAR  = 9,
  ROOT_FREQ  = 19,
  REF_CLK_GEAR  = 15,
  INTR_WAKE  = 19,
};
UHQA mode
Написанный мной патч, который выставляет Ultra High Quality Audio режим для 16бит (в стоке только для 24/192)
Для тех кто хочет принудительно выставить AB, вот коммиты (для 9330 кодека, просите разрабов ядер воткнуть вам):
  1. Выставляем полный набор форматов (квалк читает так же по-своему через fmtbit'ы, поэтому я воткнул все)
    Код: выделить все
    sound/soc/codecs/wcd9330.c
    @@ -337,8 +337,9 @@ static struct afe_param_id_clip_bank_sel clip_bank_sel = {
    };

    #define WCD9330_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
          SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
          SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000)
                SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |\
                            SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |\
          SNDRV_PCM_RATE_192000)

    #define NUM_DECIMATORS 10
    #define NUM_INTERPOLATORS 8
    @@ -355,11 +356,13 @@ static struct afe_param_id_clip_bank_sel clip_bank_sel = {
    #define TOMTOM_MCLK_CLK_12P288MHZ 12288000
    #define TOMTOM_MCLK_CLK_9P6MHZ 9600000

    #define TOMTOM_FORMATS_S16_S24_LE (SNDRV_PCM_FMTBIT_S16_LE | \
          SNDRV_PCM_FORMAT_S24_LE | \
          SNDRV_PCM_FMTBIT_S24_3LE)
    #define TOMTOM_FORMATS_S16_S24_LE (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S16_LE |\
          SNDRV_PCM_FORMAT_S24_LE | SNDRV_PCM_FMTBIT_S24_LE |\
          SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FORMAT_S24_LE)

    #define TOMTOM_FORMATS (SNDRV_PCM_FMTBIT_S16_LE)
    #define TOMTOM_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S16_LE |\
          SNDRV_PCM_FORMAT_S24_LE | SNDRV_PCM_FMTBIT_S24_LE |\
          SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FORMAT_S24_LE)

    #define TOMTOM_SLIM_PGD_PORT_INT_TX_EN0 (TOMTOM_SLIM_PGD_PORT_INT_EN0 + 2)
    #define TOMTOM_ZDET_BOX_CAR_AVG_LOOP_COUNT 1
    @@ -583,6 +586,7 @@ struct tomtom_priv {

      unsigned long status_mask;

    };

    static const u32 comp_shift[] = {
    @@ -711,8 +715,8 @@ static int tomtom_update_uhqa_mode(struct snd_soc_codec *codec, int path)
      if (((tomtom_get_sample_rate(codec, path) & 0xE0) == 0xA0) &&
        (tomtom_compare_bit_format(codec, 24))) {
        tomtom_p->uhqa_mode = 1;
      } else {
        tomtom_p->uhqa_mode = 0;
      } else if ((tomtom_compare_bit_format(codec, 16))) {
        tomtom_p->uhqa_mode = 1;
      }
      dev_dbg(codec->dev, "%s: uhqa_mode=%d", __func__, tomtom_p->uhqa_mode);
      return ret;

  2. AB для lineout (не уверен что кодек правда будет читать, так как в принципе все через функции clsh идет, но на всякий случай ставим)
    Код: выделить все
    sound/soc/codecs/wcd9xxx-common.h
    @@ -40,6 +40,7 @@
    #define  WCD9XXX_CLSAB_STATE_IDLE  0x00
    #define WCD9XXX_CLSAB_STATE_HPHL (0x01 << 1)
    #define WCD9XXX_CLSAB_STATE_HPHR (0x01 << 2)
    #define  WCD9XXX_CLSAB_STATE_LO (0x01 << 3)

    #define WCD9XXX_CLSAB_REQ_ENABLE  true
    #define WCD9XXX_CLSAB_REQ_DISABLE false
    @@ -94,6 +95,27 @@
                WCD9XXX_CLSH_STATE_EAR | \
                WCD9XXX_CLSH_STATE_LO)

    #define WCD9XXX_CLSAB_STATE_HPHL_LO (WCD9XXX_CLSH_STATE_HPHL | \
                WCD9XXX_CLSH_STATE_LO)
    #define WCD9XXX_CLSAB_STATE_HPHR_LO (WCD9XXX_CLSH_STATE_HPHR | \
                WCD9XXX_CLSH_STATE_LO)

    #define WCD9XXX_CLSAB_STATE_HPH_ST_LO (WCD9XXX_CLSH_STATE_HPH_ST | \
                WCD9XXX_CLSH_STATE_LO)

    #define WCD9XXX_CLSAB_STATE_EAR_LO (WCD9XXX_CLSH_STATE_EAR | \
                WCD9XXX_CLSH_STATE_LO)

    #define WCD9XXX_CLSAB_STATE_HPHL_EAR_LO (WCD9XXX_CLSH_STATE_HPHL | \
                WCD9XXX_CLSH_STATE_EAR | \
                WCD9XXX_CLSH_STATE_LO)
    #define WCD9XXX_CLSAB_STATE_HPHR_EAR_LO (WCD9XXX_CLSH_STATE_HPHR | \
                WCD9XXX_CLSH_STATE_EAR | \
                WCD9XXX_CLSH_STATE_LO)
    #define WCD9XXX_CLSAB_STATE_HPH_ST_EAR_LO (WCD9XXX_CLSH_STATE_HPH_ST | \
                WCD9XXX_CLSH_STATE_EAR | \
                WCD9XXX_CLSH_STATE_LO)

    struct wcd9xxx_reg_mask_val {
      u16  reg;
      u8  mask;

  3. Собсна, ставим AB и для 24бит и 16бит (в стоке выставляется только для 24/192 потока)
    Код: выделить все
    sound/soc/codecs/wcd9330.c
    @@ -712,9 +712,10 @@ static int tomtom_update_uhqa_mode(struct snd_soc_codec *codec, int path)
      struct tomtom_priv *tomtom_p = snd_soc_codec_get_drvdata(codec);

      if ((tomtom_compare_bit_format(codec, 24)) || ((tomtom_compare_bit_format(codec, 16)) {
      if ((tomtom_compare_bit_format(codec, 24)) || ((tomtom_compare_bit_format(codec, 16))) {
        tomtom_p->uhqa_mode = 1;
      }

      dev_dbg(codec->dev, "%s: uhqa_mode=%d", __func__, tomtom_p->uhqa_mode);
      return ret;
    }

  4. Небольшой фикс:
    Код: выделить все
    sound/soc/codecs/wcd9330.c
    @@ -681,14 +681,14 @@ int tomtom_enable_qfuse_sensing(struct snd_soc_codec *codec)
    }
    EXPORT_SYMBOL(tomtom_enable_qfuse_sensing);

    static int tomtom_get_sample_rate(struct snd_soc_codec *codec, int path)
    /*static int tomtom_get_sample_rate(struct snd_soc_codec *codec, int path)
    {
      if (path == RX8_PATH)
        return snd_soc_read(codec, TOMTOM_A_CDC_RX8_B5_CTL);
      else
        return snd_soc_read(codec,
          (TOMTOM_A_CDC_RX1_B5_CTL + 8 * (path - 1)));
    }
    }*/

    static int tomtom_compare_bit_format(struct snd_soc_codec *codec,
            int bit_format)
Код: выделить все
include/sound/pcm.h
@@ -136,6 +136,7 @@ struct snd_pcm_ops {
#define SNDRV_PCM_RATE_96000    (1<<10)    /* 96000Hz */
#define SNDRV_PCM_RATE_176400    (1<<11)    /* 176400Hz */
#define SNDRV_PCM_RATE_192000    (1<<12)    /* 192000Hz */
#define SNDRV_PCM_RATE_384000    (1<<13)    /* 384000Hz */

#define SNDRV_PCM_RATE_CONTINUOUS  (1<<30)    /* continuous range */
#define SNDRV_PCM_RATE_KNOT    (1<<31)    /* supports more non-continuos rates */
  3
sound/core/pcm_native.c
@@ -1938,7 +1938,8 @@ static int snd_pcm_hw_rule_sample_bits(struct snd_pcm_hw_params *params,
#endif

static unsigned int rates[] = { 5512, 8000, 11025, 16000, 22050, 32000, 44100,
                                 48000, 64000, 88200, 96000, 176400, 192000 };
        48000, 64000, 88200, 96000, 176400, 192000,
        384000 };

const struct snd_pcm_hw_constraint_list snd_pcm_known_rates = {
  .count = ARRAY_SIZE(rates),


XMOS based USB DACs with native DSD support expose this feature via a USB
alternate setting. The audio format is either 32-bit raw or a 32-bit PCM format.
To utilize this feature on linux this patch introduces a new 32-bit DSD
sampleformat DSD_U32_LE.
A follow up patch will add a quirk for XMOS based devices to utilize the new format.
Further patches will add support to alsa-lib.

Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Код: выделить все
include/sound/pcm.h
@@ -183,6 +183,7 @@ struct snd_pcm_ops {
#define SNDRV_PCM_FMTBIT_G723_40_1B  _SNDRV_PCM_FMTBIT(G723_40_1B)
#define SNDRV_PCM_FMTBIT_DSD_U8    _SNDRV_PCM_FMTBIT(DSD_U8)
#define SNDRV_PCM_FMTBIT_DSD_U16_LE  _SNDRV_PCM_FMTBIT(DSD_U16_LE)
#define SNDRV_PCM_FMTBIT_DSD_U32_LE  _SNDRV_PCM_FMTBIT(DSD_U32_LE)

#ifdef SNDRV_LITTLE_ENDIAN
#define SNDRV_PCM_FMTBIT_S16    SNDRV_PCM_FMTBIT_S16_LE
  3
include/uapi/sound/asound.h
@@ -219,7 +219,8 @@ typedef int __bitwise snd_pcm_format_t;
#define  SNDRV_PCM_FORMAT_G723_40_1B  ((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */
#define  SNDRV_PCM_FORMAT_DSD_U8    ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
#define  SNDRV_PCM_FORMAT_DSD_U16_LE  ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
#define  SNDRV_PCM_FORMAT_LAST    SNDRV_PCM_FORMAT_DSD_U16_LE
#define  SNDRV_PCM_FORMAT_DSD_U32_LE  ((__force snd_pcm_format_t) 50) /* DSD, 4-byte samples DSD (x32), little endian */
#define  SNDRV_PCM_FORMAT_LAST    SNDRV_PCM_FORMAT_DSD_U32_LE

#ifdef SNDRV_LITTLE_ENDIAN
#define  SNDRV_PCM_FORMAT_S16    SNDRV_PCM_FORMAT_S16_LE
  1
sound/core/pcm.c
@@ -215,6 +215,7 @@ static char *snd_pcm_format_names[] = {
  FORMAT(G723_40_1B),
  FORMAT(DSD_U8),
  FORMAT(DSD_U16_LE),
  FORMAT(DSD_U32_LE),
};

const char *snd_pcm_format_name(snd_pcm_format_t format)
  4
sound/core/pcm_misc.c
@@ -148,6 +148,10 @@ static struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] = {
    .width = 16, .phys = 16, .le = 1, .signd = 0,
    .silence = {},
  },
  [SNDRV_PCM_FORMAT_DSD_U32_LE] = {
    .width = 32, .phys = 32, .le = 1, .signd = 0,
    .silence = { 0x69, 0x69, 0x69, 0x69 },
  },
  /* FIXME: the following three formats are not defined properly yet */
  [SNDRV_PCM_FORMAT_MPEG] = {
    .le = -1, .signd = -1,


ALSA: add DSD formats
This patch adds two formats for Direct Stream Digital (DSD), a
pulse-density encoding format which is described here:
https://en.wikipedia.org/wiki/Direct_Stream_Digital

DSD operates on 2.8, 5.6 or 11.2MHz sample rates and as a 1-bit
stream.

The two new types added by this patch describe streams that are capable
of handling DSD samples in DOP format as 8-bit or in 16-bit (or at a x8
or x16 data rate, respectively).

DSD itself specifies samples in *bit*, while DOP and ALSA handle them
as *bytes*. Hence, a factor of 8 or 16 has to be applied for the sample
rare configuration, according to the following table:

configured hardware
176.4KHz 352.8kHz 705.6KHz <---- sample rate

8-bit 2.8MHz 5.6MHz
16-bit 2.8Mhz 5.6MHz 11.2MHz

`-----------------------------'
actual DSD sample rates

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Код: выделить все
include/sound/pcm.h
@@ -181,6 +181,8 @@ struct snd_pcm_ops {
#define SNDRV_PCM_FMTBIT_G723_24_1B  _SNDRV_PCM_FMTBIT(G723_24_1B)
#define SNDRV_PCM_FMTBIT_G723_40  _SNDRV_PCM_FMTBIT(G723_40)
#define SNDRV_PCM_FMTBIT_G723_40_1B  _SNDRV_PCM_FMTBIT(G723_40_1B)
#define SNDRV_PCM_FMTBIT_DSD_U8    _SNDRV_PCM_FMTBIT(DSD_U8)
#define SNDRV_PCM_FMTBIT_DSD_U16_LE  _SNDRV_PCM_FMTBIT(DSD_U16_LE)

#ifdef SNDRV_LITTLE_ENDIAN
#define SNDRV_PCM_FMTBIT_S16    SNDRV_PCM_FMTBIT_S16_LE
  4
include/uapi/sound/asound.h
@@ -214,7 +214,9 @@ typedef int __bitwise snd_pcm_format_t;
#define  SNDRV_PCM_FORMAT_G723_24_1B  ((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */
#define  SNDRV_PCM_FORMAT_G723_40  ((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */
#define  SNDRV_PCM_FORMAT_G723_40_1B  ((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */
#define  SNDRV_PCM_FORMAT_LAST    SNDRV_PCM_FORMAT_G723_40_1B
#define  SNDRV_PCM_FORMAT_DSD_U8    ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
#define  SNDRV_PCM_FORMAT_DSD_U16_LE  ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
#define  SNDRV_PCM_FORMAT_LAST    SNDRV_PCM_FORMAT_DSD_U16_LE

#ifdef SNDRV_LITTLE_ENDIAN
#define  SNDRV_PCM_FORMAT_S16    SNDRV_PCM_FORMAT_S16_LE
  2
sound/core/pcm.c
@@ -209,6 +209,8 @@ static char *snd_pcm_format_names[] = {
  FORMAT(G723_24_1B),
  FORMAT(G723_40),
  FORMAT(G723_40_1B),
  FORMAT(DSD_U8),
  FORMAT(DSD_U16_LE),
};

const char *snd_pcm_format_name(snd_pcm_format_t format)
  8
sound/core/pcm_misc.c
@@ -140,6 +140,14 @@ static struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] = {
    .width = 5, .phys = 5, .le = -1, .signd = -1,
    .silence = {},
  },
  [SNDRV_PCM_FORMAT_DSD_U8] = {
    .width = 8, .phys = 8, .le = 1, .signd = 0,
    .silence = {},
  },
  [SNDRV_PCM_FORMAT_DSD_U16_LE] = {
    .width = 16, .phys = 16, .le = 1, .signd = 0,
    .silence = {},
  },
  /* FIXME: the following three formats are not defined properly yet */
  [SNDRV_PCM_FORMAT_MPEG] = {
    .le = -1, .signd = -1,


This patch fixes XMOS DSD sample format to DSD_U32_BE and also adds
DSD_U16_BE and DSD_U32_BE sample formats.

Signed-off-by: Jussi Laako <jussi@sonarnerd.net>
Acked-by: Jurgen Kramer <gtmkramer@xs4all.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Код: выделить все
include/sound/pcm.h
@@ -184,6 +184,8 @@ struct snd_pcm_ops {
#define SNDRV_PCM_FMTBIT_DSD_U8    _SNDRV_PCM_FMTBIT(DSD_U8)
#define SNDRV_PCM_FMTBIT_DSD_U16_LE  _SNDRV_PCM_FMTBIT(DSD_U16_LE)
#define SNDRV_PCM_FMTBIT_DSD_U32_LE  _SNDRV_PCM_FMTBIT(DSD_U32_LE)
#define SNDRV_PCM_FMTBIT_DSD_U16_BE  _SNDRV_PCM_FMTBIT(DSD_U16_BE)
#define SNDRV_PCM_FMTBIT_DSD_U32_BE  _SNDRV_PCM_FMTBIT(DSD_U32_BE)

#ifdef SNDRV_LITTLE_ENDIAN
#define SNDRV_PCM_FMTBIT_S16    SNDRV_PCM_FMTBIT_S16_LE
  4
include/uapi/sound/asound.h
@@ -220,7 +220,9 @@ typedef int __bitwise snd_pcm_format_t;
#define  SNDRV_PCM_FORMAT_DSD_U8    ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
#define  SNDRV_PCM_FORMAT_DSD_U16_LE  ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
#define  SNDRV_PCM_FORMAT_DSD_U32_LE  ((__force snd_pcm_format_t) 50) /* DSD, 4-byte samples DSD (x32), little endian */
#define  SNDRV_PCM_FORMAT_LAST    SNDRV_PCM_FORMAT_DSD_U32_LE
#define  SNDRV_PCM_FORMAT_DSD_U16_BE  ((__force snd_pcm_format_t) 51) /* DSD, 2-byte samples DSD (x16), big endian */
#define  SNDRV_PCM_FORMAT_DSD_U32_BE  ((__force snd_pcm_format_t) 52) /* DSD, 4-byte samples DSD (x32), big endian */
#define  SNDRV_PCM_FORMAT_LAST    SNDRV_PCM_FORMAT_DSD_U32_BE

#ifdef SNDRV_LITTLE_ENDIAN
#define  SNDRV_PCM_FORMAT_S16    SNDRV_PCM_FORMAT_S16_LE
  2
sound/core/pcm.c
@@ -216,6 +216,8 @@ static char *snd_pcm_format_names[] = {
  FORMAT(DSD_U8),
  FORMAT(DSD_U16_LE),
  FORMAT(DSD_U32_LE),
  FORMAT(DSD_U16_BE),
  FORMAT(DSD_U32_BE),
};

const char *snd_pcm_format_name(snd_pcm_format_t format)
  8
sound/core/pcm_misc.c
@@ -152,6 +152,14 @@ static struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] = {
    .width = 32, .phys = 32, .le = 1, .signd = 0,
    .silence = { 0x69, 0x69, 0x69, 0x69 },
  },
  [SNDRV_PCM_FORMAT_DSD_U16_BE] = {
    .width = 16, .phys = 16, .le = 0, .signd = 0,
    .silence = { 0x69, 0x69 },
  },
  [SNDRV_PCM_FORMAT_DSD_U32_BE] = {
    .width = 32, .phys = 32, .le = 0, .signd = 0,
    .silence = { 0x69, 0x69, 0x69, 0x69 },
  },
  /* FIXME: the following three formats are not defined properly yet */
  [SNDRV_PCM_FORMAT_MPEG] = {
    .le = -1, .signd = -1,
  4
sound/usb/quirks.c
@@ -1193,12 +1193,12 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
  /* iFi Audio micro/nano iDSD */
  case USB_ID(0x20b1, 0x3008):
    if (fp->altsetting == 2)
      return SNDRV_PCM_FMTBIT_DSD_U32_LE;
      return SNDRV_PCM_FMTBIT_DSD_U32_BE;
    break;
  /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
  case USB_ID(0x20b1, 0x2009):
    if (fp->altsetting == 3)
      return SNDRV_PCM_FMTBIT_DSD_U32_LE;
      return SNDRV_PCM_FMTBIT_DSD_U32_BE;
    break;
  default:
    break;
[NNMClub.to]_AINUR For Android (A4A) - Bol'shoy sbornik.torrent
 Торрент: Платиновая раздача  Зарегистрирован
 
Скачать


Примагнититься
 Зарегистрирован:   03 Июл 2022 11:39:12
 Размер:   35.8 MB  (
 Рейтинг:    (Голосов: 8)
 Поблагодарили:   34
 Проверка:   Оформление проверено модератором 04 Июл 2022 13:03:59
Как cкачать  ·  Как раздать  ·  Правильно оформить  ·  Поднять ратио!  
Показать сообщения:   
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Программы, Игры и прочее -> ПО для Android Часовой пояс: GMT + 3
Страница 1 из 1