View Issue Details

IDProjectCategoryView StatusLast Update
0016494MMW 5Tagging / organizing (properties / auto-tools)public2024-12-17 21:21
ReporterLudek Assigned To 
PriorityurgentSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
Product Version5.0 
Target Version2026Fixed in Version2024.1 
Summary0016494: Synced lyrics support (auto-scrolling in Playing and Preview)
DescriptionSome users are looking for support syncing lyrics to IRC files.
It is used e.g. by Fiio m5 music player

Full format description and support at https://en.wikipedia.org/wiki/LRC_(file_format)

ID3 Support Sync/Unsync Lyrics format:
SYLT = synchronized lyrics transcription
USLT = unsynchronized lyrics transcription
http://id3.org/id3v2.4.0-frames
http://id3.org/id3v2.3.0#Unsychronised_lyrics.2Ftext_transcription

http://wiki.hydrogenaud.io/index.php?title=Foobar2000:ID3_Tag_Mapping
http://professionaltag.sourceforge.net/ID3Controls.html
https://www.compuphase.com/software_sylteditor.htm
https://github.com/miracle2k/elrc-maker

https://www.google.com/search?q=enhanced+lrc+format&ie=utf-8&oe=utf-8

Apple:
https://support.apple.com/en-us/HT204459
https://appletoolbox.com/time%E2%80%91synced-lyrics-on-apple-music/
https://www.macworld.com/article/3430316/how-to-use-synchronized-lyrics-in-apple-music-on-your-iphone-ipad-or-apple-tv.html
Additional Informationhttps://www.mediamonkey.com/forum/viewtopic.php?t=96268
https://www.mediamonkey.com/forum/viewtopic.php?t=98684
https://www.mediamonkey.com/forum/viewtopic.php?t=99218
https://www.mediamonkey.com/forum/viewtopic.php?t=99687
https://www.mediamonkey.com/forum/viewtopic.php?t=93571
https://www.mediamonkey.com/forum/viewtopic.php?t=92891
https://www.mediamonkey.com/forum/viewtopic.php?t=83820
https://www.mediamonkey.com/forum/viewtopic.php?t=69887
https://www.mediamonkey.com/forum/viewtopic.php?t=69652
https://www.mediamonkey.com/forum/viewtopic.php?t=69329
https://www.mediamonkey.com/forum/viewtopic.php?t=57110
https://www.mediamonkey.com/forum/viewtopic.php?t=55896
https://www.mediamonkey.com/forum/viewtopic.php?t=53838
https://www.mediamonkey.com/forum/viewtopic.php?t=53129
https://www.mediamonkey.com/forum/viewtopic.php?t=52452
https://www.mediamonkey.com/forum/viewtopic.php?t=46484
https://www.mediamonkey.com/forum/viewtopic.php?t=38783
https://www.mediamonkey.com/forum/viewtopic.php?t=106582
TagsNo tags attached.
Fixed in build3100

Relationships

related to 0021181 closedLudek Add 'lrclib.net' and 'textyl.co' to Lyrics sources 
related to 0018460 newdrakinite Add MiniLyrics support 

Activities

lowlander

2024-03-22 16:43

developer   ~0074749

Last edited: 2024-03-22 17:16

MediaMonkey should fully support Synced (timed) Lyrics.

1) MediaMonkey should display Synced Lyrics
a) It should work as such in Preview and Lyrics panel, and Playing node set to Lyrics View. This includes auto-scrolling and highlighting of current text in song.
b) It would be nice if there was a Visualization with Synced Lyrics overlay available (one could envision a karaoke-like capability (maybe with a karaoke option in Player which lowers EQ on vocal range).
c) User should be able to set preference for Synced or Static Lyrics. A quick switch (from Context Menu) between preference should be available where Lyrics are displayed. Lyrics panel could show tabs if multiple Lyric types are available.

2) MediaMonkey should see external Lyrics files (LRC & TXT) when scanning files.
a) Properties > Lyrics should show these files (like external Artwork)
b) Auto-Organize/Organize Files/renaming files should be able to rename these files

3) MediaMonkey should be able to auto-embed external Lyrics.
On scanning, per user option, MediaMonkey should be able to embed external Lyrics into the file tags.
On Tools > Options > Library
- Embed external Lyrics on scanning
-- Only for Static Lyrics (ie. not for Synced Lyrics) [this would only embed Static Lyrics]
-- Remove external Lyrics files after embedding
--- Only for Static Lyrics (ie. not for Synced Lyrics) [this would only removed external Lyrics file for Static Lyrics]

4) MediaMonkey should allow for easy Synced Lyrics offset.
Sometimes Synced lyrics are too soon or too late. In Properties > Lyrics the user should be able to say advanced/delay Synced Lyrics by x ms. This would be saved to embedded and/or external Synced Lyrics.
a) Maybe, additionally, some form of slider adjuster on the Lyrics panel to help user adjust timing. When slider is used a save time offset to Lyrics button would show (save icon with such tooltip).

5) MediaMonkey should support Synced Lyrics lookup.
a) User should be able to set preference of Synced versus Static Lyrics (Tools > Options > Metadata lookup)
b) User should be able to set to save Lyrics embedded or as external files. Having separate settings for Synced and Static Lyrics would be best. Similar to Artwork:
 - Save lyrics to tag (if possible), otherwise to file folder
 - Save lyrics to file folder
 - Save lyrics to tag (if possible), and to file folder

6) MediaMonkey should support Sync of Synced Lyrics
Similar to Artwork, MediaMonkey should have options to Sync Synced/Static Lyrics embedded or as external files. Note that Sync not only happens to portable players, but also to external drives/Cloud services, so flexibility is key here.
a) If there are different external formats, offer options to user
b) If there are different embedded options, offer options to user

7) Add Unsynchronized Lyrics Files to Edit node
For when users have both external Lyrics files and embedded Lyrics. This probably should only compare Static to Static and Synced to Synced, ignoring differences between Synced and Static lyrics.

Ludek

2024-09-04 10:42

developer   ~0076821

Last edited: 2024-09-04 13:27

https://lrclib.net/
looks like a good lyrics source for both synced and unsynced lyrics

Getting synced lyrics from https://lrclib.net/ and auto-scroll then in Playing and Preview would be really nice and useful feature for the next MM version

Example query:
https://lrclib.net/api/get?artist_name=oasis&track_name=wonderwall&album_name=%28What%27s%20the%20Story%29%20Morning%20Glory%3F&duration=259

Added as Lyrics source (just plain lyrics for MM 2024) as 0021181

Ludek

2024-09-18 13:54

developer   ~0077024

Last edited: 2024-09-18 13:54

1a) is implemented in 3100
..the rest is TODO

8) Also Options > Metadata Lookup section
should split Lyrics sources to synced and unsynced and MM should look up for both types..

Ludek

2024-11-29 18:07

developer   ~0077742

Last edited: 2024-11-29 18:11

So far:
-- Scrolling of synced lyrics in Playing/Preview/Lyrics elements added in 3100
-- Scanning of *.LRC files added (once the filename is same as for the audio file)
-- Searching/lookup of synced lyrics added (added two sources for synced lyrics in Options > Metadata lookup > Sources)
-- Editing of 'Synced lyrics' in Properties added

TODO:
-- tagging support (Michal)
-- UI: currently synced lyrics are preferred when looking up lyrics, there should be an option for this though (Rusty/Ludek)
-- device sync support (Ludek)
image.png (746,070 bytes)

Ludek

2024-11-29 20:00

developer   ~0077744

Last edited: 2024-11-29 20:01

As for the UI: I am not fan of too many options, IMO:
-- *.LRC files could always be embedded to the database and saved to file tag, is there any downside? (LRC already in tag/DB should always has preference)
-- missing lyrics (that are looked up) should always be saved to the database and tag (and never to *.lrc file), is there any downside?
-- when looking up missing lyrics, both synced and unsynced variants should be looked up, user can always disable particular lyrics sources to adjust this

lowlander

2024-12-04 16:43

developer   ~0077759

8. Users should be able to set to re-lookup existing Lyrics if they're not Synced Lyrics. So if user has standard Lyrics this would force a lookup for Synced Lyrics whenever a Lyrics lookup is normally triggered (playback) or manually triggered.

Ludek

2024-12-04 21:46

developer   ~0077761

8) is implemented and added '[x] Prefer Synced Lyrics' checkbox to Options > Metadata Lookup

lowlander

2024-12-05 04:23

developer   ~0077764

9) Add Non-Synced Lyrics node to Files to Edit. Users need a way to find files with Lyrics that are not Synced Lyrics.

Ludek

2024-12-12 13:18

developer   ~0077798

Last edited: 2024-12-12 14:53

9) added 'Files To Edit' > 'Unknown Synced Lyrics' node

10) Device sync: added syncing of *.lrc files to file folder
UI (new checkbox) Device > Sync Profile > [..] Save synced lyrics to file folders

11) Added new checkbox '[..] Save Synced Lyrics to file folder'
to Options > Metadata Lookup

Ludek

2024-12-13 15:58

developer   ~0077802

Last edited: 2024-12-16 16:14

Further ideas from online document:
-- Preview should become undockable (like Lyrics) so Synced Lyrics/Visualizations can be shown on second monitor (in Undock Panels Addon)
-- Ability to set a background (Artwork, or a specific image) for timed Lyrics (for Karaoke setups).
-- Consider the ability to overlay Synced Lyrics on Visualizations (for Karaoke setups)

EDIT (by Ludek): I would rather see 'Playing' node (with the large Lyrics) undockable..
Added the ability as https://github.com/ventismedia/mediamonkey-addons/commit/6a7f230ab86f653db5dfeeecb62f434a3b1e350a

michal

2024-12-16 08:32

developer   ~0077807

Last edited: 2024-12-16 09:36

Tagging support implemented:
MP3, DSF, AIFF, WAV - used standard ID3v2 SYLC frame for synced lyrics, USLT for unsynced. WAV has ID3v2 tag embedded in de facto standard RIFF chunk "id3 ".
OGG, FLAC, MPC, APE - in case synced lyrics are not filled, used "Lyrics" tag like before. In case only synced lyrics are filled, used also "Lyrics" tag (to be most compatible with other sw). In case both lyrics and synced lyrics are filled, we use "Lyrics" tag for synced and "UNSYNCEDLYRICS" for unsynced lyrics. This seems to be de facto standard tag for this situation. Synced lyrics use timecodes in square brackets, this way they are detected.
MP4/M4A/M4B/MOV - similar logic like before, used "@lyr" and "com.apple.iTunes:UNSYNCEDLYRICS" atoms.
WMA - used "WM/Lyrics_Synchronized" tag for synced lyrics, this tag was seen in Kid3 sw. I did not find any other sw who would support synced lyrics in WMA, so used this. "WM/Lyrics" still used for not synced lyrics.

Ludek

2024-12-17 21:18

developer   ~0077809

OK, so everything mentioned is more or less implemented in 3100

Resolving for testing/feedback..