1 (edited by hrglgrmpf 2012-08-08 06:26:15)

Topic: Lyrics language instead of text representation language

Hello Picard users!

now that we have lyrics language for works (MBS-1798) and soon a webservice that returns it for releases (MBS-4828) we can finally utilize that information also in Picard (PICARD-242).

The problem is that the "language" tag is already occupied by the "text representation language" (the language attribute of releases). It seems to me this was always a bad choice, as

  • It is fuzzy (can be correct for some tracks in a release, but wrong for others).

  • The TLAN tag used for the "language" tag is specified by the ID3v2.4 standard to be the language of the lyrics, not of the track title.

For me the best would be to change the meaning of the "language" tag in the next version of Picard (from text representation language to lyrics language) and either

  1. do not offer the text representation language anymore (I can't think of any important use cases, it always seemed like a mediocre approximation for the lyrics language anyway)

  2. or invent a new tag for the text representation language.

I have a patch ready for option 1 (will only work once MBS-4828 is applied to the MB server).

What is your opinion on this issue?

Re: Lyrics language instead of text representation language

I've had $unset(language) in my tagger script for a long time, so I don't have a problem making it so that it's not written by default. I do think the information should be available for people to use if they wish though. I think _releaselanguage would work for that.

Re: Lyrics language instead of text representation language

My opinion is "yes! let's do that! someone write a script to mass-set work languages so we can actually do anything useful!"

Re: Lyrics language instead of text representation language

I am definitely in favor of this. Having the text language in the tags has always been a workaround.

I have reviewed the commit history, it was actually me who added the ability to save the language tag to the files. As far as I can remember somebody asked for it so he could use the tag in a plugin. But I don't think I realized that we actually fill the language tag internally with the text language, I just wanted it to be available for plugins or future use. I consider the current behavior a bug :D

If we really wanted to stay backward compatible we could add a new lyricslanguage variable internally and save that to the correct language tag (TLAN for ID3 etc.). But I don't see much value in it. So I would suggest to abandon the text representation language. I can't see any uses cases for it other than custom text replacements for different languages. And for that %script% is probably better suited.

Re: Lyrics language instead of text representation language

Thanks for the comments so far! I think I will extend my patch to store the text representation language of the release in %_releaselanguage%, as nikki suggested it. So a tagger script line like this will restore the old behavior:

$set(language,%_releaselanguage%)

I also have thought about being completely backwards compatible (e.g. lyricslanguage), but it just doesn't make much sense here, especially as there is such an easy way for users to get the old behavior back!

Re: Lyrics language instead of text representation language

Just put a popup in the next version of Picard first time it's launched, explaining what's changed and offering to modify any %_language% taggerscript or anything to %_releaselanguage% or keep it as is?

Re: Lyrics language instead of text representation language

Hmm, I have no idea how to do such a popup in this case. I looked at how the recent one was done (the merge between normal and VA file naming options), but they could use the existence of the "va_file_naming format" option (and an additional "use_va_format" helper option) to recognize if it was an "old" version.

With this change, I don't see such a way (the config file has no version information as far as I know). Maybe it is enough to mention the change in the release announcement?

Re: Lyrics language instead of text representation language

Guess so, doubt a lot of people are using it (said it because of it having been done before, but if it's hard, it's not worth it I guess)

9 (edited by hrglgrmpf 2012-08-10 17:32:57)

Re: Lyrics language instead of text representation language

Updated pull request is here: https://github.com/musicbrainz/picard/pull/65, it works currently only with beta.musicbrainz.org.