New Features:
- Convert your library's `.txt` songs to LyricDisplay Songs in one step from Preferences → File Handling → Indexed Lyrics Folders. Each song is saved as a new `.ldsong` file next to the original. Your `.txt` files are kept, `.lrc` files and songs that already have a `.ldsong` version are skipped, and any grouping you set for a song is kept.
- New flash option for the time display: Off, In the critical window, In the critical window and after time runs out, or Always while a timer runs. After time runs out, the display keeps flashing until the timer is reset.
- The LyricDisplay Dock now supports the Control Panel's keyboard shortcuts, including line navigation, presentation clickers, show/hide output, section jumps, search, and setlist navigation. They pause while the dock's editor, setlist, or output settings are open, and are listed in the keyboard shortcuts help.
- Choose which audio device plays notification sounds in Preferences → General → Toast Sound Output, for example headphones on the operator's desk, so the sounds stay off a stream or PA that captures the computer's audio.
Improvements:
- Lyrics from Open Hymnal and all other online lyrics providers now load as LyricDisplay Songs, with verses, choruses, and play order kept, plus the song's title, artist, album, and year. Timestamped lyrics still load as `.lrc`.
- Lyrics submitted from a mobile or browser controller and approved on the desktop, and songs created or edited in the LyricDisplay Dock, are now saved as LyricDisplay Songs.
- Section headings such as `[Chorus]` are now kept when imported text becomes a LyricDisplay Song, whatever your section heading parsing setting is.
Bug Fixes:
- Fixed the mobile and browser controller being cut off on phones with short screens. The page now fits the visible screen and scrolls when needed, and the Previous/Next controls stay at the bottom.
- Fixed repeated "Timer update not applied" warnings and a flickering colour when dragging a colour picker or slider in the time display settings. Real conflicts with another controller still show the warning.
- Fixed the LyricDisplay Dock playing notification sounds inside OBS.
One year of LyricDisplay. Thank you to everyone who has used it, reported issues, and shared it with their teams.
New Features:
- New structured song editor. Write songs section by section, with each line marked as a lyric, translation, or stage-only note. Songs are saved as LyricDisplay Songs (`.ldsong`), so their sections and slides display exactly the same on every computer, whatever the parsing settings.
- Paste lyrics copied from anywhere into the song editor and they are laid out into sections and slides for you to check before saving.
- Set a song's play order in the song editor, so a chorus written once can play several times.
- The song editor's slide preview draws each slide exactly as your output will, at the screen resolution you choose, with zoom and a switch for every lyric output, including custom outputs.
- The classic text canvas is one click away in the song editor and is still used for `.txt` and `.lrc` files.
- New song library at `Documents/LyricDisplay/Lyrics`. It is created and indexed automatically, is the default home for new songs and imports, and survives resets and reinstalls.
- EasyWorship and PowerPoint imports now create LyricDisplay Songs, keeping each song's title, writers, copyright, and CCLI number.
- Song Credits: each output can show a footer with the song title, writers, copyright, CCLI song number, and your CCLI licence number (set it in Preferences → General).
- Presentation clicker support: Page Up/Page Down and the arrow keys move between lines, and the blank-screen button (B or `.`) shows or hides the output.
- Section jumps: Shift + C, V, B, P, T, I, O, or E jumps to the next Chorus, Verse, Bridge, Pre-Chorus, Tag, Intro, Outro, or Ending. Also available over OSC with `/lyricdisplay/section`.
- The same song can now appear more than once in a setlist, for example as a reprise.
- Write a Bridge, Tag, Pre-Chorus, or numbered verse once and repeat it later with just its marker, as you already could with a chorus.
- Mobile and browser controller: large Previous/Next buttons, presentation clicker support, and the screen stays awake during a service where the browser allows it.
Improvements:
- Refreshed, production-style interface with neutral graphite colours. Dark mode is now the default for new installs.
- The live line is marked in red with a Live tally while on air, or Cued when the output is off. A status bar under the lyrics shows the live line, the next line, and the time.
- Preview Outputs and the projected Preview window now draw every output, the stage display, and the time display directly. Previews update instantly and use far less memory than before.
- The file navigator now indexes, searches, and previews LyricDisplay Songs, and lists songs by name.
- The External Control preferences now list every OSC address.
- Dialogs load when first opened, making startup faster.
- Tag and Ending are now recognised as section headings for existing users.
Bug Fixes:
- Fixed a malformed message from a connected controller being able to stop the built-in server.
- Fixed a running service timer resetting when the built-in server restarted.
- Fixed EasyWorship and PowerPoint imports showing their Title, Author, and Copyright lines as lyrics.
- Fixed Ctrl+C clearing the output when several lyric lines were selected. It now copies them.
- Fixed Next Song wrapping from the last song back to the first. It now stops at the end, and the stage display shows "End of setlist".
- Fixed OSC and MIDI next/previous putting section titles such as `[Chorus]` on screen when Skip Section Titles is on.
- Fixed `[Chorus 2]` overwriting `[Chorus]` when both are written out.
- Fixed desktop keyboard shortcuts being active in the browser controller, which blocked browser refresh, DevTools, and zoom.
- Fixed the full-screen image element showing at the wrong size in the Lyric Video Studio preview.
Dev:
- Updated to Electron 45 and updated all dependencies.
- Every built-in server event handler is now isolated, so one failing handler cannot take down the session.
- Tests now run on every push.
- The LyricDisplay Song format is documented in `docs/LDSONG_FORMAT.md`.
Bug Fixes:
- Fixed blank lines being grouped with lyric lines.
- Fixed song canvas Cleanup leaving multiple blank lines behind.
- Fixed time display digits being cut off with an ellipsis when switching between the timer and the clock during a running schedule
- Fixed Schedule Creator chips rounding fractional durations
- Fixed the "Network address changed" alert appearing when the address had not actually changed, on computers with more than one static IP address.
- Fixed some Open Hymnal search results opening a different version of the hymn than the one selected.
Improvements:
- Display disconnection toasts are now shorter and close on their own after 10 seconds, and displays that disconnect together share one toast instead of stacking.
- Added 42 hymns from the Open Hymnal Project to online lyrics search.
Dev:
- Updated dependencies, including security fixes for the built-in server.
Improvements:
- Added Windows Firewall allow access option in NSIS installer
- Changed display disconnection alerts from modals to toasts to improve operational experience
Bug Fixes:
- Fix updater window, unifying controls for more stable behaviour.
- Fix update available modal to address older release notes showing up later and causing layout jumps
Bug Fixes:
- Addressed timer display bug with a more robust approach using createLatestElementRef for managing auto-fit.
- Fixed sectioned lyrics list gap bug for long lyric files that triggered virtualization render path
- Fixed file navigator bug where enter key failed to load song into control panel/canvas after mouse clicked was used.
Added Features:
- Added port configuration in advanced user preferences to enable users change the default backend port. Changing backend port will require app restart and changes are reflected across the board.
- Added new, cleaner toast sounds.
Bug Fixes:
- Fixed Issue #24 by expanding parser and formatter all round to accept standard timestamp patterns which had triple-digit milliseconds.
- Fixed time display bug where old/cached font size could prevail even when display routing/external coordinates change.
Critical Bug Fix
- Fixed unzipper error causing NDI companion installation to fail in app
Added Features & Improvements:
- Added offline MilkDrop visualizer backgrounds, powered by Butterchurn, to Lyric Video Studio and fullscreen lyric outputs. Lyric videos can react to attached audio, while live outputs animate continuously without requiring an internet connection. Includes 26 curated presets, specific or repeatable random selection, sensitivity and dimming controls, multiple render-quality levels, live presentation and MP4 export support.
- Added a Connected Outputs strip to the Control Panel, showing which Lyric, Stage and Time displays are open, whether each output is live, and how many instances are connected.
- Added Reset LyricDisplay to Advanced Preferences. This allows users to clear all preferences, templates, indexes, cached data, logs and other local app data before automatically restarting as a fresh installation. Lyric files and documents stored outside the app data folder are not deleted.
- Redesigned the Output and Stage Display template experience with more accurate visual cards, expanded hover previews, clearer built-in and user-template organization, improved selection feedback and a more responsive layout.
- Refined the Output and Stage Display settings panels for improved readability, accessibility and visual consistency.
Bug Fixes:
- Fixed Create LRC from Lyric Video Studio leaving the video workflow. Newly created or edited lyrics now return to Lyric Video Studio and load automatically after saving.
- Fixed bundled image and video backgrounds failing to export from packaged LyricDisplay builds.
- Fixed LRC metadata tags being treated as searchable or displayable lyric content in previews, timelines and exported videos. Also added consistent support for the `[id:]` metadata tag.
- Fixed long and hour-format timer values being clipped in the Timer Control preview. Timer text now automatically fits the available space in both the Control Panel preview and projected Time Display.
- Fixed removed custom output routes remaining available or continuing to receive updates after deletion.
Developer Changes:
- Hardened ZIP extraction used by NDI Companion and Lyric Video FFmpeg installations against path traversal, unsafe symlinks and archive entries that attempt to escape their destination.
- Improved socket authentication and output-presence management, including safer handling of stale, duplicate and disconnected output instances.
- Improved native-module rebuilding and packaged runtime verification across Windows, macOS and Linux.
Added Features & Improvements:
- Added a visual gradient angle control, alongside numeric input and a clearer Reverse action, for easier background gradient adjustment.
- Improved Stage Display lyric transitions for smoother movement between previous, current and next lines while respecting the configured transition speed.
Bug Fixes:
- Fixed select fields retaining focus after an option is selected across the app.
- Fixed Always Show Background not working in fullscreen mode.
- Fixed configured output Toggle On animations incorrectly using the reverse state of the line-change animation.
- Fixed media asset references being incorrectly reported as missing in the Production Readiness Check.
- Fixed Stage Display background colours not applying correctly on projected fullscreen windows.
- Fixed custom messages not fully using the available screen space in fullscreen Stage Display.
Developer Changes:
- Isolated development runtime data and credential storage from packaged builds.
- Added backend ownership verification and safer handling for backend and OSC port collisions.