S-Link CD Player Response Reference

Last Update: February 2, 2003

This command list has been generated by trial and error with S-Link equiped CD changers. Listed are all the commands we have seen generate either a coded response or some activity on the changers themselves. Commands identified as unknown generated gibberish as yet to be deciphered or some other tell-tale response. The descriptions in this list are a best guess since I don't have access to the actual specification. All constants are in hexadecimal unless otherwise noted. I've added notes where it seemed necessary to clarify description, or data fields. The general format of a response is:

[device code] [response code] [extended data field(s)...]

If you find a mistake or learn something new, I'd love to hear about it. I'm especially interested in experiments with devices other than CD changers. Happy hunting.

Based on the original version of this document by Jeff and Brian, Peter has been adding revisions based on work with a 400 CD changer, the CDP-CX450. The document is now a compilation of our experiments and other web sources.

A lot of the commands and responses are only supported on the later players. However, this is not very important if you want to control everything from a computer and display all the information on your monitor.

We would like to build up a list of which models support which commands - if you can help by testing our work, please get in touch. In particular, we would like to know what the 0x22 query capacity command returns for different models. The returned 0x61 message includes a byte of data which may encode what level of features the deck supports.

Code Description Extended Data Format
0x00 Playing No Extended Data
0x01 Stopped No Extended Data
0x02 Paused No Extended Data
0x05 No Disc
Note: Usually this means you asked for a disc that doesn't exist. On rare occasions it represents a disc loaded backwards.

See also response 0x53 which returns a disc number.
No Extended Data
0x06 Changing Discs No Extended Data
0x08 Ready
Note: The ready signal is generated when certain commands are completed on certain CD changers. Don't rely on it though.
No Extended Data
0x09 Start of track
Note: I have not seen this response on the CDP-CX450, but it has been reported by Kamal Mostafa to Nirvis and Tramm Hudson's Linux JukeBox Control people. See also command 0x24.
Unknown
0x0C Under 30 Seconds Remaining
Note: This message is generated by the decks while playing a track when they think there are 29 (maybe 30?) seconds left. The message is also produced when a track less than 30 seconds long is played. Also note that the CD audio spec allows for this length to be reported wrong, so don't trust it as gospel.
No Extended Data
0x0E Duplicate Command / Error - Bad Arguments
Note: This response is generated when certain commands are issued twice in close succession. It is also often seen as an error when an argument is called with inappropriate arguments.
No Extended Data
0x0F Error
Note: This is the message we relied on to find likely commands which we still don't understand how to use.
No Extended Data
0x10 No Memo
Note: Seen in response to command 0x40 (see also command 0x48 and response 0x1C).
No Extended Data
0x11 No Delete File
Note: No track delete record defined for disc specified.
No Extended Data
0x12 No Group
Note: The group requested does not exist, or has no name.
I have only had 0x12 back from my CDP-CX450, not 0x13.
No Extended Data
0x13 No Group
Note: The group requested does not exist. See also 0x12. This message has been reported on the CX90ES, it has not been seen on the CDP-CX450.
No Extended Data
0x14 Disc Not Loaded
Note: Information was requested from a disc not currently loaded.
No Extended Data
0x15 Track Not Available or Disc Not Loaded
Note: Most commonly produced when data is requested for a track that isn't on the disc.
No Extended Data
0x18 Door Open
Note: I don't think this is supported on the CDP-CX450.
No Extended Data
0x19 Unknown
Note: Believed to be an error message in response to command 0x63.
No Extended Data
0x1A Unknown
Note: Believed to be an error message in response to command 0x64.
No Extended Data
0x1B Program Edit Faied / Artist Name Set Failed
Note: Generated by CDP-CX450 in response to the 0x8A programming command and the 0x93 Artist Memo Set command.
No Extended Data
0x1C No Memo
Note: Seen in response to command 0x48. See also command 0x40 and response 0x10.
No Extended Data
0x1D No Track Title
Seen in response to the track title query 0x4A on CDP-CX450.

May have different meaning on older decks, possibly a long data (i.e. multi-packet) end marker.
No Extended Data
0x1F Memo Written
Note: Acknowledgement of a set memo (command 0x80). Also sent by CDP-CX450 in response to 0x8A command.
No Extended Data
0x2E Power On No Extended Data
0x2F Power Off No Extended Data
0x40 Disc Memo
Note: Response to memo query (command 0x40). See also 0x80.
[disc] [13 bytes ASCII]
0x41 Query Available Tracks
Note: Response provides bit-packed byte inverted (i.e. LSB first) list of available tracks. Just because I know that isn't clear here's a quick example. You get 13 bytes, and there are 99 possible tracks on a CD. So, the first two bytes could be:

11110111 00000111 and the rest are zeros.

A one represents a track which is present and not in the delete file.

Some CD changers don't have a delete file. So for those of you without, a delete file allows you to flag tracks to be skipped in normal play and shuffle modes.

[disc] [13 bytes bit-packed byte inverted]
0x42 Group Memo
Note: Response to group memo query 0x42.
[group] [13 bytes ASCII]
0x43, 0x44, 0x45, 0x78 Group Contents Part 1,2,3,4
Note: Data seems to be encoded in a similar way to the Deck Contents (0x72, 0x73, 0x74 and 0x75). It appears that 200 changers only return 0x43 and 0x44, while 300 changers would return only 0x42, 0x44 and 0x45. Each packet codes for up to 104 discs, so the last packet has room for some extra data, the meaning of which is unclear.
[group] [13 bytes bit-packed byte reversed]
0x46 Unknown
Must have some meaning otherwise Group Contents Part 4 would have been 0x46 and not 0x78. However I have not yet seen this response and have no idea what it may mean.
Unknown
0x47 CDText Disc Detected
Note: The disc loaded has CDText information. CDText is another Sony spec which provides track titles to CD players capable of recognizing the information. This is produced when a CDText disc is loaded or in response to command 0x27.

We have seen:
[09] [09] [00] [00] [00] [00] [00] [00] [00]
on the CDP-CX350, and:
[09] [09] [FF] [FF] [FF] [FF] [FF] [FF]
on the CDP-CX240 and CDP-CX450. But the data might be from the discs.

[eight bytes]
0x48 Enhanced Disc Memo
Note: Response to command 0x48, see also response 0x49, and the similar 0x40 and 0x80. This version will return CDText if the disc has it AND the disc is loaded (otherwise you only get the 20 bytes that the player stores in its memory).

The meaning of the second byte is unknown, we have seen 0x00 and 0x09.

Meaning of the third byte:
0x00 = Memo
0x03 = CDText (seen on bought CD)
0x07 = CDText (seen on a CD-R disc)

I infer that bits at 0x03 mark for CDText (why two bits?), what the bit at 0x04 means is unknown.

[disc] [byte] [byte] [upto 14 bytes ASCII]
0x49 Enhanced Disc Memo Continued
Note: Seen following a response 0x48 (part 1), requested by a 0x48 command.
[part number] [upto 16 bytes ASCII]
0x4A CDText Track Name
Only available on CDText discs, the bytes second and third bytes match those returned in response 0x48.
[track] [byte] [byte] [upto 14 bytes ASCII]
0x4B CDText Track Name Continued
Only available on CDText discs, following a 0x4A (part 1). If the end of the track name happens to fit exactly into a whole number of packets, still get a final extra packet with no ASCII. This means you can tell when all the title has been received.
[part number] [upto 16 bytes ASCII]
0x50 Playing Disc
Note: Generated at start of track playback. Minutes and seconds reported are based on total track length.
[disc] [track] [min] [sec]
0x51 Playing Disc at...
Note: Generated once a second in verbose mode. Five times at the minute breaks. Reported values are current position in a given track. For those unfamiliar with indexes on CDs, it is part of the spec which provides for the subdivision of tracks. It is rarely used.
[track] [index] [min] [sec]
0x52 Displaying Disc
Note: Indicates disc information being displayed on the face of player. Has also been reported a "TOC Read"
[disc]
0x53 Missing Disc
Note: Disc requested wasn't present. See also 0x05 which does not return a disc number.
[disc]
0x54 Loading Disc [disc]
0x55 Disc has no memo [disc]
0x58 Loaded Disc
Note: Usually issued after 0x06 indicating destination disc has been reached.
[disc]
0x5D BCD to Hex
Note: Result of a BCD to hexadecimal conversion request.
[hex]
0x60 Disc Info [disc] [indexes] [tracks] [min] [sec] [frames]
0x61 Deck Size
Note: This is a response to the 0x22 query. It returns a deck capacity encoded in the same way as disc number. This means you ought to look at the very first byte of the packet to determine if talking size 1-200 or 201-400.

Here are the responses we have seen (please fill in blanks if you can):

  • 1 disc -
  • 5 disc - 0x05 0x63 (CDP-CE535)
  • 50 disc -
  • 100 disc -
  • 200 disc - 0xFE 0x0B (CDP-CX240)
  • 300 disc - 0x64 0x0B (CDP-CX350)
  • - 0x64 0x6B (CDP-CX350) European Version?
  • 400 disc - 0xC8 0x6B (CDP-CX450) European Version? The meaning of the second byte is unknown, it may indicate which features (like Artist and Group Files) are supported.
  • [decksize] [unknown]
    0x62 Queried Track
    Note: Response to track length query 0x45.
    [disc] [track] [min] [sec]
    0x63 XXXX information for disc
    Note: Response to an 0x63 enquiry, which only works on the current disc. The seven bytes are usually all zeros, but for the South Park Album, "Chef Aid", I got 0x50 0x99 0x74 0x91 0x70 0x02 0x50. This data does not depend on the Delete File or the Artist File.
    [disc] [7 bytes]
    0x64 YYYY information for track
    Note: Sometimes seen as response to 0x64 command. I think it is some sort of copyright/publisher marker of a track (which seems usually to be the same for all tracks on one disc), while 0x63 is the equivalent for a disc. For example, "Sailing To Philidelpia" has data 0x5D 0x25 0x80 0x20 0x00 0x00 0x15 0x40 for all tracks.
    [track] [8 bytes]
    0x6A Deck Model
    Note: Response to command 0x6A. Generally this response will match the model number printed on the outside of the player, however there have been reports that newer models may only report a series identification (e.g. a CDP-CX355 will report CDP-CX300).
    [ASCII]
    0x70 Deck Mode
    Note: This is a general status message.

    The first byte indicates the player status:
    0x00 = Player On, Stopped
    0x01 = Player On, Playing
    0x02 = Player On, Paused
    0x03 = Door Is Open 0x10 = Player Off
    0x2F = No Discs in Player, Power On
    0x3F = No Discs in Player, Power Off

    This is clearly bit packed data, but all of the details of which bits represent which conditions haven't been puzzled out. Bit 2 is suspected to be a player empty flag, and bit 3 a power off flag, bits 6 & 7 appear to code playback states.

    No other values have been observed, but thanks to everyone who has paid attention to how the messages change.

    The second byte contains the following information:
    bit 0 (most significant bit):
    0 = scanning discs, 1 = discs known
    bit 1:
    0 = single disc mode, 1 = all disc mode
    bits 2-3:
    00 = repeat off, 01 = repeat all, 10 = repeat one
    bits 4-7:
    0000 = no program, not shuffle
    0001 = shuffle
    0100 = program one
    0101 = program two
    0110 = program three
    Note that just checking bit 7 will confuse program two and shuffle

    The meaning of the third byte isn't clear - it may be reserved for later features, it seems to always be 0x00.

    The fourth byte is the disc currently loaded.

    The fifth byte is the track number (if paused or playing) or 0x00 (if stopped).

    [bit packed status] [bit packed status] [unknown] [disc] [track]
    0x71 Disc Memory Information
    Note: This is a bit-packed general status message, seen in response to command 0x0E.

    Bit set at position 0x01 means disc has a memo (title) set
    Bit set at position 0x02 means disc has a delete file setup
    Bit set at position 0x30 means disc has CDText (i.e. two bits are set. This could mean title and artist are present?)

    The remaining five bits do not seem have any meaning (i.e. they have always been 0). Sony may of course use these in later products.

    [bit packed status (one byte)]
    0x72, 0x73, 0x74, 0x75 Deck Contents Part 1,2,3,4
    Note: This is the bit-packed byte reversed list of discs the player thinks it has. The response is always three packets for 300 disc decks, four packets on 400 disc decks. Presumably only one or two packets are returned on smaller decks. Note, these packets do not hold 100 discs each (that would be too easy!). Instead they hold up to 104 discs each - the final packet is still 13 bytes and so has some extra bits/bytes at the end.
    [13 bytes bit-packed byte reversed]
    0x78 Group Contents Part 4
    Seen following responses 0x43, 0x44 and 0x45 on a 400 disc changer. See also Deck Contents (0x72, 0x73, 0x74 and 0x75) which are similarly encoded.
    [group] [13 bytes bit-packed byte reversed]
    0x80 Disc Memo Continued
    Seen following a response 0x40, requested by a 0x40 command. Newer players store 20 characters for disc names, it seems 0x40 returns only the first 13 for backwards compatibility. The second byte seems to be 02, this could be the part number (i.e. the 0x40 would be part one).
    [disc] [02] [ASCII]
    0x83 Door Closed No Extended Data
    0x92 Artist Name
    The second byte is the packet number for long artist names.
    [artist number] [packet number] [up to 13 bytes ASCII]
    0x93 Artist Not Setup [artist number]
    0x94 Artist Data
    Which discs have this artist assigned to them. On my CDP-CX450 I get 25 packets, for 400 discs (up to 200 artists). Each packet contains bytes for 16 discs, the byte being zero for no artist, or the artist number for that disc (plain hex encoded).

    What do smaller decks return?

    Clearly if Sony introduce a player with over 200 artists this format will have to be extended.
    [packet number] [16 bytes of artist numbers]
    0x96 Artist/Group Mode
    Note: Response to command 0x32, 0x74 or 0x96. If in group mode, [group] is the group number. Likewise if in artist mode, [artist] is the artist being played. If both [group] and [artist] are zero then not in either mode.
    [group] [artist] [max groups] [max artists]


    Back to S-Link Main Page