Time Synced Lyrics

HMMMM

Active member
Hi Does anyone one know how time-synced lyrics are created and how you get from basic lyrics to them ? I have heard AI can do this badly. I am presuming you can look for square bracket notation for verses and chorus and the get them into an array with something like $parts = preg_split('/(?=[A-Z])/', $lyrics, -1, PREG_SPLIT_NO_EMPTY); but this will only get you a basic line array which you can divide into the duration for timer. Is there a better way to do it ?
 
Well, I have been exploring this apparently. The way to do it is LRC but no one currently seems to support bulk Lyric timing with LRC.

I note this LRC file format can be in two timed formats encapsulated by [] or the later <>. The Line Time Tags are in the format [mm:ss.xx] where mm is minutes, ss is seconds and xx is hundredths of a second. It can also be added to MP3. I have asked Magic Lyric Finder If they are thinking of adding this LRC to their bulk mp3 changer as currently this just adds text lyrics which are not timed. Has anyone discovered an APP that will do this bulk addition? OR are we still awaiting the sites that are used by Magic Lyric Finder to catch up?

[00:12.00]Line 1 lyrics
[00:17.20]Line 2 lyrics

[00:21.10][00:45.10]Repeating lyrics (e.g. chorus)
...
[mm:ss.xx]last lyrics line

I found this code but it's very basic. I presume it could be sourced from elsewhere rather than fetching like the XML
Code:
<!DOCTYPE html>
<html>
<head>
<title>MP3 Lyrics</title> </head>
<body>
<audio controls> <source src="your-song.mp3" type="audio/mpeg">
</audio> <div id="lyrics"></div> <script>
// Load your LRC file (replace with actual path)
fetch('your-song.lrc') .then(response => response.text()) .then(data => { const lines = data.split('\n');
const lyricsDiv = document.getElementById('lyrics');
lines.forEach(line => { const match = line.match(/\(\d+:\d+\.\d+)\/);
if (match) { const timestamp = match[1];
const lyrics = match[2];
const p = document.createElement('p');
p.textContent = lyrics; lyricsDiv.appendChild(p);
 
Th LRCv2 is the format with <> and seems to be easily confused with medicine code. But was established for Karaoke and using more timing between words.

<00:12.00>Line 1 lyrics
<00:17.20>Line 2 lyrics
<00:20.20><00:30:00>Chorus lyrics

or <00:12:00>I<00:12:02>want<00:12:08>Rule etc.
 
Back
Top