Repository navigation
Releases
Releases · dotslashgabut/lyricseditor
LyricsEditor v0.1.4
🌟 What's New
- Apple JSON (
.applejson.json) Import & Export:- Full bidirectional support for Apple JSON syllable- and line-level lyric format (
.applejson,.applejson.json, or.jsonwith Apple JSON schema). - Preserves comprehensive song metadata:
songwriters,language,leadingSilence,lyricOffset,audioRole,duration,agents,translations, andtransliterations. - Syllable continuation (
part: true/false) preserved for seamless word connection across all formats. - Multi-channel background vocal support (
background: true,backgroundText) with clean parenthetical display formatting. - Generates bundled secondary formats inside the exported document:
lrc,elrc,elrcMultiPerson,plain, and standard-compliantttmlContent. - Dedicated Apple JSON export option added under Karaoke (Word-Level) in the export menu, defaulting to
${filename}.applejson.json.
- Full bidirectional support for Apple JSON syllable- and line-level lyric format (
Full Changelog: v0.1.3...v0.1.4
LyricsEditor v0.1.3
🌟 What's New
- Mobile Portrait Layout Fix for Player Bar:
- Fixed a critical layout bug where the Play/Pause, Stop, and Loop buttons, along with the time display, could render below the visible viewport on portrait phones (as narrow as 320px wide) and become invisible and untappable.
- Restructured the bottom player bar into explicit, correctly-sized rows on mobile: progress bar (full width), time display (centered), and playback controls with the volume slider, all guaranteed to stay within the visible screen.
.player-controlsno longer gets compressed by the page's flex layout below the height it actually needs.
- Volume Control Restored on Mobile:
- The volume slider was previously hidden entirely below 600px width; it's now shown in a compact form alongside the playback buttons.
- Improved Touch Dragging for Seek Bar & Volume Slider:
- Added
touch-action: noneto the progress/seek bar and volume slider so dragging on touch devices no longer conflicts with page-scroll gestures.
- Added
- Markup Refactor for Loop Controls:
- Replaced the inline-styled loop-button group with a reusable
.loop-groupclass, enabling responsive resizing on smaller screens.
- Replaced the inline-styled loop-button group with a reusable
LyricsEditor v0.1.2
🌟 What's New
v0.1.2
![]() |
![]() |
- Enhanced LRC (Testing) Support (rmpc Issue #620):
- Implemented full import and export support for Enhanced LRC with vocal agent tags (
v1:,v2:,v3:,ch:, etc.) and background vocal tags ([bg: ...],bg:). - Added dedicated Enhanced LRC (Testing) (
lrc_enhanced_testing) export option in the Karaoke (Word-Level) dropdown. - Generates trailing
<end_time>tags for precise word end timings expected byrmpcand modern karaoke players (e.g.v1:<00:06.118>word <00:08.330>). - Supports simultaneous mixed lead and background vocals on the same line (e.g.
[bg:<time>...] v1:<time>... [bg:<time>...]). - Universal
parseLRCimport parser that automatically detects agent prefixes and background vocal tags while stripping markup for clean display in the editor.
- Implemented full import and export support for Enhanced LRC with vocal agent tags (
- Background Vocal Multi-Channel Engine & Display Scrambling Fix:
- Resolved word display scrambling in the editor, TTML, JSON, and lyricsfile formats caused by overlapping background vocal and lead vocal timestamps.
- Run-based text formatter (
formatLineDisplayText) and channel partitioner (partitionBgWords) accurately organize words by channel ([...startBg, ...mainWords, ...endBg]). - Edit Lyric Line modal (
separateLineWordsForEdit) cleanly isolatesstartBgandendBgfields without dumping background vocal words into the lead vocal textarea. - Per-channel independent word overlap resolution (
resolveTimingOverlaps).
- Multi-Channel Edit Line Text Modal:
- Redesigned the Edit Lyric Line popup modal with dedicated input channels: Start Background Vocal (Intro), Lead Vocal (Main Lyrics), and End Background Vocal (Outro / Ad-lib).
- Channel-isolated timing alignment engine (
alignChannel) ensures background vocals and main lyrics do not collide or corrupt word timestamps during editing, blank insertions, or word restructuring. - Quick-action buttons to add or remove Start/End background vocal channels with a single click.
- Full multi-input undo/redo (
Ctrl+Z/Ctrl+Y), real-time highlight synchronization, drag-and-drop text manipulation, and granular word tools (Insert/Remove Blank\, Join Words).
- Automatic Parentheses
(...)Formatting for Background Vocals:- Background vocal textareas automatically display and wrap words in
( ... ). - Automatically encloses missing parentheses on typing, blur, and applying changes without manual formatting.
- Background vocal textareas automatically display and wrap words in
- Song Part Auto-Detection & Section Structure Support:
- Auto-detects song part tags (e.g.
[Verse],[Chorus],[Bridge],[Outro],Verse:,Intro -) from imported Plain Text (.txt) and LRC files. - Preserves
songPartmetadata seamlessly across Smart Merge, Track Line Attributes, and exports.
- Auto-detects song part tags (e.g.
- Dual Plain Text Export Options:
- Plain Text (with Song Parts): Exports cleanly formatted lyrics under bracketed section headers with double-spaced stanza breaks.
- Plain Text (without Song Parts): Exports pure, clean lyrics text.
- LyricsFile YAML Export & Restored Format Suite:
- Added LyricsFile YAML (
.lyricsfile.yaml) with per-word confidence scoring, line-levelsongPart, and background vocal roles. - Restored explicit LRCLIB (
.lyricsfile), YAML (.yaml), and YouTube JSON3 export options.
- Added LyricsFile YAML (
- Unified Background Vocal
<span ttm:role="x-bg">Grouping (Apple TTML & TTML):- Solved fragmented background vocal spans when vocal timestamps overlap with lead lyrics.
- Groups continuous background vocal phrases into a single, cohesive
<span ttm:role="x-bg">block adhering to the Apple Music TTML / W3C TTML Lyric Standard.
- Session Reset Optimization:
- Updated
clearDB()to await IndexedDB transaction completion and explicitly close the database connection before reloading.
- Updated
LyricsEditor v0.1.1
🌟 What's New
LyricsEditor v0.1.1
- Per-Word Confidence Scoring & Rapid Review Navigation:
- Highlights alignment confidence directly on word blocks (<75% amber dash, <50% red tint).
- Added dedicated header badge and navigation controls with Alt+N (Next) and Alt+P (Prev) shortcuts for rapid review of low-confidence words during or after audio playback.
- Universal Ghost Word-Block Gap Filling on Import:
- Automatically bridges gaps between timestamps across all word-level formats (
TTML,.lyricsfile.yaml,JSON,SRV2/3) with ghost word-blocks (text: ""). - Keeps word blocks in each line connected edge-to-edge for smooth timeline dragging, resizing, boundary snapping, and playback transitions.
- Automatically filters ghost blocks on export so output files remain standard-compliant with only sung lyric spans.
- Automatically bridges gaps between timestamps across all word-level formats (
- Enhanced
.lyricsfile.yaml& YAML Engine:- Native line-by-line / indentation-aware parser for
.lyricsfile,.lyricsfile.yaml,.yaml, and.yml. - Preserves per-word
confidence/score, vocal agents, background vocal flags, and explicitstart_ms/end_ms. - Tolerates omitted
end_mswith automatic boundary interpolation, and handles empty word arrays (words: [],words: null,words: ~).
- Native line-by-line / indentation-aware parser for
- Enhanced Background Vocal Editing & Smart Tokenization:
- Resolved word-block disconnection issues when editing background vocal lines with spaces around parentheses (e.g.
( test ),( word1 word2 )). - Parentheses are extracted cleanly as channel delimiters without generating phantom word-blocks or corrupting word timings.
- Resolved word-block disconnection issues when editing background vocal lines with spaces around parentheses (e.g.
- Active Word Detection & Playback Navigation Fix:
- Fixed timestamp scale calculation and active word boundary tracking so
Alt+NandAlt+Pjump accurately forward and backward even during active audio playback.
- Fixed timestamp scale calculation and active word boundary tracking so
- Empty Line & Ghost Word-Block Bi-Directional Conversion Tools:
- Convert Empty Lines to Ghost Words: Converts empty lines into trailing ghost word-blocks attached to the preceding lyric line (keeping top empty lines intact).
- Convert Ghost Words to Empty Lines: Intelligently extracts ghost word-blocks into empty lines above, below, or splitting the line in the middle.
Full Changelog: v0.1.0...v0.1.1
LyricsEditor v0.1.0
LyricsEditor v0.0.9
v0.0.9
Full Changelog: v0.0.8...v0.0.9
- Parentheses Background Vocal Sync Fix: Resolved an issue where adding or removing parentheses
( )in the Edit Text modal did not update the background vocal role (x-bg) on the timeline track when words matched identical or LCS tokens. - Isolated Row Drag Boundaries: Drag boundaries and sibling interactions are now isolated between main vocals and background vocals. Adjusting background vocal blocks no longer bumps into or is constrained by main vocal blocks, allowing them to freely overlap.
- Improved Multi-Row Overlap Editing: Any track containing both main and background vocal words now automatically displays in double rows when hovered or dragged (regardless of whether they already overlap), giving users the immediate visual space to align overlapping parts.
- If "Keep Word Timings" is UNCHECKED (Default): Swopping words will cause them to carry their custom durations to their new positions (e.g. one retains its original duration at its new place).
- If "Keep Word Timings" is CHECKED: Swapping words will keep the timeline slots completely static, only swapping the text labels at their respective slot indices.
LyricsEditor-v0.0.9.mp4
LyricsEditor v0.0.8
What's New
Full Changelog: v0.0.7...v0.0.8
- Integrated Metadata Editor: Added a tag editor popup under the Tools dropdown. Allows editing global parameters (Title, Artist, Album, Language, Creator, Lyricist, Copyright, iTunes Timing Mode, Leading Silence, Agent list, and Songwriters).
- ID3 Tag & Lyrics Metadata Extraction: Supports extracting ID3v2 tags directly from loaded audio files (or using filename heuristics) and extracting lyrics headers from loaded LRC/TTML files. Includes a confirmation check to prevent accidental overwrites.
- Apple Music / iTunes TTML Support: Adds export options for
Apple TTML (iTunes)andApple TTML (Words)Karaoke, including songwriters metadata, agents definitions, and segment groupings. - Interactive Multi-Row Overlap Layout: Resolves timing overlap editing blocks. Sequential words layout on one row, but overlapping main and background vocal blocks dynamically split into double rows on hover or drag to make editing boundary timestamps simple.
- Parentheses-Based Background Vocal Input: Typing words inside parentheses
( )in the Edit Text modal automatically flags them as background vocals (ttm:role="x-bg"). - Line Attributes dialog: Added a tag icon button on timeline tracks to customize song parts (
itunes:song-part) and vocal agents (ttm:agent). Includes option to automatically propagate parts to subsequent lines. - Symmetrical Track Indicators: Redesigned left-hand
track-infoand right-handtrack-end-timelayouts into stacked double rows. Displays vocal agent and song part badges on the left, balanced by a purpleBGindicator badge on the right, keeping layouts symmetrical and highly readable on narrow or portrait viewports. - Bidirectional JSON Support: Fully exports and imports comprehensive song metadata (title, artist, album, language, agents list, songwriters, and duration) alongside explicit cue/word properties (vocal agents, song parts, background vocal roles, and exact timing ranges).

LyricsEditor v0.0.7
What's New
Full Changelog: v0.0.6...v0.0.7
- In-Browser AIFF Audio Support: Adds full client-side decoding and conversion of AIFF (
.aif,.aiff) audio files.- Custom binary parser manually extracts AIFF
FORM,COMM, andSSNDchunks. - Supports converting 8-bit, 16-bit, 24-bit, and 32-bit big-endian PCM samples into standard 16-bit little-endian WAV format on the fly.
- Decodes 80-bit IEEE 754 extended precision float structures for accurate sample rate conversion.
- Enables natively unsupported AIFF files to play seamlessly and render precise waveforms.
- Custom binary parser manually extracts AIFF
- Improved Media Accessibility: Integrated
.aifand.aifffile formats into the standard audio file inputs and drag-and-drop workspace detectors. - Responsive Layout Optimization: Configured
#btn-hotfixto hide its text label and transition to icon-only mode on medium screens (under1280px), maximizing toolbar layout efficiency. - Clean Source Formatting: Replaced corrupted separator characters (
──) in code comments with clean, standardized comment formatting for improved code readability.

LyricsEditor v0.0.6
🌟 What's New
Full Changelog: v.0.0.5...v0.0.6
- Full Undo/Redo Session Persistence: The entire multi-step undo/redo history stack (
history) and current pointer index (histIdx) are now securely serialized and persisted inlocalStoragealongside your session. Refreshing (F5) or reloading the page no longer wipes out your undo/redo history, letting you step back and forth through your changes seamlessly! - Punctuation-Only Word-Block Merger: Solves the issue of floating punctuation word-blocks (like
.or,) by automatically merging them into their preceding word blocks (appending the text and extending the duration). This cleans up the alignment pool and prevents timing gaps or syllable-shift conflicts. - Smart Tag-Aware Alignment: Automatically isolates bracketed or parenthesized tags (like
[Music],(Instrumental)) in the primary timeline during alignment. Skipped tags keep their exact original timings and are neatly converted into clean timeline empty lines, ensuring they never shift or pull subsequent lyric words out of sync. - Powerhouse Combined Smart Merge & Replace Tool: Added the "Smart Merge + Replace Text" tool to the global list, combining structural alignment of AI line breaks with advanced reference-based text replacement.
- Overlap-Free Timeline Structure: Updated both standard and combined reference-based merge engines to ignore empty reference lines, completely preventing redundant timing overlaps and keeping your editor layout perfectly compact.
- Direct Toolbar Shortcuts: Added a new direct-access shortcut button for Smart Replace Text in the header toolbar. Featuring a responsive
desktop-onlydesign, it automatically adjusts for tablet and mobile views.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
screenrecord.mp4
LyricsEditor v0.0.5
🌟 What's New
Full Changelog: v0.0.4...v0.0.5
- Enhanced Navigation Suite: Added high-precision "Jump to Line" (G) and "Jump to Word" (W) modals with vertical adjustment controls for lightning-fast timeline navigation.
- Advanced Loop Controls: Expanded looping capabilities with dedicated modes for Individual Words (L) and Entire Song (O) (previously only available for Line (R)). Features a "Loop Lock" mechanism to prevent synchronization drift during word-level editing.
- Shortcuts Refinement: Reassigned core shortcuts for better mnemonics (e.g., P for Fullscreen, O for sOOOOOng loop) and added keyboard shortcut tips to the initial placeholder screen.
- UI Polishing: Redesigned numeric input controls in modals to remove browser default spin buttons, replacing them with a custom premium vertical UI.
- Comprehensive Gap Filling: Expanded the gap-filling suite with "Fill Gap to Start of Audio" and "Fill All Gaps" (Start, Middle, and End). These tools ensure your lyrics cover the entire audio timeline perfectly, preventing unintended "blank screens" during playback.
- Audacity Labels Power-Suite: Full support for importing and exporting Audacity Label formats. Includes a specialized Word-Level Export mode that generates individual labels for every word in the timeline.
- Advanced Multi-Segment Import: Automatically detects multiple tracks or segments within VTT, SRT, and Audacity Labels files. New modal allows selecting specific tracks, joining all, or using Smart Import.
- Manual Smart Import (Integrated Smart Merge): Manually pick your "Primary" timing track and "Reference" phrasing track from a single multi-segment file. This feature leverages the Smart Merge logic to automatically fix AI-generated line breaks by realigning word timings to your preferred structure, featuring line-count validation and similarity checks.
- Real-Time Audio Waveform Background: Added professional-grade audio waveform visualization behind every line in the timeline. Features symmetric peaks, auto-normalization, and layout-safe rendering for high-precision synchronization.
- Intelligent Blank-Word Management:
- Auto-Conversion: Empty lines automatically become "Ghost" blocks when merged into other lines to preserve silence.
- Smart Normalization: Lines containing only blank words automatically revert to clean
[Empty]placeholders after structural operations.
- Advanced Timeline Integrity Tools:
- Upgraded Hot Fix: A one-click solution that now resolves word overlaps, fills timing gaps, and cleans up whitespace in a single pass.
- Fix Jumps (Push Sequential): A new cascading shift tool that resolves line collisions by pushing subsequent lines forward, preserving original durations and phrasing.
- Strict LRC Parsing: The engine now strictly enforces line boundaries during import, automatically clamping word timestamps to prevent "backward jumps."
- Edit Modal Enhancements:
- Smarter Deletion: Deleting words or placeholders (
\) in the text modal now automatically merges their duration into the preceding word to fill the gap. - Partial Joining: The "Join Words" tool now supports selected text ranges for granular syllable merging.
- Refined Blank Removal: The "Remove Blanks" tool now rejoins syllables perfectly without leaving orphaned spaces.
- Improved Tokenization: Special symbols (
\,") are now treated as independent tokens even when attached to words, preventing accidental word merging.
- Smarter Deletion: Deleting words or placeholders (
- UI/UX Refinements:
- Scroll Preservation: Maintains scroll position during all structural operations (merge, split, edit).
- Muted Ghost Visuals: Blank blocks now feature a muted background with a backdrop blur to make the background waveform less distracting.
- Performance Optimization: Waveform caching and 60fps rendering ensure a lag-free experience even on low-end devices.
- Toolbar Refinement: Synchronized action icons across the UI and added direct "Split" and "Smart Merge" buttons to the header toolbar. Improved mobile responsiveness for tool-heavy layouts.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |









