ELRC - Enhanced Lyrics Tips

Hi, after some time messing around some lyrics files and some trial and error, I managed to come up with some tips on how to properly format your LRC lyrics into ELRC word-by-word lyrics files.

First I installed Chronograph which is a amazing linux-only LRC/ELRC editor that allows you to tap your keyboard to mark each word.
Then after that I edited the generated text with notepad and fine tuned some tags to allow for Backing Vocals and concurrent lines to appear like they do in Apple Music for example.

[00:07.26] <00:07.26> You <00:07.41> see <00:07.66> this <00:07.89> line?
[00:15.89]BG: <00:15.89> You <00:16.14> can <00:16.53> see <00:16.80> this <00:17.03> line
[00:19.54] <00:19.54> Now <00:19.77> see <00:20.04> another <00:20.27> one <00:20.52> this <00:20.98> time

Would output:

You can see this line?
You can see this line
Now see another one this time

It doesn’t matter if part of a BG line overlaps with other lines if the square bracket of each line is kept in the proper order
[00:07.26] > [00:15.89] > [00:19.54]

You can also set some color codes for female/male vocalists and duets

[00:00.000]M: <00:00.100>I <00:00.350>love <00:00.650>you
[00:03.000]F: <00:03.120>I <00:03.340>love <00:03.640>you <00:03.880>too
[00:06.000]D: <00:06.150>We <00:06.380>love <00:06.700>each <00:06.920>other

Outputs:
:blue_circle:I love you
:yellow_circle:I love you too
:purple_circle:We love each other

I’ll leave a practical example below:

[00:07.26] <00:07.26> Turn <00:07.41> the <00:07.66> lights <00:07.89> on!
[00:08.49]
[00:15.89] <00:15.89> Every <00:16.14> night <00:16.53> I <00:16.80> rush <00:17.03> to <00:17.25> my <00:17.58> bed
[00:19.54] <00:19.54> With <00:19.77> hopes <00:20.04> that <00:20.27> maybe <00:20.52> I'll <00:20.98> get <00:21.21> a <00:21.49> chance <00:21.95> to <00:22.18> see <00:22.42> you
[00:22.72] <00:22.72> When <00:23.05> I <00:23.31> close <00:23.55> my <00:23.78> eyes, <00:24.02> I'm <00:24.26> going <00:24.49> out <00:24.78> of <00:25.09> my <00:25.31> head
[00:27.62] <00:27.62> Lost <00:27.87> in <00:28.09> a <00:28.34> fairytale, <00:29.39> can <00:29.60> you <00:29.85> hold <00:30.11> my <00:30.35> hands <00:30.74> and <00:30.96> be <00:31.23> my <00:31.50> guide?
[00:31.98] <00:31.98> Clouds <00:32.48> filled <00:32.96> with <00:33.50> stars <00:34.01> cover <00:35.03> your <00:35.53> skies
[00:38.37] <00:38.37> And <00:38.52> I <00:38.79> hope <00:39.06> it <00:39.29> rains, <00:40.39> you're <00:40.94> the <00:41.44> perfect <00:42.37> lullaby
[00:45.56]BG: <00:45.56> What <00:45.80> kind <00:46.03> of <00:46.25> dream <00:46.46> is <00:46.66> this?
[00:46.43] <00:46.43> You <00:46.65> can <00:46.87> be <00:47.09> a <00:47.28> sweet <00:47.79> dream <00:48.81> or <00:49.11> a <00:49.33> beautiful <00:50.08> nightmare
[00:51.83] <00:51.83> Either <00:52.05> way <00:52.27> I <00:53.51> don't <00:53.74> wanna <00:53.96> wake <00:54.23> up <00:54.47> from <00:54.74> you
[00:54.59]BG: <00:54.59> (turn <00:54.72> the <00:54.85> lights <00:55.06> on)
[00:55.26] <00:55.26> Sweet <00:55.74> dream <00:56.72> or <00:56.96> a <00:57.21> beautiful <00:57.97> nightmare
[00:59.42] <00:59.42> Somebody <01:00.14> pinch <01:00.48> me
[01:01.35] <01:01.35> Your <01:01.63> love's <01:01.86> too <01:02.10> good <01:02.32> to <01:02.52> be <01:02.75> true
[01:02.43]BG: <01:02.43> (turn <01:02.58> the <01:02.72> lights <01:02.94> on)
[01:03.33] <01:03.33> My <01:03.59> guilty <01:04.12> pleasure, <01:04.62> I <01:04.84> ain't <01:05.11> going <01:05.50> nowhere
[01:06.60] <01:06.60> Baby <01:06.82> 'long <01:07.06> as <01:07.29> you're <01:07.49> here, <01:08.48> I'll <01:08.69> be <01:08.92> floating <01:09.18> on <01:09.63> air
[01:10.33]BG: <01:10.33> 'cause <01:10.58> you're <01:10.82> mine
[01:10.34] <01:10.34> You <01:10.34> can <01:10.57> be <01:10.78> a <01:11.05> sweet <01:11.54> dream <01:12.55> or <01:12.74> a <01:13.03> beautiful <01:13.78> nightmare
[01:15.48] <01:15.48> Either <01:15.70> way, <01:16.18> I <01:17.19> don't <01:17.41> wanna <01:17.62> wake <01:17.90> up <01:18.17> from <01:18.44> you
[01:18.45]BG: <01:18.45> (turn <01:18.31> the <01:18.46> lights <01:18.69> on)
[01:18.93] <01:18.93> I <01:19.12> mention <01:19.36> you <01:19.64> when <01:19.91> I <01:20.13> say <01:20.38> my <01:20.61> prayers
[01:22.53] <01:22.53> I <01:22.76> wrap <01:23.08> you <01:23.31> around <01:23.72> all <01:23.93> of <01:24.15> my <01:24.36> thoughts
[01:24.98] <01:24.98> Boy, <01:25.28> you <01:25.49> my <01:25.76> temporary <01:26.71> high
[01:26.53] <01:26.53> I <01:26.77> wish <01:27.01> that <01:27.26> when <01:27.47> I <01:27.69> wake <01:27.91> up <01:28.18> you're <01:28.42> there
[01:30.45] <01:30.45> To <01:30.67> wrap <01:30.91> your <01:31.14> arms <01:31.38> around <01:31.65> me <01:31.90> for <01:32.21> real
[01:32.83] <01:32.83> And <01:33.09> tell <01:33.30> me <01:33.51> you'll <01:33.75> stay <01:33.98> by <01:34.20> my <01:34.41> side
[01:35.08] <01:35.08> Clouds <01:35.58> filled <01:36.04> with <01:36.49> stars <01:36.98> cover <01:38.01> your <01:38.47> skies <01:39.07> (cover <01:39.58> your <01:40.43> skies)
[01:41.39] <01:41.39> And <01:41.55> I <01:41.79> hope <01:42.02> it <01:42.27> rains, <01:43.39> you're <01:43.97> the <01:44.46> perfect <01:45.40> lullaby
[01:48.57]BG: <01:48.57> What <01:48.85> kind <01:49.09> of <01:49.34> dream <01:49.58> is <01:49.79> this?
[01:49.40] <01:49.40> You <01:49.65> can <01:49.86> be <01:50.09> a <01:50.39> sweet <01:50.80> dream <01:51.81> or <01:52.10> a <01:52.31> beautiful <01:53.01> nightmare
[01:54.84] <01:54.84> Either <01:55.03> way <01:55.28> I <01:56.46> don't <01:56.69> wanna <01:56.91> wake <01:57.20> up <01:57.42> from <01:57.69> you
[01:57.52]BG: <01:57.52> (turn <01:57.67> the <01:57.80> lights <01:57.99> on)
[01:58.05] <01:58.05> Sweet <01:58.57> dream <01:59.63> or <01:59.88> a <02:00.12> beautiful <02:00.91> nightmare
[02:02.38] <02:02.38> Somebody <02:03.13> pinch <02:03.45> me
[02:04.40] <02:04.40> Your <02:04.66> love's <02:04.89> too <02:05.15> good <02:05.36> to <02:05.57> be <02:05.86> true
[02:05.35]BG: <02:05.35> (turn <02:05.51> the <02:05.62> lights <02:05.85> on)
[02:06.32] <02:06.32> My <02:06.54> guilty <02:07.06> pleasure, <02:07.58> I <02:07.78> ain't <02:08.08> going <02:08.46> nowhere
[02:09.54] <02:09.54> Baby <02:09.75> 'long <02:10.00> as <02:10.23> you're <02:10.53> here, <02:11.43> I'll <02:11.68> be <02:11.89> floating <02:12.21> on <02:12.64> air
[02:13.03]BG: <02:13.03> 'cause <02:13.32> you're <02:13.58> mine
[02:13.13] <02:13.13> You <02:13.34> can <02:13.54> be <02:13.77> a <02:14.05> sweet <02:14.47> dream <02:15.37> or <02:15.68> a <02:15.94> beautiful <02:16.59> nightmare
[02:18.37] <02:18.37> Either <02:18.59> way, <02:18.81> I <02:20.03> don't <02:20.30> wanna <02:20.53> wake <02:20.79> up <02:21.03> from <02:21.34> you
[02:21.14]BG: <02:21.14> (turn <02:21.30> the <02:21.49> lights <02:21.66> on)
[02:22.11] <02:22.11> Tattoo <02:23.25> your <02:23.80> name <02:24.26> across <02:25.26> my <02:25.76> heart
[02:28.53] <02:28.53> So <02:28.70> it <02:28.97> will <02:29.20> remain
[02:30.54] <02:30.54> Not <02:30.74> even <02:31.74> death <02:32.23> could <02:32.70> make <02:33.18> us <02:33.68> part
[02:35.88]BG: <02:35.88> What <02:36.12> kind <02:36.40> of <02:36.65> dream <02:36.89> is <02:37.15> this?
[02:36.62] <02:36.62> You <02:36.87> can <02:37.10> be <02:37.36> a <02:37.62> sweet <02:38.06> dream <02:39.03> or <02:39.27> a <02:39.49> beautiful <02:40.28> nightmare
[02:41.98] <02:41.98> Either <02:42.20> way <02:42.45> I <02:43.66> don't <02:43.90> wanna <02:44.12> wake <02:44.39> up <02:44.61> from <02:44.88> you
[02:44.69]BG: <02:44.69> (turn <02:44.83> the <02:44.98> lights <02:45.19> on)
[02:45.51] <02:45.51> Sweet <02:45.93> dream <02:46.92> or <02:47.22> a <02:47.42> beautiful <02:48.16> nightmare
[02:49.57] <02:49.57> Somebody <02:50.32> pinch <02:50.76> me
[02:51.55] <02:51.55> Your <02:51.81> love's <02:52.03> too <02:52.28> good <02:52.53> to <02:52.80> be <02:53.03> true
[02:52.60]BG: <02:52.60> (turn <02:52.74> the <02:52.90> lights <02:53.10> on)
[02:53.56] <02:53.56> My <02:53.81> guilty <02:54.29> pleasure, <02:54.80> I <02:55.11> ain't <02:55.30> going <02:55.78> nowhere
[02:56.74] <02:56.74> Baby <02:56.96> 'long <02:57.35> as <02:57.53> you're <02:58.04> here, <02:58.68> I'll <02:58.96> be <02:59.20> floating <02:59.45> on <02:59.72> air
[03:00.47]BG: <03:00.47> 'cause <03:00.75> you're <03:00.98> mine
[03:00.48] <03:00.48> You <03:00.49> can <03:00.73> be <03:00.97> a <03:01.24> sweet <03:01.72> dream <03:02.70> or <03:02.92> a <03:03.17> beautiful <03:03.94> nightmare
[03:05.64] <03:05.64> Either <03:05.87> way, <03:06.31> I <03:07.32> don't <03:07.58> wanna <03:07.83> wake <03:08.08> up <03:08.33> from <03:08.58> you
[03:08.34]BG: <03:08.34> (turn <03:08.47> the <03:08.60> lights <03:08.85> on)
[03:13.54] <03:13.54> Either <03:13.73> way, <03:14.20> I <03:15.21> don't <03:15.65> wanna <03:15.83> wake <03:16.12> up <03:16.44> from <03:16.69> you

Just save as filename.lrc (filename matching exactly the song file of this song) timestamps match the song available to purchase from itunes.

1 Like

Please edit the last one to remove the names at start, I guess with the word times it won’t be auto find, but better be safe.

1 Like

Have you tested changing how Symfonium highlights this minimal version of enhanced lyrics?

Currently there is no progress/highlighting within each word for this style of enhanced lyrics. Each word changes from highlighted to unhighlighted instantly at the start time.

Taking this example from above:

[00:07.26] <00:07.26> Turn <00:07.41> the <00:07.66> lights <00:07.89> on!
[00:08.49]

Couldn’t you use
<00:07.26> as start for Turn, <00:07.41> as end
<00:07.41> as start for the, <00:07.66> as end
<00:07.66> as start for lights, <00:07.89> as end
<00:07.89> as start for on!, [00:08.49] as end
to highlight them the same way as if they were in this syntax?

[00:07.26] <00:07.26> Turn <00:07.41> <00:07.41> the <00:07.66> <00:07.66> lights <00:07.89> <00:07.89> on! <00:08.49>
[00:08.49]

While there might be some cases where this could yield odd results (for example if there is a long gap after the last word of a line and the start of the next line, leading to the last word being highlighted slowly and for far too long), I think in most cases it would yield a more pleasing result than the current highlighting. And the possible problem with highlighting a single word for too long could be lessened by setting a max. highlighting duration. This would also fix the problem of the last word of the last line possibly not having an ending time.

Those are word sync and highlight the word. Guessing the speed of the singer on the word or eventual pauses between words will most of the time leads to not precise enough and will trigger more problems.

If you want syllable style highlight you use syllable lyrics, if you want word lyrics you use word lyrics.

Words are not really highlighted at the moment. The first word of each line is instantly greyed out and the currently sung word is always grey (same as the previous already sung words) while the remaining words that come next are highlighted (white).

Imho for proper highlighting the currently sung word should be bright while already sung words and words that are yet to come should have different brightness values (already sung = dark grey, next words = light grey, current word = white for example).

I’ve just tested it and I don’t think it’s as much of a problem except for edge cases. Usually a sung word is already short enough that it doesn’t really matter if it’s syllable synced or simply highlighted from start time to end time.

I think highlighting the words by taking the start timestamp and the next timestamp for each word is superior to the current on/off display. However, real syllable synced lyrics will be even better.

If anyone else wants word timed lyrics to be displayed like syllable timed lyrics, here’s how:

Example lyrics:

[00:01.219] <00:01.219> Please <00:03.065> don't <00:03.766> reproach <00:04.452> me
[00:06.768] <00:06.768> For, <00:08.567> for <00:09.034> how <00:09.434> empty
[00:12.189] <00:12.189> My <00:12.655> life <00:14.009> has <00:14.770> become
[00:16.564]
[00:17.293] <00:17.293> I <00:17.787> don't <00:18.180> know <00:19.075> what <00:19.615> really <00:20.549> happened
[00:23.122] <00:23.122> I <00:23.334> watched <00:23.782> your <00:25.169> disappointment
[00:28.159] <00:28.159> At <00:28.454> being <00:29.094> misunderstood
[00:34.460] <00:34.460> I <00:39.813> forgive <00:40.459> you
[00:44.742]
[00:48.439] <00:48.439> Oh, <00:50.110> something <00:51.203> metal
[00:53.999] <00:53.999> Tearing <00:56.206> my <00:56.689> stomach <00:57.552> out
[00:59.261] <00:59.261> If <00:59.487> you <00:59.865> think <01:00.591> ill <01:01.939> of <01:02.352> me
[01:04.336]
[01:05.032] <01:05.032> Can <01:05.498> you, <01:07.144> can <01:07.527> you <01:08.524> forgive <01:09.469> me?
[01:11.801] <01:11.801> Forgive <01:12.709> me
[01:13.608] <01:13.608> Can <01:13.973> you, <01:16.404> can <01:16.852> you <01:17.830> forgive <01:18.777> me
[01:21.065] <01:21.065> Too, <01:26.261> too?
[01:29.511]
[01:31.837] <01:31.837> I <01:32.270> tried <01:33.956> to <01:34.196> learn <01:34.609> your <01:35.125> language
[01:37.633] <01:37.633> But <01:37.919> fell <01:38.159> asleep <01:40.244> half-undressed
[01:43.500] <01:43.500> Unrecognizable <01:48.484> to <01:48.805> myself
[01:51.945]

In Notepad++ (or whichever editor that supports regex) you have to perform two global replacements.

Step1:
Regex:

(?<=\d{2}>)(.*?)(<\d{1,2}:\d{2}\.\d{2,3}>)

Replace with:

$1$2 $2

This duplicates the inner timestamps to create dummy end times, yielding this:

[00:01.219] <00:01.219> Please <00:03.065> <00:03.065> don't <00:03.766> <00:03.766> reproach <00:04.452> <00:04.452> me
[00:06.768] <00:06.768> For, <00:08.567> <00:08.567> for <00:09.034> <00:09.034> how <00:09.434> <00:09.434> empty
[00:12.189] <00:12.189> My <00:12.655> <00:12.655> life <00:14.009> <00:14.009> has <00:14.770> <00:14.770> become
[00:16.564]
[00:17.293] <00:17.293> I <00:17.787> <00:17.787> don't <00:18.180> <00:18.180> know <00:19.075> <00:19.075> what <00:19.615> <00:19.615> really <00:20.549> <00:20.549> happened
[00:23.122] <00:23.122> I <00:23.334> <00:23.334> watched <00:23.782> <00:23.782> your <00:25.169> <00:25.169> disappointment
[00:28.159] <00:28.159> At <00:28.454> <00:28.454> being <00:29.094> <00:29.094> misunderstood
[00:34.460] <00:34.460> I <00:39.813> <00:39.813> forgive <00:40.459> <00:40.459> you
[00:44.742]
[00:48.439] <00:48.439> Oh, <00:50.110> <00:50.110> something <00:51.203> <00:51.203> metal
[00:53.999] <00:53.999> Tearing <00:56.206> <00:56.206> my <00:56.689> <00:56.689> stomach <00:57.552> <00:57.552> out
[00:59.261] <00:59.261> If <00:59.487> <00:59.487> you <00:59.865> <00:59.865> think <01:00.591> <01:00.591> ill <01:01.939> <01:01.939> of <01:02.352> <01:02.352> me
[01:04.336]
[01:05.032] <01:05.032> Can <01:05.498> <01:05.498> you, <01:07.144> <01:07.144> can <01:07.527> <01:07.527> you <01:08.524> <01:08.524> forgive <01:09.469> <01:09.469> me?
[01:11.801] <01:11.801> Forgive <01:12.709> <01:12.709> me
[01:13.608] <01:13.608> Can <01:13.973> <01:13.973> you, <01:16.404> <01:16.404> can <01:16.852> <01:16.852> you <01:17.830> <01:17.830> forgive <01:18.777> <01:18.777> me
[01:21.065] <01:21.065> Too, <01:26.261> <01:26.261> too?
[01:29.511]
[01:31.837] <01:31.837> I <01:32.270> <01:32.270> tried <01:33.956> <01:33.956> to <01:34.196> <01:34.196> learn <01:34.609> <01:34.609> your <01:35.125> <01:35.125> language
[01:37.633] <01:37.633> But <01:37.919> <01:37.919> fell <01:38.159> <01:38.159> asleep <01:40.244> <01:40.244> half-undressed
[01:43.500] <01:43.500> Unrecognizable <01:48.484> <01:48.484> to <01:48.805> <01:48.805> myself
[01:51.945]

However Symfonium also does not properly use the next line timestamp as the end timestamp of the last word, so this second step is needed:

Step 2:
Regex:

(>[^>]+?) *(\r\n|\r|\n)\[(\d{2}:\d{2}\.\d{2,3})\]

Replace with:

$1 <$3>$2[$3]

This takes the timestamp of the next line and uses it as the end timestamp of the last word in each line, yielding this:

[00:01.219] <00:01.219> Please <00:03.065> <00:03.065> don't <00:03.766> <00:03.766> reproach <00:04.452> <00:04.452> me <00:06.768>
[00:06.768] <00:06.768> For, <00:08.567> <00:08.567> for <00:09.034> <00:09.034> how <00:09.434> <00:09.434> empty <00:12.189>
[00:12.189] <00:12.189> My <00:12.655> <00:12.655> life <00:14.009> <00:14.009> has <00:14.770> <00:14.770> become <00:16.564>
[00:16.564]
[00:17.293] <00:17.293> I <00:17.787> <00:17.787> don't <00:18.180> <00:18.180> know <00:19.075> <00:19.075> what <00:19.615> <00:19.615> really <00:20.549> <00:20.549> happened <00:23.122>
[00:23.122] <00:23.122> I <00:23.334> <00:23.334> watched <00:23.782> <00:23.782> your <00:25.169> <00:25.169> disappointment <00:28.159>
[00:28.159] <00:28.159> At <00:28.454> <00:28.454> being <00:29.094> <00:29.094> misunderstood <00:34.460>
[00:34.460] <00:34.460> I <00:39.813> <00:39.813> forgive <00:40.459> <00:40.459> you <00:44.742>
[00:44.742]
[00:48.439] <00:48.439> Oh, <00:50.110> <00:50.110> something <00:51.203> <00:51.203> metal <00:53.999>
[00:53.999] <00:53.999> Tearing <00:56.206> <00:56.206> my <00:56.689> <00:56.689> stomach <00:57.552> <00:57.552> out <00:59.261>
[00:59.261] <00:59.261> If <00:59.487> <00:59.487> you <00:59.865> <00:59.865> think <01:00.591> <01:00.591> ill <01:01.939> <01:01.939> of <01:02.352> <01:02.352> me <01:04.336>
[01:04.336]
[01:05.032] <01:05.032> Can <01:05.498> <01:05.498> you, <01:07.144> <01:07.144> can <01:07.527> <01:07.527> you <01:08.524> <01:08.524> forgive <01:09.469> <01:09.469> me? <01:11.801>
[01:11.801] <01:11.801> Forgive <01:12.709> <01:12.709> me <01:13.608>
[01:13.608] <01:13.608> Can <01:13.973> <01:13.973> you, <01:16.404> <01:16.404> can <01:16.852> <01:16.852> you <01:17.830> <01:17.830> forgive <01:18.777> <01:18.777> me <01:21.065>
[01:21.065] <01:21.065> Too, <01:26.261> <01:26.261> too? <01:29.511>
[01:29.511]
[01:31.837] <01:31.837> I <01:32.270> <01:32.270> tried <01:33.956> <01:33.956> to <01:34.196> <01:34.196> learn <01:34.609> <01:34.609> your <01:35.125> <01:35.125> language <01:37.633>
[01:37.633] <01:37.633> But <01:37.919> <01:37.919> fell <01:38.159> <01:38.159> asleep <01:40.244> <01:40.244> half-undressed <01:43.500>
[01:43.500] <01:43.500> Unrecognizable <01:48.484> <01:48.484> to <01:48.805> <01:48.805> myself <01:51.945>
[01:51.945]

However it would be cleaner if Symfonium could (optionally) directly display word timed lyrics like this. All these 2 regexes do is duplicate existing timestamps, there’s 0 new information.

I’ve recorded how Symfonium displays the original word timed lyrics, the intermediary form without end times for the last word of each line and the final version with copied end times for each word.

I think version 3 yields by far the best display and I prefer it by miles to version 1.
Here’s a Download link to the 3 screen recordings (sadly mp4s cannot be uploaded here):

Password:

elrc_tests_655321

The start of the next word does not mean the previous word has ended just before, there can be long pauses, background singing, …
Same for the end of line, not every song have empty lines to show the end of the word and do the split.

You have tested a couple of songs, there’s way too many edges cases that makes inventing the delays worse than not.

In which case the lyrics are poorly synced and will be displayed poorly, even in the current implementation of only making the currently sung word grey. If one word is grey for too long or if it’s highlighted from left to right slowly is not better or worse either way imho.

Which is why the start of the last word should be compared to the next timestamp. If the next line starts earlier (background vocals), discard it and use a default duration like you already do when there is no end time. And if the next line starts >10s later (for example), also discard the timestamp and use the default duration.

I think this would work really well for 95% of lyrics and fairly well for the rest with a few outliers that are simply poorly synced.

But I understand if you don’t think it’s worth the effort.
In that case I’ll just turn my regexes into a script to edit word timed lyrics so they are highlighted like I prefer them. :grinning_face:

This is all about correctness, 20% of bad result and 5% of ugly one is not something that is acceptable. Being at the middle of a word when there’s a long pause is just not acceptable, same for the last word. With your 10 second max, that would mean the first letter of the word would barely be colored while it’s already ended.

The current system colors what is passed, and so for word coloring does it as the word start.

You need to think about other languages where a single char can be a long full word or just a char.

There’s so many cases where there’s issues to generate fake syllable style from non proper start / end values. And no magic formula that works for most non ASCII languages.

1 Like

I’d prefer it as it still signals when the next word/line will start but I see how other people might hate it.

My main problem with the current system for word timed lyrics is that it does not color what is passed. It colors/greys out what is currently sung as it starts to be sung. That’s counterintuitive for me. It’s like greying out the entire line that’s being sung at the start and having the next one highlighted instead for normal synced lyrics.

Hence my suggestion to change the highlighting to:
dark grey = already sung
white = sung at the moment
light grey = still to be sung

Having the next words highlighted while there is no differentiation between already sung words and the currently sung word makes no sense to me.
Another downside is that 1-word lines are never highlighted in the current implementation. They instantly switch to greyed out.

That’s a good point, I had not considered symbol languages.

If I end up finding the time to write that I’ll post the result here if you don’t mind, so users can change their lyrics if they want to.

Question by any chance is there any plugins for beets or any program that can go through my files and make these lyrics automatically I have the basic lrc files for my songs already but. I would love to switch to apple music lyrics