6.05 - Library file format
by Dotpitch, 2013-12-20 10:22:00

XMPlay saves its library in the xmplay.library file next to xmplay.exe (or in C:\Users\[username]\AppData\XMPlay if you have Store per-user config/etc ticked). You can process this file with external utilities, for example to find duplicate files in your collection.

Header

  • The first byte of the file denotes the library format version number. When a new feature is added to the library which breaks backwards compatibility, this version number is increased to detect those problems.
  • The second and third byte are 00.
  • The fourth byte contains library file information flags. Currently, the 1st bit (MSB) describes the string format used in the rest of the file, either UTF-8 (1) or ANSI (0).

Track entries

Each entry contains a number of different fields.

  • Filename as string (full path)
  • Track title as string (the formatted titles as used in the Extended Playlist)
  • Title, Artist, Album, Year, Track, Genre, Comment and Filetype tags as string
  • Duration in milliseconds as dword
  • Last play timestamp as dword
  • File size in bytes as dword
  • Play count as dword
  • Added timestamp as dword
  • Flags as byte (with 16 marking overridden tags)
  • Rating as byte (since library version 4 / XMPlay 3.5)
  • Subsong count as 2 bytes (since library version 5 / XMPlay 3.8)
  • Separated subsong number as 2 bytes (since library version 5 / XMPlay 3.8)

Each string is terminated with a null character (00). There is no length limit on strings and empty strings are allowed. Timestamps are noted in seconds since January 1st, 1970, 0:00. The track entries are closed with a null filename (00).

Monitored folder entries

Each entry contains three fields.

Next page: Custom filetypes and icons