Releases: SilverCrow2323/muOS-BGM-Normalizer
Releases · SilverCrow2323/muOS-BGM-Normalizer
Release list
v8.6
🎵 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.


