How Windows 95 Retrieved CD Track Names Offline
Before the widespread adoption of the internet and online
repositories like CDDB, Windows 95 could not query a remote server to
identify an inserted audio CD. Because standard Red Book audio CDs
lacked embedded text for album titles and track names, Windows 95 relied
on an offline, client-side identification method using the disc's Table
of Contents. By calculating a unique disc identifier and storing
user-entered data locally in a configuration file named
cdplayer.ini, Windows 95 was able to recognize discs and
display track metadata upon subsequent insertions.
The Red Book Limitation
When the Compact Disc Digital Audio (CD-DA) standard—commonly known as the Red Book standard—was established in 1980, data storage was prioritized for uncompressed audio. The disc format contained a Table of Contents (TOC) stored in the lead-in area, which outlined the number of tracks, their exact starting offsets, and total playback duration. It did not contain fields for metadata such as artist names, track titles, or genres. Although CD-Text was introduced later to embed text within the disc's subchannels, standard audio CDs sold throughout the 1990s rarely included it, and consumer CD-ROM drives seldom supported reading it.
Generating the Disc ID from the Table of Contents
To differentiate one commercial album from another without readable
metadata, the Windows 95 built-in CD Player utility
(cdplayer.exe) generated a fingerprint—or Disc ID—from the
disc's physical structure. Because commercial albums have unique
combinations of track counts, track lengths, and start-time sector
addresses, the disc's Table of Contents acted as a distinct digital
signature.
The software performed a mathematical calculation on the track offsets extracted from the TOC. This algorithm produced a unique 32-bit hexadecimal hash. Unless two CDs shared the exact same number of tracks with identical sector offsets down to the 75th of a second, their generated Disc IDs would not match.
The cdplayer.ini
Database
Once Windows 95 generated the disc signature, it cross-referenced
that value against a local plaintext file located in the main operating
system directory: C:\Windows\cdplayer.ini.
The first time a commercial CD was loaded, Windows 95 found no matching identifier in the file. The utility displayed generic labels: "New Artist," "New Title," and individual tracks marked as "Track 1," "Track 2," and so on.
To populate the metadata, users had to open the disc settings within
the CD Player application and type the artist, album name, and each
track title by hand. Once saved, Windows 95 appended a new section to
cdplayer.ini. The entry was organized using standard INI
syntax:
[12AB34CD]
artist=Artist Name
title=Album Title
numtracks=10
0=Track One
1=Track Two
2=Track ThreeRetrieval on Re-insertion
When a disc was re-inserted into the drive, the process functioned seamlessly:
- The CD-ROM drive read the disc's Table of Contents.
- Windows 95 re-ran the hash algorithm on the track positions to recreate the Disc ID.
- The CD Player utility searched
cdplayer.inifor a section header matching that hexadecimal ID. - If found, the application read the stored strings and displayed the correct artist and track details immediately.
Foundation for Online Services
This offline hashing system laid the technological groundwork for
future internet-connected lookup mechanisms. When Ti Kan and Steve
Scherf created the Compact Disc Database (CDDB) in the late 1990s, they
adopted the exact same concept: hashing the CD Table of Contents to
create a unique identifier. Instead of querying a local
cdplayer.ini file, modern media players sent that
calculated hash across the internet to fetch metadata from crowdsourced
databases.