Skip to content

v8.6

Latest

Choose a tag to compare

@SilverCrow2323 SilverCrow2323 released this 20 Jul 23:59
42f6958

๐ŸŽต 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:1 with live percentage updates
  • Method 2: Fallback subprocess.run for muOS devices where progress pipes fail โ€” ensures conversion always completes
  • Anti-deadlock protection: stderr=subprocess.DEVNULL prevents 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 copy flag; 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.ttf before 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

  1. Download SPDW-BGM-Normalizer.muxapp
  2. Copy to your SD card:
    /mnt/mmc/MUOS/ARCHIVE/
    
  3. Boot muOS โ†’ Applications โ†’ Archive Manager
  4. Select SPDW-BGM-Normalizer.muxapp โ†’ press A to extract
  5. Restart your handheld
  6. Launch BGM Normalizer from the Applications menu

PC (Windows / Linux / macOS)

  1. Download the source release
  2. Install FFmpeg:
    • Windows: choco install ffmpeg
    • Linux: sudo apt install ffmpeg
    • macOS: brew install ffmpeg
  3. Place fonts in the app folder:
    • font.ttf (required)
    • fontbgm.ttf (optional)
    • fontnorm.ttf (optional)
  4. 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
Boot Animation

Main Menu
Main Menu

Conversion Complete
Conversion Results


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.