Pulse Light Hub — высокопроизводительный автономный музыкальный визуализатор для RGB подсветки Awakening Halo смартфонов Realme GT 5 и Realme GT Neo 5. Приложение анализирует системный звук в реальном времени с нулевой задержкой и управляет сегментами глифа через прямой нативный интерфейс аппаратного контроллера.
- Прямой доступ к аппаратному драйверу: управление подсветкой через Binder IPC транзакцию 75 службы IPowerManager без рут-прав, без фоновых демонов и без сторонних утилит.
- Режим «Дублирование на экран»: световая рамка по краям OLED дисплея синхронно дублирует глифы на черном фоне, подсвечивая стол при положении экраном вниз.
- Поддержка двух моделей смартфонов: полная аппаратная поддержка 4-сегментной матрицы Realme GT 5 и единой RGB зоны Realme GT Neo 5.
- Профессиональный DSP движок: многополосный спектральный анализ на базе алгоритмов aubio HFC и среднеквадратичной интеграции энергии RMS.
- Два режима студии: быстрый 4-полосный режим Fast и глубокий 12-полосный режим Deep с интерактивным выбором полосы по нажатию на столбец спектрограммы.
- Расширенная матрица паттернов для Realme GT 5: одиночные зоны, парные комбинации, варианты с логикой «Или», «Случайная глифа» и «Случайный паттерн».
- Настраиваемое поведение логики «Или»: отдельный тумблер для каждой полосы с переключением между последовательной сменой зон и случайным выбором с вероятностью 50%.
- Специальные режимы для Realme GT Neo 5: Вспышка, Смена цвета, Вспышка и смена цвета на каждый удар бита.
- Интеллектуальная автокалибровка: автоматический подбор чувствительности, порогов, времени затухания, паттернов зон и режимов «Или» под конкретный трек.
- Динамические иконки на рабочем столе: 8 вариантов цвета иконки приложения под все доступные акцентные темы с автоматической сменой значка.
- Плитка быстрых настроек Quick Settings: включение и выключение аудиодвижка прямо из шторки Android без необходимости запускать приложение.
- Синхронизация задержки Bluetooth: плавная регулировка оффсета от 0 до 600 мс для устранения рассинхронизации подсветки с беспроводными наушниками и колонками.
- Круговой выбор цвета Color Picker: плавный селектор «Свой цвет» с калибровкой всех оттенков аппаратного HAL контроллера.
- Аппаратная калибровка сине-фиолетового спектра: поддержка системных профилей ColorOS, включая ультрамарин 0x8B73BBFF, индиго и бархатный фиолетовый.
- Динамический режим Rainbow: переключение на новый яркий цвет на каждый новый удар бита.
- Менеджер пресетов: сохранение конфигураций, экспорт и импорт готовых профилей в формате JSON.
- Полная аппаратная и сетевая безопасность: стопроцентно автономная работа без сетевых разрешений и без передачи данных.
При включении захвата внутреннего звука системы Android выводит стандартное системное уведомление: «Идет запись экрана» или «Трансляция звука».
Почему это происходит:
- В современных версиях Android захват звука других приложений через AudioPlaybackCaptureConfiguration требует наличия системного разрешения MediaProjection.
- Операционная система Android считает любой запуск проекции потенциальной записью медиапотока и обязана выводить визуальное предупреждение в строке состояния.
Реальное поведение приложения:
- Pulse Light Hub выполняет только цифровой захват аудиоданных из аудиомикшера системы.
- Приложение не производит видеозапись, не захватывает изображение с дисплея, не создает скриншотов и не имеет доступа к графическому содержимому экрана.
- В манифесте AndroidManifest.xml полностью отсутствуют разрешения INTERNET и ACCESS_NETWORK_STATE.
- Приложение на аппаратном уровне операционной системы лишено технической возможности открывать сетевые сокеты, совершать HTTP запросы или передавать телеметрию.
- Весь цикл спектрального анализа аудиосигнала и вычисления яркости глифов выполняется исключительно локально в памяти процессора вашего смартфона.
Блок «Параметры детекции и затухания» расположен прямо в Глиф-студии для мгновенной подстройки отклика:
- Чувствительность: глобальный множитель усиления входящего звукового сигнала. Определяет общую реакцию визуализатора на тихие и громкие композиции. Значения выше единицы усиливают слабые звуки, значения ниже единицы предотвращают перегрузку на громких треках.
- Время затухания: интервал плавного угасания свечения светодиодов в миллисекундах. Короткие значения создают резкие стробоскопические вспышки, длинные значения формируют мягкое неоновое свечение.
Визуализатор поддерживает два режима спектрального анализа:
- Быстрый 4-полосный спектр: Fast:
- Полоса 0 — Sub Bass: от 20 до 80 Гц: инфранизкий саб-бас, дропы и вибрация.
- Полоса 1 — Kick: от 80 до 200 Гц: ударная бочка, плотный панч и ритмический пульс.
- Полоса 2 — Snare и Clap: от 200 до 3500 Гц: рабочий барабан, хлопки, вокальные форманты и средние транзиенты.
- Полоса 3 — Hi-Hat и Percussion: от 3500 до 18000 Гц: хай-хэты, тарелки и перкуссия. Алгоритм aubio HFC с частотным взвешиванием компенсирует естественный спад энергии высоких частот.
- Глубокий 12-полосный спектр: Deep: детальная сетка из 12 независимых полос от 20 Гц до 20 кГц для точной музыкальной аналитики. Выбор полосы для индивидуальной настройки выполняется нажатием прямо на соответствующий столбец спектрограммы.
Для каждой полосы доступны индивидуальные настройки:
- Гейн полосы: индивидуальный множитель чувствительности от 0.1x до 3.0x.
- Порог срабатывания: порог спектрального потока для фиксации удара и зажигания диода.
Для смартфона Realme GT 5 доступен богатый выбор паттернов активации глифов:
- Одиночные зоны: Верх, Право, Низ, Лево.
- Синхронные пары: Верх и Низ, Лево и Право, Верх и Лево, Верх и Право, Низ и Лево, Низ и Право.
- Комбинации с логикой «Или»: Верх или Низ, Лево или Право, Верх или Лево, Верх или Право, Низ или Лево, Низ или Право.
- «Случайная глифа»: зажигает одну случайную зону из четырех на каждый удар.
- «Случайный паттерн»: случайный выбор одного из готовых паттернов на каждый такт.
- «Все глифы»: синхронное включение всей матрицы.
- Тумблер режима «Или»: индивидуальный переключатель внизу блока полосы. Во включенном состоянии выбирает зону случайно с шансом 50%, в выключенном состоянии переключает зоны строго по очереди.
Для смартфона Realme GT Neo 5 предусмотрены три выделенных аппаратных режима:
- Вспышка: световой импульс текущим цветом на каждый удар полосы.
- Смена цвета: циклическая смена оттенка без затухания.
- Вспышка и смена цвета: комбинированный импульс с одновременным переходом к следующему цвету.
- Шлюз громкости: Silence Gate: порог отсечения тишины в процентах от среднеквадратичной громкости. Если уровень звука в треке опускается ниже установленного порога, подсветка моментально отключается. Это предотвращает случайные вспышки от фонового шума в паузах между треками.
- Минимальное время горения на бит: Min Hold Time: диапазон от 10 до 300 мс. Гарантирует отчетливое раскрытие импульса даже на сверхкоротких щелчках и высокочастотных транзиентах.
- Максимальное время горения на бит: Max Hold Time: жесткое ограничение непрерывного горения сегмента. Предотвращает превращение светодиодов в непрерывно горящий фонарик при затяжных перегруженных басовых партиях.
- Автокалибровка: автоматически анализирует динамический диапазон, пиковые всплески и ритмическую структуру композиции, подбирая чувствительность, полосовые гейны, пороги, затухание и гармоничные паттерны зон, включая режимы «Или» и «Случайный паттерн».
- Пресеты: сохранение собственных стилей подсветки, быстрый экспорт в буфер обмена в формате JSON и импорт пресетов.
- Динамические иконки приложения: поддержка 8 нативных иконок для рабочего стола Android, точно повторяющих выбранный акцент оформления: Lime, Cyan, Emerald, Amber, Red, Purple, White, Pink.
- Круговой Color Picker «Свой цвет»: плавный выбор любого спектрального оттенка с калиброванной белой отметкой.
- Аппаратная палитра сине-фиолетовых тонов: королевский ультрамарин 0x8B73BBFF, индиго, фиолетовый, пурпурный и неоновый розовый.
- Плитка быстрого доступа Quick Settings: мгновенное включение и отключение цветомузыки из шторки уведомлений.
В отличие от стандартных системных решений, Pulse Light Hub не требует модификации системных библиотек или установки сторонних модулей:
- Прямой вызов интерфейса IPowerManager через Binder IPC: код транзакции 75.
- Передача битовой маски сегментов:
- LED A: верхний сегмент, маска 0x01.
- LED B: правый сегмент, маска 0x02.
- LED C: нижний сегмент, маска 0x04.
- LED D: левый сегмент, маска 0x08.
- Передача 24-битного цвета RGB для каждого активного светодиода.
Проект спроектирован по сверхлегковесной офлайн-архитектуре без тяжелых зависимостей Gradle:
# Сборка, выравнивание, подпись и установка через Android SDK CLI:
powershell -ExecutionPolicy Bypass -File .\build.ps1Проект распространяется под свободной лицензией MIT. Подробности смотрите в файле LICENSE.