# About the Language Code for Comment and Unsynced Lyrics

**URL:** https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228
**Category:** General Discussion
**Created:** [May 7, 2022, 9:04am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228 "2022-05-07T09:04:41Z")
**Posts on this page:** 19
**Page:** 1

<div class="post-metadata">

### Author: ![tagger](https://community.mp3tag.de/user_avatar/community.mp3tag.de/tagger/32/11538_2.png) [@tagger](https://community.mp3tag.de/u/tagger)
#### Post date: [May 7, 2022, 9:04am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/1 "2022-05-07T09:04:41Z")

</div>

So, according to the [ID3v2 standard](https://id3.org/id3v2.3.0), both the Comment frame (COMM) and the the Unsynced Lyrics frame (USLT) require a language code (e.g. "eng" for English).

So when editing the Unsynced Lyrics frame (USLT), the language code (e.g. "eng||") is automatically added (e.g. "eng||") and **displayed** ,  
but when editing Comment frame (COMM), the language code isn't showing in the editor.

I'm feeling like this is a bit inconsistent (as both frames require the language code), is there a way to hide the "eng||" from displaying for the Unsynced Lyrics frame (USLT) for a cleaner look? (perhaps this could be a suggested feature too)

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [May 7, 2022, 9:20am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/2 "2022-05-07T09:20:03Z")

</div>

> [@tagger](#):
>
> I'm feeling like this is a bit inconsistent (as both frames require the language code)

True, yet it is not the same.  
Comment gets the code added to a separate section in the field definition - that is why you can set it on the options.  
This thread and post shows a hex dump of a comment fields with the added language token

> [@MP3TAG messing up with MP3 comments tag when editing](https://community.mp3tag.de/t/mp3tag-messing-up-with-mp3-comments-tag-when-editing/57125/34):
>
> There are 2 comment fields - even MP3diags shows 2 fields COMM, each with the size 6 for the file exported by Audacity. Yet, for the files exported by Audacity, the first COMM field has no language token, whereas the second field has the languge token XXX. Editing the file with MP3tag changes both to ENG. [grafik] So, my Audacity causes problems. If your windows does not display the comments at all, check if ENG is the best setting or whether XXX would be better.

The unsynced lyrics have the language token as part of the field data (only MP3) which is visible for programs that show the raw data (like MP3tag) - as it would be the task of the user to add the appropriate language token manually.

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 7, 2022, 1:53pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/3 "2022-05-07T13:53:25Z")

</div>

> [@tagger](#):
>
> is there a way to hide the "eng||" from displaying for the Unsynced Lyrics frame (USLT) for a cleaner look? (perhaps this could be a suggested feature too)

"Hiding" would be one possibile solution.

Another would be: Let the user fill this field as any other tag or frame. Not everyone want to have "eng" as general standard (or because the own windows machine give this value back).

---

<div class="post-metadata">

### Author: ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)
#### Post date: [May 7, 2022, 3:30pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/4 "2022-05-07T15:30:03Z")

</div>

> [@LyricsLover](#):
>
> Another would be: Let the user fill this field as any other tag or frame. Not everyone want to have "eng" as general standard (or because the own windows machine give this value back).

The option to set the language code different from that of the windows machine is already there.  
`File->Options->Tags->Advanced`  
My setting there is **xxx**.

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [May 7, 2022, 3:48pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/5 "2022-05-07T15:48:27Z")

</div>

> [@poster](#):
>
> `File->Options->Tags->Advanced`  
> My setting there is **xxx**.

I think the memory hook here is: whereas the language token in COMMENT is not visible, it is set in options, invisible during input.  
The language token for UNSYNCEDLYRICS can be entered as visible data and MP3tag only adds that setting from the options if the language token has been forgotten. But then it is visible again (in MP3s).  
Just as a reminder: the default setting "eng" is owed to iTunes that expects English COMMENTs.

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 7, 2022, 4:33pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/6 "2022-05-07T16:33:20Z")

</div>

> [@poster](#):
>
> File-\>Options-\>Tags-\>Advanced

Yes I know, thanks anyway 😉

I would prefer something more reachable like a field configurable for the tag panel.  
It would be helpful to set it lyrics by lyrics or an entire album at once - without going to the settings every time.

And as @ohrenkino already mentioned: The same should be possible for COMM too.

---

<div class="post-metadata">

### Author: ![tagger](https://community.mp3tag.de/user_avatar/community.mp3tag.de/tagger/32/11538_2.png) [@tagger](https://community.mp3tag.de/u/tagger)
#### Post date: [May 8, 2022, 12:19am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/7 "2022-05-08T00:19:59Z")

</div>

> Comment gets the code added to a separate section in the field definition - that is why you can set it on the options.

> The unsynced lyrics have the language token as part of the field data (only MP3) which is visible for programs that show the raw data (like MP3tag) - as it would be the task of the user to add the appropriate language token manually.

So I tested the unsynced lyrics frame in Mp3tag: when saving the tag, it automatically adds the language code part (e.g. "eng||") as set in "File-\>Options-\>Tags-\>Advanced" (same place for setting option for the comment) to the lyrics frame when you don't already include it.

If you look at the ID3v2 standards for both [Comments](https://id3.org/id3v2.3.0#Comments) and [Unsynced Lyrics](https://id3.org/id3v2.3.0#Unsychronised_lyrics.2Ftext_transcription), their structures are **identical** , it's just that they're handled differently in Mp3tag's GUI (which was why I felt like it's inconsistent). If I'm not mistaken, Mp3tag parses the "eng||" part in unsynced lyrics field into "eng" (the "$xx xx xx" part in both two ID3v2 links above) and a null terminator (the "$00 (00)" part in both two ID3v2 links above), so the resulting structure of unsynced lyrics frame would be technically the same as the comment.

That's why I think both frames' language codes should be handled the same way (either hides both or display both, so that it's consistent), as their frames' structures in ID3v2 standard are identical.

---

<div class="post-metadata">

### Author: ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)
#### Post date: [May 8, 2022, 5:57am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/8 "2022-05-08T05:57:11Z")

</div>

> [@ohrenkino](#):
>
> Just as a reminder: the default setting "eng" is owed to iTunes that expects English COMMENTs.

On the other side it does not care about the language code in UNSYNCEDLYRICS.

---

<div class="post-metadata">

### Author: ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)
#### Post date: [May 8, 2022, 6:11am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/9 "2022-05-08T06:11:18Z")

</div>

> [@tagger](#):
>
> That's why I think both frames' language codes should be handled the same way (either hides both or display both, so that it's consistent)

Florian changed the behavior in 2.86f to hiding the language code.  
Not least because of my intervention, he changed it back with 2.86h.  
With that solution the behavior was different for default and not default language codes.

> [@2.86f - Displaying UNSYNCEDLYRICS language](https://community.mp3tag.de/t/2-86f-displaying-unsyncedlyrics-language/41109):
>
> CHG: don't display language identifier and description for UNSYNCEDLYRICS if both are default ('eng' and empty). I am used to change all my language descriptions in UNSYNCEDLYRICS to "xxx" instead of a particular language. I do this with a replace-action. Since version 2.86f this is not possible any more. I also have a column with the definition $left(%unsyncedlyrics%,3) which show me the defined language of UNSYNCEDLYRICS. This too does not work anymore. I also have some actions that dep…

---

<div class="post-metadata">

### Author: ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)
#### Post date: [May 8, 2022, 6:33am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/10 "2022-05-08T06:33:32Z")

</div>

> [@LyricsLover](#):
>
> It would be helpful to set it lyrics by lyrics or an entire album at once - without going to the settings every time.

I don't work with different language codes in UNSYNCEDLYRICS, but for someone who does, the best solution would be to offer a pseudo-tag for the language code in UNSYCEDLYRICS and that tag would have to be idependend from the language code for COMMENT.

---

<div class="post-metadata">

### Author: ![tagger](https://community.mp3tag.de/user_avatar/community.mp3tag.de/tagger/32/11538_2.png) [@tagger](https://community.mp3tag.de/u/tagger)
#### Post date: [May 8, 2022, 9:25am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/11 "2022-05-08T09:25:16Z")

</div>

> [@poster](#):
>
> Florian changed the behavior in 2.86f to hiding the language code.  
> Not least because of my intervention, he changed it back with 2.86h.  
> With that solution the behavior was different for default and not default language codes.

I see, but now the behavior is also different/inconsistent for [Comments](https://id3.org/id3v2.3.0#Comments) and [Unsynced Lyrics](https://id3.org/id3v2.3.0#Unsychronised_lyrics.2Ftext_transcription), which have identical frame structure (as can be seen in both two referenced hyperlinks for ID3v2 standard).  
I'm imagining perhaps a toggle-able option would make everyone happy? I will reply to the post you referenced in more detail.

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [May 8, 2022, 10:58am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/12 "2022-05-08T10:58:37Z")

</div>

So we have field that gets only displayed if the displaying application is satisfied with the found language token (=COMMENT).  
Then we have a field that displays text in a certain language (could even be a mixture of several languages) for which it is not quite clear what the language token should transport: the source (here: the language of the lyrics) or the target: for an audience that understands a particular language. Or is it the language of the artist.  
And now, I know this is not quite the original topic anymore, we also have LANGUAGE as tag field - and I wonder what the purpose of that field could be.

So far, LANGUAGE showed the language of the TITLE and, if present, that of the LYRICS or UNSYNCEDLYRICS.  
COMMENT got the token for the target application  
and UNSYNCEDLYRICS got the xxx|| as it can hardly think of any application where the text of the lyrics for the same TITLE is different, depending on the audience - I would assume that real lyrics for a track are always just the one language that one can hear - and that can be represented by words, also written in that language.  
A language token for the actual lyrics is superfluous, IMHO, but it is there, nevertheless.  
But this just my impression and I am eager to learn use cases where there are lyrics in several simultaneous languages needed for a single file.

So, a default setting for COMMENT is already there, it also applies to UNSYNCEDLYRICS where it can be editted manually for whatever reason and the wish is there to set a different standard language for UNSYNCEDLYRICS (in MP3s - MP4s, I think, to not have that. So I wonder which language is set for MP4s).  
Taking the code from LANGUAGE is not feasible as this would require LANGUAGE to be filled (and saved) prior to editing UNSYNCEDLYRICS.  
I think the whole language handling in MP3s looks like a make-shift thing. And this not just in MP3tag but mainly in the players.

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 8, 2022, 11:30am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/13 "2022-05-08T11:30:58Z")

</div>

> [@ohrenkino](#):
>
> I would assume that real lyrics for a track are always just the one language that one can hear - and that can be represented by words, also written in that language.

I can only speak for my self:  
Every song text (aka "Lyrics") consists of one or more languages.  
An english song text can also include the line "Voulez-vous coucher avec moi ce soir?".  
For me, it remains an english song text and becomes the "eng" language descriptor. A song text in pure German or Spanish becomes "deu" or "spa".

On a sampler with 20 songs you will find the situation where several different languages should be used, accordingly to the lyrics content.

---

<div class="post-metadata">

### Author: ![tagger](https://community.mp3tag.de/user_avatar/community.mp3tag.de/tagger/32/11538_2.png) [@tagger](https://community.mp3tag.de/u/tagger)
#### Post date: [May 8, 2022, 12:37pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/14 "2022-05-08T12:37:02Z")

</div>

> [@ohrenkino](#):
>
> LANGUAGE as tag field

> [@ohrenkino](#):
>
> Taking the code from LANGUAGE is not feasible as this would require LANGUAGE to be filled (and saved) prior to editing UNSYNCEDLYRICS.

I'm assuming you're refering to the language frame (TLAN), yeah I agree that the TLAN frame is barely used by any platform out there. Instead I plan to use the Genre frame to list the music's language (e.g. English, Mandarin, Japanese, etc.), because Genre is a widely supported frame (and you can have multiple genres in ID3v2.4 too).

---

<div class="post-metadata">

### Author: ![tagger](https://community.mp3tag.de/user_avatar/community.mp3tag.de/tagger/32/11538_2.png) [@tagger](https://community.mp3tag.de/u/tagger)
#### Post date: [May 8, 2022, 12:50pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/15 "2022-05-08T12:50:14Z")

</div>

> [@LyricsLover](#):
>
> For me, it remains an english song text and becomes the "eng" language descriptor. A song text in pure German or Spanish becomes "deu" or "spa".

I'm kinda curious to learn what you're using different language codes in lyrics (USLT frame) for?  
Do music players (if any) display them? (unfortunately, none of the music players I've tried can display the language code of lyrics, but over the years I've only tried about 20+ players on Windows and Android)

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 8, 2022, 1:21pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/16 "2022-05-08T13:21:44Z")

</div>

> [@tagger](#):
>
> I'm kinda curious to learn what you're using different language codes in lyrics (USLT frame) for?

I'm using my own media library who is capable to let me choose "german" or "spanish" Lyrics as one of the search criterias. In combination with other criterias like Genre (i.e. "Hip-Hop", "Hard Rock") or Artist I can listen to music for my current mood 😉

But you are right, I don't know of any known software other then Mp3tag that can also read and select ("[filter](https://docs.mp3tag.de/filter/)") this information.  
Maybe there are some plugins for other media player software like KODI, PLEX, EMBY?

---

<div class="post-metadata">

### Author: ![tagger](https://community.mp3tag.de/user_avatar/community.mp3tag.de/tagger/32/11538_2.png) [@tagger](https://community.mp3tag.de/u/tagger)
#### Post date: [May 8, 2022, 10:38pm UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/17 "2022-05-08T22:38:52Z")

</div>

> [@LyricsLover](#):
>
> I'm using my own media library who is capable to let me choose "german" or "spanish" Lyrics as one of the search criterias. In combination with other criterias like Genre (i.e. "Hip-Hop", "Hard Rock") or Artist I can listen to music for my current mood 😉
> 
> But you are right, I don't know of any known software other then Mp3tag that can also read and select ("[filter](https://docs.mp3tag.de/filter/)") this information.  
> Maybe there are some plugins for other media player software like KODI, PLEX, EMBY?

I see, so you're using your own software. But still, wouldn't it make more sense to use the Language(s) frame ([TLAN](https://id3.org/id3v2.3.0#Text_information_frames_-_details)) instead? (the thing that ohrenkino just talked about)

From the [ID3v2 standards](https://id3.org/id3v2.3.0#Text_information_frames_-_details):

> TLAN  
> The 'Language(s)' frame should contain the languages of the text or lyrics spoken or sung in the audio. The language is represented with three characters according to ISO-639-2. If more than one language is used in the text their language codes should follow according to their usage.

Also, you can only have one language code for each lyrics entry, but [you can have multiple language codes for the Language(s) frame (TLAN)](https://community.mp3tag.de/t/correct-use-of-language-tlan/5894/2), which is pretty useful for songs that contain more than 1 language.

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 9, 2022, 6:50am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/18 "2022-05-09T06:50:25Z")

</div>

> [@tagger](#):
>
> ...wouldn't it make more sense to use the Language(s) frame TLAN instead?

In my case, there is only a small difference between reading the USLT lyrics frame including the lyrics language descriptor and reading the separate TLAN frame.

If you find a music player supporting TLAN, it would be the better solution.

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [May 9, 2022, 7:18am UTC](https://community.mp3tag.de/t/about-the-language-code-for-comment-and-unsynced-lyrics/57228/19 "2022-05-09T07:18:08Z")

</div>

> [@LyricsLover](#):
>
> If you find a music player supporting TLAN, it would be the better solution.

And the support for TLAN, miracle of miracles, can be found in the Windows Media Player.  
Yet, this player does not care about any language token in the lyrics if you set the options to simply "Show if present". But even with a dedicated language set, I always saw only the contents of the first lyrics field ... oh, well.
