Skip to content

[FEATURE] read / display / edit LyricsFile (.lyrics) sidecars via MeedyaSuite-core #139

@Salem874

Description

@Salem874

Summary

MeedyaManager is the suite's library management / inspection tool. Add LyricsFile (.lyrics) support so users can view and (where editing is in scope) modify the new open word-level-timed lyrics format that MeedyaDL generates, LRCGET edits, and LRCLIB distributes.

LyricsFile is a new YAML-based lyrics format from LRCGET v2.0.0, supporting word-level synchronisation, overlapping lyrics, line-end-time controls, extensible metadata, and instrumental markers.

Hard prerequisite

MWBMPartners/MeedyaSuite-core foundation issue lands first. That issue exposes the LyricsFile struct, parser, serialiser, and format conversions. This issue consumes them.

In scope for MeedyaManager

  1. Detection: when scanning a library directory, recognise .lyrics sidecars alongside existing TTML / LRC / SRT / VTT / ASS.
  2. Display: render LyricsFile content with:
    • Line-level view (default).
    • Word-level view (expanded, shows per-word timestamps).
    • Overlapping-voices indicator when the file has multiple concurrent voice tracks.
    • Metadata header panel (artist, title, tempo, whatever's in the extensible metadata block).
    • Spec-version badge.
  3. Search / filter: library view gains a "has LyricsFile" filter, surfacing tracks with the new format.
  4. Integration with MeedyaDL's manifest: read has_lyricsfile: bool from manifest.meedyadl files (new field added by the MeedyaDL consumer issue) to pre-index without re-scanning.
  5. Format preference order: when a track has multiple lyrics sidecars (LyricsFile + LRC + TTML), MeedyaManager prefers LyricsFile in its internal display pipeline but shows all sources as available.

Optional (phase 2 scope — mark in follow-up if carrying over)

  1. Basic editing: text-editor view with YAML validation on save. Not a full interactive sync UI (that's LRCGET's job) but enough to fix a typo without switching tools.
  2. Convert-in-place: right-click → "Convert to LyricsFile" runs the MeedyaConverter library on the selected track.

Out of scope

  • Interactive word-level sync / karaoke timing editor. LRCGET. Period.
  • Downloading lyrics from LRCLIB on demand. Separate feature.
  • Generating LyricsFile from scratch (no source material). MeedyaDL + MeedyaConverter produce LyricsFile; MeedyaManager consumes.

Acceptance criteria

  • Library scan detects .lyrics sidecars.
  • Track detail view shows LyricsFile content with line + word views.
  • Search / filter by "has LyricsFile" flag works.
  • Format preference order honoured when multiple sidecars are present.
  • Metadata header panel displays custom / extensible fields correctly.
  • Invalid / malformed .lyrics files surface a user-friendly error rather than crashing.
  • Help documentation updated with LyricsFile support + format compatibility.
  • (Phase 2) Edit button + YAML validation on save.

Related

  • LRCGET v2.0.0 release.
  • MWBMPartners/MeedyaSuite-core foundation issue (to be filed) — hard prerequisite.
  • MWBMPartners/MeedyaDL consumer issue — produces .lyrics files + manifest flag.
  • MWBMPartners/MeedyaConverter consumer issue — right-click convert integration.

Origin

User request 2026-04-23 after LRCGET 2.0.0 announcement. Coordinated suite-wide rollout.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions