Correct display of translated lyrics

Feature description:

Correctly show translated lyrics when there are two lines of lyrics with the same timestamp, not just the latter line。

Problem solved:

Hi, Symfonium’s highly customizable UI is simply fantastic! I’m a Chinese user and I found some glitches when I was looking at the lyrics. When listening to songs in foreign languages we often need translations to understand the lyrics more accurately, so Chinese users often use the following format when editing the lyrics metadata:

[00:10.358]There’s a feeling, there’s a fire
[00:10.358]烈火伴随着情绪
[00:12.918]There’s a whisper preaching to the choir
[00:12.918]回响在唱诗班低声讲道声中

So music players often highlight two lines of lyrics, as in the picture below, but in Symfonium it only highlights the latter line, as in the picture below, I’ve looked through the settings but can’t find the option, maybe I’ve overlooked something?

Brought benefits:

Enabling better understanding by non-native speakers of the song

Other application solutions:

 

 

Additional description and context:

 

 

Screenshots / Mockup:

 

   

This is an abuse of the format. You should just not put timestamp on the second line to get them displayed as you want.

1 Like
[00:10.358]There’s a feeling, there’s a fire
烈火伴随着情绪
[00:12.918]There’s a whisper preaching to the choir
回响在唱诗班低声讲道声中

If you save them like this, at least Symfonium, MusicBee and lms will parse them as multi-line and display them correctly instead of directly skipping to the 2nd line of each pair with identical timestamps.

You could write a script to run this regex on your .lrc files if you wish to automate this step.
Regex:

^(\[(?:(?:\d{1,2}):)?(?:\d{1,3}):(?:\d{1,2})(?:\.(?:\d{2,3}))?\])(.+)\n\1(.*)$

replace with:

$1$2\n$3

Here’s a visualization of what the regex does:

This regex does not alter cases of timestamp without text followed by the same timestamp with text (which Deezer for example provides):

[00:15.43]
[00:15.43]When you're down and troubled

Since it’s pretty specific, perhaps @Tolriq could also add this step to the parsing to handle those cases automatically.