SHOWBACKSTAGE | Professional Show Player
DOCS / SHOWBEATSYNC / Алгоритм работы
Под капотом

Алгоритм вычисления BPM

Точность SHOWBEATSYNC достигается за счет многоступенчатой очистки и жесткой математической логики.

1️⃣ Ядро обнаружения транзиентов: Spectral Flux

В отличие от примитивных алгоритмов, которые ищут биты просто по пикам громкости, SHOWBEATSYNC использует алгоритм Spectral Flux. Простые детекторы легко обмануть сильно скомпрессированными треками. Spectral Flux реагирует на появление новых звуков, а не просто на высокую громкость. Он способен вычленить тихий удар барабана даже на фоне ревущего синтезатора.

  • Windowing: Аудиосигнал нарезается на окна по 1024 сэмпла с перекрытием 512 сэмплов (разрешение ~11.6 мс).
  • FFT: К каждому окну применяется Быстрое преобразование Фурье.
  • Difference Calculation: Алгоритм ищет положительные изменения энергии в каждой частотной полосе.
  • Onset Detection: Регистрация транзиента при внезапном появлении новой энергии.
Алгоритм Spectral Flux

2️⃣ Вычисление темпа (Tempo Tracking)

Обнаружение отдельных ударов — это только первый шаг. Алгоритм отслеживания темпа измеряет временные интервалы между транзиентами.

  • Интервалы пропускаются через статистические предсказания.
  • Система строит внутреннюю фазовую сетку и выравнивает её с ударами.
  • На выходе генерируется: BPM и показатель Confidence (Уверенность).

3️⃣ Интеллектуальная постобработка

SHOWBEATSYNC пропускает "сырой" BPM через 3 уровня жесткой фильтрации:

Фильтр 1: Октавная коррекция

Защита от ошибок удвоения темпа (140 вместо 70) с помощью полосового фильтра BPM Range. Любые значения, выходящие за пределы логики, принудительно умножаются или делятся на 2.

Фильтр 2: Скользящее среднее

Векторный буфер хранит 6 последних достоверных значений темпа для сглаживания джиттера. MIDI Clock генерируется абсолютно линейным.

Фильтр 3: Логический шлюз ямы (Anti-Breakdown)

Если Confidence падает ниже 46%, система перестает слушать "мусор" и начинает отстукивать удары по инерции через внутренний мультимедийный таймер Windows.

4️⃣ Аппаратная маршрутизация и тайминги

  • Audio Thread: Аудиопоток работает на максимальном приоритете. FFT происходит прямо внутри callback-функции.
  • MIDI Thread: Генерация команд вынесена в отдельный высокоточный асинхронный таймер, гарантируя отсутствие микро-фризов даже при лагах GUI.