Skip to content

v2.3.15

Choose a tag to compare

@dotslashgabut dotslashgabut released this 16 Apr 05:01

Immersive Audio Player & Lyric Video Maker 2.3.15

Bug

  • Missing node module, please install three.js first: npm install three , or download the archive below.

What's New

  • Audio Visualization Expansion (New Feature):

    • New Visualizer Types: Added four new audio visualization types to the Render Settings dropdown:
      • Waveform (Filled): A symmetrical, dynamically filled representation of the audio envelope.
      • Spectrum: A continuous peak filled graph with a sharp top line tracking frequency magnitudes.
      • Spectrogram: A clean, scrolling waterfall interface plotting frequency history over time.
      • Stereo Field: Dynamic simulation of a phase goniometer/Lissajous monitor using offset phase mappings.
    • Full Support: Seamlessly integrated to render properly in real-time within the web preview and flawlessly baked into offline renderers (FFmpeg/WebCodecs).
  • Embedded Lyrics — Cross-Format Support (Bug Fix / New Feature):

    • Root Cause: The jsmediatags library only reads lyrics from MP3 (ID3v2 USLT tag) and M4A/ALAC (MP4 ©lyr atom). For FLAC, it parses Vorbis Comments but hardcodes only 5 fields (title, artist, album, track, genre) — the LYRICS field is completely ignored. For OGG, OPUS, and WAV, it has no reader at all and fails silently.
    • Custom Binary Parser: Introduced utils/embeddedLyrics.ts — a zero-dependency binary parser that directly reads embedded lyrics from:
      • FLAC: Parses metadata blocks to find the VORBIS_COMMENT block (type 4) and extracts LYRICS, UNSYNCEDLYRICS, SYNCEDLYRICS fields.
      • OGG Vorbis / OPUS: Parses OGG pages, reassembles the comment header packet (handling multi-segment packets), and reads Vorbis Comments including lyrics.
      • WAV: Parses RIFF chunks looking for LIST INFO sub-chunks (ILYC/ILYR for lyrics).
    • Seamless Fallback: The custom parser is called automatically when jsmediatags either returns no lyrics (FLAC) or fails entirely (OGG/OPUS/WAV). Title, artist, and album metadata are also extracted as a bonus for unsupported formats.
    • All Code Paths Covered: Works in the main player (single-file upload), the Playlist Editor (batch import), and the Reload Embedded Lyrics button (↻) — which was previously using a separate, outdated code path that only checked lyrics || USLT.
  • Workflow Improvements:

    • Playlist Auto-Sync: Audio files and lyrics uploaded directly from the main view now seamlessly integrate into the persistent playlist. The track becomes instantly available within the Playlist Editor, eliminating isolated track states and creating a unified experience.
  • Branding & UI Updates:

    • Brand Icons: Integrated react-simple-icons to properly display specific brand logos on the About page.
    • Icons Update: Updated lucide-react to the latest version for improved icon availability and security.

Full Changelog: v2.3.14...v2.3.15