SPDW BGM Normalizer v8.6 β Release Notes
Package: SPDW-BGM-Normalizer.muxapp
Release Date: 2026-07-21
Author: Kentani Kenji (Sir Pips du Wilson) β SPDW Factory Lab
Project: Chou Henka Project
Whatβs New in v8.6
Anime-Style Header Redesign
- Massive βBGMβ title rendered with dedicated
fontbgm.ttf(48px) β inspired by anime title cards - Pixel βNormalizerβ badge in a boxed frame with cyan border β rendered with
fontnorm.ttf - Chromatic ghosting effect on the BGM title for CRT-style depth
- Header height expanded from 52px to 70px for bolder visual presence
Dual-Method FFmpeg Engine
- Method 1: Real-time progress tracking via
-progress pipe:1with live percentage updates - Method 2: Fallback
subprocess.runfor muOS devices where progress pipes fail β ensures conversion always completes - Anti-deadlock protection:
stderr=subprocess.DEVNULLprevents buffer overflow freezes - Safety timeout: Auto-kill after 180 seconds of inactivity
Enhanced Audio Pipeline
- LUFS analysis timeout increased to 300 seconds β handles large files on slow SD cards
- Silence trim fix β removed invalid
-c:a copyflag; now properly re-encodes with libvorbis - 3-tier fallback system: 2-pass β 1-pass β simple OGG conversion β never leaves a file behind
- Per-file error isolation β if one track fails, the batch continues with the rest
Input Fixes
- Y button mapping β now toggles file info panel on muOS (
BTN_Y_CODES) - Y key mapping β now toggles file info on PC (
SDLK_y) - Full controller support: D-Pad, A/B/X/Y, L1/R1, START
Startup Hardening
- Critical font check β validates
font.ttfbefore SDL2 init; exits gracefully with logged error - Library load safety β SDL2, SDL2_ttf, SDL2_image wrapped in try/except
- Step-by-step boot logging β every init phase logged: SDL, TTF, fonts, window, renderer
- Multi-font support β
font.ttf(required),fontbgm.ttf&fontnorm.ttf(optional with fallback)
Visual Polish
- 3 themes: SPDW Megastructure (default), Tailscale Classic, SPDW Hybrid
- Analog glitch FX β subtle vertical edge interference with fluid motion
- HUD corner accents on SPDW themes
- Persistent in-app logging β console engine view during conversion
Installation
muOS (Handheld) β Archive Manager
-
Download
SPDW-BGM-Normalizer.muxapp -
Copy to your SD card:
/mnt/mmc/MUOS/ARCHIVE/ -
Boot muOS β Applications β Archive Manager
-
Select
SPDW-BGM-Normalizer.muxappβ press A to extract -
Restart your handheld
-
Launch BGM Normalizer from the Applications menu
PC (Windows / Linux / macOS)
-
Download the source release
-
Install FFmpeg:
- Windows:
choco install ffmpeg - Linux:
sudo apt install ffmpeg - macOS:
brew install ffmpeg
- Windows:
-
Place fonts in the app folder:
font.ttf(required)fontbgm.ttf(optional)fontnorm.ttf(optional)
-
Run:
python3 bgm_normalizer.py
Requirements
| Component | Requirement |
|---|---|
| Device | Anbernic RG35XX H/Plus, RG40XXV/H, RG CubeXX, or PC |
| Firmware | muOS (MustardOS) latest stable β or any PC OS |
| FFmpeg | Required β ffmpeg and ffprobe in PATH |
| Python | 3.11+ (PC only; muOS uses system Python) |
| Libraries | libSDL2-2.0.so.0, libSDL2_ttf-2.0.so.0, libSDL2_image-2.0.so.0 (muOS) |
| Fonts | font.ttf in app directory |
File Structure (Installed)
/mnt/mmc/MUOS/application/BGM Normalizer/
βββ bgm_normalizer.py # Main application (Python 3 + SDL2/ctypes)
βββ mux_launch.sh # muOS launcher wrapper
βββ config.ini # User settings (theme, LUFS, paths)
βββ lang.json # Translation strings (EN / IT)
βββ font.ttf # UI font (REQUIRED)
βββ fontbgm.ttf # Title font (optional)
βββ fontnorm.ttf # Badge font (optional)
βββ spdw_bgm_normalizer.log # Runtime diagnostics log
βββ README.md # Documentation
βββ glyph/
βββ icon.png # muOS menu icon
Controls
muOS (Controller)
| Button | Action |
|---|---|
| D-Pad ββ | Navigate menus / file list |
| A | Confirm / Select / Toggle checkbox |
| B | Back / Cancel |
| X | Toggle file selection |
| Y | Toggle file info panel |
| L1 | Filter: select all non-OGG files |
| R1 | Page Down |
| START | Preview selected track |
PC (Keyboard)
| Key | Action |
|---|---|
| β β | Navigate |
| Enter / Space / A | Confirm |
| Esc / B | Back |
| X | Toggle selection |
| Y | Toggle info |
| P | Preview |
| F | Filter non-OGG |
| R | Rescan folder |
| PgUp / PgDn | Scroll list |
Troubleshooting
| Issue | Solution |
|---|---|
| App wonβt start | Check spdw_bgm_normalizer.log. Ensure font.ttf exists in app folder |
| βffmpeg not foundβ | Install FFmpeg and verify itβs in your system PATH |
| Conversion very slow | Normalization is CPU-intensive. Large files take 2-5 min on handheld |
| LUFS analysis timeout | App auto-falls back to 1-pass direct normalization |
| Files not appearing | Verify scan_source (SD1/SD2/both) or pc_input_dir |
| Output not found | Check /mnt/mmc/MUOS/music/ (muOS) or ~/Music/BGM_Normalized/ (PC) |
| OGG not playing in muOS | Ensure muOS BGM settings scan the correct output folder |
| Y button not working | Fixed in v8.6 β update to this release |
Screenshots
Boot Animation
Main Menu
Conversion Complete
Credits & Philosophy
Part of the Chou Henka Project ecosystem.
βThe waveform is the message. The Rintrompo guides the amplitude. Sbrobs.β
Architected and maintained by Kentani Kenji (Sir Pips du Wilson) β SPDW Factory Lab.
This release represents the definitive BGM normalization experience for handheld enthusiasts. From scattered, inconsistent music libraries to perfectly normalized, console-ready OGG files β one button press away.
Previous Versions
- v8.3 β Initial definitive release with LUFS normalization, file browser, preview player, 3 themes
- v8.6 β Anime header, dual-method ffmpeg engine, Y button fix, startup hardening, per-file error isolation
Normalize your world. One track at a time.


