Pulse Light Hub — высокопроизводительный автономный музыкальный визуализатор для RGB подсветки Awakening Halo смартфона Realme GT 5. Приложение анализирует системный звук или сигнал с микрофона в реальном времени с нулевой задержкой и управляет четырьмя сегментами глифа через прямой нативный интерфейс аппаратного контроллера.
- Прямой доступ к аппаратному драйверу: управление подсветкой через Binder IPC транзакцию 75 службы IPowerManager без рут-прав, без фоновых демонов и без сторонних утилит.
- Профессиональный DSP движок: многополосный спектральный анализ на базе алгоритмов aubio HFC и среднеквадратичной интеграции энергии RMS.
- Разделение партий ударных: независимое распознавание бочки, баса, рабочего барабана, хлопков и хай-хэтов с компенсацией спектрального спада энергии высоких частот.
- Сверхнизкая задержка: кадровый рендеринг до 120 FPS с мгновенной атакой импульса и экспоненциальным затуханием.
- Синхронизация задержки Bluetooth: плавная регулировка оффсета от 0 до 600 мс для устранения рассинхронизации подсветки с беспроводными наушниками и колонками.
- Круговой выбор цвета Color Picker: плавный селектор «Свой цвет» с калибровкой всех оттенков аппаратного HAL контроллера.
- Аппаратная калибровка сине-фиолетового спектра: поддержка системных профилей ColorOS, включая королевский ультрамарин
0x8B73BBFFиз Always-On, индиго и бархатный фиолетовый. - Поканальная настройка глифов: раздельная раскраска четырех независимых сегментов или единый синхронный режим.
- Динамический режим Rainbow: переключение на новый яркий цвет на каждый новый удар бита.
- Интеллектуальная автокалибровка: автоматическая настройка чувствительности, порогов и времени затухания под динамику играющего трека.
- Менеджер пресетов: сохранение пользовательских конфигураций, экспорт и импорт готовых профилей в формате JSON.
- Полная аппаратная и сетевая безопасность: стопроцентно автономная работа без сетевых разрешений и без передачи данных.
При включении захвата внутреннего звука системы Android выводит стандартное системное уведомление: «Идет запись экрана» или «Трансляция звука».
Почему это происходит:
- В современных версиях Android захват звука других приложений через AudioPlaybackCaptureConfiguration требует наличия системного разрешения MediaProjection.
- Операционная система Android считает любой запуск проекции потенциальной записью медиапотока и обязана выводить визуальное предупреждение в строке состояния.
Реальное поведение приложения:
- Pulse Light Hub выполняет только цифровой захват аудиоданных из аудиомикшера системы.
- Приложение не производит видеозапись, не захватывает изображение с дисплея, не создает скриншотов и не имеет доступа к графическому содержимому экрана.
- В манифесте AndroidManifest.xml полностью отсутствуют разрешения INTERNET и ACCESS_NETWORK_STATE.
- Приложение на аппаратном уровне операционной системы лишено технической возможности открывать сетевые сокеты, совершать HTTP запросы или передавать телеметрию.
- Весь цикл спектрального анализа аудиосигнала и вычисления яркости глифов выполняется исключительно локально в памяти процессора вашего смартфона.
- Чувствительность: глобальный множитель усиления входящего звукового сигнала. Определяет общую реакцию визуализатора на тихие и громкие композиции. Значения выше единицы усиливают слабые звуки, значения ниже единицы предотвращают перегрузку на громких треках.
- Время затухания: интервал плавного угасания свечения светодиодов в миллисекундах. Короткие значения создают резкие стробоскопические вспышки, длинные значения формируют мягкое неоновое свечение.
Аудиодвижок разделяет звуковой спектр на четыре изолированные частотные полосы:
- Полоса 0 — Sub Bass: диапазон от 20 до 80 Гц. Отвечает за инфранизкий саб-бас, дропы и вибрацию. Управляет верхним сегментом глифа.
- Полоса 1 — Kick: диапазон от 80 до 200 Гц. Отвечает за ударную бочку, плотный панч и основной ритмический пульс. Управляет правым сегментом глифа.
- Полоса 2 — Snare и Clap: диапазон от 200 до 3500 Гц. Отвечает за рабочий барабан, хлопки, вокальные форманты и средние транзиенты. Управляет нижним сегментом глифа.
- Полоса 3 — Hi-Hat и Percussion: диапазон от 3500 до 18000 Гц. Отвечает за хай-хэты, тарелки и перкуссионный воздух. Для этой полосы активен алгоритм aubio HFC с линейным взвешиванием бинов для преодоления естественного спада энергии высоких частот. Управляет левым сегментом глифа.
Для каждой полосы доступны индивидуальные настройки:
- Гейн полосы: индивидуальный множитель чувствительности от 0.1x до 3.0x для тонкой балансировки громкости отдельных инструментов.
- Порог срабатывания: уровень спектрального потока, необходимый для фиксации удара и зажигания диода. Позволяет полностью изолировать случайные шумы.
- Шлюз громкости: Silence Gate: порог отсечения тишины в процентах от среднеквадратичной громкости. Если уровень звука в треке опускается ниже установленного порога, подсветка моментально отключается. Это предотвращает случайные вспышки от фонового шума в паузах между треками.
- Минимальное время горения на бит: Min Hold Time: гарантированная длительность импульса свечения. Обеспечивает полное раскрытие пиковой яркости светодиода даже при сверхкоротких щелчках и транзиентах.
- Максимальное время горения на бит: Max Hold Time: жесткое ограничение непрерывного горения сегмента. Предотвращает превращение светодиодов в непрерывно горящий фонарик при затяжных перегруженных басовых партиях.
- Быстрый режим: Fast: размер буфера 512 точек с кадровой частотой 120 FPS. Идеален для динамичной электронной музыки, скоростного ритма и ритм-игр с минимальной задержкой отклика.
- Глубокий режим: Deep: размер буфера 1024 точки с удвоенным частотным разрешением. Рекомендуется для сложных акустических композиций, рока и джаза с детальным спектральным разделением инструментов.
- Автокалибровка: за 3 секунды анализирует динамический диапазон, пиковые всплески и ритмический темп текущей композиции, автоматически выставляя идеальный баланс полос, пороги и оптимальное время затухания.
- Пресеты: сохранение собственных уникальных стилей анимации, быстрый экспорт конфигурации в буфер обмена в формате JSON и импорт пресетов других пользователей.
- Главный переключатель «Все глифы»: единая палитра для всей светодиодной матрицы либо раздельное управление четырьмя сегментами: Верхний, Нижний, Левый, Правый.
- Палитра 3x5: 10 одиночных заводских цветов и 5 градиентных дуэтов HAL.
- Круговой Color Picker «Свой цвет»: плавный выбор любого спектрального оттенка с калиброванной белой отметкой и естественными переходами.
- Аппаратная калибровка фиолетового спектра: точная интеграция регистров Qualcomm HAL для синего
0x8B74BBFF, ультрамарина0x8B73BBFF, индиго0x8B72BBFF, бархатного фиолетового0x8B71BBFF, пурпурного0x8BFFA8FFи неонового розового0x8BFFA7FF. - Динамический режим Rainbow: мгновенная смена цвета на каждый удар бита с автоматическим визуальным затемнением элементов управления.
В отличие от стандартных системных решений, 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.