# Serato 4.0 now supports song ratings!

**URL:** https://community.mp3tag.de/t/serato-4-0-now-supports-song-ratings/70326
**Category:** Support
**Created:** [December 12, 2025, 2:39am UTC](https://community.mp3tag.de/t/serato-4-0-now-supports-song-ratings/70326 "2025-12-12T02:39:24Z")
**Posts on this page:** 1
**Showing post:** 5

<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: [December 12, 2025, 9:47am UTC](https://community.mp3tag.de/t/serato-4-0-now-supports-song-ratings/70326/5 "2025-12-12T09:47:01Z")

</div>

> [@djbeware](#):
>
> In the Serato DJ interface you can actually change the ratings to emojis

In Serato, you can right-click on a track and "Select Rating Emoji" to choose the Emoji **displayed** individually for each music track. It looks like this:

 ![2025.12.12 -Emoji-Rating per track](https://community.mp3tag.de/uploads/default/original/3X/9/7/97f435bafce9949791938b26d2e88033d0a438b0.png)  
The value in `POPULARIMETER` remains the same.

But the chosen Emoji will be written into the tracks metadata too. Example for MP3:  
 ![2025.12.12 - SERATO RATING EMOJI #2](https://community.mp3tag.de/uploads/default/original/3X/7/1/713c3608d49b2e9fed4f8d8013087f92a357083e.png) ![2025.12.12 - 10-27-42 - SERATO RATING EMOJI #1](https://community.mp3tag.de/uploads/default/original/3X/3/9/398e3d8d0ca86adc9c77cd81f80cff540774c1ff.png)  
The field name used for MP3 is `SERATO RATING EMOJI`.

The funny thing: These Emojis are interchangeable too.  
You can change your Emoji in Mp3tag and Serato will display it (after a "Re-Scan File Info").

In my own tests this only really works, if Serato has initially written the `SERATO RATING EMOJI` field. If you add it initally in Mp3tag, Serato does not read it and write it back duplicated.  
 ![image](https://community.mp3tag.de/uploads/default/original/3X/3/2/328a8c8f7adfa0b93c1f0ff4cbecd06316516aec.png)

* * *

_ **Technical update 16:30 CET** _

I think, I have found the reasons for the incompatibilty between a `SERATO RATING EMOJI` field set by Mp3tag and one set by Serato DJ Pro v4:

1. Serato writes the field name case-sensitive as `Serato Rating Emoji`.

```auto
  | - Tag 'TXXX_Serato Rating Emoji' (57 bytes):
  | 03cf: 01 ff fe 53 00 65 00 72 00 61 00 74 00 6f 00 20 [...S.e.r.a.t.o.]
  | 03df: 00 52 00 61 00 74 00 69 00 6e 00 67 00 20 00 45 [.R.a.t.i.n.g. .E]
  | 03ef: 00 6d 00 6f 00 6a 00 69 00 00 00 ff fe 3d d8 36 [.m.o.j.i.....=.6]
  | 03ff: de 0d 20 3c d8 2b df 0f fe [.. <.+...]

```

1. This could be adjusted by the usual Mp3tag ursfields.ini entry.  
Once manually changed, you could set a new Emoji initially in Mp3tag.

1. The Emoji content will be read from Serato and displayed, **BUT** there is one **big caveat** :  
You cannot change this value to anything else in Serato. This applies to both the value (1 to 5) and the Emoji.  
 ![Emoji in Serato](https://community.mp3tag.de/uploads/default/original/3X/b/7/b77c1d9260cef3190894bef404ff6808c42fae23.gif)  
I assume that Serato reads such values, but due to the missing information - see the next point - it does not allow you to change them.

2. The reason for the incompatibilty is most likely that Serato not only stores the Emoji as a so-called Surrogate Pair, but also adds a Zero-Width Joiner (ZWJ) and Variation Selector (FE0F).  
~~-\> AFAIK, this is currently not possible with Mp3tag.~~  
It seems to be possible - If an Emoji is chosen with all the necessary parts, like 👩🏼‍❤️‍👩🏿  
"_Couple with Heart: Woman, Woman, Medium-Light Skin Tone, Dark Skin Tone Emoji_"  
Unfortunately, the above point #3 remains valid. I need to look into it further...

* * *

Two examples for those interested:  
a) Use of ZWJ: 👩 + ZWJ + ❤ + ZWJ + 👩 = 👩‍❤️‍👩 \<- two female faces with one heart in 1 Emoji  
b) Textsymbol `U+2764` ( 🖤 ) → black heart as textsymbol:  
If a Variation Selector is added as in `U+2764 U+FE0F` = red heart as ❤ Emoji

* * *

Explanation for the above hex data:

```auto
ff fe 3d d8 36 de 0d 20 3c d8 2b df 0f fe

```

This looks cryptic at first, but it’s simply the UTF‑16 encoding of a modern emoji sequence. Let’s break it down:

### 1. `ff fe`

- **UTF‑16 BOM (Byte Order Mark)**
- Indicates that the following values are stored in **little endian** order.

### 2. `3d d8 36 de`

- A **UTF‑16 surrogate pair** :
  - High surrogate: `0xD83D`
  - Low surrogate: `0xDE36`

- Together they represent **U+1F636** → 😶 (Face Without Mouth).

### 3. `0d 20`

- This is **U+200D** , the **Zero‑Width Joiner (ZWJ)**.
- It’s invisible, but it links two characters together so they display as a single combined emoji.

### 4. `3c d8 2b df`

- Another surrogate pair:
  - High surrogate: `0xD83C`
  - Low surrogate: `0xDF2B`

- This corresponds to **U+1F32B** → 🌫 (Fog).

### 5. `0f fe`

- This is **U+FE0F** , the **Variation Selector‑16**.
- It forces the preceding character to render in **emoji style** rather than plain text.

**Putting it all together**

The sequence encodes:

- BOM → UTF‑16 Little Endian
- 😶 (Face Without Mouth)
- ZWJ (joiner)
- 🌫 (Fog)
- FE0F (emoji presentation)

➡ Combined, this produces the emoji **😶‍🌫️** (“Face in Clouds”).

---

_[View the full topic](https://community.mp3tag.de/t/serato-4-0-now-supports-song-ratings/70326)._
