Welcome to the club of people who find out that the lyrics that they synced/created in MusicBee are in fact not properly synced.
Take this example:
Song: Thirteen Below by Tony Furtado.
I’ve synced it in MusicBee, in which it’s displayed perfectly on time:
[0:27.314]Shadows rolling cold into the ground
[0:32.174]Ancient hills hold the only jobs around
[0:38.174]Lightning, rattled bones and shattered stone
[0:42.914]When the air cleared, there were thirteen left alone
[0:48.785]Thirteen, thirteen, down a west virginia hole
[0:54.305]Thirty was a lucky man, twelve lost below
[1:00.065]
[1:11.910]Echoes of the lonely sinner's prayer
[1:16.710]Trembling hands tending letters of farewell
[1:22.710]Hours, one by one twelve souls to sleep
[1:27.390]End this day only one whose heart still beats
[1:33.450]Bringing distant word from rescue crews
[1:38.190]Families gathered, so hungry for good news
[1:44.000]Waiting, ringing hands and hopes in vain
[1:48.920]Then the company, spilling words like burning rain
[1:54.920]Thirteen, thirteen, down a west virginia hole
[2:00.260]Thirty was a lucky man, twelve lost below
[2:06.154]
[2:25.824]Thirteen, thirteen, down a west virginia hole
[2:31.104]Thirty was a lucky man, twelve lost below
[2:36.624]Thirteen, thirteen, down a west virginia hole
[2:41.964]Thirty was a lucky man, twelve lost below
[2:48.684]Twelve lost below
Now if I open this lrc file in SubtitleEdit, the wavebar quickly reveals that the lyric lines from MusicBee consistently start ~300ms too late.
This can easily be fixed by selecting the first line of the lyrics, placing the cursor where the first line ought to start and clicking on “Set start and offset the rest”.
Assuming that your sync in MusicBee was accurate overall, this fixes the lyrics timing (or rather the ~300ms offset introduced by MusicBee), leading to Symfonium displaying the lyrics perfectly timed.
However in MusicBee the lines will be highlighted a bit prematurely. I’ve thought about reporting this in the MusicBee forum but since the last few issues I raised there were completely ignored, I didn’t bother.
Sadly I only learned this after having synced my 500+ favorite songs in MusicBee.
After applying that offset and checking the timings of each line in SubtitleEdit (easy due to the wavebar) and then running my script lyrict.py -m tag_external on the resulting lyrics to add metadate from the corresponding song to the header, the properly synced lyrics look like this.
[ar:Tony Furtado]
[al:Thirteen]
[ti:Thirteen Below]
[length:03:59]
[00:27.091]Shadows rolling cold into the ground
[00:31.850]Ancient hills hold the only jobs around
[00:37.822]Lightning, rattled bones and shattered stone
[00:42.643]When the air cleared, there were thirteen left alone
[00:48.056]
[00:48.543]Thirteen, thirteen, down a west virginia hole
[00:53.926]Thirty was a lucky man, twelve lost below
[00:59.500]
[01:11.565]Echoes of the lonely sinner's prayer
[01:16.193]Trembling hands tending letters of farewell
[01:22.344]Hours, one by one twelve souls to sleep
[01:27.005]End this day only one whose heart still beats
[01:33.059]Bringing distant word from rescue crews
[01:37.761]Families gathered, so hungry for good news
[01:43.769]Waiting, ringing hands and hopes in vain
[01:48.473]Then the company, spilling words like burning rain
[01:54.324]
[01:54.539]Thirteen, thirteen, down a west virginia hole
[01:59.915]Thirty was a lucky man, twelve lost below
[02:05.394]
[02:25.432]Thirteen, thirteen, down a west virginia hole
[02:30.844]Thirty was a lucky man, twelve lost below
[02:35.825]
[02:36.273]Thirteen, thirteen, down a west virginia hole
[02:41.667]Thirty was a lucky man, twelve lost below
[02:48.305]Twelve lost below
[02:51.587]