Just came across some files with no language code in the USLT field just "00 00 00" in hex editor. Maybe this is not allowed? but anyway I guess some software does it. Other programs (e.g. Foobar2000, iTunes, dbPowerAmp) read and write these tags successfully without modifying the language code.
Problem with Mp3tag is when the field is initially read it displays with 2 leading pipe chars e.g.
||My beautiful lyric
When the file is written the pipe chars are interpreted as part of the lyric and it becomes
eng||||My beautiful lyric
Can you make Mp3tag "play nice" with these files also please?
I would say that deleting user input would be a bug.
The way MP3tag behaves now leads to a valid format in the field and safeguards the user input.
You could instead find out how the invalid format got into the field in the first place and/or correct it before you add further lyrics.
See also this thread which describes why the pipe characters are now kept:
With 2.91e I find now that nothing is written in front of the lyrics field, regardless whether there were pipes or language identifiers or nothing at all.
I thought that adding the pipes and the default language identifier was to make sure that lyrics were shown even if the user forgot them - so right now it is much easier to get no display of lyrics at all in the players.
If this is intentional I do not see a real improvement.
I'm now trying the same what those example files showed: writing no language identifier and no description in case nothing is explicitly specified by the user.
If you're writing something like
eng||Lyrics or eng|Description|Lyrics it should be written correctly.
Player(s) are my most beloved WMP - this "player" either wants a language identifier in the same language as the OS or the good ole "xxx||".
For my test song I just entered the following cases:
1) Lost in Praha WDR 3 Hörspiel | 11.03.2018 | 53:02 Min.
-> no display in WMP
2) ||Lost in Praha WDR 3 Hörspiel | 11.03.2018 | 53:02 Min.
-> no display in WMP
3) xxx||Lost in Praha WDR 3 Hörspiel | 11.03.2018 | 53:02 Min.
-> text shows as lyrics in WMP
4) deu||Lost in Praha WDR 3 Hörspiel | 11.03.2018 | 53:02 Min.
-> text shows as lyrics in WMP
5) eng||Lost in Praha WDR 3 Hörspiel | 11.03.2018 | 53:02 Min.
-> no display in WMP (as expected as the OS is set to German GUI and not to English)
I've fixed this with Mp3tag v2.91f. It now uses the language identifier that is specified at "Options > Tags > Advanced" as default in case no specific identifier is provided.
Yes, this is almost like before.
Yet I am not sure, if the OP is satisfied with it as ||Lost in Praha WDR 3 Hörspiel | 11.03.2018 | 53:02 Min.
becomes eng||||Lost in Praha WDR 3 Hörspiel | 11.03.2018 | 53:02 Min.
which is almost like
It is different than the OPs case. The file had the language identifier set to null 0x00 0x00 0x00 so it was displayed wrongly as ||Lyrics. Now Mp3tag detects such conditions and displays it as eng||Lyrics (and instead of eng, whatever default language identifier is configured).
If you enter ||Lyrics in Mp3tag, it's considered user input and as you've pointed out above