Sony CD commands (DSP:144 (148); 145 (149); 146 (150))

 

This is for Sony CD players equipped with Control-A1 ports (mostly megachangers).  The A1 protocol and its IR commands originated on CD megachangers, and as a result we know more about these commands than any other device’s commands.  We also know a lot about the codes it sends back, as the A1 protocol is 2-way.  See the CD return commands page for more info.  The device codes in parentheses are only used for commands with a disk number over 200 (see the <disc> parameter for more info).  Code 144 is for CD mode 1, 145 for mode 2 and 146 for code 3.

 

SonyDSP:144 (148); 145 (149); 146 (150)

Command Code

Parameter List and Function

0

 

none

Play.  Returns Playing (0).

1

 

none

Stop. Returns Stopped (1).

2

 

none

Pause (discrete).  Returns Paused (2).

3

 

none

Toggles Play/Pause.  Returns Playing or Paused.

8

 

none

Next Track

9

 

none

Previous Track.  First press goes to beginning of current track like the normal button.

14

 

none?

Query disc memory info.  Returns 113, which has info on what is programmed about that disc.

15

 

none

Query deck status.  Returns 112, which has info on repeat/shuffle/program modes.

16

 

none

Fast Forward until another transport command sent.

17

 

none

Rewind until another transport command sent.

18

 

none

Fast Forward (high speed) until another transport command sent.

19

 

none

Rewind (high speed) until another transport command sent.

31

 

none

Resume playing after searching.  Works the same as Play (0).  Might go back to pause if you started searching from pause.

32

 

none

Remote mode on.  Disables various front panel buttons and changes command/response behavior.  Very weird.

33

 

none

Remote mode off.  Puts player back to normal after command 32.

34

 

none

Query player capacity.

36

 

none?

Reports start of tracks.  Does not work on all models, but returns 9 at start of tracks when enabled.

37

 

none

Verbose mode.  Every second sends response 81 back, and you get five of them on the minute marks.  Turned off at the start of the next track, so it isn’t very useful.  I wonder if the IR would even be workable with this on since so much is getting sent back.

38

 

none

Brief mode.  Turns off verbose mode.

39

 

none

Returns 71 if disc has CD Text or 14 if it does not.

46

 

none

Power On

47

 

none

Power Off

50

 

none

Query artist/group mode.  Returns 150.

64

 

<disc>

Query Disc Memo.  Returns 64 with the first 13 characters, plus 128 with the remaining characters on players that support longer memos.

65

 

<disc>

Query delete file.  Returns 65 with the data from the delete file, unless it hasn’t been set up yet, in which case you get a 17 back.

66

 

<group>

Query group memo.  Returns group name in a 66 response.

67

 

<group>

Query group’s discs.  Returns 67, 68, 69 and 120 with the bit-packed disc list.

68

 

<disc>

Query disc info.  Returns disc stats in a 96 response.  If the disc isn’t loaded you get response 20.

69

 

<disc> <track>

Query track info.  Returns the track length contained in response 69.  If the track doesn’t exist or there’s no disc you get a 21 response.

70

 

<disc>

Query slave disc memo.  This is from the slave changer when in megachanger mode.  Returns 70 with the first 13 characters, plus 129 with the remaining characters on players the support longer memos.

72

 

<disc>

Query enhanced disc memo.  On older players it works like command 64.  On newer ones it returns 72 and 73 with the CD text if it exists and the disc is available, otherwise it returns the disc’s memo in 72 and 73.

74

 

<track>

Returns 74 and 75 with the track’s name on a CD text disc.  If <track>=0 then it returns the info for the current track.  Returns 29 if there is no CD text.

On older players, took a BCD byte as the parameter and returned the value in normal binary returned as response 93.

80

 

<disc> [<track>]

Plays specified disc and track.  Track can be omitted to start from track 1.

81

 

<disc> [<track>]

Cues up specified disc and track and leaves in pause.  Track can be omitted to start from track 1.

94

 

[<seconds fade>]

Fade out in specified number of seconds.  30 is the default if invalid or omitted.

95

 

[<seconds fade>]

Fade in in specified number of seconds.  30 is the default if invalid or omitted.

99

 

<disc>

Gets some sort of info for disc.  Returns either 99 with the data or 25 if not available.  We don’t know what this data is however.

100

 

none?

Gets some sort of info for current track.  Might take <disc> and <track> parameters.  Returns 100 with data if everything goes right.  Returns 26 if there is no data or 15 if no current disc/track (presumably making the lack of parameters invalid) or something else isn’t right.  We don’t know what data this returns or what the parameters are.

106

 

none

Query deck model.  Returns 13 byte string with model number.

114

 

none

Query deck contents.  Returns bit-packed list of discs the player thinks it has.  The player loses the list when the door is opened, and has to go all the way around when closed to get accurate results in the response.

116

 

<group>

Sets/clears group mode.  Clears if parameter is 0, otherwise selects the specified group.  Returns 150.

128

 

<disc> <ASCII> x13

Sets disc memo to the string specified.  On models that support longer memos, the additional characters can be specified with command 131.  A string of all zeros clears the memo.

131

 

<disc> <packet> <ASCII> x?

Sets second part of disc memo for models that support it.  The second byte is the packet number, usually set to 2.  We don’t know how long the string can be since the limit for current models is 20 characters total, but I would guess it would be 13.

136

 

unknown

This is some type of programming command; it leaves the player in program mode with a parameter of 1.

138

 

<packet> ( <disc2 H> <disc2 L> <track> ) x5

This sets program 1.  It is always 18 bytes long.  The first parameter is the packet number for sending more than 5 steps.  The track can be set to 171 (0xAB) to mean all tracks on the disc.  Note that discs are specified using 2 bytes, avoiding the whole mess with the regular <disc> parameter.

144

 

unknown

Returns all the memos for all the discs?

146

 

<artist>

Returns all artist memos for the specified artist as 146 responses.  Returns all of them if <artist>=0.

147

 

<artist> <packet> <ASCII> x13

Sets the artist memo for the specified artist.  Packet number is 1 for first 13 bytes and 2 for the remaining 7, as the maximum length for this is 20.

148

 

<packet>

Returns 148 response with artist data.  Packet number can be set to 0 to get all Artist data.

149

 

<disc> <artist>

Assigns artist for disc.  Use artist 0 to clear the artist from that disc.  Returns the changed 148 response.

150

 

<artist>

Sets/clears artist mode. Clears if parameter is 0, otherwise selects the specified artist.  Returns 150.

152

 

<disc> [1]

Gets CD text for the disc and all the tracks.  Returns a 72 and 73, and a bunch of 74 and 75 responses.  If the second byte is 1, then only the first 14 characters (1 packet) is returned for the disc and each track.  A 14 response is returned if CD text is not available or does not exist.

 

Parameters

Parameter Name

Description and Format

<artist>

The artist number, presumably in BCD (it’s not specifically mentioned in the source).

<ASCII>

An ASCII character.  Usually followed by x# in the parameter listing to indicate the maximum string length.

<disc>

The disc number, however it is complicated.  Originally, the capacity of a megachanger was only 100, so they used BCD for discs 1 to 100 (0x01 to 0x99, and 0x00 for 100).  Later, they made 200 disc changers, so they numbered them from 0x9A (disc 100) to 0xFE (disc 200).  Add 54 to the disc number to get the parameter in this case.  Then they made them even bigger, so for discs over 200, add 4 to the device code and subtract 200 from the disc number to get the parameter.

 

In short:

0x01 to 0x99 (BCD): disc 1 to 99

0x00 or 0x9A: disc 100

0x9B to 0xFE: disc 101 to 200

0x01 to 0xC8: disc 201 to 400, using device number in parentheses (normal device+4)

<disc2 H/L>

The disc number in hexadecimal.  The H byte is the high order byte and the L byte is the low-order byte.

<group>

The group number, presumably in BCD (it’s not specifically mentioned in the source).  Usually the valid range is only 1 to 8 anyway.

<packet>

The packet number when sending multiple commands.  See the individual command for usage.

<seconds fade>

The number of seconds for the fade commands.  Valid range is 1 to 30.

<track>

Track number in BCD.

 

Back