Skip to content

monosyde/modio

Repository files navigation

modio

Объединение mesh-audio и apo-profile-switcher в одно приложение с улучшенной синхронизацией и встроенными EQ-профилями.

Что внутри

  • VB-Cable — установка/проверка/статус источника по умолчанию + одна кнопка «сделать VB-Cable источником» (через IPolicyConfig::SetDefaultEndpoint).
  • EqualizerAPO — авто-детект через реестр + кнопка «Установить EqualizerAPO» (если не обнаружен).
  • Колонки — выбор устройств для зеркалирования + per-device trim громкости + per-device offset + ★ кнопка «сделать default» на каждом устройстве.
  • EqualizerAPO профили — 10 встроенных профилей (Bass Boost, Classic, JBL Punch, …) + опционально папка пользователя.
  • Синхронизация — Global delay, Ring buffer, Warmup, Stability mode, Auto adjust + 8 пресетов (включая BT Rock Stable).
  • Метрики — статус источника, заполнение буфера, число корректировок, master volume.
  • Тёмная/светлая тема (запоминается в localStorage).

Портативность

  • Все 10 EQ-профилей зашиты в бинарь через include_str!. Никаких внешних файлов рядом с .exe.
  • EqualizerAPO путь определяется автоматически:
    1. Реестр HKLM\SOFTWARE\EqualizerAPO (InstallLocation / InstallPath).
    2. %ProgramFiles%\EqualizerAPO\config, %ProgramFiles(x86)%\EqualizerAPO\config.
    3. Fallback на C:\Program Files\EqualizerAPO\config.
    4. Можно переопределить через UI (раздел EQ профили → ▼ → Choose EqualizerAPO config).
  • modio.exe пишет config.txt напрямую в найденную папку EqualizerAPO. Контент профилей инлайнится — никаких Include: на внешние файлы. Установка модуля в любой каталог.
  • Состояние modio (выбранные профили, настройки) хранится в %LOCALAPPDATA%\modio\modio.json.

Улучшения синхронизации

  • Дефолтный ring buffer = 800 ms, global delay = 180 ms, warmup = 100 ms.
  • Stability mode (включён по умолчанию):
    • Debounce смены default-устройства 800 ms.
    • Толерантность дрейфа 40 ms.
    • Шаг коррекции 1 ms.
    • Требуется 8 последовательных замеров расхождения перед коррекцией.
    • Silence freeze: если источник молчит >80 ms — коррекции заморожены.
    • Just-switched grace: 2.5 c после переключения default-устройства.
    • Just-resumed grace: 2.2 c после возобновления звука (трек начался).
    • Reader realign: при возобновлении после паузы >200 ms ридеры всех колонок принудительно выравниваются на точное global_delay.
  • Пресет BT Rock Stable (anti-drift): ring 1600 ms, delay 380 ms — для совсем нестабильных BT-цепочек.
  • Громкость из мастера Windows: source IAudioEndpointVolume опрашивается каждые 220 ms; effective_session_volume = master × per-device trim. То есть слайдер Windows влияет на все колонки пропорционально, per-device слайдер в modio — это дополнительный trim.
  • Корректировки и текущая master-громкость видны в метриках внизу окна.

Сборка

npm install
npm run tauri:build

Артефакты:

  • src-tauri/target/release/modio.exe — портативный exe (≈2.6 MB).
  • src-tauri/target/release/bundle/msi/modio_1.0.0_x64_en-US.msi — MSI установщик.
  • src-tauri/target/release/bundle/nsis/modio_1.0.0_x64-setup.exe — NSIS установщик.

Запуск в dev режиме

npm run tauri:dev

Локализация

src/i18n.ts — два словаря (ru/en), переключение через setLocale('en'). По умолчанию — русский.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors