๐ต SPDW BGM Normalizer v8.6 โ Release Notes
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
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.


