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 Three

Retrieval on Re-insertion

When a disc was re-inserted into the drive, the process functioned seamlessly:

  1. The CD-ROM drive read the disc's Table of Contents.
  2. Windows 95 re-ran the hash algorithm on the track positions to recreate the Disc ID.
  3. The CD Player utility searched cdplayer.ini for a section header matching that hexadecimal ID.
  4. 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.