Kaleidescape System Control Protocol Reference Manual

kaleidescape
Control Protocol Reference Manual
for Kaleidescape Systems
May 2015
Kaleidescape System Control Protocol Reference Manual
Contents
USING THIS DOCUMENT
6
OVERVIEW
6
Basic communication
6
Types of control messages
6
QUICK START TUTORIAL
7
Connections
TCP/IP link
Serial link
7
7
7
Terminal emulator
9
Control messages
Command example
Command response
Event messages
COMMUNICATION
12
12
13
13
14
Physical connection
Setting up a TCP/IP connection
Setting up an RS-232 serial connection
14
14
16
Basic control protocol
Control message syntax
Device identifier
Sequence number
Message body
Error detection
Event messages
Maintaining synchronization
18
18
19
23
23
28
29
30
COMMAND USAGE
Connection commands
Power commands and messages
Idle mode commands and messages
Verification commands
Kaleidescape Part No. 101-0005 Rev 8
30
30
31
31
32
Page 2
Kaleidescape System Control Protocol Reference Manual
Protocol command
Event message registration
Module registration
Friendly name commands
32
33
33
33
OSD control
Navigation
Menu
Views
User input
View-specific commands
Page and content details
Screen saver
34
34
35
35
36
36
37
37
OSD playback control
Playback control
Movie playback
Music playback
DVD/Blu-ray Disc navigation
Movie playback options
Blu-ray Disc playback options
38
38
39
39
40
40
41
Standalone music control (SATP and keypad)
Text-based music browsing interface (SATP)
Keypad control
41
42
43
Advanced integration
Lighting, screen masking, video, and audio settings
Scripts
User-defined events
44
44
45
45
Child user interface commands
45
CONNECTION MANAGEMENT
46
Power commands
47
Idle Mode
50
Verification
52
Event message registration
58
Module registration
61
Kaleidescape Part No. 101-0005 Rev 8
Page 3
Kaleidescape System Control Protocol Reference Manual
Friendly name
OSD CONTROL
62
63
Basic navigation commands
66
Kaleidescape menu commands
71
Views
73
74
77
81
Movie views
Music views
Other views
User input
83
View-specific commands
85
Page and content details
88
Screen saver commands
95
OSD PLAYBACK CONTROL COMMANDS
Playback control
96
99
Playback information
105
Music playback controls
111
DVD/Blu-ray Disc navigation
116
Movie playback options
120
Blu-ray Disc playback options
127
CONTEXT-SENSITIVE COMMANDS
130
STANDALONE MUSIC CONTROL (SATP AND KEYPAD)
133
Text-based music browsing interface (SATP)
Overview
Implementation and examples
134
134
144
Keypad collections and presets
159
ADVANCED INTEGRATION
Lighting, screen masking, and video settings
Kaleidescape Part No. 101-0005 Rev 8
164
166
Page 4
Kaleidescape System Control Protocol Reference Manual
Scripts
177
User-defined events
178
Kaleidescape App for iPad
180
Child user interface
182
OTHER COMMANDS
183
GETTING ADDITIONAL SUPPORT
187
APPENDIX A: COMMAND SUMMARY AND STATUS CODES
189
Commands
189
Status codes
199
APPENDIX B: REVISION HISTORY
Kaleidescape Part No. 101-0005 Rev 8
201
Page 5
Kaleidescape System Control Protocol Reference Manual
Using This Document
The simple text-based control protocol for Kaleidescape Systems can be
used to issue commands from, and provide information to, control devices.
Connections between control devices and Kaleidescape components can be
serial links or via TCP/IP over the Ethernet network.
This document describes the low-level details of the Kaleidescape System
control protocol. For templates, modules, and documentation for specific
control systems, go to www.kaleidescape.com/support/control-systems.
Note: The information in this document does not apply to the
Kaleidescape Reader, the Kaleidescape Bulk Loader, the Kaleidescape
Speed Reader, or the Modular Disc Vault. Those devices do not
support communication through the control protocol.
This document revision corresponds to kOS version 6.1
Overview
Basic communication
The connection between a controller and a Kaleidescape component is either
a direct serial connection or via TCP/IP over the Ethernet network. For test
purposes, a terminal emulator can be used to send commands to a
Kaleidescape player. See Quick Start Tutorial on page 7 for details.
Types of control messages
This document describes three types of control messages: commands,
response messages, and event messages.

Commands are sent from the controller (or terminal) to a
Kaleidescape component.

Response messages are sent from a Kaleidescape component in
response to a command.

Event messages are unsolicited messages sent from a Kaleidescape
component to indicate a change of state.
Event messages can also be sent as response messages to
commands. This way the controller can determine the current state
of a component even if there has been no change.
Kaleidescape Part No. 101-0005 Rev 8
Page 6
Kaleidescape System Control Protocol Reference Manual
Kaleidescape control messages have either three or four segments,
separated by slash (/) characters. See Basic control protocol on page 18 for
complete information on message syntax.
See Appendix A: Command Summary and Status Codes on page 189 for a
complete list of control messages.
Quick Start Tutorial
This section provides a quick start tutorial using control messages on a
computer. Use this information to learn how certain messages affect the
system.
Connections
A computer can be connected to a Kaleidescape component via TCP/IP over
the existing Ethernet network or by direct serial connection.
TCP/IP link
Use the following steps to find the IP address for a Kaleidescape player.
1. Turn on both the computer and the Kaleidescape player.
2. Verify the computer is on the same subnet as the Kaleidescape
player.
3. Open the browser interface using:
http://my-kaleidescape (Windows)
http://my-kaleidescape.local (Mac)
4. Provide a password as required. Select the SETTINGS tab.
5. Click on Components in the second row of tabs.
6. Record the IP address listed for the player.
Serial link
Use the following steps to look up and change the serial port settings for a
Kaleidescape player. (Only Premiere line players – with the exception of Mini
players – have serial ports.)
1. Turn on both the computer and the Kaleidescape player.
2. Verify the computer is on the same subnet as the Kaleidescape
player.
3. Open the browser interface using:
http://my-kaleidescape (Windows)
http://my-kaleidescape.local (Mac)
Provide a password as required.
Kaleidescape Part No. 101-0005 Rev 8
Page 7
Kaleidescape System Control Protocol Reference Manual
4. Select the SETTINGS tab.
5. Click on Components in the second row of tabs.
6. Select the Settings button for the player.
7. In the new window, click on the CONTROL tab,
Figure 1: Control tab
8. Verify that Flow Control is set to None and make any other required
changes.
9. Record the settings for the player. This information is required to set
up the terminal emulation program.
10. Click OK to close the window.
Kaleidescape Part No. 101-0005 Rev 8
Page 8
Kaleidescape System Control Protocol Reference Manual
Terminal emulator
Use the following procedures to set up a terminal emulator. Several thirdparty emulators are available. This document describes the procedure using
PuTTY for Windows. A telnet client in the terminal window can be used for a
Mac or Linux.
Note: PuTTY is available at
http://www.chiark.greenend.org.uk/~sgtatham/putty
TCP/IP connection
1. Open PuTTY on the computer.
2. Select the Telnet radio button in the Connection type section as shown
in the following figure.
Select Telnet
Figure 2: Telnet selection
3. Enter the IP address of the player and enter 10000 for the Port setting.
4. Click Open. A terminal session window appears.
Kaleidescape Part No. 101-0005 Rev 8
Page 9
Kaleidescape System Control Protocol Reference Manual
Serial connection
If using another emulator rather than PuTTY, see Table 1 for serial
parameters.
Table 1: Serial Parameters
Serial Parameter
Player
Speed (baud)
19200
Data bits
8
Parity
None
Stop bits
1
Flow control
None
1. Open PuTTY on the computer.
2. Select the Serial radio button in the Connection type section as shown
in the following figure.
Select Serial
Figure 3: Serial selection
Kaleidescape Part No. 101-0005 Rev 8
Page 10
Kaleidescape System Control Protocol Reference Manual
3. Enter the name of the computer serial port in the Serial line text box.
This is usually COM1 or COM2; however, USB to serial adaptors
usually use COM3.
Enter the computer
serial port name,
e.g., COM1
Figure 4: Serial line text box
4. Enter the baud rate found on the browser interface into the Speed text
box. The default baud rate is 19200 for a player and 115200 for a
server.
5. Click the Serial option under Connection in the Category section of the
window as shown in the following figure.
Click Serial
Figure 5: Serial option
6. Verify that None is selected for Flow control from the drop-down menu
as shown in the following figure.
Kaleidescape Part No. 101-0005 Rev 8
Page 11
Kaleidescape System Control Protocol Reference Manual
Select None
Figure 6: Flow control setting
7. Click Open. A terminal session window appears.
8. Connect a female-to-female DB-9 serial null modem cable to a serial
port or serial adapter on the computer and connect the other end of
the cable to the control port on the Kaleidescape player.
Control messages
After connecting to a Kaleidescape component and opening a terminal
session window, enter a sample command for the onscreen display. The
following command for controlling the onscreen display is a good example
because the command response is immediately visible.
Command example
Type the following down arrow command in the terminal session window.
Remember to press the enter key to send commands in a terminal session.
01/1/DOWN:
In this example, the command has three parts.
01
is the device ID for the component receiving the
command. The value 01 is the control protocol device
ID (CPDID) that identifies the component directly
connected. This means that regardless of the CPDID
setting for the player connected, the player will act on
commands with device ID 01.
1
is the sequence number, which the component will
send back in response to the command. The
sequence number allows the controller to verify that
the command was received.
Kaleidescape Part No. 101-0005 Rev 8
Page 12
Kaleidescape System Control Protocol Reference Manual
DOWN
is the message body, which indicates the action the
component is to perform. In this example, the DOWN
command moves the highlight down the list. If the
screen saver was on, the screen saver disappears.
Command response
The following text appears in the terminal session window:
01/1/000:/89
This is the response from the component to the DOWN command. The
response to this command has four parts.
01
is the device ID of the component that sent the
response, which matches the device ID of the
component that the DOWN command was sent to.
1
is the sequence number. This number is the same
number as the command so that responses can be
matched to commands.
000
is the message body which starts with the three-digit
status code that indicates whether or not the
command was handled successfully. The value 000
indicates successful handling.
is the checksum that accompanies every response
from a Kaleidescape component. The controller
program can use this number to validate the
message.
89
Event messages
A DOWN command can trigger state changes in the Kaleidescape component
that result in event messages. If the screen saver was active when the
DOWN command was issued, the following the event message appears:
01/!/000:UI_STATE:01:00:00:0:/38
This event message provides information about the current state of the
onscreen display. The message body in this example has six fields separated
by colons.
01
!
is the device ID of the component that sent the
response, which matches the device ID of the
component that the DOWN command was sent to.
is used as the sequence number to indicate that this is
an unsolicited event message.
000
is the three-digit status code. The value 000 indicates
successful handling and no errors.
UI_STATE
is the name of the message, which indicates that the
onscreen display has changed.
Kaleidescape Part No. 101-0005 Rev 8
Page 13
Kaleidescape System Control Protocol Reference Manual
01:00:00:0
are response parameters.
01
means that the onscreen display is on the
Movie List.
00
means that no movie details page or menu is
displayed.
00
means that no dialog box is displayed.
0
means that the screen saver is off.
is the checksum.
38
Refer to the command sections to view commands, how the system
responds, and the event messages generated. See Appendix B: Revision
History on page 201 for command additions and changes.
Communication
The Kaleidescape System communicates with a controller using a simple
text-based protocol. There are two important elements for communicating
with the Kaleidescape System.

Setting up a TCP/IP link or a serial link between a controller and a
Kaleidescape component

Understanding the message syntax for the Kaleidescape control
protocol
Physical connection
Although connected to a single component, a controller can route
commands to any component in the Kaleidescape System using assigned
device ID numbers or component serial numbers.
Setting up a TCP/IP connection
Each Kaleidescape component can handle up to twenty simultaneous TCP/IP
control connections. The controller must specify the IP address of the
component and port 10000.
Determining the IP address of a Kaleidescape component
Verify that the computer is on the same subnet as the Kaleidescape System,
and use the following procedure to find a component IP addresses.
1. Open the browser interface using:
http://my-kaleidescape (Windows)
http://my-kaleidescape.local (Mac)
Provide a password as required.
2. Select the SETTINGS tab.
3. Click on Components in the second row of tabs.
Kaleidescape Part No. 101-0005 Rev 8
Page 14
Kaleidescape System Control Protocol Reference Manual
4. Record all IP addresses listed for the components in the group that
the controller will connect to.
Using a stable IP address
When using TCP/IP connections, Kaleidescape components usually obtain IP
addresses via DHCP, which means that IP addresses can change.
An unstable IP address can result in the controller losing connection to the
Kaleidescape System. There are two ways to make a component IP address
stable.

Reserve an IP address for the Kaleidescape component in the DHCP
server. If the DHCP server supports reservations, this is the preferred
option.

Assign a static IP address to the component. This option is less
desirable because the Kaleidescape component must be
reconfigured if moved to a different subnet.
DHCP reservations provide a central point of management for all IP
allocations at a site. With DHCP reservations, network parameters such as IP
addresses, subnet mask, default gateway, and DNS servers are set in one
place — at the DHCP server. If any of these parameters change, only the
DHCP server has to be modified.
For most installations, the DHCP server built into the router is perfectly
adequate. The procedure to create DHCP reservations is device-specific.
Refer to the router or DHCP server documentation for instructions. DHCP
reservations are usually made using MAC addresses. To see MAC addresses
for Kaleidescape components, go to the Components tab in the browser
interface.
Kaleidescape Part No. 101-0005 Rev 8
Page 15
Kaleidescape System Control Protocol Reference Manual
Setting up an RS-232 serial connection
Kaleidescape components act as an RS-232 Data Terminal Equipment (DTE)
device with data rates up to 115,200 baud for servers and up to 57,600 baud
for players.
The male DB-9 serial control port uses a standard DTE pinout shown in
Figure 7. CTS and RTS are optional and are used only when using hardware
flow control.
2 RD Receive data
3 TD Transmit data
5 SG Signal ground
7 RTS Request to send
8 CTS Clear to send
Figure 7: RS-232 pinout
Use a straight-through cable to connect to a DTE device. If connecting to
another DTE device, use a null modem cable. If in doubt of which cable to
use, check the pinout for the port connecting to the Kaleidescape
component. The component can be connected to a standard computer serial
port using a null modem cable. Most AMX and Crestron DB-9 serial ports
require a null modem cable.
Configuring the serial port
Use the following steps to configure the Kaleidescape serial port.
1. Open the browser interface using:
http://my-kaleidescape (Windows)
http://my-kaleidescape.local (Mac)
Provide a password as required.
2. Select the SETTINGS tab.
3. Click on Components in the second row of tabs.
4. Click on the Settings button for the player.
5. In the new window, click on the CONTROL tab.
6. Select the appropriate serial port settings for the player from the
drop-down menus. Table 2 shows the default port settings for
servers and players. Server port settings cannot be changed. The
port settings on the control system must be set to match.
Kaleidescape Part No. 101-0005 Rev 8
Page 16
Kaleidescape System Control Protocol Reference Manual
Table 2: Default port settings for servers and players
Serial Parameter
Server
Player
Speed (baud)
115200
19200
Data bits
8
8
Parity bits
None
None
Stop bits
1
1
Flow control
None
None
Flow control
Kaleidescape components support hardware flow control using the RTS/CTS
lines, but not software flow control. Table 3 describes effects of flow control
options: None (default) or RTS/CTS.
Note: RTS and CTS signal wiring can be omitted between a
component serial port and the controller if the default flow control
setting is used.
Table 3: Flow control settings
Flow Control Option
Line Status
None
Component ignores CTS. Sends data at any
time, and keeps RTS asserted, indicating that
component is always ready to accept data.
RTS/CTS
Component only sends data when the CTS line
is asserted, and asserts the RTS line when the
component is ready to accept data. The
controller does not send data when the RTS
line is clear.
Character echo
To avoid overloading the serial link, Kaleidescape components do not echo
characters back to the sender. Error detection is handled through checksums.
See Error detection on page 28 for more information.
If working with a terminal emulator, turn on local character echo to view
commands. Both carriage return and line feed might also have to be set to
send.
Kaleidescape Part No. 101-0005 Rev 8
Page 17
Kaleidescape System Control Protocol Reference Manual
Estimating response times
Kaleidescape components respond to all commands. To detect dropped or
lost commands, the controller can expect a response within the time frames
listed in Table 4. Time is based on the serial link speed.
Table 4: Response times of Kaleidescape Systems
Speed
Response Time
9600
3.2 seconds
19200
1.6 seconds
38400
0.8 seconds
57600
0.5 seconds
Basic control protocol
Control commands for the Kaleidescape System use a simple ASCII textbased format. Each control message has up to 1024 characters followed by a
carriage return or line feed character (decimal ASCII 13 and 10).
Kaleidescape components ignore multiple carriage returns or line feed
characters as empty messages. This makes it easy to enter control
commands in a terminal emulator while developing or testing controller
programming.
Control message syntax
Kaleidescape control messages have either three or four segments,
separated by slash (/) characters:
device_id/seq/message_body[/checksum]
device_id
identifies the Kaleidescape component sending or
receiving a message. This is usually the control
protocol device ID (CPDID) of the Kaleidescape
component.
seq
is a sequence number used to match a response from
the component with the original command sent by
the controller.
message_body
contains the message name and other data. Message
fields are delimited by colons and order dependent.
See Message body on page 23.
checksum
aids in error detection. The checksum is optional in
commands but part of all response and event
messages.
Kaleidescape Part No. 101-0005 Rev 8
Page 18
Kaleidescape System Control Protocol Reference Manual
Device identifier
There are two types of device identifiers.

Control protocol device ID (CPDID)

Serial number device identifier
A music zone identifier can be appended to a device ID with .xx, e.g., 01.02 is
device 01, music zone 02.
The device ID identifies the Kaleidescape component receiving or
responding to a command. The device ID allows controllers to send and
receive messages to and from a Kaleidescape component while connected to
another component. This is called command routing.
Command routing is a feature of the Kaleidescape control protocol that
allows commands routed through a single physical connection on one
Kaleidescape component to reach other Kaleidescape components on the
network. This allows multiple Kaleidescape components to be controlled
with only one connection to the controller.
Commands prefaced with a unique CPDID for a component or with the serial
number of the component, are received by that component, no matter the
physical connection.
The advantage of using a unique CPDID as opposed to a serial number
device ID is that a component can be replaced without changing the control
program. The advantage of using the serial number format is that CPDIDs do
not have to be assigned.
Note: The only module provided by Kaleidescape that requires
CPDIDs to be set is the AMX module. Other modules communicate
directly with the player being controlled.
Note: It is not usually necessary to connect a controller to the server.
This is useful only when using the server as a gateway to route
commands to other components.
Control protocol device ID (CPDID)
Control protocol device ID (CPDID) numbers are the most common device
IDs. CPDIDs are two-digit numbers assigned to a component for
communication.
Numbering
CPDID numbers range from 01 to 99.

CPDID 01 is the component directly connected to the controller,
either via a TCP/IP session or a serial link.
Kaleidescape Part No. 101-0005 Rev 8
Page 19
Kaleidescape System Control Protocol Reference Manual

A specific CPDID (from 02 to 99) can be set to allow for command
routing. Using this ID sends the command to the specified
component.

CPDID ?? is a special identifier that appears only in response
messages when the original command was garbled and the
Kaleidescape component could not determine the intended
destination for the command.

CPDID 00 is invalid.
Kaleidescape Part No. 101-0005 Rev 8
Page 20
Kaleidescape System Control Protocol Reference Manual
Assigning CPDID numbers
Use the following steps to assign CPDIDs on the installer pages of the
browser interface.
1. Open the browser interface using:
http://my-kaleidescape (Windows)
http://my-kaleidescape.local (Mac)
Provide a password as required.
2. Select the SETTINGS tab.
3. Click on Components in the second row of tabs.
4. Click on the Settings button for the player.
5. In the new window, click on the CONTROL tab.
6. Select the Control Protocol Device ID from the drop-down menu.
Never assign the same CPDID (other than None) to two components
in the same server group. In the case of duplicate CPDIDs, messages
directed to that CPDID return a response status error indicating a
device identifier conflict.

When connecting a serial controller directly to a player or
Cinema One (1st generation) via the RS-232 control port,
communication parameters must be set to match the serial
controller.

The M300 Player has no serial port, but can be controlled via
TCP/IP or via a controller connected by RS-232 to another
player.
7. Click OK.
Example 1
In this example, the system has a Cinema One (1st generation) and an M500
Player with a controller connected directly to the M500 Player. The Cinema
One has been set to CPDID 02. The controller can send messages to the
Cinema One using CPDID 02, or send messages to the M500 Player using
CPDID 01.
Controller sends:
02/1/GET_NUM_ZONES:
(command routed to Cinema One)
Kaleidescape System sends:
02/1/000:NUM_ZONES:01:03:/94
(response from Cinema One)
Controller sends:
01/1/GET_NUM_ZONES:
Kaleidescape Part No. 101-0005 Rev 8
(command sent directly to connected
M500 Player)
Page 21
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01/1/000:NUM_ZONES:01:01:/91
(response from M500 Player)
Example 2
In this example, the system has an M500 Player directly connected to a
controller. The M500 Player has been set to CPDID 03. The controller can
send messages to the player using CPDID 01 (the local device ID) or 03 (the
indirect/routable CPDID).
Controller sends:
03/1/GET_NUM_ZONES:
(command routed to M500 Player)
Kaleidescape System sends:
03/1/000:NUM_ZONES:01:01:/93
(response from M500 Player)
Controller sends:
01/1/GET_NUM_ZONES:
(command sent directly to connected
M500 Player)
Kaleidescape System sends:
01/1/000:NUM_ZONES:01:01:/91
(response from M500 Player)
Serial number device identifier
The device identifier can also be the serial number of the component. The
serial number device identifier is specified by a pound sign followed by the
serial number. Leading zeros in serial numbers may be omitted in
commands. For example, to send a command to a component with serial
number 0000 000144B,
#144B/1/DOWN:
The response message will also contain the serial number, identified with a
pound sign, and zero-padded to 12 hexadecimals. For example,
#00000000144B/1/000:/30
By default, events always use the two-digit device ID format. To receive
event messages in serial number format, use the ENABLE_EVENTS command.
See ENABLE_EVENTS on page 58.
Music zone identifier
The device identifier field can contain an optional music zone identifier. A
music zone identifier has two digits and is preceded by a period. For
example,
01.02/3/PAUSE:
In this example, the connected device (01) has a music zone (02), which is
paused. When using serial number syntax, the music zone identifier follows
the serial number. For example,
Kaleidescape Part No. 101-0005 Rev 8
Page 22
Kaleidescape System Control Protocol Reference Manual
#144B.02/3/PAUSE:
Commands sent to a music zone do not specifically control the Kaleidescape
onscreen display. When a music zone is specified in the device identifier,
only commands that control music are allowed. These commands include
BROWSE and music controls, such as PAUSE.
If the music zone identifier is omitted, the command applies to the onscreen
display if applicable. If the component does not have an onscreen display,
only a limited set of commands are available, e.g., network setting
commands.
Examples
01/6/STOP:
This command controls the onscreen display. If the screen saver is active,
the first time this command is sent, the screen saver is cleared. The second
time the command is sent, the movie or music playing stops.
01.01/6/STOP:
Sending this command to an M500 Player music zone only stops the music
(if playing) and does not disable the screen saver.
If the onscreen display is set to control a different music zone (via the Now
Playing view or the SET_CONTROLLED_ZONE command), the 01/6/STOP:
command stops music in that zone, rather than the zone in the connected
player. The 01.01/6/STOP: command always stops the music for the
connected player.
Sequence number
The sequence number is a single digit from 0 to 9 for commands and
response messages, or the character ! for an event message.
When a Kaleidescape component sends a response to a command from a
controller, the component puts the sequence number from the message
received into the response. This sequence number allows the controller to
keep track of the responses to each command.
If a Kaleidescape component cannot determine the sequence number of a
command, the question mark character ? is used as the sequence number in
the response.
Message body
The message body contains the name of the message and any associated
data. Event messages and command responses also contain a status code in
the message body. See Appendix A: Command Summary and Status Codes
on page 189 for a list of status codes.
Kaleidescape Part No. 101-0005 Rev 8
Page 23
Kaleidescape System Control Protocol Reference Manual
The information in the message body is delimited into fields separated by
colons. The number and meaning of the fields varies with the specific
message.
For commands, the first field is always the name of the message. For
example, GO_MOVIE_COVERS or PLAY.
For response and event messages, the message body always begins with a
status code, followed by the message name and any additional fields.
The following example has some commands that might be sent by a
controller, along with the responses and event messages from the
Kaleidescape component.
01/1/GO_MOVIE_COVERS:
01/1/000:/89
01/!/000:UI_STATE:03:00:00:0:/40
01/2/PLAY:
(response)
(event message)
01/2/000:/90
(response)
01/!/000:UI_STATE:03:02:00:0:/42
(event message)
01/!/000:TITLE_NAME:Almost Famous:/34
…
01/3/PA.SE:
(event message)
01/3/010:/92
01/4/~AUSE:/30
(response)
01/4/003:/95
(response)
This sequence of commands displays the Movie Covers view and begins
playing the highlighted movie, Almost Famous. Note that these commands
have increasing sequence numbers, and the first three have no checksums.
The responses from the Kaleidescape component have sequence numbers
matching the commands and contain checksums (as do all responses sent
by Kaleidescape components).
The status code 000 in the first two responses indicates that no error
occurred receiving or handling the commands. Some event messages follow
the responses that indicate changes in the state of the zone under control.
In the last example, the controller sent two garbled PAUSE commands some
time after the original commands. Because there is no checksum, the
component must look at the message itself to determine whether the
message was sent correctly. The component does not recognize the
command name and responds with a status of 010 indicating an invalid
command.
Kaleidescape Part No. 101-0005 Rev 8
Page 24
Kaleidescape System Control Protocol Reference Manual
The controller reacts by sending another PAUSE command, this time with a
checksum of 30 (the correct checksum for the ungarbled message), but the
message becomes garbled again. The component compares the checksum
(30) provided by the controller to the checksum on the received message
(76), to determine that the message was garbled. The component then
responds with a status of 003, indicating a checksum error. Checksums can
be used to detect problematic RS-232 connections.
Message status codes
All response and event messages contain a zero-padded, three-digit status
code. A 000 status code means no errors; any other code indicates an error.
Error messages are not intended to be displayed to the end user.

For event messages, the status code is always 000 (no error) to
simplify message parsing.

For response messages, the status code can be a non-zero value
indicating an error of some sort. For a complete list, see Status codes
on page 199.
The controller must inspect the status field of any response message before
taking action based on the response.
Some commands, for example the BROWSE command, return a brief message
along with the status code if there is an error. For example,
01/1/BROWSE:bad::1-10::
01/1/012:Invalid node:/15
Message character set
Other than message delimiters (carriage return and line feed), all characters
in a control message must be printable, 8-bit ASCII characters in the ISO
8859-1 (Latin-1) character set — no raw control characters are allowed.
The characters allowed in a message range from decimal value 32 (the space
character) to decimal 255 (y-umlaut, ÿ).
Certain characters from the Latin-1 character set are also supported using
special escape sequences.
Note: A controller must be able to handle escaped characters in
response and event messages, and must be able to escape ASCII
characters with special meaning in the message format.
To support interactive serial or TCP/IP connections where each character is
transmitted as typed, the serial protocol handles ASCII 8 (BS) and 127 (DEL)
by deleting the preceding character.
Note: The SET_PROTOCOL_SETTINGS command can override most of
this behavior.
Kaleidescape Part No. 101-0005 Rev 8
Page 25
Kaleidescape System Control Protocol Reference Manual
Special characters
To include format and control characters in a message data field, characters
must be escaped with a backslash \ character using the sequences in Table
5.
If the controller cannot handle escape sequences, escaped characters can be
avoided by using the SET_PROTOCOL_SETTINGS command.
Table 5: Special characters
Character
Escape sequence
Line feed
\n
Carriage return
\r
Horizontal tab
\t
Slash (/)
\/
Backslash (\)
\\
Colon (:)
\:
Any Latin-1 character
including characters
with accents
\dnnn
where nnn is the zero-padded
three-digit decimal value for the
character
The Kaleidescape System uses the Latin-1 character set for accented letters
common in foreign films and names, and for special punctuation. To include
these characters, use the character directly or use the escape sequence \d
followed by the three-digit decimal value for the letter. For example, to
represent the character a-acute (á), which has the 8-bit ASCII value 225, use
the sequence \d225.
Field processing algorithm
The pseudo code below shows how to process a field from a control
message. The variable field is assumed to be a string of the field within the
overall message string. The variable field_terminated is used to make sure
the field ends with a colon character. The variable field_text is filled with
the processed characters from the message. The variables escaped and char
handle escape sequences in the loop that runs through the message until it
encounters a colon character terminating the field, or the end of the message
string. After the loop finishes, if a colon was not found (or a segment
delimiter (/) was found), an error occurs.
Kaleidescape Part No. 101-0005 Rev 8
Page 26
Kaleidescape System Control Protocol Reference Manual
field_text = ""
field_terminated = false
escaped = false
char = ''
for each character in field:
if (escaped is true) then
if (character is 'd') then
char = (next three digit characters as a decimal value)
(advance loop past digit characters)
else if (character is 'n') then
char = (newline character)
else if (character is 'r') then
char = (carriage return character)
else if (character is 't') then
char = (tab character)
else if (character is '/') then
char = '/'
else if (character is ':') then
char = ':'
else if (character is '\') then
char = '\'
end if
append char to field_text
escaped = false
else if (character is '\') then
escaped = true
else if (character is ':') then
field_terminated = true
break loop // a field delimiter ends scan w/success
else if (character is '/') then
break loop // a segment delimiter ends scan w/o a valid field
else if (not between 32 and 126) then
note error condition
break loop
else
append character to field_text
end if
next for
if (field_terminated is false) then
note error condition
end if
Kaleidescape Part No. 101-0005 Rev 8
Page 27
Kaleidescape System Control Protocol Reference Manual
Error detection
The Kaleidescape control protocol allows for a checksum to be included with
every message for reliable communication even on noisy connections.
The checksum is an optional segment in controller commands. If a checksum
is provided, the Kaleidescape System uses this information to detect
transmission errors before processing a command. If the checksum is
omitted, the slash character before the checksum must also be omitted.
The checksum is always included in response and event messages. The
controller has the option to use or ignore the checksum.
The controller programmer must decide how to handle a response or event
message with an incorrect checksum. This situation indicates a problem with
the communications link and must, at the least, result in a log message to
identify the problem. The controller software can check the message body
status field for a 000 (no error) value to decide whether or not to resend the
command with the matching sequence number.
The programmer must decide if the controller will assume that the command
arrived intact. This decision depends on whether a repeated command is
preferable to a missed one. This decision depends on the specific message.
A repeated KALEIDESCAPE_MENU_TOGGLE command, which flashes the
Kaleidescape menu briefly onscreen, is likely to be more annoying than a
missed one, where the menu simply fails to appear.
On the other hand, a repeated STOP command can do no harm. The simplest
policy is to ignore all responses and events that fail checksum verification,
on the assumption that it is better to ignore a garbled message than to act
on incorrect contents.
Checksums are not applicable when using a TCP/IP connection, because the
TCP protocol has built-in error handling.
Calculating the checksum
A checksum is a zero-padded, two-digit decimal number, calculated as a
straightforward sum, modulo 100, of the decimal value of each character in
the message before the checksum, including the last slash character.
Use the following pseudo code to compute a checksum.
checksum = 0
for each character in the full message before the checksum segment
checksum = checksum + (current character decimal value)
checksum = checksum modulo 100
end for
Kaleidescape Part No. 101-0005 Rev 8
Page 28
Kaleidescape System Control Protocol Reference Manual
Event messages
Event messages are unsolicited messages sent from a Kaleidescape
component to indicate a change of state. It is not necessary for a controller
to query a Kaleidescape component repeatedly for information about the
current state of the component. Any changes such as the state of the user
interface are automatically sent to the controller.
The component sends out event messages any time relevant information
changes. The controller only needs to monitor for such messages and take
appropriate action.
Some event messages are nearly identical to command response messages.
For example,
01/!/000:UI_STATE: …
contains the same message parameters as the response to the GET_UI_STATE
command.
01/1/000:UI_STATE: …
Examples
1. When a movie enters the end credits, a MOVIE_LOCATION event
message is sent to the controller which can respond by raising the
lights in the theater.
2. A PLAY_STATUS message indicates playback and scan speed, which
the controller can use to swap a Play button with a Pause button, or to
highlight the Fast Forward button when the player is scanning. This
message also contains information on the currently playing title and
chapter numbers, as well as the playback location within each, which
the controller can display on a touch panel.
3. A TITLE_NAME message indicates the title of the movie currently
playing.
4. For theater installations that must manage changes in aspect ratio for
masking systems or installations with external scalers, the event
messages VIDEO_MODE and SCREEN_MASK provide the necessary
information to adjust the theater equipment automatically as the user
switches between the onscreen display and movies with different
aspect ratios.
5. For installations that must react to video mode changes, such as
those incorporating external scalers or display devices that do not
automatically detect changes in the video mode, a VIDEO_MODE event
message indicates the current video mode for each video output of
the movie zone. This information can be used by the controller to
configure the downstream video display or processing devices
accordingly.
Kaleidescape Part No. 101-0005 Rev 8
Page 29
Kaleidescape System Control Protocol Reference Manual
6. The UI_STATE message provides information about which screen is
visible in the Kaleidescape user interface, along with any details
pages or menus, dialog boxes, or a screen saver.
7. The USER_INPUT message tells if the user is being prompted for input,
what type of input, what the prompt is, and any currently entered
characters. The controller can inspect this event message and change
the display to show a numeric keypad or alphanumeric keyboard,
display a field with the prompt string, as well as show what the user
has already entered.
Maintaining synchronization
Some control protocol messages change the behavior of a component.
When the component restarts or loses connection to the controller, those
messages must be resent to the component.
For example, the SET_SCREEN_MASK message sends data to the component
that the component remembers and uses until a restart. When the
component restarts, the component state resets to the default values. This
means the SET_SCREEN_MASK message has to be sent again.
The controller can tell that a component might have restarted or temporarily
lost the serial connection when the controller receives the PLAYER_RESTART,
VIDEO_MODE or SCREEN_MASK messages.
Command Usage
Understanding how commands in the Kaleidescape control protocol work
together allows programmers to use all of the capabilities provided by the
Kaleidescape System.
This general overview of commands divides commands into five main
groups depending on usage.

Connection

OSD control

Playback control

Standalone music control (SATP and keypad)

Advanced integration
Connection commands
Connection commands affect all components. These commands can be
divided into the following groups.

Power

Idle mode

Verification
Kaleidescape Part No. 101-0005 Rev 8
Page 30
Kaleidescape System Control Protocol Reference Manual

Protocol

Event message registration

Module registration

Friendly name
Power commands and messages
Commands
ENTER_STANDBY
PLAYER_RESTART
LEAVE_STANDBY
GET_DEVICE_POWER_STATE
When a controller connects to the Kaleidescape System for the first time, the
controller must check the power state of the component with the
GET_DEVICE_POWER_STATE command.
If a player is in standby, the controller can send a LEAVE_STANDBY command.
Kaleidescape components other than the M-Class players and Cinema One
reset the TCP/IP connection at power on, so if a DEVICE_POWER_STATE
message does not appear within a second, the controller should drop the
connection, wait at least 30 seconds, and then try to reconnect. A
Kaleidescape component can take several minutes to reboot, depending on
system conditions. If the controller cannot reconnect within a reasonable
amount of time, the controller should display an error message to the user.
In some situations, it can be difficult to determine whether an existing
TCP/IP connection is still active. In this case, a command can be sent to
determine whether the connection is active. The GET_TIME command is a
good test command because this command has no effect on the system.
When a component restarts, depending on the specific type of component,
the controller either loses the TCP/IP connection to the component, receives
a DEVICE_POWER_STATE event message indicating a change in power state, or
receives a PLAYER_RESTART event message. The controller should handle any
of these situations by reconnecting to and resynchronizing with the
component. Use the GET_UI_STATE command to the view changes.
Idle mode commands and messages
Commands
GET_SYSTEM_READINESS_STATE
LEAVE_IDLE_MODE
When a controller connects to a Kaleidescape Cinema One (2nd generation)
or Alto, the controller may check the idle mode using
GET_SYSTEM_READINESS_STATE.
Kaleidescape Part No. 101-0005 Rev 8
Page 31
Kaleidescape System Control Protocol Reference Manual
The controller can monitor idle mode while it is connected using the
SYSTEM_READINESS_STATE message. The controller can remove the
system from idle mode by sending LEAVE_IDLE_MODE. The controller can
display a message that the Kaleidescape system is “Spinning up” when
SYSTEM_READINESS_STATE = 1, and dismiss the message after the
Kaleidescape system has left idle mode, SYSTEM_READINESS_STATE = 0.
A Kaleidescape Alto or Cinema One (2nd generation) will automatically enter
idle mode after a period of inactivity. The Kaleidescape system will exit idle
mode after receiving LEAVE_IDLE_MODE or after any user interaction.
Verification commands
Commands
GET_PROTOCOL
GET_NUM_ZONES
GET_DEVICE_TYPE_NAME
GET_SYSTEM_VERSION
SET_PROTOCOL_SETTINGS
GET_TIME
GET_AVAILABLE_DEVICES
GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER
After a connection has been established to a component that is powered on,
check the protocol version with the GET_PROTOCOL command. The controller
can require a minimum protocol version to ensure that all commands are
available. If the protocol version is high enough, the controller can continue
with initialization. The GET_SYSTEM_VERSION can also be used to check the
protocol version as well as the kOS version.
The GET_NUM_ZONES command can be used to verify controller configuration.
For example, if the controller has been configured to control a movie zone
on a component that does not have a movie zone, the GET_NUM_ZONES
command returns a 0 for the number of movie zones, allowing the controller
to produce an error message for the user. The GET_DEVICE_TYPE_NAME
command can be used in conjunction with the error message to make the
error message more meaningful.
The GET_AVAILABLE_DEVICES and
GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER commands can be used to
discover all components in the system.
Protocol command
Commands
SET_PROTOCOL_SETTINGS
During startup, changing the protocol settings to enable binary delimiters
allows for faster parsing and processing by the controller. Use the
SET_PROTOCOL_SETTINGS command to change protocol settings.
Kaleidescape Part No. 101-0005 Rev 8
Page 32
Kaleidescape System Control Protocol Reference Manual
Event message registration
Commands
ENABLE_EVENTS
GET_DEVICE_INFO
DISABLE_EVENTS
SEND_EVENT
To control a movie or music zone on the component connected directly to
the controller, use the GET_DEVICE_INFO command to identify the Control
Protocol Device ID (CPDID) of the connected device. Even though the
component responds to commands sent to CPDID 01, the component only
generates event messages from the assigned CPDID. The GET_DEVICE_INFO
command provides the assigned CPDID so the controller can accept event
messages from the component.
If the controller is configured to control a zone other than the locally
connected movie zone, the controller must use the ENABLE_EVENTS command
to receive event messages from that zone. This command applies to music
zones on the directly connected component as well as all zones on other
components.
Module registration
Commands
SEND_TO_SYSLOG
To assist in troubleshooting, a Kaleidescape System can send information to
the diagnostic logs about the control module version. Use the
SEND_TO_SYSLOG command to send a message with the module description
and version. Kaleidescape recommends sending this command once a day
and each time Kaleidescape control is initiated.
Note: This information is covered by the Kaleidescape privacy policy.
Friendly name commands
Commands
GET_FRIENDLY_NAME
SET_FRIENDLY_NAME
The controller can display the name of the Kaleidescape movie zone or
music zone being controlled. Use the GET_FRIENDLY_NAME command to
discover the friendly name. Use SET_FRIENDLY_NAME to label a zone on a user
interface.
Kaleidescape Part No. 101-0005 Rev 8
Page 33
Kaleidescape System Control Protocol Reference Manual
OSD control
The onscreen display (OSD) control commands navigate the Kaleidescape
onscreen display, control movie and music playback through the onscreen
display, and respond to playback events. Software modules that support
these commands are sometimes referred to as OSD control modules.
All OSD control commands are sent to a movie zone, and all event messages
related to OSD control are sent from a movie zone. These commands can be
divided into the following groups.

Navigation

Menu

Views

User input

View-specific commands

Page and content details

Screen saver
Navigation
Commands
Arrow commands
Page up/down commands
SELECT
POSITION_SELECT
CANCEL
Paging and skipping
CHILD_SELECT
The user must be provided with basic controls to navigate the onscreen
display. The UP, DOWN, LEFT, RIGHT and other arrow commands are used to
navigate the onscreen options, and the SELECT or CHILD_SELECT command to
select. (CHILD_SELECT behaves like SELECT but also activates the child user
interface.) The PAGE_UP, PAGE_DOWN and other paging commands allow the
user to search through long lists quickly in the list and collections views.
The arrow commands and page up/down commands have _PRESS and
_RELEASE versions to refine user navigation (for example PAGE_UP_RELEASE).
If the controller can detect distinct press and release events, program the
controller so that pressing the corresponding button sends the _PRESS
version of the command, and releasing the button sends the _RELEASE
version.
To close dialog boxes and cancel user input, use the CANCEL or
STOP_OR_CANCEL command. The STOP_OR_CANCEL command is useful when
there is no explicit Cancel or Exit button available.
Kaleidescape Part No. 101-0005 Rev 8
Page 34
Kaleidescape System Control Protocol Reference Manual
A controller that supports a touch-sensitive video feed can use the
POSITION_SELECT command to make it possible for the user to have direct
touch control to interact with the Kaleidescape onscreen display.
Kaleidescape refers to software that support this feature as OSD Video and
software that does not as OSD No Video.
Paging and skipping commands behave like PAGE_UP or PAGE_DOWN in the
user interface.
Menu
Commands
KALEIDESCAPE_MENU_ON
KALEIDESCAPE_MENU_TOGGLE
KALEIDESCAPE_MENU_OFF
DISC_OR_KALEIDESCAPE_MENU
The Kaleidescape user interface has three types of views for the user to
access content: list, covers, and collections. These views can all be accessed
through the Kaleidescape menu, which is accessed using the Kaleidescape
menu commands.
If the controller cannot support both a Disc Menu button and a Kaleidescape
Menu button, use the DISC_OR_KALEIDESCAPE_MENU command to provide a
single button that provides both functions.
Views
Note: Music view commands will re-direct to the movie collection
“Songs” when sent to a player which does not support music.
Commands
GET_UI_STATE
GO_MUSIC
GO_MOVIES
GO_MUSIC_LIST
GO_MOVIE_LIST
GO_MUSIC_COVERS
GO_MOVIE_COVERS
GO_MUSIC_COLLECTIONS
GO_MOVIE_COLLECTIONS
GO_MUSIC_COLLECTION
GO_MOVIE_COLLECTION
GO_NOW_PLAYING
GO_SYSTEM_STATUS
GO_PARENTAL_CONTROL
GO_VAULT_SUMMARY
DISC_IN_TRAY_TOGGLE
Direct access to the views on the Kaleidescape menu are available by using
the GO_MOVIE_LIST, GO_MOVIE_COVERS, GO_MOVIE_COLLECTIONS,
GO_MUSIC_LIST, GO_MUSIC_COVERS, GO_MUSIC_COLLECTIONS, GO_NOW_PLAYING,
GO_VAULT_SUMMARY, GO_SYSTEM_STATUS, and GO_PARENTAL_CONTROL
commands. To switch between music and movie views, use the GO_MOVIES
and GO_MUSIC commands.
Kaleidescape Part No. 101-0005 Rev 8
Page 35
Kaleidescape System Control Protocol Reference Manual
The controller can provide feedback about the view currently active by using
the GET_UI_STATE command or waiting for a UI_STATE event message when
the view changes.
User input
Commands
GET_USER_INPUT
SELECT
KEYBOARD_CHARACTER
CANCEL
BACKSPACE
User input is sometimes requested from the Kaleidescape onscreen display.
Capable controllers should watch for unsolicited USER_INPUT event
messages to display the appropriate keyboard or numeric keypad when
required. These event messages can occur at any time, even during movie
playback. When user input is requested, KEYBOARD_CHARACTER commands
send the input character by character, and the BACKSPACE command is used
to delete characters and fix errors. Sometimes, input requires a SELECT
command to confirm that the entry is complete. The CANCEL command is
used to cancel user input.
When user input is not being requested, KEYBOARD_CHARACTER commands act
differently.
View-specific commands
Commands
FILTER_LIST
KEYBOARD_CHARACTER
DEFAULT_LEVEL
BACKSPACE
SAFE_LEVEL
SELECT
SHUFFLE_COVER_ART
CANCEL
ALPHABETIZE_COVER_ART
GO_PARENTAL_CONTROL
GET_USER_INPUT
CHILD_SHUFFLE_COVER_ART
Different commands are enabled depending on the user interface view.
Parental controls are enabled on all movie views. To enter a parental control
passcode to enable restricted content, send the numeric passcode to the
component using KEYBOARD_CHARACTER commands. The BACKSPACE
command can be used to fix typing errors when entering the code and the
CANCEL command to return to the movie library.
As characters are entered, USER_INPUT event messages are generated
containing the characters currently displayed on the screen and the
passcode prompt. When entering a passcode, the digits are masked by
asterisks.
Kaleidescape Part No. 101-0005 Rev 8
Page 36
Kaleidescape System Control Protocol Reference Manual
Direct access to the parental control settings view can be made through the
GO_PARENTAL_CONTROL command.
Lists in the Movie List, Music List, Movie Collections, and Music Collections
views can be filtered using the FILTER_LIST command. This command puts
the OSD in a filtering mode. To filter the list, send KEYBOARD_CHARACTER
commands containing the string for filtering. As characters are entered,
USER_INPUT event messages are generated containing the text, along with a
prompt that can be displayed on the controller.
When filtering the list, BACKSPACE can be used to delete characters, and
CANCEL to exit filtering mode.
When not in filtering mode, sending a KEYBOARD_CHARACTER command
causes the display to jump quickly to movies or albums starting with the
keyboard letter without entering filtering mode.
In the Movie Covers and Music Covers views, the SHUFFLE_COVER_ART
command can be used to force the cover art shuffling.
Page and content details
Commands
DETAILS
GET_CONTENT_DETAILS
GET_HIGHLIGHTED_SELECTION
As the user navigates the onscreen display, HIGHLIGHTED_SELECTION event
messages are generated for each selection highlight change. The
HIGHLIGHTED_SELECTION message supplies a handle that can be used by the
GET_CONTENT_DETAILS command to get selection item details.
Screen saver
Commands
GO_SCREEN_SAVER
STOP_SCREEN_SAVER
After establishing a fresh connection to a Kaleidescape component,
Kaleidescape recommends sending the STOP_SCREEN_SAVER command to
clear the screen saver. This saves the user a button press. The UI_STATE
message is used to determine whether or not the screen saver is active and
can be used to display a message on the controller when the screen saver is
active.
Kaleidescape Part No. 101-0005 Rev 8
Page 37
Kaleidescape System Control Protocol Reference Manual
OSD playback control
These commands control movie and music playback through the onscreen
display.
These commands can be divided into the following groups.

Playback control

Playback information

Music playback controls

DVD/Blu-ray Disc navigation

Movie playback options

Blu-ray Disc playback options
Playback control
Commands
PLAY
Paging and skipping
PAUSE
Kaleidescape menu commands
STOP
INTERMISSION_ON
REPLAY
INTERMISSION_OFF
NEXT and PREVIOUS
INTERMISSION_TOGGLE
CHILD_STOP
SCAN_FORWARD and SCAN_REVERSE
CHILD_PLAY
CHILD_PAUSE
Basic movie and music playback control can be achieved through the PLAY,
PAUSE, and STOP commands, along with the paging and skipping commands.
The CHILD_PLAY, CHILD_STOP, and CHILD_PAUSE commands function like the
corresponding non-child playback commands, and also activate the child
user interface if not already active.
These commands do not directly control music playback when sent to a
movie zone. These commands can also have different effects depending on
the current status of the onscreen display. For example, if the screen saver is
active, 01/1/PLAY: first hides the screen saver before playing anything. The
command 01.01/1/PLAY: simply starts music playback of whatever is in the
Now Playing view.
The INTERMISSION_ commands produce an effect similar to PAUSE, but also
trigger lighting events and display an Intermission screen.
Kaleidescape Part No. 101-0005 Rev 8
Page 38
Kaleidescape System Control Protocol Reference Manual
Movie playback
Commands
SET_STATUS_CUE_PERIOD
GET_UI_STATE
GET_PLAY_STATUS
GET_MOVIE_LOCATION
GET_PLAYING_TITLE_NAME
These commands determine the state of movie playback. These commands
can be used to display playback information to the user, change controls on
a touch panel page, or trigger lighting events. UI_STATE and MOVIE_LOCATION
messages indicate whether or not a movie is playing and are generated
when movie playback stops or starts.
The PLAY_STATUS message can be used to determine how far movie playback
has progressed, what chapter playback is on, or whether playback is paused,
scanning, or playing. This message is normally sent during chapter changes
or changes in playback. For more frequent updates, use the
SET_STATUS_CUE_PERIOD command to set PLAY_STATUS messages to be
generated once per second.
Music playback
Commands
Note: The response code for music related commands will return
“Command is not available” for products which do not support
music.
MUSIC_RANDOM_ON
GET_CONTROLLED_ZONE
MUSIC_REPEAT_OFF
SET_CONTROLLED_ZONE
MUSIC_RANDOM_TOGGLE
GET_MUSIC_NOW_PLAYING_STATUS
MUSIC_REPEAT_ON
GET_MUSIC_PLAY_STATUS
MUSIC_REPEAT_OFF
GET_MUSIC_TITLE
MUSIC_REPEAT_TOGGLE
Music playback status has a different set of commands than movie playback.
The MUSIC_PLAY_STATUS message is used instead of PLAY_STATUS messages
to discover how far the current track playback has progressed, what track
playback is on, and whether playback is paused, scanning or playing. The
MUSIC_PLAY_STATUS message frequency is controlled by the
SET_STATUS_CUE_PERIOD command like the PLAY_STATUS message.
The GET_MUSIC_TITLE and GET_MUSIC_NOW_PLAYING_STATUS commands
request information about the music currently playing, that can be used to
populate a user display. Information includes the name of the song, the artist
performing the song, and the album with the song.
Kaleidescape Part No. 101-0005 Rev 8
Page 39
Kaleidescape System Control Protocol Reference Manual
Various settings related to music playback can be controlled in the Now
Playing view on the onscreen display. Whether the music playlist plays back
randomly, whether the music repeats, and what music zone the onscreen
display is controlling can all be modified from this view. These settings can
also be changed directly through the control protocol using the
MUSIC_RANDOM_TOGGLE and MUSIC_REPEAT_TOGGLE commands (along with _ON
and _OFF variants, and the SET_CONTROLLED_ZONE and GET_CONTROLLED_ZONE
commands.
DVD/Blu-ray Disc navigation
Commands
DISC_MENU
START_CHAPTER_ENTRY
DISC_TOP_MENU
START_DISC_TITLE_ENTRY
DISC_RESUME
KEYBOARD_CHARACTER
DISC_OR_KALEIDESCAPE_MENU
DVDs and Blu-ray Discs have menus that can be accessed through the
DISC_MENU command. If there is no room for discrete DISC_MENU and
KALEIDESCAPE_MENU controls on the control interface, use the
DISC_OR_KALEIDESCAPE_MENU command. To leave the disc menu, use the
DISC_MENU command again, the DISC_RESUME command, or even the PLAY
command.
It is possible to jump to specific chapters on a disc using the
START_CHAPTER_ENTRY command, followed by KEYBOARD_CHARACTER
commands to select the chapter.
Movie playback options
Commands
SHOW_NAVIGATION_OVERLAY
START_SEND_NUMBER_TO_DISC_ENTRY
STATUS_AND_SETTINGS
ANGLE_NEXT
SET_FAVORITE_SCENE_START
ANGLE_PREVIOUS
SET_FAVORITE_SCENE_END
AUDIO_NEXT
SUBTITLES_NEXT
GET_CAMERA_ANGLE
There are several playback options to be adjusted during movie playback.
These options are accessed onscreen through the movie overlay. This
overlay can be toggled using the STATUS_AND_SETTINGS command.
Some of the functions in the movie overlay can be accessed directly using
control protocol commands. For example, the SET_FAVORITE_SCENE_START
and SET_FAVORITE_SCENE_END commands can be used to mark scenes. The
ANGLE_NEXT and ANGLE_PREVIOUS commands change angles. The AUDIO_NEXT
and SUBTITLES_NEXT change the audio and subtitle tracks for the disc.
Kaleidescape Part No. 101-0005 Rev 8
Page 40
Kaleidescape System Control Protocol Reference Manual
Blu-ray Disc playback options
Commands
Blu-ray color buttons
BLURAY_SPECIAL_STOP
GET_MOVIE_MEDIA_TYPE
BLURAY_POPUP_MENU_TOGGLE
Some Blu-ray Discs support color buttons in the disc menus and special
features. To use these controls, use the Blu-ray color button commands, RED,
GREEN, BLUE, and YELLOW. Blu-ray specific controls can be set to display only
when a Blu-ray Disc is played back. The MOVIE_MEDIA_TYPE event message
indicates what type of disc is being played.
Standalone music control (SATP and keypad)
These commands control the Kaleidescape System when the Kaleidescape
onscreen display is not available, or the user prefers not to use the OSD
because these commands provide a more direct experience. These
commands support simple keypads and more complex controllers with
graphical displays.
Note: The response code for music related commands will return
“Command is not available” for products which do not support
music.
Standalone music control commands can be divided into the following
groups.

Text-based music browsing interface (SATP)

Keypad collections and presets
Basic playback information is used differently by OSD control, SATP
(Standalone Touch Panel) control, and keypad control. The same commands
that control basic playback through the onscreen display also control music
playback directly when sent to a music zone.
Commands
PLAY
REPLAY
PAUSE
STOP
NEXT and PREVIOUS
SCAN_FORWARD and SCAN_REVERSE
GET_MUSIC_TITLE
GET_MUSIC_NOW_PLAYING_STATUS
SET_STATUS_CUE_PERIOD
MUSIC_RANDOM_TOGGLE
GET_MUSIC_PLAY_STATUS
MUSIC_REPEAT_TOGGLE
All the messages in this section are sent to and from a music zone. To
receive event messages from a music zone, use the ENABLE_EVENTS
command for the zone.
Kaleidescape Part No. 101-0005 Rev 8
Page 41
Kaleidescape System Control Protocol Reference Manual
SATP applications
For SATP applications, because there is no onscreen display, the controller
must display information about music playback on the controller screen. The
MUSIC_TITLE message provides information that can be used to display
information to the user including the current song title, artist name, and
album title, along with information required to find the URL for cover art.
For information about playback progress for the current track, use the
SET_STATUS_CUE_PERIOD command to generate MUSIC_PLAY_STATUS event
messages every second. The information in the event message about the
playback mode (playing, rewinding, fast forwarding, paused) also states how
far playback is into the current track.
The MUSIC_NOW_PLAYING_STATUS message is generated when random and
repeat settings are changed. This message can be used to display
information to the user. To change the random and repeat settings, send the
MUSIC_RANDOM_TOGGLE and MUSIC_REPEAT_TOGGLE commands (along with
their _ON and _OFF variants).
Keypad applications
For keypad applications, the MUSIC_RANDOM_TOGGLE and
MUSIC_REPEAT_TOGGLE commands (along with their _ON and _OFF variants)
can be used to toggle the status of random and repeat. If feedback is
supported, such as a simple text display or highlighted button, the
MUSIC_NOW_PLAYING_STATUS message can be used to determine the current
status of the random and repeat functions.
Depending on the space available for text display, the MUSIC_TITLE message
can be used to provide feedback to the user about the music currently
playing (the current song title, artist name, and album title, along with
information required to find the URL for cover art).
For information about playback progress for the current track, use the
SET_STATUS_CUE_PERIOD command to generate MUSIC_PLAY_STATUS event
messages every one or three seconds. The information in the event message
about the playback mode (playing, rewinding, fast forwarding, paused) also
states how far playback is into the current track.
Text-based music browsing interface (SATP)
Commands
BROWSE
GET_MUSIC_NOW_PLAYING_STATUS
PERFORM_ACTION
Kaleidescape Part No. 101-0005 Rev 8
Page 42
Kaleidescape System Control Protocol Reference Manual
The Kaleidescape System supports a text-based interface for browsing the
music library. The text-based music control interface is for controllers that
have a graphical display component but cannot provide video for the
Kaleidescape onscreen display. Kaleidescape modules that implement these
commands are sometimes referred to as Standalone Touch Panel modules,
or SATP modules.
This interface is controlled through the BROWSE and PERFORM_ACTION
commands. This text-based interface has a series of pages of text arranged
in a hierarchical fashion. The BROWSE command is used to retrieve
information stored at each level of the hierarchy. The PERFORM_ACTION
command is used to begin playback, queue tracks, or similar actions. When
the structure of the hierarchy or the data in that hierarchy changes, a
MUSIC_NOW_PLAYING_STATUS message is generated with a new generation
value to indicate the change. See Standalone music control (SATP and
keypad) on page 41 for more detail on how to use this interface.
Keypad control
Commands
PLAY_FIRST_IN_MUSIC_COLLECTION
ASSIGN_PLAYING_MUSIC_TO_PRESET
PLAY_NEXT_IN_MUSIC_COLLECTION
PLAY_MUSIC_PRESET
PLAY_PREVIOUS_IN_MUSIC_COLLECTION
GET_MUSIC_PRESET_INFORMATION
GET_PLAYING_MUSIC_INFORMATION
Collections created by the user in the browser interface can be associated
with a simple control protocol command. These commands work well as
individual buttons on a keypad. To navigate a collection, use the
PLAY_FIRST_IN_MUSIC_COLLECTION, PLAY_NEXT_IN_MUSIC_COLLECTION, and
PLAY_PREVIOUS_IN_MUSIC_COLLECTION commands.
Music presets are used to create a simplified user interface for users with
minimal controls. A controller can be preprogrammed with a set of presets
to call back at will, or the controller can be programmed to allow the user to
modify the presets on the fly. Presets are called using the
PLAY_MUSIC_PRESET command, and are stored with the
ASSIGN_PLAYING_MUSIC_TO_PRESET command.
For a description of the current setting of a preset, use
GET_MUSIC_PRESET_INFORMATION. This command is useful if a keypad has
text display capabilities.
The MUSIC_PRESET_INFORMATION message can be used in conjunction with
the PLAYING_MUSIC_INFORMATION message to discover which presets are
active. For example, a keypad button can be illuminated when the associated
preset is playing.
Kaleidescape Part No. 101-0005 Rev 8
Page 43
Kaleidescape System Control Protocol Reference Manual
Advanced integration
The Kaleidescape System provides information to support advanced
lighting, masking, and other forms of system integration. These commands
can be divided into the following groups.

Lighting, screen masking, and video settings

Scripts

User-defined events
Lighting, screen masking, video, and audio settings
Commands
GET_CINEMASCAPE_MASK
GO_CALIBRATE_MASKING
GET_CINEMASCAPE_MODE
GO_CALIBRATE_MASKING_OVERSCAN
GET_MOVIE_LOCATION
SET_CINEMASCAPE_MODE
GET_SCALE_MODE
SET_SCREEN_MASK
GET_SCREEN_MASK
GET_SCREEN_MASK2
GET_VIDEO_MODE
The MOVIE_LOCATION event message can be used to trigger lighting events
by monitoring when movie playback begins and ends, when the end credits
start to roll, and whether or not the intermission function is activated.
The SCREEN_MASK message provides information on the aspect ratio of the
video output, as well as more detailed masking information that can be fed
into a masking system.
To reduce controller processing time, the SCREEN_MASK2 message can
provide masking information specifically calibrated to match the format
expected by the masking processor. The masking processor must be
calibrated first using the GO_CALIBRATE_MASKING and
GO_CALIBRATE_MASKING_OVERSCAN commands.
Some movies place subtitles in areas covered by the masking system. Use
the SET_SCREEN_MASK command to reposition subtitles if a screen masking
system is being used.
For players with output that can be distributed from a 2:35 theater to another
room with a non-CinemaScape friendly display, the CINEMASCAPE_MODE
message provides information on the CinemaScape mode. The
CINEMASCAPE_MASK message returns the frame aspect ratio for the video
format.
Kaleidescape Part No. 101-0005 Rev 8
Page 44
Kaleidescape System Control Protocol Reference Manual
The SCALE_MODE event message is most useful to theaters using
CinemaScape Native mode, providing information to the projector on
whether image scaling is required.
Scripts
Note: Scripts are not supported on Alto or Cinema One (2nd
generation).
Command
PLAY_SCRIPT
Scripts can be created on the user pages of the browser interface. These
scripts can be played using the PLAY_SCRIPT command. One of the steps that
can be added to a script is sending a command to the controller during script
execution. These steps are received in USER_DEFINED_EVENT event messages.
User-defined events
Command
SEND_EVENT
User-defined events can be used by the controller to perform tasks based on
commands sent from scripts, sent by other controllers using SEND_EVENT,
volume commands from other controllers (including IR remotes), or when
the Kaleidescape System requests that its input be selected using
SELECT_KALEIDESCAPE_INPUT.
Child user interface commands
ENTER_CHILD_MODE
LEAVE_CHILD_MODE
GET_CHILD_MODE_STATE
A user-defined event, SELECT_KALEIDESCAPE_INPUT, is issued informing the
controller when a player enters the child user interface, or when the screen
saver active over the child user interface is cleared. Using another remote to
control the Kaleidescape component, or sending non-child commands
switches the component out of the child user interface.
The controller can explicitly request the child user interface with
ENTER_CHILD_MODE, exit the child user interface with LEAVE_CHILD_MODE, and
query if the child user interface is active with GET_CHILD_MODE_STATE.
Kaleidescape Part No. 101-0005 Rev 8
Page 45
Kaleidescape System Control Protocol Reference Manual
Connection management
Connection commands include turning components on and off, verifying
system configuration. Commands are grouped with a detailed description of
each command including command examples. Table 6 lists connection
commands.
Table 6: Connection management command summary
Command
Description
Power commands
GET_DEVICE_POWER_STATE
Returns power state of a component.
PLAYER_RESTART
Event message stating that a player has just been restarted.
ENTER_STANDBY
Puts component into standby.
LEAVE_STANDBY
Takes component out of standby.
Idle Mode
GET_SYSTEM_READINESS_
STATE
LEAVE_IDLE_MODE
Verification
GET_AVAILABLE_DEVICES
Returns the idle mode of Alto or Cinema One (2nd generation).
Idle mode is not supported on Premiere line products.
Takes Alto or Cinema One (2nd generation) out of idle mode.
Idle mode is not supported on Premiere line products.
Returns a list of CPDIDs for all system components powered on.
GET_AVAILABLE_DEVICES_BY_ Returns list containing the serial number device identifiers of all
SERIAL_NUMBER
components in the system.
GET_DEVICE_TYPE_NAME
Returns component type.
GET_NUM_ZONES
Returns number of zones in a component.
GET_PROTOCOL
Returns protocol version number.
GET_SYSTEM_VERSION
Returns protocol version number and the version of kOS.
Kaleidescape Part No. 101-0005 Rev 8
Page 46
Kaleidescape System Control Protocol Reference Manual
Command
Description
Protocol
SET_PROTOCOL_SETTINGS
Changes protocol syntax.
Event message registration
ENABLE_EVENTS
Enables event messages from a specified movie or music zone.
DISABLE_EVENTS
Disables event messages from a specified movie or music zone.
GET_DEVICE_INFO
Returns component device type, serial number, device ID, and IP
address.
Module registration
SEND_TO_SYSLOG
Posts message to Kaleidescape System logs.
Friendly name
GET_FRIENDLY_NAME
Returns name of component or music zone.
SET_FRIENDLY_NAME
Renames component or music zone.
Power commands
GET_DEVICE_POWER_STATE
Affects
All components
Command
Response/Event
GET_DEVICE_POWER_STATE:
status:DEVICE_POWER_STATE:power_state:
[zone_1_state:…zone_n_state:]
A component responds with the component’s current power state.
power_state
has the following values.
0
1
component is in standby
component is powered on
zone_1_state … zone_n_state
describe the availability of each zone for the
component.
0
1
zone is disabled
zone is available
An event message is generated when the power state of a component
changes. Because the 1080p Player, 1080p Mini Player, Movie Player 2, and
Music Player disconnect the TCP/IP connection when entering or leaving
standby, the controller might not be connected to the system when the
DEVICE_POWER_STATE event is generated on these components.
Kaleidescape Part No. 101-0005 Rev 8
Page 47
Kaleidescape System Control Protocol Reference Manual
Example 1
Command/Response
Controller sends:
01/1/GET_DEVICE_POWER_STATE:
Kaleidescape System sends:
01/1/000:DEVICE_POWER_STATE:0:0:1:1:/77
Example 2
Event message
Controller sends:
01/1/LEAVE_STANDBY:
Kaleidescape System sends:
01/!/000:DEVICE_POWER_STATE:1:1:/50
In the first example, the power state of a Kaleidescape Cinema One (1st
generation) is requested. The response says that the system is in standby,
but that zones 2 and 3 are still available and active.
In the second example, a LEAVE_STANDBY command is sent to an M500
Player, causing it to leave standby. As the player exits standby, a
DEVICE_POWER_STATE event message is generated stating that the
component is powered on and its zone is available.
PLAYER_RESTART
Affects
Any component with zones
Event
PLAYER_RESTART:
This event message is generated when a user presses the Power button or
after the component receives a LEAVE_STANDBY command. The message is
generated only after the component has finished powering up and is ready
for user input.
This notification can be used to enable buttons on a touch panel, or inform
the user that the component is ready to receive input. Receiving this event
message can also be a cue to send commands that establish settings, such
as SET_STATUS_CUE_PERIOD, and get the current state of the system through
messages such as GET_UI_STATE and GET_MOVIE_LOCATION.
Note: This event message does not contain a status code.
ENTER_STANDBY
Affects
Command
Any component with zones
ENTER_STANDBY:
Response
status:
This command causes the component to enter standby immediately. After
entering standby mode, the component sends a DEVICE_POWER_STATE event
message.
Kaleidescape Part No. 101-0005 Rev 8
Page 48
Kaleidescape System Control Protocol Reference Manual
Use the LEAVE_STANDBY command to turn the component back on. If the
component is already in standby when this command is received, only the
normal status reply is sent.
When the 1080p Player, 1080p Mini Player, Music Player, or Movie Player 2
enters standby, the TCP/IP connection is temporarily dropped. This situation
can cause the controller to miss the DEVICE_POWER_STATE message while the
controller reconnects to the player. These players do not return a response
to the ENTER_STANDBY command.
Example
Controller sends:
01/1/ENTER_STANDBY:
Kaleidescape System sends:
01/1/000:/89
01/!/000:DEVICE_POWER_STATE:0:0:/47
01/!/000:VIDEO_MODE:00:00:00:/56
01/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000046::/76
01/!/000:HIGHLIGHTED_SELECTION::/63
In this example, the ENTER_STANDBY command is sent to an M500 Player. The
component enters standby and then sends several event messages
indicating the change in state.
LEAVE_STANDBY
Affects
Any component with zones
Command
Response
LEAVE_STANDBY:
status:
This command causes the component to exit standby mode. If the
component is in standby when this command is received, the component
sends out a DEVICE_POWER_STATE event message when startup is complete. If
the component is on when this command is received, nothing more
happens. The ENTER_STANDBY command can be used to put the component
into standby.
For the Movie Player, this command can only be issued directly to the RS232 port.
For the 1080p Player, 1080p Mini Player, Movie Player 2 and Music Player,
this command works over both RS-232 and TCP/IP. After issuing this
command over TCP/IP, the connection is disconnected. Wait 15 seconds and
reconnect before sending further commands.
Kaleidescape Part No. 101-0005 Rev 8
Page 49
Kaleidescape System Control Protocol Reference Manual
For the Cinema One (1st generation) and M-Class players, this command
works on both the RS-232 port and the TCP/IP port. The connection is not
disconnected after issuing the command over TCP/IP. To retrieve information
about the current state of the Kaleidescape component, send GET_UI_STATE
and GET_CHILD_MODE_STATE commands.
Note: Command routing can be used to leave standby on M-Class
players and Cinema Ones (1st generation), but not on the 1080p
Player, 1080p Mini Player, Movie Player 2, Music Player, or Movie
Player.
Example
Controller sends:
01/1/LEAVE_STANDBY:
Kaleidescape System sends:
01/1/000:/89
01/!/000:DEVICE_POWER_STATE:1:1:/50
01/!/000:VIDEO_MODE:02:02:13:/65
In this example, the LEAVE_STANDBY command is sent to an M500 Player,
causing the player to leave standby. This causes DEVICE_POWER_STATE and
VIDEO_MODE event messages to be generated.
Idle Mode
GET_SYSTEM_READINESS_STATE
Alto and Cinema One (2nd generation)
GET_SYSTEM_READINESS_STATE:
Affects
Command
Responase/Event status: SYSTEM_READINESS_STATE:state:
A component responds with the systems current idle mode.
System readiness state
has the following values.
0
system is ready
1
system is becoming ready
2
system is idle
An event message is generated when the idle mode of Alto or Cinema One
(2nd generation) changes.
Kaleidescape Part No. 101-0005 Rev 8
Page 50
Kaleidescape System Control Protocol Reference Manual
Example 1
Event message
Controller sends:
01/1/LEAVE_IDLE_MODE:
Kaleidescape System sends:
01/!/000:SYSTEM_READINESS_STATE:1:/68
01/!/000:SYSTEM_READINESS_STATE:0:/67
Example 2
Command/Response
Controller sends:
01/1/GET_SYSTEM_READINESS_STATE:
Kaleidescape System sends:
01/1/000:SYSTEM_READINESS_STATE:2:/85
In the first example, a LEAVE_IDLE_MODE command is sent to Alto causing it
to exit idle mode. Alto responds by first indicating it is leaving idle mode,
then that it has left idle mode and its zones are available.
In the second example the idle mode of Alto is requested. The response
indicates the system is in idle mode.
LEAVE_IDLE_MODE
Affects
Alto and Cinema One (2nd generation)
Command
LEAVE_IDLE_MODE:
This command causes Alto or Cinema One (2nd generation) to exit idle mode.
Example 1
Command/Response
Controller sends:
01/1/LEAVE_IDLE_MODE:
Kaleidescape System sends:
01/1/000:/89
In this example, the LEAVE_IDLE_MODE command is sent to Alto.
Kaleidescape Part No. 101-0005 Rev 8
Page 51
Kaleidescape System Control Protocol Reference Manual
Verification
GET_AVAILABLE_DEVICES
Affects
All components
Command
Response/Event
GET_AVAILABLE_DEVICES:
status:AVAILABLE_DEVICES:dev1:[dev2:…]
A component responds to this command with a list of CPDID numbers of all
available and CPDID-addressable components in the system, each separated
by a colon. To be available a component must be powered on but the
component may be in standby mode.
The directly connected component (CPDID 01) is always listed. If the directly
connected component has an assigned CPDID (other than 01), the assigned
CPDID will be listed too. Available components without CPDIDs are not
listed; see GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER below.
After a list of CPDIDs is obtained, the GET_NUM_ZONES and GET_DEVICE_INFO
commands can be used to get information about each component.
The AVAILABLE_DEVICES message is sent as an unsolicited event message
when the list of available components changes.
Example 1
Event message
Kaleidescape System sends:
01/!/000:AVAILABLE_DEVICES:01:03:04:/68
01/!/000:AVAILABLE_DEVICES:01:03:04:05:/11
Example 2
Command/Response
Controller sends:
01/1/GET_AVAILABLE_DEVICES:
Kaleidescape System sends:
01/1/000:AVAILABLE_DEVICES:01:03:04:05:/27
In the first example, only the component directly connected (CPDID 01) and a
component with CPDID 03 are active when a component with CPDID 04 is
powered on, causing an AVAILABLE_DEVICES message to be generated with
the new information. Shortly after that, a component with CPDID 05 is
powered on, causing another AVAILABLE_DEVICES event message to be
generated with the new list.
The second example shows the same information when requested by a
GET_AVAILABLE_DEVICES command executed later.
Kaleidescape Part No. 101-0005 Rev 8
Page 52
Kaleidescape System Control Protocol Reference Manual
GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER
Affects
All components
Command
Response
GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER:
status:AVAILABLE_DEVICES_BY_SERIAL_NUMBER:sn1:
[sn2:…]
A component responds to this command with a list of serial numbers of
available components in the system, each separated by a colon. The serial
numbers are zero-padded to 12 hexadecimals. To be available a component
must be powered on but the component may be in standby mode.
After a list of serial number device identifiers is obtained, the GET_NUM_ZONES
and GET_DEVICE_INFO commands can be used to get information about each
component.
The AVAILABLE_DEVICES_BY_SERIAL_NUMBER message is sent as an
unsolicited event message when the list of available components changes.
Example
Controller sends:
01/1/GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER:
Kaleidescape System sends:
01/1/000:AVAILABLE_DEVICES_BY_SERIAL_NUMBER:000000003638:
0000001CFF1B:/56
GET_DEVICE_TYPE_NAME
Affects
All components
Command
Response
GET_DEVICE_TYPE_NAME:
status:DEVICE_TYPE_NAME:device_name:
A component responds to this command with its type name. This command
can be used to generate messages displayed to the user.
device_name
is the name of the Kaleidescape component, which is
one of Server, Cinema One, Alto, Player, Music
Player, or Disc Vault.
Example
Controller sends:
01/1/GET_DEVICE_TYPE_NAME:
Kaleidescape System sends:
01/1/000:DEVICE_TYPE_NAME:Music Player:/04
Kaleidescape Part No. 101-0005 Rev 8
Page 53
Kaleidescape System Control Protocol Reference Manual
GET_NUM_ZONES
Affects
All components
Command
Response
GET_NUM_ZONES:
status:NUM_ZONES:num_movie_zones:
num_music_zones:
This command is used to identify the number of zones for a component. A
controller can then determine which commands a specific component
supports.
num_movie_zones
is 01 if there is an onscreen display associated with
the component, and 00 if there is not.
num_music_zones
tells how many music zones are associated with the
component.
If the component has a movie zone, the first music zone corresponds to the
audio outputs of that zone.
Example 1
How a Music Player responds
Controller sends:
01/1/GET_NUM_ZONES:
Kaleidescape System sends:
01/1/000:NUM_ZONES:00:04:/93
In this example, the Music Player does not have a movie zone, but has 4
music zones.
Example 2
How an M500 Player responds
Controller sends:
01/1/GET_NUM_ZONES:
Kaleidescape System sends:
01/1/000:NUM_ZONES:01:01:/91
In this example, the M500 Player has a single movie zone and a single music
zone. The single music zone is the same zone as the movie zone.
GET_PROTOCOL
Affects
All components
Command
Response
GET_PROTOCOL:
status:PROTOCOL:version:
The response to this message shows the current version of the control
protocol used by the Kaleidescape component.
version
Kaleidescape Part No. 101-0005 Rev 8
is a zero-padded, two-digit number representing the
current protocol version. The version described in this
document is 13.
Page 54
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/1/GET_PROTOCOL:
Kaleidescape System sends:
01/1/000:PROTOCOL:13:/31
This is the expected response from a component running the latest
Kaleidescape software.
Note: This command replaces GET_PROTOCOL_VERSION which returned
only the version number without the PROTOCOL message and was
more difficult to use. The GET_PROTOCOL_VERSION command is still
available, but GET_PROTOCOL is preferred.
GET_SYSTEM_VERSION
Affects
Command
Response
All components
GET_SYSTEM_VERSION:
status:SYSTEM_VERSION:control_protocol_version:
kOS_version:
The response to this message shows the current version of the control
protocol used by the Kaleidescape component and the version of kOS that is
running.
control_protocol_version
is a zero-padded, two-digit number representing the
current protocol version. The version described in this
document is 13.
kOS_version
is the string representation of the version number
currently running on the device.
Example
Controller sends:
01/1/GET_SYSTEM_VERSION:
Kaleidescape System sends:
01/1/000:SYSTEM_VERSION:13:6.1.0-14525:/38
This is an expected response from a component running the latest
Kaleidescape software version (6.1).
Kaleidescape Part No. 101-0005 Rev 8
Page 55
Kaleidescape System Control Protocol Reference Manual
SET_PROTOCOL_SETTINGS
Affects
All components
Command
Response
SET_PROTOCOL_SETTINGS:delimiter_type:character_set:
status:
Normal control protocol messages transmit extended ASCII characters as
escaped characters. For example, the character é is transmitted as \d138.
Some controllers are unable to parse this format quickly. This command
transmits extended ASCII characters in the clear (unescaped).
This command also replaces the default delimiters (colon, slash, and line
feed) which are sometimes used in the message body of a control message.
These characters are replaced with the binary delimiters SOH, STX, and EOT
in all command responses and event messages. This change allows colons,
slashes, and line feeds to appear unescaped in the message body for a
simpler parsing algorithm.
Note: Binary delimiters are not supported for control via RS-232.
These settings are only valid for a given connection and are reset
when that connection is terminated.
A controller receiving messages with binary delimiters should read
messages until an EOT character (ASCII value 4) is found. Then the controller
can parse the message by SOH characters (ASCII value 1) and STX
characters (ASCII value 2) for message content. This command can only set
the delimiters used for responses and events sent from the Kaleidescape
component to the controller. Commands from the controller to the
component must still be sent using printable delimiters.
delimiter_type
character_set
Kaleidescape Part No. 101-0005 Rev 8
PRINTABLE_DELIMITERS
Sends messages with the default printable characters,
slash (/), colon (:) and carriage return (\r\n).
BINARY_DELIMITERS
Sends messages with the binary delimiters SOH, STX,
and EOT.
LATIN-1
Text fields can contain any printable character
(ISO 8859-1).
Page 56
Kaleidescape System Control Protocol Reference Manual
Table 7: Delimiter functions
Printable delimiter
Binary delimiter
Function
/
SOH \x01
Delimits the segments of a
Kaleidescape control message.
:
STX \x02
Delimits the fields within the message
body of a control message.
\r\n
EOT \x04
Delimits individual control messages.
When using binary delimiters, / is replaced by SOH (ASCII value 1), the : is
replaced by STX (ASCII value 2), and \r\n is replaced by EOT (ASCII value 4).
The checksum is omitted to speed processing.
Example
Normally, messages have the following format:
Controller sends:
01/1/GET_CONTENT_DETAILS:1.W_3675::
Kaleidescape System sends:
01/1/000:CONTENT_DETAILS:2:Album_title:Bart\d243k\:
Concerto for Orchestra; Music for Strings, Percussion and Celesta;
Hungarian Sketches:/81
However, after sending the SET_PROTOCOL_SETTINGS command, these
messages have the following format.
Controller sends:
01/1/SET_PROTOCOL_SETTINGS:BINARY_DELIMITERS:LATIN-1:
01/1/GET_CONTENT_DETAILS:1.W_3675::
Kaleidescape System sends:
01(SOH)1(SOH)000(STX)CONTENT_DETAILS(STX)2(STX)Album_title
(STX)Bartók: Concerto for Orchestra; Music for Strings, Percussion
and Celesta; Hungarian Sketches(STX)(EOT)
Kaleidescape Part No. 101-0005 Rev 8
Page 57
Kaleidescape System Control Protocol Reference Manual
Event message registration
ENABLE_EVENTS
Affects
Command
Response
All components
ENABLE_EVENTS:target_device_id:
status:
Enables event messages for the zone identified by target_device_id. The
command must be sent to the directly connected component (CPDID 01).
Use the DISABLE_EVENTS command to turn off events from another
component.
target_device_id
is the device ID for the zone from which the controller
wants to receive event messages.
This must include the actual CPDID or serial number
of the component referenced. If enabling events from
a zone on the component directly connected, CPDID
01 can only be used if the component does not have
an assigned CPDID.
A controller normally receives events only from the component with a direct
connection. This allows controllers that connect to a single component to
use simple logic in handling event messages, because the controller does
not see events from any other zones in the system. To see events from other
zones, send an ENABLE_EVENTS command for each zone. The GET_NUM_ZONES
and GET_AVAILABLE_DEVICES commands can be used to discover which
routable IDs exist and which zones are associated with each ID.
Once enabled, the device ID for incoming events from the designated
component matches the format of the target_device_id (i.e., if the
target_device_id is in serial format, event messages are prefaced with the
serial number of the component).
Example 1
A controller that handles events from all active movie zones might issue the
following messages.
Controller sends:
01/1/GET_AVAILABLE_DEVICES:
Kaleidescape System sends:
01/1/000:AVAILABLE_DEVICES:01:09:/16
Controller sends:
01/2/GET_NUM_ZONES:
Kaleidescape System sends:
01/2/000:NUM_ZONES:00:00:/90
Controller sends:
09/3/GET_NUM_ZONES:
Kaleidescape Part No. 101-0005 Rev 8
Page 58
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
09/3/000:NUM_ZONES:01:01:/01
Controller sends:
01/4/ENABLE_EVENTS:09:
The first field of the NUM_ZONES response indicates how many movie zones
are available. The first component does not have a movie zone, the second
component does. The controller checks this value and issues an
ENABLE_EVENTS command for each component that has a movie zone.
Example 2
The target_device_id can also be specified as the serial number of the
device whose events are to be displayed, preceded by a pound sign. To
receive all events for component with serial number 0000 0000144B, submit
the following request:
01/1/ENABLE_EVENTS:#144B:
Events from the device directly connected are normally prefaced by the
CPDID, or CPDID 01 if the device does not have an assigned CPDID. To
receive these events in serial format, disable events for the device directly
connected, and enable events using the serial number of the connected
device.
For component with serial number 0000 0000144B with no assigned CPDID,
the following commands would accomplish this.
01/1/ENABLE_EVENTS:#144B:
01/1/DISABLE_EVENTS:01:
All subsequent events will be in this format.
#00000000144B/!/000:TITLE_NAME:The English Patient:/92
Example 3
The music zone identifier can be appended to the target device ID to receive
events for a particular music zone. For example, to receive all music-oriented
events from an M500 Player with CPDID 35, to which the controller is directly
connected, issue this command.
01/1/ENABLE_EVENTS:35.01:
The 35 in the field is the CPDID of the directly connected component (the
M500 Player). The 01 is the music zone identifier. Note that this example
does not use CPDID 01 even though the controller is directly connected to
the M500 Player.
Example 4
To receive events from music zone 03 on a Music Player with serial number
0000 00001E88, issue this command.
Kaleidescape Part No. 101-0005 Rev 8
Page 59
Kaleidescape System Control Protocol Reference Manual
01/1/ENABLE_EVENTS:#1E88.03:
The serial number format with the optional music zone can be mixed and
matched.
DISABLE_EVENTS
Affects
Command
All components
DISABLE_EVENTS:target_device_id:
Response
status:
Disables event messages from the zone referenced. The command must be
sent to the directly connected component (CPDID 01).
target_device_id
identifies the zone from which to disable event
messages. The format is identical to the format for
ENABLE_EVENTS.
Example
Kaleidescape System sends:
10/!/000:TITLE_NAME:24 (Season 1):/72
10/!/000:MOVIE_MEDIA_TYPE:01:/34
10/!/000:MOVIE_LOCATION:03:/68
Controller sends:
01/1/DISABLE_EVENTS:10:
Kaleidescape System sends:
01/1/000:/89
In this example, events are received for a component with CPDID 10, in this
case stating that movie playback has begun.
When this information is no longer required, sending the DISABLE_EVENTS
command to the local device tells the device that event messages from
CPDID 10 are no longer required.
GET_DEVICE_INFO
Affects
All components
Command
Response
GET_DEVICE_INFO:
status:DEVICE_INFO:device_type:serial_num:
cpdid:ip_address:
A component responds to this command with information about the
component.
device_type
Kaleidescape Part No. 101-0005 Rev 8
was previously used to identify the capabilities of the
component. This value no longer provides sufficient
information. Instead, use GET_NUM_ZONES to identify
the capabilities of the component and use
GET_DEVICE_TYPE_NAME to get the type name of the
component.
Page 60
Kaleidescape System Control Protocol Reference Manual
serial_num
is the serial number of the component that received
the request. serial_num is zero-padded to 16
hexadecimals.
cpdid
is the assigned device identifier of the component.
ip_address
is the network TCP/IP address of the component.
Note: The returned cpdid is the assigned CPDID even if the command
was sent to 01. If no CPDID has been assigned to the component, 00
is returned instead.
Example
Controller sends:
01/1/GET_DEVICE_INFO:
Kaleidescape System sends:
01/1/000:DEVICE_INFO:11:000000000018E6D6:00:010.100.012.194:/63
In this example, the results of the GET_DEVICE_INFO command show that the
device type is 11 (deprecated information), the serial number of the
component is 0000 0018E6D6, there is no assigned CPDID, and the
component has IP address 10.100.12.194.
Module registration
SEND_TO_SYSLOG
Affects
Command
Response
All components
SEND_TO_SYSLOG:INFORMATION:message:
status
This message is used to post information to the Kaleidescape System log.
This information is then used by Kaleidescape to track modules in the field
and is included in all control system modules provided by Kaleidescape.
message
is the string logged by the Kaleidescape System.
Note: Any information sent to Kaleidescape logs is covered by the
Kaleidescape privacy policy.
Example
Controller sends:
01/1/SEND_TO_SYSLOG:INFORMATION:OSD Control Module version 8.2:
Kaleidescape System sends:
01/1/000:/89
This example registers a module with the name OSD Control Module and
version number 8.2. This information can be used by Kaleidescape Support
for troubleshooting.
Kaleidescape Part No. 101-0005 Rev 8
Page 61
Kaleidescape System Control Protocol Reference Manual
Friendly name
GET_FRIENDLY_NAME
Affects
Command
Response
Any zone
GET_FRIENDLY_NAME:
status:FRIENDLY_NAME:name:
The response to this command provides the friendly name of the zone or
component.
name
is the music zone friendly name when sent to a music
zone. If sent to a movie zone, name is the friendly
name of the component.
On Premiere line systems, the friendly name is set on the Components tab in
the browser interface or by using the SET_FRIENDLY_NAME command. On the
Components tab, the friendly name is set in the Zone n Name (for music) text box
for music zones, and in the component Device Name text box for movie zones.
For Alto and Cinema One (2nd generation), the friendly name is the player
name which is set on the Player Name settings page on the onscreen display.
Example
Controller sends:
01/1/GET_FRIENDLY_NAME:
Kaleidescape System sends:
01/1/000:FRIENDLY_NAME:Dining Room Player:/93
Controller sends:
01.01/1/GET_FRIENDLY_NAME:
Kaleidescape System sends:
01.01/1/000:FRIENDLY_NAME:Dining Room Music:/28
In this example, two GET_FRIENDLY_NAME commands are sent to an M500
Player serving music in the dining room. In the first command, the controller
is requesting the name of the directly connected component, which is Dining
Room Player. In the second example, the controller is requesting the friendly
name of the music zone for the same player, which is Dining Room Music.
SET_FRIENDLY_NAME
Affects
Any zone
Command
Response
SET_FRIENDLY_NAME:name:
status:FRIENDLY_NAME:name:
Sets the friendly name of the zone or component to the string in the name
field.
If sent to a music zone, the friendly name of the music zone is changed. If
sent to a movie zone, the friendly name of the component is changed.
Kaleidescape Part No. 101-0005 Rev 8
Page 62
Kaleidescape System Control Protocol Reference Manual
name
is the friendly name to assign to the zone or
component.
The friendly name is remembered even if the component is turned off. On
Premiere line systems, the friendly name can also be configured using the
Components tab in the browser interface. For Alto and Cinema One (2nd
generation), the friendly name can be set on the Player Name settings page of
the onscreen display.
The response to this command contains the new friendly name for the zone
or component; see GET_FRIENDLY_NAME for a description of the response
message.
Example
Controller sends:
01/1/SET_FRIENDLY_NAME:Dining Room Player:
Kaleidescape System sends:
01/1/000:FRIENDLY_NAME:Dining Room Player:/93
Controller sends:
01.01/1/SET_FRIENDLY_NAME:Dining Room Music:
Kaleidescape System sends:
01.01/1/000:FRIENDLY_NAME:Dining Room Music:/28
In this example, a controller is making changes to the friendly names
associated with an M500 Player serving the dining room. The first command
changes the name of the component itself, to Dining Room Player. The
second command changes the name of the music zone for the same player
to Dining Room Music.
OSD Control
The onscreen display (OSD) control commands navigate the Kaleidescape
onscreen display, control movie and music playback through the onscreen
display, and respond to playback events. Commands are grouped with a
detailed description of each command. Table 8 lists onscreen display control
commands.
Table 8: OSD Control command summary
Command
Description
Basic navigation
Arrow commands
Used to navigate the onscreen display.
Page up/down commands
Kaleidescape Part No. 101-0005 Rev 8
Used to navigate by pages on the onscreen display.
Page 63
Kaleidescape System Control Protocol Reference Manual
Command
Description
SELECT
Selects the highlighted item in the onscreen display.
CANCEL
Dismisses a page, dialog, or text entry.
POSITION_SELECT
Transmits touch screen interaction to the onscreen
display.
CHILD_SELECT
Selects the highlighted item in the onscreen display.
Also activates the child user interface.
Kaleidescape menu
KALEIDESCAPE_MENU_ON
Displays Kaleidescape menu.
KALEIDESCAPE_MENU_OFF
Removes Kaleidescape menu.
KALEIDESCAPE_MENU_TOGGLE
Toggles Kaleidescape menu on and off.
Views
GET_UI_STATE
Movie views
GO_MOVIES
Provides details about the current state of the user
interface.
Changes the interface from a music view to the
corresponding movie view.
GO_MOVIE_LIST
Displays the Movie List view.
GO_MOVIE_COVERS
Displays the Movie Covers view.
GO_MOVIE_COLLECTIONS
Displays the Movie Collections view.
GO_MOVIE_COLLECTION
Displays a specific collection in the Movie Collections
view.
Music views
GO_MUSIC
Changes the interface from a movie view to the
corresponding music view.
GO_MUSIC_LIST
Displays the Music List view.
GO_MUSIC_COVERS
Displays the Music Covers view.
GO_MUSIC_COLLECTIONS
Displays the Music Collections view.
Kaleidescape Part No. 101-0005 Rev 8
Page 64
Kaleidescape System Control Protocol Reference Manual
Command
Description
GO_MUSIC_COLLECTION
Displays a specific collection in the Music Collections
view.
GO_NOW_PLAYING
Displays the Now Playing view.
Other views
GO_PARENTAL_CONTROL
Displays the Parental Control view.
GO_SYSTEM_STATUS
Displays the System Status view.
GO_VAULT_SUMMARY
Displays the Vault Summary view.
User input
GET_USER_INPUT
Provides information about user input requested from
the user interface.
KEYBOARD_CHARACTER
Sends a single character to the onscreen display.
BACKSPACE
Erases the last character entered.
View-specific commands
FILTER_LIST
Filters the list view to search criteria.
SHUFFLE_COVER_ART
Shuffles cover art on covers view.
CHILD_SHUFFLE_COVER_ART
Shuffles cover art on the child user interface if the
child user interface is displayed. If not, displays child
user interface.
ALPHABETIZE_COVER_ART
Arranges covers alphabetically.
DEFAULT_LEVEL
Changes the parental control level to the default level.
SAFE_LEVEL
Changes parental control to highest level without a
passcode.
Page and content details
DETAILS
Toggles between the details page and the current
display.
DISC_IN_TRAY_TOGGLE
Toggles the disc in player details
GET_CONTENT_DETAILS
Provides information about a movie or album
selected.
Kaleidescape Part No. 101-0005 Rev 8
Page 65
Kaleidescape System Control Protocol Reference Manual
Command
Description
GET_HIGHLIGHTED_SELECTION
Screen saver commands
GO_SCREEN_SAVER
Returns the handle of the movie or album currently
selected on the user interface.
Displays the screen saver.
STOP_SCREEN_SAVER
Removes screen saver.
Basic navigation commands
Arrow commands
UP_PRESS
DOWN_PRESS
LEFT_PRESS
RIGHT_PRESS
CHILD_UP_PRESS
CHILD_DOWN_PRESS
CHILD_LEFT_PRESS
CHILD_RIGHT_PRESS
UP_RELEASE
DOWN_RELEASE
LEFT_RELEASE
RIGHT_RELEASE
CHILD_UP_RELEASE
CHILD_DOWN_RELEASE
CHILD_LEFT_RELEASE
CHILD_RIGHT_RELEASE
UP
DOWN
LEFT
RIGHT
CHILD_UP
CHILD_DOWN
CHILD_LEFT
CHILD_RIGHT
Affects
Any movie zone
Command
Response
UP_PRESS: (same for other arrow commands)
status:
These commands send directional movement to the onscreen display to
navigate menus and lists. During movie playback, these commands navigate
DVD or Blu-ray Disc menus and handle interactive content.
The _PRESS and _RELEASE versions of these commands allow the onscreen
display to handle auto-repeat when the user holds down a button for
continuous scrolling through lists. Use these commands, instead of the plain
directional commands if the controller supports press and release handling.
Send a _PRESS command when the corresponding button is pressed and a
_RELEASE command when the button is released. If a command is sent that
affects the user interface between the _PRESS and _RELEASE commands,
including a different direction command, the auto-repeat is canceled and the
command that interrupted the repeat is handled normally. Informational
commands such as GET_PLAYING_TITLE_NAME do not cancel auto-repeat.
Kaleidescape Part No. 101-0005 Rev 8
Page 66
Kaleidescape System Control Protocol Reference Manual
Plain directional commands, UP, DOWN, LEFT, and RIGHT are available for
controllers that do not support press and release handling. Each conveys a
single movement in one direction. The controller can be programmed to
send a plain directional command repeatedly at some fixed interval to
simulate continuous scrolling.
CHILD_ commands activate the child user interface if not already active, and
navigate the child user interface once the child user interface is active.
Example 1
Controller sends:
01/1/DOWN:
Kaleidescape System sends:
01/1/000:/89
Controller sends:
01/2/DOWN:
Kaleidescape System sends:
01/2/000:/90
02/!/000:HIGHLIGHTED_SELECTION:1.0-S_1baaf:/73
Example 2
Controller sends:
01/1/DOWN_PRESS:
Kaleidescape System sends:
01/1/000:/89
Controller sends:
01/2/DOWN_RELEASE:
Kaleidescape System sends:
01/2/000:/90
In the first example, two DOWN commands are sent, resulting in the current
selection moving down two items. In the second example, a DOWN_PRESS is
followed by a DOWN_RELEASE, which results in the current selection moving
down one or more items, depending on the time between sending the two
commands.
Example 3
Controller sends:
01/1/CHILD_RIGHT:
Kaleidescape System sends:
01/1/000:/89
02/!/000:CHILD_MODE_STATE:1:/63
02/!/000:USER_DEFINED_EVENT:SELECT_KALEIDESCAPE_INPUT:/77
02/!/000:HIGHLIGHTED_SELECTION:1.0-S_40f4:/84
Kaleidescape Part No. 101-0005 Rev 8
Page 67
Kaleidescape System Control Protocol Reference Manual
The player was not previously displaying the child user interface, but after
receiving the CHILD_RIGHT command, switched to the child user interface
and emitted the appropriate events.
Page up/down commands
PAGE_UP_PRESS
PAGE_DOWN_PRESS
PAGE_UP_RELEASE
PAGE_DOWN_RELEASE
PAGE_UP
PAGE_DOWN
Affects
Any movie zone
Command
Response
PAGE_UP_PRESS: (same for other page up/down commands)
status:
These commands cause the onscreen display to move up and down in lists
by entire pages. Unlike directional arrows, page up/down commands are not
passed to any DVD or Blu-ray content currently playing.
Context-Sensitive Commands are available for controllers that do not have
dedicated Page Up/Page Down buttons. These commands scroll a page in the
user interface or skip forward/backward through movie chapters or music
tracks.
Example 1
Controller sends:
01/8/PAGE_UP:
Kaleidescape System sends:
01/8/000:/96
02/!/000:HIGHLIGHTED_SELECTION:1.0-S_1baaf:/73
Example 2
Controller sends:
01/9/PAGE_UP_PRESS:
Kaleidescape System sends:
01/9/000:/97
Controller sends:
01/0/PAGE_UP_RELEASE:
Kaleidescape System sends:
01/0/000:/88
The first example shows the PAGE_UP being sent to the component with a
response indicating success and an event indicating a new item is selected.
The second example shows a PAGE_UP_PRESS command followed by a
PAGE_UP_RELEASE.
Kaleidescape Part No. 101-0005 Rev 8
Page 68
Kaleidescape System Control Protocol Reference Manual
SELECT
Affects
Any movie zone
Command
Response
SELECT:
status:
Selects the highlighted item in the onscreen display. When a movie or album
is already highlighted, the details page for that movie or album usually
appears. In the Movie List and Music List views, if the highlight is on a
column not currently sorted, this command sorts by that column. When
highlighting a menu item, submitting SELECT performs the action for that
item. In some contexts, such as passcode entry, this command indicates that
the passcode has been entered. This command can be entered from an Enter
button on a numeric keypad or keyboard.
During playback this command is passed to the DVD or Blu-ray Disc playing,
which allows the user to interact with menus and interactive disc features.
Example
Controller sends:
01/0/SELECT:
Kaleidescape System sends:
01/0/000:/88
02/!/000:UI_STATE:01:01:00:0:/40
In this example, the SELECT command is sent while the onscreen display is in
the Movie List view and on a specific movie. The UI_STATE event message is
generated as the details page for that movie appears on the screen.
CANCEL
Affects
Any movie zone
Command
Response
CANCEL:
status:
In the onscreen display, dismisses a page, dialog, or text entry. See also the
STOP_OR_CANCEL context-sensitive command.
Example
Controller sends:
01/4/CANCEL:
Kaleidescape System sends:
01/4/000:/92
02/!/000:UI_STATE:01:00:00:0:/39
In this example, the onscreen display is in the Movie List view and the
details page for a movie is displayed. Sending the CANCEL command
dismisses the details page. A UI_STATE message is generated to indicate the
change.
Kaleidescape Part No. 101-0005 Rev 8
Page 69
Kaleidescape System Control Protocol Reference Manual
POSITION_SELECT
Affects
Any movie zone
Command
Response
POSITION_SELECT:x_loc:y_loc:
status:
Sends the onscreen display a touch event at coordinates x_loc and y_loc.
x_loc, y_loc
identify the location that was touched on the screen.
(Can be any ASCII decimal integers from 0 to 2
billion.)
A controller can use this command to transmit user touches on a video feed
to the onscreen display, allowing direct manipulation of screen elements
such as cover images, tabs, and list view columns.
The values a controller sends for x_loc and y_loc can be relative to the
origin and scale required (the full screen of the touch panel, the frame of the
video feed, or something else). When the component is calibrated to work
with a touch panel using the onscreen display, the component determines
how to interpret the coordinates the controller sends.
The onscreen display can be calibrated for the touch panel through the
System Status view. Select the System Setup tab, then select Calibrate Touch
Panel.
If the onscreen display has not been calibrated to work with a touch panel,
this command acts as a plain SELECT command.
Example
Controller sends:
01/2/POSITION_SELECT:220:500:
Kaleidescape System sends:
01/2/000:/90
This example sends a POSITION_SELECT command at the coordinates 220,
500 to the onscreen display. The onscreen display uses prior calibration to
determine what was touched on the video and reacts appropriately.
CHILD_SELECT
Affects
Any movie zone
Command
Response
CHILD_SELECT:
status:
This command functions like the SELECT command. If the onscreen display
was not displaying the child user interface, the player switches to the child
user interface. If the selected media is available in the Child collection,
playback begins; otherwise, only the transition to the child user interface
occurs.
Kaleidescape Part No. 101-0005 Rev 8
Page 70
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/7/CHILD_SELECT:
Kaleidescape System sends:
01/7/000:/95
02/!/000:CHILD_MODE_STATE:1:/63
02/!/000:USER_DEFINED_EVENT:SELECT_KALEIDESCAPE_INPUT:/77
02/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000010::/68
02/!/000:UI_STATE:07:00:00:0:/45
02/!/000:TITLE_NAME:Ice Age:/34
The player was not displaying the child user interface. The movie selected
was also available in the Child collection. After CHILD_SELECT was sent, the
player activated the child user interface, and began playing the selection.
Kaleidescape menu commands
KALEIDESCAPE_MENU_ON
Affects
Any movie zone
Command
Response
KALEIDESCAPE_MENU_ON:
status:
Displays the Kaleidescape menu if not already onscreen; otherwise this
command has no effect. In either case, a status message is returned.
Any active movie playback continues behind the menu until the user
chooses an item or a control command interrupting playback is received. If
the menu is dismissed, playback simply continues.
KALEIDESCAPE_MENU_TOGGLE can also be used to display the menu when the
menu is not currently displayed.
The context-sensitive command DISC_OR_KALEIDESCAPE_MENU can be used to
display the menu when movie playback is not active. See also
KALEIDESCAPE_MENU_OFF.
Example
Controller sends:
01/4/KALEIDESCAPE_MENU_ON:
Kaleidescape System sends:
01/4/000:/92
01/!/000:UI_STATE:08:00:01:0:/46
In this example, the KALEIDESCAPE_MENU_ON command is sent while onscreen
display is on the System Status menu. A UI_STATE event message is
generated indicating that the Kaleidescape menu is now displayed.
Kaleidescape Part No. 101-0005 Rev 8
Page 71
Kaleidescape System Control Protocol Reference Manual
KALEIDESCAPE_MENU_OFF
Affects
Any movie zone
Command
Response
KALEIDESCAPE_MENU_OFF:
status:
Removes the Kaleidescape menu if onscreen; otherwise has no effect. In
either case a status message is returned. If the menu is already displayed,
CANCEL, STOP_OR_CANCEL, KALEIDESCAPE_MENU_TOGGLE, and
DISC_OR_KALEIDESCAPE_MENU commands also dismiss the menu.
Example
Controller sends:
01/1/KALEIDESCAPE_MENU_OFF:
Kaleidescape System sends:
01/1/000:/89
01/!/000:UI_STATE:03:00:00:0:/40
Controller sends:
01/2/KALEIDESCAPE_MENU_OFF:
Kaleidescape System sends:
01/2/000:/90
In this example, KALEIDESCAPE_MENU_OFF is called twice. The first time, the
Kaleidescape menu was previously displayed and when turned off, caused
the UI_STATE event to be sent. The second time, the Kaleidescape menu was
already off, so no event was sent.
KALEIDESCAPE_MENU_TOGGLE
Affects
Any movie zone
Command
Response
KALEIDESCAPE_MENU_TOGGLE:
status:
Toggles the display of the Kaleidescape menu as described in
KALEIDESCAPE_MENU_ON and KALEIDESCAPE_MENU_OFF. When the menu is not
displayed, this command causes the menu to be displayed. When the menu
is displayed on screen, this command dismisses the menu.
Example
Controller sends:
01/4/KALEIDESCAPE_MENU_TOGGLE:
Kaleidescape System sends:
01/4/000:/92
01/!/000:UI_STATE:03:00:00:0:/40
Controller sends:
01/5/KALEIDESCAPE_MENU_TOGGLE:
Kaleidescape Part No. 101-0005 Rev 8
Page 72
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01/5/000:/93
01/!/000:UI_STATE:03:00:01:0:/41
In this example, the KALEIDECAPE_MENU_TOGGLE message is sent twice. The
first time removes the Kaleidescape menu and returns to the Movie Covers
view, confirmed by the UI_STATE event message generated. The second time
causes the menu to be displayed again.
Views
GET_UI_STATE
Affects
Any movie zone
Command
Response/Event
GET_UI_STATE:
status:UI_STATE:screen:popup:dialog:saver:
The UI_STATE message provides information about the current state of the
user interface, including which view is active, what pages, menus and
dialogs are displayed, and whether or not the screen saver is active.
The event message is generated when any of these conditions change.
The information in this message can be used to provide feedback to the user
about a state.
screen
Kaleidescape Part No. 101-0005 Rev 8
identifies the view currently active.
00
Unknown
01
Movie List
02
Movie Collections
03
Movie Covers
04
05
Parental Control
unused
06
unused
07
Playing a movie
08
System Status
09
Music List
10
11
Music Covers
Music Collections
12
Music Now Playing
13
unused
14
Vault Summary
Page 73
Kaleidescape System Control Protocol Reference Manual
popup
identifies any page or menu that appears to display
information or settings.
00
No page or menu
dialog
01
Details page
02
Movie overlay displaying the status page
(appears only during playback)
03
Movie overlay, but not status page (appears
only during playback)
identifies a floating message box.
00
No dialog
01
Kaleidescape menu
02
Passcode entry (the controller should display
a numeric keypad if necessary)
Simple question
03
04
Informational message (such as system
upgrade)
05
Warning message
06
Error message (such as a network error)
indicates whether the screen saver is active.
saver
0
Screen saver inactive
1
Screen saver active
Example
Controller sends:
01/5/GET_UI_STATE:
Kaleidescape System sends:
01/5/000:UI_STATE:07:01:00:0:/65
The response indicates that a movie was playing back and a movie details
page was being displayed over the movie.
Movie views
GO_MOVIES
Affects
Any movie zone
Command
Response
GO_MOVIES:
status:
Displays a movie view on the onscreen display.
If the interface is displaying a music view, changes to the equivalent movie
view. That is, changes from the Music List view to the Movie List view, from
the Music Collections view to the Movie Collections view, and from the
Music Covers view to the Movie Covers view.
Kaleidescape Part No. 101-0005 Rev 8
Page 74
Kaleidescape System Control Protocol Reference Manual
If there is no equivalent movie view (i.e., Vault Summary, Now Playing,
System Status), the OSD displays the last movie view that appeared. If no
movie view has been displayed since booting, the Movie List view is
displayed.
If sent during movie playback, playback is halted and the current playback
location is saved in the Paused list.
Example
Controller sends:
01/3/GO_MOVIES:
Kaleidescape System sends:
01/3/000:/91
02/!/000:UI_STATE:01:00:00:0:/39
02/!/000:HIGHLIGHTED_SELECTION:1.0-S_4c4de:/34
In this example, the onscreen display is showing the Music List view when
the GO_MOVIES command is sent. This command causes the Movie List view
to be displayed and a UI_STATE event message to be generated
acknowledging the change. A HIGHLIGHTED_SELECTION message is also
generated with the handle of the newly-highlighted movie.
GO_MOVIE_LIST
Affects
Command
Any movie zone
GO_MOVIE_LIST:
Response
status:
Displays the Movie List view. If sent during movie playback, playback is
halted and the current playback location is saved in the Paused list.
While in the Movie List view, the FILTER_LIST command can be used to
search the list, and the KEYBOARD_CHARACTER command can be used to jump
to specific letters in the alphabet.
Example
Controller sends:
01/7/GO_MOVIE_LIST:
Kaleidescape System sends:
01/7/000:/95
02/!/000:UI_STATE:01:00:00:0:/39
In this example, the onscreen display is showing the Movie Covers view
when the GO_MOVIE_LIST command is sent. This command causes the
display to change to the Movie List view and generates a UI_STATE event
message with that information. Because the same movie remains
highlighted, a HIGHLIGHTED_SELECTION event message is not generated.
Kaleidescape Part No. 101-0005 Rev 8
Page 75
Kaleidescape System Control Protocol Reference Manual
GO_MOVIE_COVERS
Affects
Any movie zone
Command
Response
GO_MOVIE_COVERS:
status:
Displays the Movie Covers view. If sent during movie playback, playback is
halted and the current playback location is saved in the Paused list.
While in the Movie Covers view, the SHUFFLE_COVER_ART and
ALPHABETIZE_COVER_ART commands can be used to reorganize the cover art.
Example
Controller sends:
01/8/GO_MOVIE_COVERS:
Kaleidescape System sends:
01/8/000:/96
02/!/000:UI_STATE:03:00:00:0:/41
In this example, the onscreen display is showing the Movie List view when
the GO_MOVIE_COVERS command is sent. This command causes the display to
switch to the Movie Covers view and generate a UI_STATE event message
confirming the new view. A HIGHLIGHTED_SELECTION event message is not
generated because the same movie remains highlighted.
Note: This command replaces the GO_COVER_ART command, which is
still supported.
GO_MOVIE_COLLECTIONS
Affects
Any movie zone
Command
Response
GO_MOVIE_COLLECTIONS:
status:
Displays the Movie Collections view. If sent during movie playback, playback
is halted and the current playback location is saved in the Paused list. While
in the Movie Collections view, the FILTER_LIST command can be used to
search the selected collection, and the KEYBOARD_CHARACTER command can
be used to jump to specific letters in the alphabet.
Example
Controller sends:
01/3/GO_MOVIE_COLLECTIONS:
Kaleidescape System sends:
01/3/000:/91
02/!/000:UI_STATE:02:00:00:0:/40
02/!/000:HIGHLIGHTED_SELECTION:1.0-u_3877:/81
Kaleidescape Part No. 101-0005 Rev 8
Page 76
Kaleidescape System Control Protocol Reference Manual
In this example, the onscreen display is showing the Movie List view when
the GO_MOVIE_COLLECTIONS command is sent. This command causes the
display to switch to the Movie Collections view and generate a UI_STATE
event message confirming the new view. A HIGHLIGHTED_SELECTION
message is generated in this example because a new movie is highlighted.
Note: This command replaces the GO_COLLECTIONS command and the
GO_FAVORITES command; however, both are still supported.
GO_MOVIE_COLLECTION
Affects
Any movie zone
Command
Response
GO_MOVIE_COLLECTION:collection_name:
status:
Displays the Movie Collections view and selects a collection for onscreen
display.
collection_name
is the name of the predefined or user-defined
collection.
If the collection_name does not match one of the movie collections in the
system exactly, this command acts like the GO_MOVIE_COLLECTIONS
command.
If this command is sent during movie playback, playback is halted and the
current playback location is saved in the Paused list.
Example
Controller sends:
01/9/GO_MOVIE_COLLECTION:Favorites:
Kaleidescape System sends:
01/9/000:/97
02/!/000:HIGHLIGHTED_SELECTION:1.0-u_3877:/81
In this example, the GO_MOVIE_COLLECTIONS:Favorites: command was sent
while the onscreen display was on another collection. The command causes
the collection currently active to change to the Favorites collection. Because
this change causes a new movie to be highlighted, a
HIGHLIGHTED_SELECTION event message is sent.
Music views
Note: Music view commands will re-direct to the movie collection
“Songs” when sent to a player which does not support music.
Kaleidescape Part No. 101-0005 Rev 8
Page 77
Kaleidescape System Control Protocol Reference Manual
GO_MUSIC
Affects
Any movie zone
Command
Response
GO_MUSIC:
status:
Displays a music view on the onscreen display.
If the interface is displaying a movie view, changes to the equivalent music
view. That is, changes from the Movie List view to the Music List view, from
the Movie Collections view to the Music Collections view, and from the
Movie Covers view to the Music Covers view.
If there is no equivalent music view (i.e., Vault Summary, Parental Control,
System Status), the OSD displays the last music view that appeared. If no
music view has been displayed since booting, the Music List view is
displayed.
If sent during movie playback, playback is halted and the current playback
location is saved in the Paused list.
Example
Controller sends:
01/0/GO_MUSIC:
Kaleidescape System sends:
01/0/000:/88
02/!/000:UI_STATE:10:00:00:0:/39
02/!/000:HIGHLIGHTED_SELECTION:1.w_3675:/54
In this example, the onscreen display was on the Movie Covers view when
the GO_MUSIC command was sent. This command causes the view to switch
to the Music Covers view and a UI_STATE event message is generated
confirming the change. Because the highlighted selection changed from a
movie to an album, a HIGHLIGHTED_SELECTION event message is generated
with the handle of the newly-selected album.
GO_MUSIC_LIST
Affects
Any movie zone
Command
Response
GO_MUSIC_LIST:
status:
Displays the Music List view. If sent during movie playback, playback is
halted and the current playback location is saved in the Paused list. While in
the Music List view, the FILTER_LIST command can be used to search the
list, and the KEYBOARD_CHARACTER command can be used to jump to specific
letters in the alphabet.
Kaleidescape Part No. 101-0005 Rev 8
Page 78
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/7/GO_MUSIC_LIST:
Kaleidescape System sends:
01/7/000:/95
01/!/000:UI_STATE:09:00:00:0:/46
In this example, the onscreen display is showing the Music Covers view
when the GO_MUSIC_LIST command is sent. This command causes the
display to change to the Music List view, and generates a UI_STATE event
message. Because the same album remains highlighted, no
HIGHLIGHTED_SELECTION event message is generated.
GO_MUSIC_COVERS
Affects
Command
Response
Any movie zone
GO_MUSIC_COVERS:
status:
Displays the Music Covers view. If sent during movie playback, playback is
halted and the current playback location is saved in the Paused list.
While in the Movie Covers view, the SHUFFLE_COVER_ART and
ALPHABETIZE_COVER_ART commands can be used to reorganize cover art.
Example
Controller sends:
01/8/GO_MUSIC_COVERS:
Kaleidescape System sends:
01/8/000:/96
01/!/000:UI_STATE:10:00:00:0:/38
In this example, the onscreen display is showing the Music List view when
the GO_MUSIC_COVERS command is sent. This command causes the display to
switch to the Music Covers view, and generates a UI_STATE event message.
No HIGHLIGHTED_SELECTION event message is generated because the same
album remains highlighted.
GO_MUSIC_COLLECTIONS
Affects
Any movie zone
Command
Response
GO_MUSIC_COLLECTIONS:
status:
Displays the Music Collections view. If sent during movie playback, playback
is halted and the current playback location is saved in the Paused list. While
in the Music Collections view, the FILTER_LIST command can be used to
search the selected collection, and the KEYBOARD_CHARACTER command can
be used to jump to specific letters in the alphabet.
Kaleidescape Part No. 101-0005 Rev 8
Page 79
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/9/GO_MUSIC_COLLECTIONS:
Kaleidescape System sends:
01/9/000:/97
01/!/000:UI_STATE:11:00:00:0:/39
01/!/000:HIGHLIGHTED_SELECTION::/63
In this example, the onscreen display is showing the Music List view when
the GO_MUSIC_COLLECTIONS command is sent. This command causes the
display to switch to the Music Collections view, and generates a UI_STATE
event message. A HIGHLIGHTED_SELECTION message is generated because a
new album is now highlighted.
GO_MUSIC_COLLECTION
Affects
Any movie zone
Command
Response
GO_MUSIC_COLLECTION:collection_name:
status:
Displays the Music Collections view and selects the collection indicated.
collection_name
is the name of the predefined or user-defined
collection.
If collection_name does not exactly match one of the music collections in
the system, this command acts like the GO_MUSIC_COLLECTIONS command.
If sent during movie playback, playback is halted and the current playback
location is saved in the Paused list.
Example
Controller sends:
01/1/GO_MUSIC_COLLECTION:Artists:
Kaleidescape System sends:
01/1/000:/89
01/!/000:HIGHLIGHTED_SELECTION::/63
In this example, the GO_MUSIC_COLLECTION:Artists: command was sent
while the onscreen display was on another collection. The command causes
the currently active collection to change to the Artists collection. This change
causes the highlighted selection to switch from an album to an artist, which
has no content details, so a blank HIGHLIGHTED_SELECTION event message is
generated.
Kaleidescape Part No. 101-0005 Rev 8
Page 80
Kaleidescape System Control Protocol Reference Manual
GO_NOW_PLAYING
Affects
Any movie zone
Command
Response
GO_NOW_PLAYING:
status:
Displays the Now Playing view. If sent during movie playback, playback is
halted and the current playback location is saved in the Paused list. The Now
Playing view is automatically displayed when music starts playing.
Example
Controller sends:
01/2/GO_NOW_PLAYING:
Kaleidescape System sends:
01/2/000:/90
01/!/000:UI_STATE:12:00:00:0:/40
In this example, the GO_NOW_PLAYING command is sent while the onscreen
display is on the System Status view. The command causes the display to
switch to the Now Playing view and generates a UI_STATE event message
indicating the change.
Other views
GO_SYSTEM_STATUS
Affects
Command
Response
Any movie zone
GO_SYSTEM_STATUS:
status:
Displays the System Status view. If sent during movie playback, playback is
halted and the current playback location is saved in the Paused list. The
STATUS_AND_SETTINGS command also displays the System Status view when
no movie is playing.
Example
Controller sends:
01/6/GO_SYSTEM_STATUS:
Kaleidescape System sends:
01/6/000:/94
01/!/000:UI_STATE:08:00:00:0:/45
In this example, the onscreen display is on the Movie Collections view when
the GO_SYSTEM_STATUS command is sent. This command causes the System
Status view to be displayed, and a UI_STATE event message to be generated
confirming the change in view.
Kaleidescape Part No. 101-0005 Rev 8
Page 81
Kaleidescape System Control Protocol Reference Manual
GO_PARENTAL_CONTROL
Affects
Any movie zone
Command
Response
GO_PARENTAL_CONTROL:
status:
Displays the Parental Control view. If sent during movie playback, playback
is halted and the current playback location is saved in the Paused list.
The user can also change to a parental control level that has a passcode at
any time from the Kaleidescape onscreen display by entering the passcode
for that level. Sending a digit character with the KEYBOARD_CHARACTER
command when the onscreen display is active causes the passcode dialog
box to appear.
Example
Controller sends:
01/3/GO_PARENTAL_CONTROL:
Kaleidescape System sends:
01/3/000:/91
01/!/000:UI_STATE:04:00:00:0:/41
In this example, the GO_PARENTAL_CONTROL command is sent, and the view
changes to the Parental Control view. This causes a UI_STATE event message
to be generated confirming the change.
GO_VAULT_SUMMARY
Affects
Command
Response
Any movie zone
GO_VAULT_SUMMARY:
status:
Displays the Vault Summary view. If no vault is connected to a player in the
system, the onscreen display displays text indicating there are no vaults
available. If sent during playback, playback is halted and the current
playback location is saved in the Paused list.
Example
Controller sends:
02/1/GO_VAULT_SUMMARY:
Kaleidescape System sends:
02/1/000:/90
02/!/000:UI_STATE:14:00:00:0:/43
02/!/000:HIGHLIGHTED_SELECTION::/64
Kaleidescape Part No. 101-0005 Rev 8
Page 82
Kaleidescape System Control Protocol Reference Manual
User input
GET_USER_INPUT
Affects
Command
Response/Event
Any movie zone
GET_USER_INPUT:
status:USER_INPUT:type:prompt:entry:
This message provides information about the user input requested by the
user interface. The message includes the type of input request, as well as
prompts that can be displayed on a controller.
The event message is generated when the need for input changes, or when
the prompt or input changes.
type
specifies the type of prompt.
00
No prompt
01
Alphanumeric prompt (full keyboard required)
prompt
02
Numeric prompt (numeric keypad required).
specifies the query, such as Search for title.
entry
contains the text entered by the user.
To add characters to the entry, the controller sends KEYBOARD_CHARACTER
commands. To remove characters from the input prompt, use the BACKSPACE
command. Every change to the input generates another USER_INPUT event
message.
Example
Controller sends:
01/1/GET_USER_INPUT:
Kaleidescape System sends:
01/1/000:USER_INPUT:01:Search for title::/67
In this example, the controller sends the GET_USER_INPUT command shortly
after connecting, to the resynchronize state. The response indicates that the
user interface is requesting alphanumeric text in response to the prompt
Search for title.
KEYBOARD_CHARACTER
Affects
Any movie zone
Request
Response
KEYBOARD_CHARACTER:character:
status:
Sends a single character to the onscreen display.
Kaleidescape Part No. 101-0005 Rev 8
Page 83
Kaleidescape System Control Protocol Reference Manual
character
is the character to be sent to the onscreen display.
The character can be a letter, digit, or any other
symbol.
If a letter is sent to the onscreen display while the Movie List, Music List,
Movie Collections, or Music Collections view is active with no prior
FILTER_LIST command, this command causes the list to jump to the first
entry that starts with the character sent. (This is known as quick search.)
Note that a colon character must be escaped with a backslash:
01/1/KEYBOARD_CHARACTER:\::
01/1/000:/89
(correct format)
01/2/KEYBOARD_CHARACTER:::
01/2/012:/93
(incorrect format)
Example 1
Controller sends:
01/4/KEYBOARD_CHARACTER:r:
Kaleidescape System sends:
01/4/000:/92
02/!/000:HIGHLIGHTED_SELECTION:1.W_22033:/91
Controller sends:
01/5/KEYBOARD_CHARACTER:o:
Kaleidescape System sends:
01/5/000:/93
02/!/000:HIGHLIGHTED_SELECTION:1.W_21892:/03
In this example, the OSD was displaying the music list. The user sent the
character r and the OSD scrolled to the first selection that started with r, then
sent the HIGHLIGHTED_SELECTION event. The user then sent the character o
and the OSD scrolled to the first selection starting with o and sent the
HIGHLIGHTED_SELECTION event for that command. Note that the OSD did not
filter for a title that contains, ro, but instead performed two quick searches
based on individual characters.
Example 2
See example for FILTER_LIST command.
Note: This command replaces the DIGIT command. Both can be used
to send letters and digits. KEYBOARD_CHARACTER is preferred because
the name is more accurate.
Kaleidescape Part No. 101-0005 Rev 8
Page 84
Kaleidescape System Control Protocol Reference Manual
BACKSPACE
Affects
Any movie zone
Command
Response
BACKSPACE:
status:
During any kind of data entry, such as a FILTER_LIST or passcode entry, this
command erases the last character entered.
Example
See example for FILTER_LIST command.
View-specific commands
FILTER_LIST
Affects
Any movie zone
Command
Response
FILTER_LIST:
status:
This command is used to search the list or collections views according to a
user-entered string. This command causes a message to appear in the upper
right corner, indicating that the column currently selected is being searched.
The controller can then send KEYBOARD_CHARACTER and BACKSPACE
commands to build a string used by the onscreen display to filter the list.
A CANCEL command halts filtering.
There is no need to implement a keyboard with extra characters, for
example, accents and other similar characters. Filtering is accomplished
using just the basic, unaccented characters.
Example
Controller sends:
01/7/GO_MOVIE_LIST:
Kaleidescape System sends:
01/7/000:/95
01/!/000:UI_STATE:01:00:00:0:/38
Controller sends:
01/8/FILTER_LIST:
Kaleidescape System sends:
01/8/000:/96
01/!/000:USER_INPUT:01:Search for title::/51
Controller sends:
01/9/KEYBOARD_CHARACTER:S:
Kaleidescape System sends:
01/9/000:/97
Kaleidescape Part No. 101-0005 Rev 8
Page 85
Kaleidescape System Control Protocol Reference Manual
01/!/000:USER_INPUT:01:Search for title:S:/34
Controller sends:
01/0/KEYBOARD_CHARACTER:E:
Kaleidescape System sends:
01/0/000:/88
01/!/000:USER_INPUT:01:Search for title:Se:/35
01/!/000:HIGHLIGHTED_SELECTION:1.0-u_67a47:/76
Controller sends:
01/3/BACKSPACE:
Kaleidescape System sends:
01/3/000:/91
01/!/000:USER_INPUT:01:Search for title:S:/34
In this example, the controller selects the Movie List view, then sends the
FILTER_LIST command. The user sends the letters S and E, and a selection
starting with Se is highlighted. This is shown by the HIGHLIGHTED_SELECTION
event message. Subsequently, the user decides to remove a character and
sends the BACKSPACE command, causing the E to be removed.
SHUFFLE_COVER_ART
Affects
Command
Any movie zone
SHUFFLE_COVER_ART:
Response
status:
This command shuffles the cover art on the Movie Covers and Music Covers
views. Movies or albums similar to the item currently selected are
rearranged to surround the selected cover.
If automatic cover shuffle is off, this command is the only way to activate the
shuffling. Additionally, if the cover art has been alphabetized by the
ALPHABETIZE_COVER_ART command, this command removes the
alphabetization.
Example
Controller sends:
01/6/SHUFFLE_COVER_ART:
Kaleidescape System sends:
01/6/000:/94
In this example, the SHUFFLE_COVER_ART command is sent while on the
Movie Covers view. Because the selected item does not change, the
controller receives no further response.
Kaleidescape Part No. 101-0005 Rev 8
Page 86
Kaleidescape System Control Protocol Reference Manual
CHILD_SHUFFLE_COVER_ART
Affects
Any movie zone
Command
Response
CHILD_SHUFFLE_COVER_ART:
status:
If the player is displaying the child user interface, the cover art is shuffled. If
the child user interface is not active, activates the child user interface and
emits appropriate events to indicate the change. This command has no effect
during movie playback.
Example
Controller sends:
01/1/CHILD_SHUFFLE_COVER_ART:
Kaleidescape System sends:
01/1/000:/89
02/!/000:CHILD_MODE_STATE:1:/63
02/!/000:USER_DEFINED_EVENT:SELECT_KALEIDESCAPE_INPUT:/77
The player was not displaying the child user interface, but after receiving the
CHILD_SHUFFLE_COVER_ART command, switched to the child user interface
and emitted the appropriate events.
ALPHABETIZE_COVER_ART
Affects
Any movie zone
Command
Response
ALPHABETIZE_COVER_ART:
status:
Arranges covers alphabetically by title in the Movie Covers or Music Covers
view around a highlighted cover. A subsequent SHUFFLE_COVER_ART
command removes the alphabetization.
Example
Controller sends:
01/7/ALPHABETIZE_COVER_ART:
Kaleidescape System sends:
01/7/000:/95
In this example, the ALPHABETIZE_COVER_ART command is sent while on the
Movie Covers view. No other messages occur because the selected item
does not change.
Kaleidescape Part No. 101-0005 Rev 8
Page 87
Kaleidescape System Control Protocol Reference Manual
DEFAULT_LEVEL
Affects
Any movie zone
Command
Response
DEFAULT_LEVEL:
status:
Directly sets the parental control level to the default level set in the browser
interface. This command provides the same function as accessing the
Parental Control view and selecting the appropriate parental control level.
See also SAFE_LEVEL.
Example
Controller sends:
01/4/DEFAULT_LEVEL:
Kaleidescape System sends:
01/4/000:/92
SAFE_LEVEL
Affects
Any movie zone
Command
Response
SAFE_LEVEL:
status:
Directly sets the parental control level to the highest level that has no
passcode as set in the browser interface. This command provides the same
function as accessing the Parental Control view and selecting the appropriate
parental control level. See also DEFAULT_LEVEL.
Example
Controller sends:
01/4/SAFE_LEVEL:
Kaleidescape System sends:
01/4/000:/92
Page and content details
DETAILS
Affects
Command
Response
Any movie zone
DETAILS:
status:
Toggles the display of the details page over the current display. The details
page shows detailed information for the highlighted selection (movie,
album, etc.). A subsequent CANCEL command hides the details page, the
same as if the user chooses the Return option on the details page menu.
Kaleidescape Part No. 101-0005 Rev 8
Page 88
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/2/DETAILS:
Kaleidescape System sends:
01/2/000:/90
01/!/000:UI_STATE:01:00:00:0:/38
Controller sends:
01/3/DETAILS:
Kaleidescape System sends:
01/3/000:/91
01/!/000:UI_STATE:01:01:00:0:/39
In this example, the onscreen display is on the Movie List view showing a
details page for a particular movie. The DETAILS command is sent, causing
the details page to disappear, and a UI_STATE event message to be
generated.
The second DETAILS command subsequently restores the details page and
produces another UI_STATE event message that indicates that the details
page is displayed.
DISC_IN_TRAY_TOGGLE
Affects
Any movie player with an optical disc drive
Command
Response
DISC_IN_TRAY_TOGGLE:
status:
Toggles the display of the disc in player page over the current display. The
disc in player page shows detailed information about the disc currently in
the optical drive of the player
Example
Controller sends:
01/1/ DISC_IN_TRAY_TOGGLE:
Kaleidescape System sends:
01/1/000:/89
01/!/000:UI_STATE:03:01:00:0:/42
01/!/000:HIGHLIGHTED_SELECTION:1.283ec4aa94a9267d-L10005_263d:/01
In this example, the onscreen display is on the Movie Covers view.
DISC_IN_TRAY_TOGGLE is sent causing the disk in player popup to appear, as
indicated by the UI_STATE event. A HIGHLIGHTED_SELECTION message is also
generated with the handle of the movie or album in the optical drive. The
controller could now send GET_CONTENT_DETAILS to retrieve information
about the movie or album.
Kaleidescape Part No. 101-0005 Rev 8
Page 89
Kaleidescape System Control Protocol Reference Manual
GET_CONTENT_DETAILS
Affects
All components
Command
Response
GET_CONTENT_DETAILS:handle:passcode:
status:CONTENT_DETAILS_OVERVIEW:
num_lines:handle:table:
Response
status:CONTENT_DETAILS:line:name:value:
This command provides concise information about a movie or album.
Command parameters
handle
is the identifier for the movie or album for which
content details are being requested. This handle can
come from a HIGHLIGHTED_SELECTION message, a
BROWSE_RESPONSE message, or a MUSIC_TITLE
message.
passcode
is used to access content not available on the current
parental control level. When blank, only content for
the current parental control level can be displayed.
Most controllers do not have to use this field.
Response
The response to this command always includes a
CONTENT_DETAILS_OVERVIEW message. If the num_lines field of the message
is not 0, several CONTENT_DETAILS messages follow containing actual
information for the content.
CONTENT_DETAILS_OVERVIEW response
num_lines
handle
table
is the number of CONTENT_DETAILS messages
following the overview.
is the identifier for the movie or album that was
requested in the GET_CONTENT_DETAILS command.
is the type of content details information being
provided, either movies or albums.
CONTENT_DETAILS response
Each CONTENT_DETAILS response contains a single name/value pair providing
information about the piece of content.
Kaleidescape Part No. 101-0005 Rev 8
Page 90
Kaleidescape System Control Protocol Reference Manual
line
identifies the index of this particular CONTENT_DETAILS
response among the total number of
CONTENT_DETAILS responses being sent. This will
count from 1 up to num_lines.
name
is the name of the value being provided by this
CONTENT_DETAILS response. For example, Title.
value
is the actual information associated with the name for
this response. For example, Toy Story. If the
response contains multiple values, values are
separated by a carriage return (\r ASCII 13).
Depending on the table of content details, different name/value pairs are
returned. Many common values for content are listed below. A controller
must listen for all pertinent values when parsing CONTENT_DETAILS
messages.
For content in the movies table
Content_handle
reiterates the handle for this piece of content, as
requested in the GET_CONTENT_DETAILS command.
Title
is the title of the movie.
Cover_URL
is a URL for the cover art image, for display on touch
panels.
Rating
is the parental control rating for the movie, for
example, G, PG, PG-13, R.
Rating_reason
is a text string that is reason for the rating, for
example, sexual material and language.
Year
is the year that the movie was released.
Running_time
is the running time of the movie in minutes.
Actors
is a carriage return (\r) delimited list of actors and
actresses that star in the movie.
Director
is the name of the director of the movie.
Directors
is a carriage return (\r) delimited list of directors that
worked on the movie.
Genre
is the genre for the movie.
Genres
is a carriage return (\r) delimited list of genres
associated with the movie.
Synopsis
is the synopsis of the movie.
Color_description
indicates whether the movie is in color or black and
white.
Country
is the country which produced the movie.
Aspect_ratio
is the aspect ratio of the movie, for example, 2.40.
Kaleidescape Part No. 101-0005 Rev 8
Page 91
Kaleidescape System Control Protocol Reference Manual
Disc_location
provides the location of the disc, for example,
in the tray
in the disc vault "Disc Vault - 0600
00001234."
Example
Kaleidescape System sends:
01/!/000:HIGHLIGHTED_SELECTION:1.0-S_ca4fb:/77
Controller sends:
01/1/GET_CONTENT_DETAILS:1.0-S_ca4fb::
Kaleidescape System sends:
01/1/000:CONTENT_DETAILS_OVERVIEW:15:1.0-S_ca4fb:movies:/74
01/1/000:CONTENT_DETAILS:1:Content_handle:1.0-S_ca4fb:/82
01/1/000:CONTENT_DETAILS:2:Title:The Incredibles:/82
01/1/000:CONTENT_DETAILS:3:Cover_URL:http\:\/\/10.100.12.194\/panelcover
art\/b9bca9a6f224fb54\/3866055.jpg:/53
01/1/000:CONTENT_DETAILS:4:Rating:PG:/89
01/1/000:CONTENT_DETAILS:5:Year:2004:/25
01/1/000:CONTENT_DETAILS:6:Running_time:115:/41
01/1/000:CONTENT_DETAILS:7:Actors:Craig T. Nelson\rHolly Hunter\rJason
Lee\rSamuel L. Jackson\rBrad Bird\rSarah Vowell\rSpencer Fox\rWallace
Shawn\rElizabeth Pe\d241a:/34
01/1/000:CONTENT_DETAILS:8:Directors:Brad Bird:/66
01/1/000:CONTENT_DETAILS:9:Genres:Animated\rAction\rComedy\rFamily:/88
01/1/000:CONTENT_DETAILS:10:Rating_reason:action violence:/49
01/1/000:CONTENT_DETAILS:11:Synopsis:A middle-aged hero living in the
suburbs with his super-powered family dusts off his tights to confront a
mysterious threat.:/22
01/1/000:CONTENT_DETAILS:12:Color_description:Color:/77
01/1/000:CONTENT_DETAILS:13:Country:USA:/62
01/1/000:CONTENT_DETAILS:14:Aspect_ratio:2.40:/16
01/1/000:CONTENT_DETAILS:15:Disc_location::/14
Kaleidescape Part No. 101-0005 Rev 8
Page 92
Kaleidescape System Control Protocol Reference Manual
For content in the albums table
Album_content_handle is the handle for the album, as requested by the
GET_CONTENT_DETAILS command.
Album_title
is the title of the album.
Artist
is the artist listed for the album.
Artists
is a carriage return (\r) delimited list of artists
associated with the album.
Composer
is the composer for the album.
Composers
is a carriage return (\r) delimited list of composers that
are associated with the album.
Performer
is the performer or artist associated with the album.
Performers
is a carriage return (\r) delimited list of performers or
artists associated with the album.
Cover_URL
is a URL for the cover art image, for display on touch
panels.
Year
is the year the album was released.
Running_time
is the length of the album in seconds.
Last_played
shows the date and time that the album was last
played.
Last_played_relative
shows when the album was last played.
Genre
is the genre of music associated with the album.
Genres
is a carriage return (\r) delimited list containing the
genres associated with the album.
Review
is the first 255 characters of the album review provided
by the onscreen display. (Note that this is generally not
the full review.)
Disc_location
is a string indicating where the disc is currently located,
for example, in the tray.
Example
Kaleidescape System sends:
01/!/000:HIGHLIGHTED_SELECTION:1.R_18760:/97
Controller sends:
01/1/GET_CONTENT_DETAILS:1.R_18760::
Kaleidescape System sends:
01/1/000:CONTENT_DETAILS_OVERVIEW:11:1.R_18760:albums:/75
01/1/000:CONTENT_DETAILS:1:Album_content_handle:1.R_18760:/26
01/1/000:CONTENT_DETAILS:2:Album_title:Greetings from Asbury Park,
N.J.:/77
01/1/000:CONTENT_DETAILS:3:Artist:Bruce Springsteen:/54
01/1/000:CONTENT_DETAILS:4:Cover_URL:http\:\/\/10.100.12.194\/panelcover
art\/b9bca9a6f224fb54\/_music_\/f35592zh2ls.jpg:/24
Kaleidescape Part No. 101-0005 Rev 8
Page 93
Kaleidescape System Control Protocol Reference Manual
01/1/000:CONTENT_DETAILS:5:Year:1973:/39
01/1/000:CONTENT_DETAILS:6:Running_time:2236:/95
01/1/000:CONTENT_DETAILS:7:Last_played:0000-00-00 00\:00\:00:/60
01/1/000:CONTENT_DETAILS:8:Last_played_relative::/22
01/1/000:CONTENT_DETAILS:9:Genres:Pop\/Rock\rRock & Roll\rContemporary
Pop\/Rock\rAlbum Rock:/95
01/1/000:CONTENT_DETAILS:10:Review:Bruce Springsteen's debut album found
him squarely in the tradition of Bob Dylan\: folk-based tunes arranged
for an electric band featuring piano and organ (plus, in Springsteen's
case, 1950s-style:/32
01/1/000:CONTENT_DETAILS:11:Disc_location::/10
GET_HIGHLIGHTED_SELECTION
Affects
Any movie zone
Command
Response/Event
GET_HIGHLIGHTED_SELECTION:
status:HIGHLIGHTED_SELECTION:handle:
This message provides the handle for the currently highlighted item in the
onscreen display. This message can be used with the GET_CONTENT_DETAILS
command to get content details for the item. If nothing is highlighted, or if
the item does not have content details, HIGHLIGHTED_SELECTION returns a
blank handle.
The event message is generated when the item currently highlighted
changes, for example, when the user highlights various movies and albums.
handle
is an identifier for the currently highlighted item that
can be used in other commands, for example,
GET_CONTENT_DETAILS.
Example
Kaleidescape System sends:
01/!/000:HIGHLIGHTED_SELECTION:1.R_18760:/97
Controller sends:
01/1/GET_CONTENT_DETAILS:1.R_18760::
In this example, the user is browsing through the music list and rests on a
particular album. The controller then uses the HIGHLIGHTED_SELECTION to
request content details for that album.
Kaleidescape Part No. 101-0005 Rev 8
Page 94
Kaleidescape System Control Protocol Reference Manual
Screen saver commands
GO_SCREEN_SAVER
Affects
Command
Response
Any movie zone
GO_SCREEN_SAVER:
status:
Displays the screen saver (has no effect if the screen saver is already active).
Any active playback continues without interruption, the video is merely
being obscured by the screen saver.
For the user’s convenience, the screen saver is removed with the next user
input, ignoring the command itself, and returning a success response.
(Commands unrelated to user interface or playback, such as GET_TIME, are
generally interpreted without removing the screen saver.)
An explicit STOP_SCREEN_SAVER command also removes the screen saver.
A UI_STATE event message is sent any time the screen saver is activated,
whether automatically or by a command.
Example
Controller sends:
01/8/GO_SCREEN_SAVER:
Kaleidescape System sends:
01/8/000:/96
01/!/000:UI_STATE:03:00:00:1:/41
This example shows the GO_SCREEN_SAVER command sent to the
Kaleidescape System. The system generates a UI_STATE event message
indicating that the screen saver is now active.
STOP_SCREEN_SAVER
Affects
Any movie zone
Command
Response
STOP_SCREEN_SAVER:
status:
Removes the screen saver, returning the display to whatever the screen
saver was covering. This command has no effect if the screen saver is not
active.
For the user’s convenience, the screen saver is removed with the next user
input, ignoring the command itself and returning a success response.
(Commands unrelated to user interface or playback, such as GET_TIME, are
generally interpreted without removing the screen saver.)
A UI_STATE event message is sent out any time the screen saver is removed,
whether by a command or a user action.
Kaleidescape Part No. 101-0005 Rev 8
Page 95
Kaleidescape System Control Protocol Reference Manual
The onscreen display activates the screen saver with a GO_SCREEN_SAVER
command, or automatically after a certain time passes with no user input
(the time period can be set in the browser interface).
Example
Controller sends:
01/9/STOP_SCREEN_SAVER:
Kaleidescape System sends:
01/9/000:/97
01/!/000:UI_STATE:03:00:00:0:/40
This example shows the STOP_SCREEN_SAVER command sent to remove the
screen saver. The onscreen display returns to the Movie Covers view and
generates a UI_STATE message indicating the change.
OSD Playback Control Commands
Note: The response code for music related commands will return
“Command is not available” for products which do not support
music.
These commands control movie and music playback, and the user interface.
Commands are grouped and a detailed description of each command
follows. Table 9 lists playback control commands.
Table 9: Playback control command summary
Command
Description
Playback control
PLAY
Begins playback of movies and music.
PAUSE
Toggles pause.
STOP
Stops playback.
NEXT and PREVIOUS
Skips forward or backward through chapters or
songs.
SCAN_FORWARD and SCAN_REVERSE
Cycles through fast-forward or fast-reverse.
REPLAY
Skips back five seconds during movie playback.
Kaleidescape Part No. 101-0005 Rev 8
Page 96
Kaleidescape System Control Protocol Reference Manual
Command
Child Remote playback control
CHILD_PLAY
Description
If child user interface is active, or if selected movie
is in Child collection, plays the selected movie.
Otherwise, activates child user interface.
CHILD_PAUSE
Toggles pause and displays child user interface.
CHILD_STOP
Stops playback.
Playback information
SET_STATUS_CUE_PERIOD
Sets the frequency of PLAY_STATUS and
MUSIC_PLAY_STATUS event messages.
GET_PLAY_STATUS
Identifies movie play mode, speed, location and
chapter.
GET_PLAYING_TITLE_NAME
Provides the title of the movie currently playing.
GET_MUSIC_NOW_PLAYING_STATUS
Sends the state of the Now Playing list.
GET_MUSIC_PLAY_STATUS
Provides playback information for the currently
playing music.
GET_MUSIC_TITLE
Provides information about the song currently
playing.
Music playback controls
MUSIC_RANDOM_ON
Turns on random playback for music.
MUSIC_RANDOM_OFF
Turns off random playback for music.
MUSIC_RANDOM_TOGGLE
Toggles random music playback on and off.
MUSIC_REPEAT_ON
Turns on repeat playback for music.
MUSIC_REPEAT_OFF
Turns off repeat playback for music.
MUSIC_RANDOM_TOGGLE
Toggles repeat music playback on and off.
GET_CONTROLLED_ZONE
Returns the music zone currently under control.
SET_CONTROLLED_ZONE
Changes the music zone controlled by the
onscreen display.
Kaleidescape Part No. 101-0005 Rev 8
Page 97
Kaleidescape System Control Protocol Reference Manual
Command
DVD/Blu-ray Disc navigation
DISC_MENU
Description
Displays DVD or Blu-ray Disc menu for the current
playback.
DISC_TOP_MENU
Displays the top menu for the DVD or Blu-ray Disc.
DISC_RESUME
Resumes playback from the point of interruption.
START_CHAPTER_ENTRY
Displays a tab to enter chapter number to skip
directly to.
START_DISC_TITLE_ENTRY
Displays a tab to enter title number to skip directly
to a title.
Movie playback options
SHOW_NAVIGATION_OVERLAY
During playback, opens the movie overlay to the
chapter/title navigation option.
STATUS_AND_SETTINGS
During playback, toggles the display of the movie
overlay. Otherwise, brings up the System Status
page.
INTERMISSION_ON
Pauses playback and displays intermission screen.
INTERMISSION_OFF
Removes the intermission screen and resumes
playback.
INTERMISSION_TOGGLE
Toggles intermission screen on and off.
SET_FAVORITE_SCENE_START
Records a bookmark for the start of a scene.
SET_FAVORITE_SCENE_END
Records a bookmark for the end of a scene.
START_SEND_NUMBER_TO_DISC_ENTRY
Displays a tab to enter a number key to send to a
DVD or Blu-ray Disc.
ANGLE_NEXT
Changes to the next camera angle defined for
playback.
ANGLE_PREVIOUS
Changes to the previous camera angle defined for
playback.
AUDIO_NEXT
Changes to the next audio stream during movie
playback.
SUBTITLES_NEXT
Changes to the next subtitle track during playback.
Kaleidescape Part No. 101-0005 Rev 8
Page 98
Kaleidescape System Control Protocol Reference Manual
Command
Description
GET_CAMERA_ANGLE
Blu-ray Disc playback options
Blu-ray color buttons
Provides information about the current camera
angle.
Performs actions associated with color buttons.
GET_MOVIE_MEDIA_TYPE
Identifies the type of media being played.
BLURAY_SPECIAL_STOP
Stops Blu-ray Disc playback. Use with caution.
BLURAY_POPUP_MENU_TOGGLE
Toggles display of Blu-ray Disc pop-up menu.
Playback control
PLAY
Affects
Any zone
Command
Response
PLAY:
status:
Begins playback of movie or music. When sent to a music zone, it resumes
(if paused) or restarts music playback if stopped or finished playing.
If sent to a movie zone, begins playing the highlighted movie, album, track,
or other playable item (scene, script, etc.). Movies previously stopped via a
STOP command resume playback from the stopping point. Other movies
begin playback at the start of the feature if bookmarked in the Kaleidescape
Movie Guide. If a movie has no feature bookmark, playback begins like a
normal DVD or Blu-ray Disc.
During movie playback, this command begins playing the selected item in a
DVD or Blu-ray Disc menu, returns playback to regular forward speed,
resumes paused playback or turns intermission off. Compare with PAUSE_OFF
and INTERMISSION_OFF.
During music playback, if the music is paused, PLAY always resumes. In the
Now Playing view, PLAY also restarts the music if music has been stopped or
has finished playing.
Example 1
Controller sends:
01/5/PLAY:
Kaleidescape System sends:
01/5/000:/93
03/!/000:UI_STATE:07:00:00:0:/46
Kaleidescape Part No. 101-0005 Rev 8
Page 99
Kaleidescape System Control Protocol Reference Manual
03/!/000:TITLE_NAME:Serenity:/12
03/!/000:MOVIE_MEDIA_TYPE:01:/36
03/!/000:VIDEO_MODE:02:04:04:/68
In this example, the onscreen display has the movie Serenity highlighted.
The PLAY command is sent, and playback begins. The start of playback
generates several event messages about the playback.
Example 2
Controller sends:
01.01/1/PLAY:
Kaleidescape System sends:
01.01/1/000:/32
01.01/!/000:MUSIC_NOW_PLAYING_STATUS:00011:00000:1:0:0000000010::/12
01.01/!/000:PLAYING_MUSIC_INFORMATION:R_4026:Eric Clapton - Time
Pieces\: Best of Eric Clapton:/94
01.01/!/000:MUSIC_TITLE:I Shot the Sheriff:Eric Clapton:Time
Pieces\:Best of Eric Clapton:1.b9bca9a6f224fb54t301_21:1.R_4026:2.20000:/00
01.01/!/000:MUSIC_PLAY_STATUS:2:0:00263:+00000:000.00:/51
In this example, the user has previously stopped playback of the Best of Eric
Clapton album. The PLAY command is sent to the music zone, and playback
of the album restarts. Playback restart generates several event messages
about the music playback.
PAUSE
Affects
Any zone
Command
PAUSE:
PAUSE_ON:
PAUSE_OFF:
status:
Response
During movie or music playback, PAUSE_ON pauses playback, PAUSE_OFF
resumes playback, and PAUSE toggles between pausing and resuming
playback of the movie or music.
Example 1
Controller sends:
01/8/PAUSE:
Kaleidescape System sends:
01/8/000:/96
03/!/000:PLAY_STATUS:1:0:01:07136:00027:001:00300:00027:/23
In this example, the PAUSE command is sent during movie playback, causing
movie playback to pause. This command generated a PLAY_STATUS event
message that indicates the new paused state.
Kaleidescape Part No. 101-0005 Rev 8
Page 100
Kaleidescape System Control Protocol Reference Manual
Example 2
Controller sends:
01/2/PAUSE:
Kaleidescape System sends:
01/2/000:/90
03/!/000:MUSIC_PLAY_STATUS:1:0:00144:+00081:056.25:/34
03/!/000:MUSIC_NOW_PLAYING_STATUS:00012:00000:1:0:0000000033:2.20000:/15
In this example, the PAUSE command is sent during music playback. This
command caused music playback to pause, generating a MUSIC_PLAY_STATUS
event message and a MUSIC_NOW_PLAYING_STATUS event message, with the
modified information about the playback.
STOP
Affects
Any zone
Command
Response
STOP:
status:
During movie playback, stops the movie and displays the last screen of the
Kaleidescape user interface that was visible when playback last began. The
movie is placed in the Paused collection to be resumed later.
During music playback, stops playback.
Note: Some Blu-ray Discs support a special stop command that does
not always display the Kaleidescape user interface. See
BLURAY_SPECIAL_STOP for information about these special stop
functions.
Example
Controller sends:
01/4/STOP:
Kaleidescape System sends:
01/4/000:/92
03/!/000:MUSIC_NOW_PLAYING_STATUS:00012:00000:1:0:0000000035:2.20000:/17
03/!/000:PLAYING_MUSIC_INFORMATION:::/94
03/!/000:MUSIC_TITLE:::::::/47
03/!/000:MUSIC_PLAY_STATUS:0:0:00000:+00000:000.00:/97
03/!/000:MUSIC_NOW_PLAYING_STATUS:00012:00000:1:0:0000000036::/80
This example shows the way the system reacts when the STOP command is
sent during music playback. The event messages state that no music is now
playing.
Kaleidescape Part No. 101-0005 Rev 8
Page 101
Kaleidescape System Control Protocol Reference Manual
NEXT and PREVIOUS
Affects
Any zone
Command
NEXT:
PREVIOUS:
Response
status:
During movie playback, skips forward or backward to the next chapter
boundary. A reverse returns to the beginning of the current chapter, not the
beginning of the previous chapter. To return to the beginning of the previous
chapter, press a Previous button twice.
During music playback, skips forward or backward to the next track
boundary. A reverse returns to the beginning of the current track, not the
beginning of the previous track. To return to the beginning of the previous
track, press a Previous button twice.
See also the context-sensitive commands that page through user interface
lists (PAGE_UP_OR_PREVIOUS, etc.).
Example
Controller sends:
01/2/PREVIOUS:
Kaleidescape System sends:
01/2/000:/90
Controller sends:
01/3/PREVIOUS:
Kaleidescape System sends:
01/3/000:/91
03/!/000:PLAY_STATUS:2:0:01:07570:00151:002:00270:00000:/22
Controller sends:
01/4/NEXT:
Kaleidescape System sends:
01/4/000:/92
03/!/000:PLAY_STATUS:2:0:01:07570:00422:003:00142:00000:/22
In this example, the PREVIOUS command was sent twice to return to the
previous chapter, then a NEXT command was sent to skip forward one
chapter.
Kaleidescape Part No. 101-0005 Rev 8
Page 102
Kaleidescape System Control Protocol Reference Manual
SCAN_FORWARD and SCAN_REVERSE
Affects
Any zone
Command
SCAN_FORWARD:
SCAN_REVERSE:
Response
status:
During movie playback, cycles through fast-forward or fast-reverse at 2×, 4×,
and 8× the speed. To return to normal speed, issue a PLAY command.
During music playback, cycles through fast-forward or fast-reverse at 4× and
16× the speed. To return to normal speed, issue a PLAY command.
Example
Controller sends:
01/5/SCAN_FORWARD:
Kaleidescape System sends:
01/5/000:/93
03/!/000:PLAY_STATUS:4:1:01:07570:00587:004:00314:00022:/43
Controller sends:
01/6/SCAN_FORWARD:
Kaleidescape System sends:
01/6/000:/94
03/!/000:PLAY_STATUS:4:2:01:07570:00594:004:00314:00029:/49
Controller sends:
01/7/PLAY:
Kaleidescape System sends:
01/7/000:/95
03/!/000:PLAY_STATUS:2:0:01:07570:00608:004:00314:00042:/36
In this example, the SCAN_FORWARD command is sent to cause video to fast
forward at 4× speed. The updated PLAY_STATUS messages indicate the
change in playback mode. After the appropriate location is reached, the PLAY
command is sent, causing playback to return to normal speed, and a
PLAY_STATUS message to be generated.
REPLAY
Affects
Command
Any movie zone
REPLAY:
Response
status:
Skips back five seconds during movie playback. At other times, this
command has no effect.
Kaleidescape Part No. 101-0005 Rev 8
Page 103
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/0/REPLAY:
Kaleidescape System sends:
01/0/000:/88
03/!/000:PLAY_STATUS:2:0:01:07195:00061:001:00070:00061:/29
In this example, the REPLAY command is sent, causing playback status to go
back five seconds. A PLAY_STATUS event message is generated to indicate the
change in position.
CHILD_PLAY
Affects
Any zone
Command
Response
CHILD_PLAY:
status:
If the child user interface is already active, begins playback of movie. If the
child user interface is not active, activates the child user interface.
Example
Controller sends:
02/8/CHILD_PLAY:
Kaleidescape System sends:
02/8/000:/97
02/!/000:CHILD_MODE_STATE:1:/63
02/!/000:USER_DEFINED_EVENT:SELECT_KALEIDESCAPE_INPUT:/77
02/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000007::/74
02/!/000:UI_STATE:07:00:00:0:/45
02/!/000:TITLE_NAME:Ice Age:/34
The player was not displaying the child user interface, but after receiving the
CHILD_PLAY command, switched to the child user interface, and began
playback. This selection was available in the Child collection; otherwise,
playback would not begin and a movie from the Child collection would be
selected.
CHILD_PAUSE
Affects
Command
Any zone
CHILD_PAUSE:
CHILD_PAUSE_ON:
CHILD_PAUSE_OFF:
Response
status:
If the child user interface is active, toggles pause on and off. If not, activates
the child user interface.
Kaleidescape Part No. 101-0005 Rev 8
Page 104
Kaleidescape System Control Protocol Reference Manual
CHILD_STOP
Affects
Any zone
Command
Response
CHILD_STOP:
status:
Stops the movie and displays the child user interface.
Playback information
Note: The response code for music related commands will return
“Command is not available” for products which do not support
music.
SET_STATUS_CUE_PERIOD
Affects
Any zone
Command
Response
SET_STATUS_CUE_PERIOD:period:
status:STATUS_CUE_PERIOD:period:
Sets the time in seconds between PLAY_STATUS event messages to period.
period
is the time in seconds between PLAY_STATUS and
MUSIC_PLAY_STATUS messages.
0
sent.
No updates for title and chapter locations are
1
A PLAY_STATUS/MUSIC_PLAY_STATUS event
message is sent every second as title and
chapter locations change.
Note: Setting the period to a value greater than 1 is not
yet implemented.
Even when the period is set to 0, the PLAY_STATUS/MUSIC_PLAY_STATUS event
message is generated when fields, other than the playback time change (for
example, playback mode, playback scanning speed, title number, chapter
number). This command only affects whether the event is sent when only
the time changes.
This command is useful for getting automatic updates of the play status, for
example, to display the time remaining on a touch panel.
Example
Controller sends:
03:40:28.144 > 01/4/SET_STATUS_CUE_PERIOD:1:
Kaleidescape System sends:
03:40:28.160
01/4/000:STATUS_CUE_PERIOD:0001:/47
03:40:28.473
01/!/000:PLAY_STATUS:2:0:01:07136:00135:
001:00300:00135:/22
Kaleidescape Part No. 101-0005 Rev 8
Page 105
Kaleidescape System Control Protocol Reference Manual
03:40:29.473
01/!/000:PLAY_STATUS:2:0:01:07136:00136:001:
00300:00136:/24
…
Before this command was sent, movie playback was started. When the
SET_STATUS_CUE_PERIOD command is sent, the system responds with the
updated STATUS_CUE_PERIOD. Subsequently, PLAY_STATUS messages start
being generated once per second.
Note: This command replaces the ENABLE_STATUS_CUES command
(and associated response fields STATUS_CUES and the period), which
is still supported for backward compatibility.
GET_PLAY_STATUS
Affects
Any movie zone
Command
Response/Event
GET_PLAY_STATUS:
status:PLAY_STATUS:mode:speed:
title_num:title_length:title_loc:
chap_num:chap_len:chap_loc:
This message indicates the current movie play mode and speed, as well as
the location in the movie title and chapter structure. The controller can use
this information to change, disable/enable, or dim/highlight buttons, or
provide other feedback to the user.
This event message is generated when any of the included values changes,
typically once per second during playback. This behavior can be changed by
SET_STATUS_CUE_PERIOD.
mode
speed
Kaleidescape Part No. 101-0005 Rev 8
is the current playback mode of the movie.
0
Nothing playing
1
Paused (speed does not apply)
Use GET_MOVIE_LOCATION to distinguish
between freeze-frame and intermission.
2
Playing (speed does not apply)
3
unused
4
5
Forward scan (speed applies)
unused
6
Reverse scan (speed applies)
is the speed of the playback scanning and applies
only to mode 4 or 6, indicating scan. Value is an
integer between 1 (closest to normal playback speed)
and 3 (farthest from normal playback speed).
Page 106
Kaleidescape System Control Protocol Reference Manual
title_num
is a zero-padded, two-digit number identifying the
current movie title playing. If there is no title for the
movie playing, this value is 00.
title_length
is a zero-padded, five-digit number providing the total
length (in seconds) of the title. If there is no current
title, or the value cannot be determined, the value is
00000.
is a zero-padded, five-digit number providing the
current location into the title (in seconds). If there is
no current title, or the value cannot be determined,
the value is 00000.
title_loc
chap_num
is a zero-padded, three-digit number identifying the
current chapter playing. If no chapter is playing, this
value is 000.
chap_length
is a zero-padded, five-digit number providing the total
length in seconds of the chapter. If there is no current
chapter, or the value cannot be determined, the value
is 00000.
chap_loc
is a zero-padded, five-digit number providing the
current location into the chapter. If there is no current
chapter, or the value cannot be determined, the value
is 00000.
Example
Kaleidescape System sends:
01/!/000:PLAY_STATUS:2:0:01:05343:01175:004:00600:00034:/25
This event message indicates that the movie is playing (2), in the first title
(01), and the title is 5343 seconds long. Playback is 1175 seconds into the
title. The current chapter is the fourth chapter (004), which is 600 seconds
long. Playback is 34 seconds into the current chapter.
GET_PLAYING_TITLE_NAME
Affects
Any movie zone
Command
Response/Event
GET_PLAYING_TITLE_NAME:
status:TITLE_NAME:title:
This message provides the title of the movie currently playing. The event
message is sent any time playback begins or ends for a new movie.
title
is the title of the movie currently playing. This is the
same title displayed in the Kaleidescape user
interface. If there is no active playback the title field is
empty.
The controller can display the title of the movie currently playing on a touch
screen, for example.
Kaleidescape Part No. 101-0005 Rev 8
Page 107
Kaleidescape System Control Protocol Reference Manual
Received messages for escaped characters must always be processed, and it
is especially important for TITLE_NAME commands because these commands
often contain embedded colons. See Message character set on page 25 for
details.
Example
Controller sends:
01/0/GET_PLAYING_TITLE_NAME:
Kaleidescape System sends:
01/0/000:TITLE_NAME:Serenity:/25
In this example, the title name for the film currently playing is explicitly
requested by the GET_PLAYING_TITLE_NAME command. The result indicates
that the title is Serenity.
Note: This command replaces the GET_TITLE_NAME command which
returns a similar response, but without the TITLE_NAME field, which
makes the GET_TITLE_NAME command harder to parse.
GET_MUSIC_NOW_PLAYING_STATUS
Affects
Any zone
Command
Response/Event
GET_MUSIC_NOW_PLAYING_STATUS:
status:MUSIC_NOW_PLAYING_STATUS:total:
location:repeat:random:generation:
now_playing_handle:
This event represents the state of the Now Playing list.
total
is the number of tracks in the list, as a zero-padded,
five-digit number.
location
is the index of the song currently playing, with 0
representing the first position. Provided as a zeropadded, five-digit number.
repeat
indicates if repeat is on or off. 0 is off; 1 is on.
random
indicates if random is on or off. 0 is off; 1 is on.
generation
is a number that changes when the text-based music
list accessed by BROWSE protocol changes. The
number will change for changes in both the static
library and the now playing list. The number is a zeropadded, 10 digit number.
The actual value is not as useful as the change alert
which can be used to determine whether to refresh
the list of music playing.
now_playing_handle is a handle unique to the track currently playing.
Example
Controller sends:
01.01/4/GET_MUSIC_NOW_PLAYING_STATUS:
Kaleidescape Part No. 101-0005 Rev 8
Page 108
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01.01/4/000:MUSIC_NOW_PLAYING_STATUS:00002:00000:1:0:0000000123:2.205cd:
/82
The response to GET_MUSIC_NOW_PLAYING_STATUS indicates that two songs
are listed to play, and the first song is currently playing. Repeat is on, while
random playback is off. The generation number is 123, and the song
currently playing is identified by the handle 2.205cd.
GET_MUSIC_PLAY_STATUS
Affects
Any zone
Command
Response/Event
GET_MUSIC_PLAY_STATUS:
status:MUSIC_PLAY_STATUS:mode:speed:
length:position:progress:
This message identifies the current playback mode, scan speed, track length,
position in the current track, and the percentage of progress through the
track.
The event message is generated when any of the included values changes,
typically once per second. This behavior can be changed by the
SET_STATUS_CUE_PERIOD message.
When music is not playing, all fields are zero.
mode
is the current playback mode for the music and has
the following values when music is playing.
speed
1
Paused
2
4
Normal play
Fast forward
6
Fast reverse
Indicates the speed with which music playback is fast
forwarding or reversing. Normally has a value of 0.
In fast forward and fast reverse speed can be 2 or 3 to
represent 4x or 16x speed, respectively.
is the length of the current track, in seconds, as a
zero-padded, five-digit number.
length
position
is the position within the track, also in seconds as a
zero-padded, five-digit number. The position is
prepended by a + or – sign. Position can be negative if
the song is about to start.
progress
is the percentage of the way through the track, and is
between 000.00 and 100.00.
Example
Controller sends:
01.01/6/GET_MUSIC_PLAY_STATUS:
Kaleidescape System sends:
01.01/6/000:MUSIC_PLAY_STATUS:1:0:00298:+00036:012.08:/99
Kaleidescape Part No. 101-0005 Rev 8
Page 109
Kaleidescape System Control Protocol Reference Manual
Controller sends:
01/7/PLAY:
Kaleidescape System sends:
01/7/000:/95
03/!/000:MUSIC_PLAY_STATUS:2:0:00298:+00036:012.08:/38
In this example, the first MUSIC_PLAY_STATUS response indicates that music is
paused. Then the PLAY command is sent, and in response, a
MUSIC_PLAY_STATUS event is sent indicating that music is playing normally.
Additionally, the second MUSIC_PLAY_STATUS message indicates that the
track is 298 seconds long, and that playback is 36 seconds into the track, or
12.08 percent of the way through.
GET_MUSIC_TITLE
Affects
Any zone
Command
Response/Event
GET_MUSIC_TITLE:
status:MUSIC_TITLE:track:artist:album:
track_handle:album_handle:
now_playing_handle:
This message provides useful information about the currently playing music
track, such as the album it is associated with, the artist that wrote it, etc.
The event message is generated when the song currently playing changes. If
no song is playing, all of the fields are empty.
track
is the name of the song playing.
artist
is the name of the track artist.
album
is the name of the album that contains the song.
track_handle and album_handle
are handles for the track and the album with that track
that can be passed to GET_CONTENT_DETAILS to get
more information about the track or album.
now_playing_handle represents the track as it is positioned in the Now
Playing list. The now_playing_handle can be passed
to the PERFORM_ACTION command to jump to that track
in the list.
The track_handle, album_handle, and now_playing_handle values are
unique. For example, if the same track is in the Now Playing list twice, the
track has the same track_handle but different now_playing handles.
Example
Controller sends:
01.01/0/GET_MUSIC_TITLE:
Kaleidescape System sends:
01.01/0/000:MUSIC_TITLE:Rubber Soul:The Beatles:Nowhere Man:
1.96de0c01d6fd4a9e-t30c_1951:1.R_955059:2.205cd:/97
Kaleidescape Part No. 101-0005 Rev 8
Page 110
Kaleidescape System Control Protocol Reference Manual
The response to this GET_MUSIC_TITLE command indicates that the current
track is called Nowhere Man by the Beatles from their Rubber Soul album.
The handles provided can be used to get more information to display on a
controller, for example, cover art.
Music playback controls
Note: The response code for music related commands will return
“Command is not available” for products which do not support
music.
MUSIC_RANDOM_ON
Affects
Any zone
Command
Response
MUSIC_RANDOM_ON:
status:
Turns on random music playback in the zone. When random music playback
is on, songs play in a random order. The state of random persists across
component reboots. Random music playback can also be set in the Now
Playing view on the user interface.
See also MUSIC_RANDOM_TOGGLE and MUSIC_RANDOM_OFF.
Example
Controller sends:
01.01/5/MUSIC_RANDOM_ON:
Kaleidescape System sends:
01.01/5/000:/36
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:1:0000000007::/76
This example shows random music playback being turned on. The
subsequent MUSIC_NOW_PLAYING_STATUS event message confirms this status
in the appropriate field.
MUSIC_RANDOM_OFF
Affects
Any zone
Command
Response
MUSIC_RANDOM_OFF:
status:
Turns off random music playback in the zone. The state of random persists
across component reboots. Random music playback can also be set in the
Now Playing view of the user interface.
See also MUSIC_RANDOM_TOGGLE and MUSIC_RANDOM_ON.
Kaleidescape Part No. 101-0005 Rev 8
Page 111
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01.01/6/MUSIC_RANDOM_OFF:
Kaleidescape System sends:
01.01/6/000:/37
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000008::/76
This example shows random music playback being turned off. The
subsequent MUSIC_NOW_PLAYING_STATUS event message confirms this status
in the appropriate field.
MUSIC_RANDOM_TOGGLE
Affects
Any zone
Command
Response
MUSIC_RANDOM_TOGGLE:
status:
Toggles random music playback of the zone on and off. When random music
playback is on, songs play in a random order. The state of random persists
across component reboots. Random music playback can also be set in the
Now Playing view of the user interface.
See also MUSIC_RANDOM_ON and MUSIC_RANDOM_OFF.
Example
Controller sends:
01.01/7/MUSIC_RANDOM_TOGGLE:
Kaleidescape System sends:
01.01/7/000:/38
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:1:0000000009::/78
Controller sends:
01.01/8/MUSIC_RANDOM_TOGGLE:
Kaleidescape System sends:
01.01/8/000:/39
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000010::/69
In this example, the first MUSIC_RANDOM_TOGGLE command turns the random
play feature on, confirmed by the subsequent MUSIC_NOW_PLAYING_STATUS
message. The next MUSIC_RANDOM_TOGGLE command turns the random play
feature back off and generates another MUSIC_NOW_PLAYING_STATUS
message.
Kaleidescape Part No. 101-0005 Rev 8
Page 112
Kaleidescape System Control Protocol Reference Manual
MUSIC_REPEAT_ON
Affects
Any zone
Command
Response
MUSIC_REPEAT_ON:
status:
Turns on repeat music playback in the zone. If repeat music playback is on
when music playback ends, music playback starts again at the beginning.
The state of repeat persists across component reboots. Repeat music
playback can also be set in the Now Playing view of the user interface.
See also MUSIC_REPEAT_TOGGLE and MUSIC_REPEAT_OFF.
Example
Controller sends:
01.01/3/MUSIC_REPEAT_ON:
Kaleidescape System sends:
01.01/3/000:/34
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000012::/71
This example shows repeat music playback being turned on, and the
resulting MUSIC_NOW_PLAYING_STATUS event message with the results.
MUSIC_REPEAT_OFF
Affects
Any zone
Command
Response
MUSIC_REPEAT_OFF:
status:
Turns off repeat music playback in the zone. The state of repeat persists
across component reboots. Repeat music playback can also be set in the
Now Playing view of the user interface.
See also MUSIC_REPEAT_TOGGLE and MUSIC_REPEAT_ON.
Example
Controller sends:
01.01/8/MUSIC_REPEAT_OFF:
Kaleidescape System sends:
01.01/8/000:/39
03/!/000:MUSIC_NOW_PLAYING_STATUS:00002:00000:0:0:0000000133::/76
This example shows repeat music playback being turned off. Subsequently a
MUSIC_NOW_PLAYING_STATUS event message is generated to confirm that
repeat is off.
Kaleidescape Part No. 101-0005 Rev 8
Page 113
Kaleidescape System Control Protocol Reference Manual
MUSIC_REPEAT_TOGGLE
Affects
Any zone
Command
Response
MUSIC_REPEAT_TOGGLE:
status:
Toggles repeat music playback on and off for the zone. If repeat music
playback is on when music playback ends, playback starts again from the
beginning. The state of repeat persists across component reboots. Repeat
music playback can also be set in the Now Playing view of the user interface.
See also MUSIC_REPEAT_ON and MUSIC_REPEAT_OFF.
Example
Controller sends:
01.01/4/MUSIC_REPEAT_TOGGLE:
Kaleidescape System sends:
01.01/4/000:/35
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:0:0:0000000013::/71
Controller sends:
01.01/5/MUSIC_REPEAT_TOGGLE:
Kaleidescape System sends:
01.01/5/000:/36
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000014::/73
In this example, the first MUSIC_REPEAT_TOGGLE command turns music repeat
off, which generates a MUSIC_NOW_PLAYING_STATUS event message,
indicating the change. The next command turns repeat back on and
generates a new MUSIC_NOW_PLAYING_STATUS event message with the
change.
GET_CONTROLLED_ZONE
Affects
Command
Response
Any movie zone
GET_CONTROLLED_ZONE:
status:CONTROLLED_ZONE:#sn.zn:
A movie zone can control any music zone in the system. This command can
be used by a controller to provide feedback on which music zone is currently
being controlled.
The currently controlled music zone can be changed by sending a
SET_CONTROLLED_ZONE command or through the onscreen display on the
Now Playing view.
Kaleidescape Part No. 101-0005 Rev 8
Page 114
Kaleidescape System Control Protocol Reference Manual
sn
is the serial number of the component with the music
zone being controlled.
is the music zone (01–04) being controlled.
zn
Example
Controller sends:
01/6/GET_CONTROLLED_ZONE:
Kaleidescape System sends:
01/6/000:CONTROLLED_ZONE:#00000000019A.01:/60
The response to the GET_CONTROLLED_ZONE command indicates that the
movie zone on the attached component is currently controlling the first
music zone on the component with serial number 0000 0000019A.
SET_CONTROLLED_ZONE
Affects
Any movie zone
Command
Response
SET_CONTROLLED_ZONE:#sn.zn:
status:
A movie zone can control any music-only zone in the system. This command
can be used to change which music zone is currently being controlled by the
onscreen display.
The currently controlled music zone can also be changed through the
onscreen display on the Now Playing view.
Remote music zone control must be enabled for this command to function,
otherwise an error is generated. To enable remote music zone control, go to
the browser interface, select the General tab, and select the appropriate
option next to Music Zone Control.
sn
is the serial number of the component to be
controlled.
zn
is the music zone (01–04) to be controlled.
Example
Controller sends:
01/1/SET_CONTROLLED_ZONE:#000000120B91.02:
Kaleidescape System sends:
01/1/000:CONTROLLED_ZONE:#000000120B91.02:/60
In this example, the controlled music zone for the connected component is
set to the second music zone of the component with serial number 0000
00120B91. The CONTROLLED_ZONE response confirms this change.
Kaleidescape Part No. 101-0005 Rev 8
Page 115
Kaleidescape System Control Protocol Reference Manual
DVD/Blu-ray Disc navigation
DISC_MENU
Affects
Command
Response
Any movie zone
DISC_MENU:
status:
During movie playback, displays the DVD or Blu-ray Disc menu for the
current playback context (which might not be the top level menu). At other
times, this command has no effect, i.e., this command does not begin
playing the disc. To display the top level menu for the disc, send a
DISC_TOP_MENU command.
To resume playback while in the disc menu, use the DISC_RESUME or PLAY
command.
If the controller has room for separate menu buttons for the Kaleidescape
System and DVD/Blu-ray Disc, use this command. Otherwise, use the
context-sensitive DISC_OR_KALEIDESCAPE_MENU command.
Example 1
Controller sends:
01/3/DISC_MENU:
Kaleidescape System sends:
01/3/000:/91
03/!/000:PLAY_STATUS:2:0:00:00000:00000:000:00000:00000:/84
In this example, DISC_MENU stopped playback of a DVD movie and displayed
the DVD menu. The PLAY_STATUS event message confirms that playback has
halted.
Example 2
Controller sends:
01/0/DISC_MENU:
Kaleidescape System sends:
01/0/000:/88
03/!/000:PLAY_STATUS:2:0:01:07195:00070:002:00077:00000:/30
03/!/000:PLAY_STATUS:2:0:01:07195:00070:002:00076:00000:/29
In the second example, DISC_MENU was sent while a Blu-ray movie was
playing and playback continued while the menu was overlaid. This behavior
can be the same that BLURAY_POPUP_MENU_TOGGLE causes as shown by the
PLAY_STATUS event messages.
Note: This command replaces the DVD_MENU command which is still
supported.
Kaleidescape Part No. 101-0005 Rev 8
Page 116
Kaleidescape System Control Protocol Reference Manual
DISC_TOP_MENU
Affects
Any movie zone
Command
Response
DISC_TOP_MENU:
status:
During playback, displays the menu for the DVD or Blu-ray Disc as a whole,
rather than any menus defined for specific playback. At other times, this
command has no effect, i.e., this command does not begin playing the disc.
To display the disc menu for the current playback (which might not be the
top level menu), send a DISC_MENU command. To resume playback from the
menu, use the DISC_RESUME or PLAY commands.
Example
Controller sends:
01/5/DISC_TOP_MENU:
Kaleidescape System sends:
01/5/000:/93
03/!/000:PLAY_STATUS:2:0:00:00000:00000:000:00000:00000:/84)
In this example, the DISC_TOP_MENU command stops playback of a DVD
movie and causes the DVD menu to be displayed. The PLAY_STATUS event
message confirms the change.
Note: This command replaces the DVD_TOP_MENU command which is
still supported.
DISC_RESUME
Affects
Command
Response
Any movie zone
DISC_RESUME:
status:
If a DVD or Blu-ray Disc menu is active, resumes playback from the point of
interruption. At other times, this command has no effect. For most discs a
PLAY command has the same effect.
Example
Controller sends:
01/1/DISC_RESUME:
Kaleidescape System sends:
01/1/000:/89
01/!/000:PLAY_STATUS:2:0:01:07152:00692:003:00163:00002:/30
In this example, DVD playback is currently halted, and the DVD menu is
displayed. The DISC_RESUME command causes the menu to be dismissed and
playback to resume, as evidenced by the PLAY_STATUS event message.
Kaleidescape Part No. 101-0005 Rev 8
Page 117
Kaleidescape System Control Protocol Reference Manual
Note: This command replaces the DVD_RESUME command, which is still
supported.
START_CHAPTER_ENTRY
Affects
Command
Response
Any movie zone
START_CHAPTER_ENTRY:
status:
During movie playback, displays a tab indicating that the user can enter a
chapter number to skip directly to that chapter.
Follow this command with KEYBOARD_CHARACTER commands to supply the
number to skip to, and a SELECT command to end entry and make the jump.
If no subsequent digits, or the select command, are received within a few
seconds, this command times out and automatically jumps to the specified
chapter number as though SELECT had been pressed. See also
START_DISC_TITLE_ENTRY.
Example
Controller sends:
01/1/START_CHAPTER_ENTRY:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_INPUT:02:Jump to Chapter::/31
Controller sends:
01/1/KEYBOARD_CHARACTER:5:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_INPUT:02:Jump to Chapter:5:/84
Controller sends:
01/1/SELECT:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_INPUT:00:::/15
01/!/000:PLAY_STATUS:2:0:01:07152:01226:005:00271:00000:/24
Kaleidescape Part No. 101-0005 Rev 8
Page 118
Kaleidescape System Control Protocol Reference Manual
In this example, the START_CHAPTER_ENTRY command is sent during movie
playback, causing the prompt to appear. Because the system is requesting
user input, a USER_INPUT event message is sent with the appropriate prompt.
The controller sends the number 5 to the system to indicate that chapter 5 is
required. The system responds with an updated USER_INPUT event message.
The controller finally sends the SELECT command to confirm the chapter
number, causing playback to jump to that chapter, as shown by the
PLAY_STATUS event message containing the new chapter update. The
USER_INPUT event message is then generated to indicate that user input is no
longer required.
START_DISC_TITLE_ENTRY
Affects
Command
Any movie zone
START_DISC_TITLE_ENTRY:
Response
status:
Some movies have various titles that can be selected during playback. Titles
can be episodes, menus, trailers, etc. The main movie is usually title
number 1. This command displays a tab so the user can enter a title number
to skip directly to that title.
Follow this command with KEYBOARD_CHARACTER commands to supply the
number to skip to, and a SELECT command to end entry and make the jump.
If no subsequent digits, or the SELECT command, are received within a few
seconds, this command times out and automatically jumps to the specified
title as though SELECT had been pressed.
Users are unlikely to need to jump to a numbered title, but this feature can
be useful for calibration discs that have several titles. Users often prefer to
access different chapters, which can be enabled with the
START_CHAPTER_ENTRY command.
Example
Controller sends:
01/1/START_DISC_TITLE_ENTRY:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_INPUT:02:Jump to Title::/34
Controller sends:
01/1/KEYBOARD_CHARACTER:1:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_INPUT:02:Jump to Title:1:/83
Controller sends:
01/1/SELECT:
Kaleidescape Part No. 101-0005 Rev 8
Page 119
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_INPUT:00:::/15
01/!/000:PLAY_STATUS:2:0:01:07152:00000:001:00394:00000:/15
In this example, the START_DISC_TITLE_ENTRY command is sent during
movie playback, causing the prompt to appear. Because the system is
requesting user input, a USER_INPUT event message is sent with the
appropriate prompt. The controller sends the number 1 to the system to
indicate that title 1 is required. The system responds with an updated
USER_INPUT event message. The controller finally sends the SELECT
command to confirm the chapter number, causing playback to jump to that
title, as shown by the PLAY_STATUS event message containing the new
chapter update. The USER_INPUT event message is then generated to indicate
that user input is no longer required.
Note: This command replaces the START_DVD_TITLE_ENTRY command.
Movie playback options
SHOW_NAVIGATION_OVERLAY
Affects
Any movie zone
Command
Response
SHOW_NAVIGATION_OVERLAY:
status:
During movie playback, this command brings up the movie overlay showing
the chapter/title navigation option. This command brings up the same
overlay as the STATUS_AND_SETTINGS command, just on a different page. At
other times, this command has no effect.
Example
Controller sends:
01/4/SHOW_NAVIGATION_OVERLAY:
Kaleidescape System sends:
01/4/000:/92
03/!/000:UI_STATE:07:03:00:0:/49
This example shows the results of the SHOW_NAVIGATION_OVERLAY command.
The command was sent during playback, causing the UI_STATE event
message to be generated, indicating that navigation option of the movie
overlay is now active.
Kaleidescape Part No. 101-0005 Rev 8
Page 120
Kaleidescape System Control Protocol Reference Manual
STATUS_AND_SETTINGS
Affects
Any movie zone
Command
Response
STATUS_AND_SETTINGS:
status:
During movie playback, toggles display of the movie overlay. The movie
overlay has a status page showing the title of the movie currently playing,
remaining playing time, and other information. Pressing the left and right
arrow buttons displays other options of the movie overlay, for example,
audio, subtitles, navigation, scenes.
When not playing back a movie, this command displays the System Status
view (see GO_SYSTEM_STATUS).
Example
Controller sends:
01/2/STATUS_AND_SETTINGS:
Kaleidescape System sends:
01/2/000:/90
03/!/000:UI_STATE:07:02:00:0:/48
Controller sends:
01/3/STATUS_AND_SETTINGS:
Kaleidescape System sends:
01/3/000:/91
03/!/000:UI_STATE:07:00:00:0:/46
In this example, the STATUS_AND_SETTINGS command is sent during
playback, causing the movie overlay to appear. A UI_STATE message is
generated to show that the status page is displayed. The second
STATUS_AND_SETTINGS command hides the movie overlay and causes
another UI_STATE event message to be generated showing the change.
INTERMISSION_ON
Affects
Any movie zone
Command
Response
INTERMISSION_ON:
status:
Pauses any active playback and displays the Kaleidescape intermission
screen, which shows the cover of the currently playing movie. When playing
back a script, the intermission feature can be customized to show other
cover art, scenes, or content. At other times, this command has no effect.
See also INTERMISSION_OFF and INTERMISSION_TOGGLE.
Kaleidescape Part No. 101-0005 Rev 8
Page 121
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/4/INTERMISSION_ON:
Kaleidescape System sends:
01/4/000:/92
03/!/000:MOVIE_LOCATION:04:/71
03/!/000:PLAY_STATUS:1:0:05:05700:00638:001:00887:00638:/58
This example shows the results of sending the INTERMISSION_ON command.
Movie playback stops, generating a PLAY_STATUS event message.
Additionally, a MOVIE_LOCATION event message is generated to indicate that
the intermission screen is displayed, which can be used to trigger lighting
and other events to coincide with the intermission.
INTERMISSION_OFF
Affects
Any movie zone
Command
Response
INTERMISSION_OFF:
status:
During movie playback when the intermission screen is displayed, removes
the intermission screen and resumes playback. At other times, this
command has no effect.
See also INTERMISSION_ON and INTERMISSION_TOGGLE.
Example
Controller sends:
01/5/INTERMISSION_OFF:
Kaleidescape System sends:
01/5/000:/93
03/!/000:MOVIE_LOCATION:03:/70
03/!/000:PLAY_STATUS:2:0:05:05700:00638:001:00887:00638:/59
This example shows the results after sending the INTERMISSION_OFF
command when intermission is active. The intermission screen vanishes,
returning to movie playback, generating a MOVIE_LOCATION event message.
Additionally, the PLAY_STATUS event message is generated to show that
playback has been resumed.
INTERMISSION_TOGGLE
Affects
Any movie zone
Command
Response
INTERMISSION_TOGGLE:
status:
During movie playback, toggles display of the Kaleidescape intermission
screen. At other times, this command has no effect.
Kaleidescape Part No. 101-0005 Rev 8
Page 122
Kaleidescape System Control Protocol Reference Manual
See also INTERMISSION_OFF and INTERMISSION_ON.
Example
Controller sends:
01/0/INTERMISSION_TOGGLE:
Kaleidescape System sends:
01/0/000:/88
03/!/000:MOVIE_LOCATION:04:/71
03/!/000:PLAY_STATUS:1:0:05:05700:00684:001:00887:00684:/60
Controller sends:
01/1/INTERMISSION_TOGGLE:
Kaleidescape System sends:
01/1/000:/89
03/!/000:MOVIE_LOCATION:03:/70
03/!/000:PLAY_STATUS:2:0:05:05700:00684:001:00887:00684:/61
In this example, the first INTERMISSION_TOGGLE command activates
intermission. This generates a MOVIE_LOCATION message and a PLAY_STATUS
message showing that playback has paused. The second
INTERMISSION_TOGGLE command removes the intermission screen and
returns to playback, generating new MOVIE_LOCATION and PLAY_STATUS event
messages.
SET_FAVORITE_SCENE_START
Affects
Any movie zone
Command
Response
SET_FAVORITE_SCENE_START:
status:
During movie playback, records a bookmark marking the start of a scene at
the time the movie zone receives the command. If a start of a scene
bookmark already exists, the original bookmark is replaced with the new
time. At other times, this command has no effect.
If the current movie has an end of scene bookmark (see
SET_FAVORITE_SCENE_END), the end bookmark is erased. A scene with no end
bookmark continues playing to the end of the movie.
A movie can have one unnamed scene. Scenes are named using the movie
details page or the overlay during playback, to allow several scenes per
movie. Scenes can be played in sequences with the scripts feature. See the
PLAY_SCRIPT command.
Start and end bookmarks for scenes can also be set from the movie overlay
during playback, accessed by sending the STATUS_AND_SETTINGS command.
Kaleidescape Part No. 101-0005 Rev 8
Page 123
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/2/SET_FAVORITE_SCENE_START:
Kaleidescape System sends:
01/2/000:/90
Note: This command replaces the SET_FAVORITE_SCENE command.
SET_FAVORITE_SCENE_END
Affects
Any movie zone
Command
Response
SET_FAVORITE_SCENE_END:
status:
During movie playback, records a bookmark marking the end of a scene at
the time the movie zone receives the command. If a bookmark indicating the
end of a scene already exists, the original is replaced with the new time.
The start of a scene must be defined before the end of scene can be defined.
(See SET_FAVORITE_SCENE_START.) A scene with no ending bookmark
continues playing to the end of the movie.
At other times, or if a bookmark marking the start of a scene has not been
saved, this command has no effect. Scenes can be played in sequences with
the scripts feature. See the PLAY_SCRIPT command.
Start and end bookmarks for scenes can also be set from the movie overlay
during playback, accessed by sending the STATUS_AND_SETTINGS command.
Example
Controller sends:
01/3/SET_FAVORITE_SCENE_END:
Kaleidescape System sends:
01/3/000:/91
START_SEND_NUMBER_TO_DISC_ENTRY
Affects
Any movie zone
Command
Response
START_SEND_NUMBER_TO_DISC_ENTRY:
status:
Some DVD and Blu-ray Discs require number keys to access part of the
content. These keys are usually reserved for interactive DVDs and Blu-ray
Discs that allow entering numbers to select from lists, as well as hidden
Easter eggs on these discs.
Kaleidescape Part No. 101-0005 Rev 8
Page 124
Kaleidescape System Control Protocol Reference Manual
To send a number key to the disc, use this command during movie playback.
A tab appears onscreen to prompt the user to enter a number. Subsequent
KEYBOARD_CHARACTER commands show in this tab, after which a SELECT
command removes the tab and sends the number to the disc. A CANCEL
command removes the tab without sending the number.
Example
Controller sends:
01/2/START_SEND_NUMBER_TO_DISC_ENTRY:
Kaleidescape System sends:
01/2/000:/90
03/!/000:USER_INPUT:02:Send Number to Disc::/40
Controller sends:
01/3/KEYBOARD_CHARACTER:2:
Kaleidescape System sends:
01/3/000:/91
03/!/000:USER_INPUT:02:Send Number to Disc:2:/90
Controller sends:
01/4/SELECT:
Kaleidescape System sends:
01/4/000:/92
In this example, the START_SEND_NUMBER_TO_DISC_ENTRY command is sent
during movie playback. The system displays a tab prompting the user to
enter a character and a USER_INPUT event message is generated indicating
the need for the keypad. The KEYBOARD_CHARACTER command sends the
number 2, generating a new USER_INPUT event message with the new data.
The final SELECT command then sends the number to the disc.
Note: This command replaces the START_SEND_NUMBER_TO_DVD_ENTRY
command.
ANGLE_NEXT
Affects
Command
Response
Any movie zone
ANGLE_NEXT:
status:
Changes to the next camera angle defined for video playback, looping back
to the first camera angle if at the last camera angle. See also
ANGLE_PREVIOUS and GET_CAMERA_ANGLE.
Example
Controller sends:
01/5/ANGLE_NEXT:
Kaleidescape Part No. 101-0005 Rev 8
Page 125
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01/5/000:/93
ANGLE_PREVIOUS
Affects
Command
Response
Any movie zone
ANGLE_PREVIOUS:
status:
Changes to the previous camera angle defined for video playback, looping to
the last camera angle if currently at the first camera angle. See also
ANGLE_NEXT and GET_CAMERA_ANGLE.
Example
Controller sends:
01/6/ANGLE_PREVIOUS:
Kaleidescape System sends:
01/6/000:/94
AUDIO_NEXT
Affects
Command
Any movie zone
AUDIO_NEXT:
Response
status:
During movie playback, changes to the next audio stream. At other times,
this command has no effect. The user can also change audio streams
through the overlay displayed by the STATUS_AND_SETTINGS command, or
through the current DVD or Blu-ray Disc menu.
Example
Controller sends:
01/7/AUDIO_NEXT:
Kaleidescape System sends:
01/7/000:/95
SUBTITLES_NEXT
Affects
Command
Response
Any movie zone
SUBTITLES_NEXT:
status:
During playback, changes to the next subtitle stream. At other times, this
command has no effect. The user can also change subtitle streams through
the overlay displayed by the STATUS_AND_SETTINGS command or through
current DVD or Blu-ray Disc menu.
Kaleidescape Part No. 101-0005 Rev 8
Page 126
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/9/SUBTITLES_NEXT:
Kaleidescape System sends:
01/9/000:/97
GET_CAMERA_ANGLE
Affects
Any movie zone
Command
Response/Event
GET_CAMERA_ANGLE:
status:CAMERA_ANGLE:cur_angle:
num_angles:in_angle_block:
This message provides information about the current camera angle and
what camera angles are available. Information is generated as an event
message when the current camera angle changes, or if the number of
available camera angles changes.
cur_angle
is a single digit from 1–9 that indicates which angle is
currently active.
num_angles
is a single digit from 1–9 that indicates how many
angles are available at the current playback location.
A controller can use these fields to provide
information to the user about available camera
angles.
in_angle_block
indicates whether multiple camera angles are
available. If set to 0, there are no extra camera angles
and the other fields are meaningless. If set to 1, there
are multiple camera angles available and the other
fields indicate the current and available camera
angles.
A controller can use this field to enable or disable
buttons to switch between camera angles. (See the
ANGLE_NEXT and ANGLE_PREVIOUS commands.)
Example
Controller sends:
01/1/GET_CAMERA_ANGLE:
Kaleidescape System sends:
01/1/000:CAMERA_ANGLE:1:1:0:/46
In this example, the response to the GET_CAMERA_ANGLE command indicates
that there is only one angle available, and that it is currently active.
Blu-ray Disc playback options
Blu-ray color buttons
RED_PRESS
GREEN_PRESS
Kaleidescape Part No. 101-0005 Rev 8
RED_RELEASE
GREEN_RELEASE
RED
GREEN
Page 127
Kaleidescape System Control Protocol Reference Manual
BLUE_PRESS
YELLOW_PRESS
BLUE_RELEASE
YELLOW_RELEASE
BLUE
YELLOW
Affects
Any movie zone
Command
RED_PRESS: (same for other color button commands)
Response
status:
During Blu-ray Disc playback, performs actions associated with the color
button.
These actions are defined by the disc itself and can vary from disc to disc. It
is recommended, but not necessary, that these buttons are displayed to the
user in a row, in the following order: Red, Green, Blue, Yellow.
The _PRESS and _RELEASE command pairs allow compatible Blu-ray Discs to
detect when the user is holding down the associated color button. Use the
_PRESS and _RELEASE commands instead of the plain color button
commands (the right most column above) if the controller supports press
and release handling.
Send a _PRESS command when the corresponding button is first pressed and
a _RELEASE when that button is released.
The plain color button commands, RED, GREEN, BLUE, and YELLOW, are
available for controllers that do not support press and release handling. Each
plain color command represents a single button press of the colored button.
Example
Controller sends:
01/0/RED:
Kaleidescape System sends:
01/0/000:/88
GET_MOVIE_MEDIA_TYPE
Affects
Any movie zone
Command
Response/Event
GET_MOVIE_MEDIA_TYPE:
status:MOVIE_MEDIA_TYPE:media_type:
This message indicates the type of media currently being played. The event
message is generated when the media type changes.
Kaleidescape Part No. 101-0005 Rev 8
Page 128
Kaleidescape System Control Protocol Reference Manual
media_type
shows the media type currently being played.
00
01
No media playing
DVD
02
Video stream
03
Blu-ray Disc
This information can be used to change the controls made available to the
user. For example, during Blu-ray Disc playback, the Blu-ray color buttons
can be displayed to the user. During video stream playback, disc menu keys
can be hidden because these streams do not have menus.
Example
Controller sends:
01/9/GET_MOVIE_MEDIA_TYPE:
Kaleidescape System sends:
01/9/000:MOVIE_MEDIA_TYPE:01:/58
This example response to the GET_MOVIE_MEDIA_TYPE command indicates
that a DVD is currently being played.
BLURAY_SPECIAL_STOP
Affects
Any movie zone
Command
Response
BLURAY_SPECIAL_STOP:
status:
During Blu-ray playback, sends the BLURAY_SPECIAL_STOP command to the
disc currently playing. For all other content, this command behaves like the
STOP command.
CAUTION
USING THIS COMMAND CAN TRAP THE USER.
Depending on how the disc was authored, this command does not always return
the user to a Kaleidescape movie view. Some discs use this command to access
special features. If used as the only stop command, the controller must provide
another mechanism to return to the Kaleidescape menu or a Kaleidescape movie
view.
Example
Controller sends:
01/8/BLURAY_SPECIAL_STOP:
Kaleidescape System sends:
01/8/000:/96
Kaleidescape Part No. 101-0005 Rev 8
Page 129
Kaleidescape System Control Protocol Reference Manual
BLURAY_POPUP_MENU_TOGGLE
Affects
Any movie zone
Command
Response
BLURAY_POPUP_MENU_TOGGLE:
status:
During Blu-ray Disc playback, toggles the display of the Blu-ray Disc pop-up
menu. The specific function of this command is defined by the disc itself and
can vary from disc to disc. For many discs, this command functions the same
as the DISC_MENU command.
Example
Controller sends:
01/4/BLURAY_POPUP_MENU_TOGGLE:
Kaleidescape System sends:
01/4/000:/92
Context-Sensitive Commands
Context-sensitive commands behave differently when used playing a movie
or when in the user interface. These commands are especially useful when
space is limited on a touch panel or when using an IR remote. Table 10 lists
context-sensitive commands.
Table 10: Context-sensitive command summary
Command
Description
STOP_OR_CANCEL
Behaves like STOP during movie playback or
when sent directly to a music zone.
Behaves like CANCEL in the user interface.
DISC_OR_KALEIDESCAPE_MENU
Behaves like DISC_MENU during movie or
music playback.
Behaves like KALEIDESCAPE_MENU_TOGGLE
in user interface.
Paging and skipping
Behave like NEXT or PREVIOUS during movie
playback.
Behave like PAGE_UP or PAGE_DOWN in the
user interface.
STOP_OR_CANCEL
Affects
Command
Response

Any zone
STOP_OR_CANCEL:
status:
Behaves like STOP during movie playback, in the Now Playing view,
or when sent directly to a music zone.
Kaleidescape Part No. 101-0005 Rev 8
Page 130
Kaleidescape System Control Protocol Reference Manual

Behaves like CANCEL in the user interface.
The Stop button on remote controls is usually mapped to this command.
Example 1
During movie playback
Controller sends:
01/9/STOP_OR_CANCEL:
Kaleidescape System sends:
01/9/000:/97
03/!/000:UI_STATE:03:00:00:0:/42
…
03/!/000:PLAY_STATUS:0:0:00:00000:00000:000:00000:00000:/82
In this example, the STOP_OR_CANCEL command acts as a STOP command,
causing the onscreen display to return to the Movie Covers view, which is
confirmed by the UI_STATE message.
Example 2
In the user interface
Controller sends:
01/2/STOP_OR_CANCEL:
Kaleidescape System sends:
01/2/000:/90
03/!/000:UI_STATE:09:00:00:0:/48
In this second example, the onscreen display is in the Music List view
showing the details page for an album. When the STOP_OR_CANCEL command
is sent, the details page is dismissed and a UI_STATE event message is
generated with the updated state.
DISC_OR_KALEIDESCAPE_MENU
Any movie zone
DISC_OR_KALEIDESCAPE_MENU:
status:
Affects
Command
Response

Behaves like DISC_MENU during movie playback.

Behaves like KALEIDESCAPE_MENU_TOGGLE in the user interface.
The Menu button on a remote control is usually mapped to this command.
Example 1
During movie playback
Controller sends:
01/5/DISC_OR_KALEIDESCAPE_MENU:
Kaleidescape System sends:
01/5/000:/93
03/!/000:PLAY_STATUS:2:0:00:00000:00000:000:00000:00000:/84
Kaleidescape Part No. 101-0005 Rev 8
Page 131
Kaleidescape System Control Protocol Reference Manual
In the first example, the DISC_OR_KALEIDESCAPE_MENU command is sent
during movie playback, causing the movie menu to be displayed and a
PLAY_STATUS event message is generated.
Example 2
In the user interface
Controller sends:
01/1/DISC_OR_KALEIDESCAPE_MENU:
Kaleidescape System sends:
01/1/000:/89
03/!/000:UI_STATE:09:00:01:0:/49
In the second example, no movie is playing when the
DISC_OR_KALEIDESCAPE_MENU command is sent. The Kaleidescape menu is
displayed and a UI_STATE event message is generated with updated
information.
Note: This command replaces the DVD_OR_KALEIDESCAPE_MENU
command, which is still supported
Paging and skipping
Affects
Any movie zone
Command
PAGE_DOWN_OR_NEXT:
PAGE_DOWN_OR_NEXT_PRESS:
PAGE_DOWN_OR_NEXT_RELEASE:
PAGE_DOWN_OR_PREVIOUS:
PAGE_DOWN_OR_PREVIOUS_PRESS:
PAGE_DOWN_OR_PREVIOUS_RELEASE:
PAGE_UP_OR_NEXT:
PAGE_UP_OR_NEXT_PRESS:
PAGE_UP_OR_NEXT_RELEASE:
PAGE_UP_OR_PREVIOUS:
PAGE_UP_OR_PREVIOUS_PRESS:
PAGE_UP_OR_PREVIOUS_RELEASE:
status:
Response
These commands are used when mapping Next/Previous buttons on a remote
or small touch panel.

Behaves like the NEXT and PREVIOUS commands during movie
playback or in the Now Playing view.

Behaves like the PAGE_UP and PAGE_DOWN commands in the user
interface.
Each command has a single-shot version, which should be avoided, and
_PRESS and _RELEASE versions, which are preferred because these
commands allow the user to page through long lists.
Kaleidescape Part No. 101-0005 Rev 8
Page 132
Kaleidescape System Control Protocol Reference Manual
Use either the UP/PREVIOUS and DOWN/NEXT pair, or use the UP/NEXT and
DOWN/PREVIOUS pair depending on the physical configuration of the remote
control or touch panel buttons. For example, it is a common for a remote
control to have these buttons placed vertically with the top button labeled
with a plus sign and the bottom button with a minus sign. The top (plus)
button must skip to the next track or chapter, but because the button is
located on top, this button must also page up. In that case, map the top
button to UP/NEXT and the bottom button to DOWN/PREVIOUS.
In a horizontal layout, it is more practical to map the left button to
UP/PREVIOUS and the right button to DOWN/NEXT. Layout has to be what feels
more natural including the labeling involved.
Note: The UP/PREVIOUS commands replace the SKIP_REVERSE
command; and the DOWN/NEXT commands replace the SKIP_FORWARD
command.
Standalone Music Control (SATP and
Keypad)
These commands provide the ability to control music playback without the
Kaleidescape onscreen display. These commands are used for two control
paradigms: text-based music browsing interface
(SATP) and keypads. SATP (Standalone Touch Panel Control) is used for
controlling music with a graphical interface, for example, a touch panel or
personal computer. Keypad control is used where there is no graphical
display available. All the messages in this section can be sent to and from a
music zone. Commands are grouped with a detailed description of each
command. Table 11 lists control commands for SATP and keypads.
Note: The response code for music related commands will return
“Command is not available” for products which do not support
music.
Table 11: Standalone music control command summary
Command
Text-based music browsing interface (SATP)
BROWSE
PERFORM_ACTION
Kaleidescape Part No. 101-0005 Rev 8
Description
Used to navigate the text-based music
browsing interface (SATP).
Performs a specified action on a music
handle.
Page 133
Kaleidescape System Control Protocol Reference Manual
Keypad collections and presets
PLAY_FIRST_IN_MUSIC_COLLECTION
Plays the first item in a music collection.
PLAY_NEXT_IN_MUSIC_COLLECTION
Plays the next item in a music collection.
PLAY_PREVIOUS_IN_MUSIC_COLLECTION
Plays the previous item in a music
collection.
ASSIGN_PLAYING_MUSIC_TO_PRESET
Assigns a preset tag to the music item
currently playing.
PLAY_MUSIC_PRESET
Plays the music item associated with a
preset tag.
GET_MUSIC_PRESET_INFORMATION
Provides detailed information about a
music preset.
GET_PLAYING_MUSIC_INFORMATION
Provides information about music
currently playing.
Text-based music browsing interface (SATP)
Overview
Kaleidescape music zones support a text-based interface for browsing the
music library and controlling music playback. This interface allows a
controller with a text display to control the music zone without requiring
access to the Kaleidescape onscreen display.
The interface is organized as a hierarchical tree of nodes that contain lines of
text to display on the controller. Figure 8 illustrates the node hierarchy.
Kaleidescape Part No. 101-0005 Rev 8
Page 134
Kaleidescape System Control Protocol Reference Manual
Figure 8: Node hierarchy
For example, the user can start with the top level music view, which can
have the following selections.
Music
Albums by Artist >
Albums by Title >
Artists >
Classical Composers >
Classical Works >
The user selects Artists, going to the next level in the hierarchy.
Artists
Play all music
Martha Argerich >
The Beach Boys >
The Beatles >
Kaleidescape Part No. 101-0005 Rev 8
Page 135
Kaleidescape System Control Protocol Reference Manual
Then the user selects The Beatles, going down another level to display a list of
albums by The Beatles.
The Beatles
Play The Beatles
Abbey Road >
Let It Be >
Revolver >
Selecting Abbey Road displays a list of songs from the album.
Abbey Road
Play album
1. Come Together
2. Something
3. Maxwell's Silver Hammer
The user then selects Come Together to begin playback of that song. Selecting
any line on this node starts playback for that song.
Note: If an individual song is selected, only that song is added to the
now playing queue. No other songs from the album are added. For
example, if the user selected Come Together from the list, after
playback of that song is finished, the system simply stops playback.
The system does not move on to Something or any other song in the
album.
To play several songs from an album, the user must either select Play
album or add songs individually to the playback queue.
Each node in the hierarchy has a unique handle that identifies it to the
system. The BROWSE command is used to retrieve the information for a given
node. Because a given node can have more lines than can be displayed on a
controller, the BROWSE command is usually used to request a subset of the
total lines for the node.
Figure 9 shows the Artists node for a particular system. Although the node
has more than eleven lines, starting with Play all music and continuing past
Michael Bublé, the controller can only display five lines. The controller has
requested a window of five lines starting with the fifth line, The Beatles. As the
user scrolls up and down, the controller will request different windows
starting at different locations for the user display.
Kaleidescape Part No. 101-0005 Rev 8
Page 136
Kaleidescape System Control Protocol Reference Manual
Figure 9: Example Artists node
Each line for a given node contains more information than simply the text for
display. Lines also include technical information about how a controller
should handle the line. For example, lines usually contain actions that can be
performed on the line, information about whether or not the line is playing,
etc. This interface does not support browsing the movie library.
BROWSE
Affects
Any zone
Command
Response
BROWSE:browse_handle:passcode:lines:flags:
status:BROWSE_RESULTS_OVERVIEW:
browse_handle:title:response_lines:total_lines:
[first_line_index:playing_line_index:]
Response
status:BROWSE_RESULT:
relative_line:absolute_line:text:play_status:
default_label:default_behavior:default_handle:default_pop:
action1_label:action1_behavior:action1_handle:action1_pop:
action2_label:action2_behavior:action2_handle:action2_pop:
action3_label:action3_behavior:action3_handle:action3_pop:
action4_label:action4_behavior:action4_handle:action4_pop:
The BROWSE command is used to load a window of information from a given
node in the text-based music browsing hierarchy. The command includes
the handle for the given node, along with the window of lines to be retrieved
from the node. Flags can be set to filter the results for a given node, or allow
the Kaleidescape System to suggest a location.
Kaleidescape Part No. 101-0005 Rev 8
Page 137
Kaleidescape System Control Protocol Reference Manual
BROWSE parameters
browse_handle
is the handle of the node being requested.
Generally, this handle comes from a given line in a
BROWSE_RESULT message. However, there are special
nodes that can be reached only by explicit names.
[blank]
Refers to the topmost node in the browsing tree. This
currently has only the top level music node as its
child.
music
Refers to the top level music node. Contains all the
predefined and user-defined collections in the system,
such as Artists, Albums by Title, Albums by Artist, etc.
now_playing
Refers to the top level node for the now playing
queue.
The Now_Playing node is separate from the rest of the
browsing tree nodes. This special node is used to
view the list of what is currently queued for playback.
Note: The music and now_playing handles are text literals that must
be entered exactly; blank should not be literal.
Note: Browse handles are usually different from the selection handles
used for GET_CONTENT_DETAILS.
passcode
is unused, leave blank.
lines
specifies the window of lines to be retrieved from the
indicated node. For example, 1-10 returns lines 1
through 10, inclusive; 5-10 returns lines 5 through 10,
inclusive. Note that this parameter is partially ignored
when using the suggest flag.
Note: The number of lines returned is limited to a maximum of 100.
Kaleidescape Part No. 101-0005 Rev 8
Page 138
Kaleidescape System Control Protocol Reference Manual
flags
are used to modify the BROWSE request in several
ways. Multiple flags must be separated by a semicolon. Two flags are currently supported: filter and
suggest.
filter
is used to apply a filter to the lines being returned so
that only those lines that match the filter are
displayed. This flag should be entered as
filter="searchstring" where searchstring is the
string to be filtered.
For example, a user searching for The Beatles in the
Artists node might use filter="Bea".
The search string supports any alphanumeric
character, therefore a full keyboard is recommended
to provide the best experience. For situations where a
full keyboard is not practical, the filter tag supports
a keyboard where individual keys stand for more than
one letter. The user types normally, but key presses
are added to the search string as multiple characters
enclosed in square brackets, instead of raw
characters.
For example, a user is searching for The Beatles on the
Artists node using a limited alphanumeric keypad with
the standard telephone letter configuration, (i.e., 2 =
abc, 3=def, etc.) To enter Bea for the search, the user
types 232. The controller then sends the
corresponding filter tag of
filter="[abc][def][abc]". This tag returns a list of
artists that match both the Bea string, as well as all
other possible permutations of the three characters.
suggest
When this flag is used, the Kaleidescape System
ignores the specific window provided in the lines
parameter, and returns a page of results centered on
the item currently playing. The page of results has the
same number of lines as the window defined in the
lines parameter. This flag is useful when displaying
the now playing queue, because the controller can
jump directly to the currently playing item.
When the suggest flag is used, the
BROWSE_RESULTS_OVERVIEW returns two additional
fields indicating the absolute_line of the first item in
the list, as well as the absolute_line index of the line
that is currently playing.
Every BROWSE command is followed by a BROWSE_RESULTS_OVERVIEW
response and several BROWSE_RESULT messages, if the node is not empty.
Example BROWSE bcommand
This is an example of a typical BROWSE command.
01.01/1/BROWSE:1.7.1.2.0::1-5:filter="Bo":
The following table describes each field in the example command.
Kaleidescape Part No. 101-0005 Rev 8
Page 139
Kaleidescape System Control Protocol Reference Manual
device_id
sequence
command
name
01.01
1
BROWSE 1.7.1.2.0
browse
handle
passcode
lines flags
1-5
filter="Bo"
This command browses to the node with the handle 1.7.1.2.0. The command
is requesting lines 1 through 5 of the node. The flags field of filter="Bo"
states that the content of the node should be filtered using the string “Bo”.
BROWSE_RESULTS_OVERVIEW
The BROWSE_RESULTS_OVERVIEW response provides general information about
the node, including title, size, and the number of BROWSE_RESULT messages
that follow.
browse_handle
title
is the same browse_handle specified in the BROWSE
command. Used to confirm that this is the correct
result.
is a plain text description of the node. For example,
the Artists node has Artists as its title.
response_lines
indicates the total number of lines being returned.
This number is always equal to or less than the
number of lines requested in the BROWSE command.
BROWSE_RESULT messages equaling this number are
sent subsequent to this response.
total_lines
indicates the total number of lines that are present in
this node.
The following two fields appear when the suggest flag is used in the BROWSE
command. These fields do not appear otherwise.
first_line_index
playing_line_index
is the index of the first line, relative to the entire node.
This index matches the absolute_line value of the
first BROWSE_RESULT response.
is the index of the line that is being played. This index
matches the absolute_line value of the
BROWSE_RESULT that corresponds to the line.
BROWSE_RESULTS_OVERVIEW example
This is an example of a typical BROWSE_RESULTS_OVERVIEW message.
01.01/1/000:BROWSE_RESULTS_OVERVIEW:now_playing:Now
Playing:5:15:9:11:/52
The following tables describe each field in the example command.
Kaleidescape Part No. 101-0005 Rev 8
Page 140
Kaleidescape System Control Protocol Reference Manual
device_id
sequence
status
code
message name
browse
handle
01.01
1
000
BROWSE_RESULTS_OVERVIEW
now_playing
title
response lines
total lines
first line index
playing line index
Now Playing
5
15
9
11
This message shows the overview information for the node with handle
now_playing. The title that should be displayed on top of the controller
interface is Now Playing. There are 15 lines in the node, and 5 lines will be
returned. The first line in the window is line 9 in the node, and the index of
the currently playing line is 11.
BROWSE_RESULT
Each BROWSE_RESULT message represents a single line to display on the
controller. The message contains all of the information required to display
the message, as well as actions that can be performed.
relative_line
absolute_line
is the index of the line relative to the window being
requested, ranging from 1 to the response_lines field
of the BROWSE_RESULTS_OVERVIEW.
Example: A controller requests lines 6-11 from a given
node. The relative_line value of the BROWSE_RESULT
responses goes from 1 through to 5.
is the index of the line relative to the entire node. This
ranges from 1 to the total_lines field in the
BROWSE_RESULTS_OVERVIEW message.
Example: A controller requests lines 6-11 from a given
node. The absolute_line value of the BROWSE_RESULT
responses starts at 6 and counts up to 11.
text
is the plain text displayed to the user for this line.
play_status
indicates whether this line is playing or paused. This
field is primarily used when displaying the now
playing queue, to show which line is currently active.
0
Not playing
1
Playing
2
Playing but currently paused
Action Tuples
Five action tuples follow the first four fields of a BROWSE_RESULT message.
These action tuples represent different actions that can be taken on the line.

The first action represents the default action for the line, what should
be done when the line is selected or activated.
Kaleidescape Part No. 101-0005 Rev 8
Page 141
Kaleidescape System Control Protocol Reference Manual

Some lines can have other actions available, with different functions.
The only action that is currently used is the play action, which can be
used to tell the Kaleidescape System to play the contents of the
associated line.
Each action tuple consists of 4 values.
action_label
specifies the type of action. Can be used as a label for
the available actions for a line.
0
No specific action
1
action_behavior
Browse
2
Details
3
Play
4
OK
indicates how the controller executes this action.
0
No action, do nothing
1
Call BROWSE with the designated handle
2
Call GET_CONTENT_DETAILS with the
designated handle
3
Call PERFORM_ACTION with the designated
handle
action_handle
is the handle associated with the action. What to do
with the handle is specified by the action_behavior
field.
action_pop
is the number of nodes to move up the browse
hierarchy after executing the action, i.e., how many
times the controller should activate the back button
after executing this action.
A pop value of 1 indicates that the controller should
load the parent node upon completing the action.
A pop value of 2 indicates that the controller should
load the parent’s parent, and so on.
BROWSE_RESULT example
This is an example of a typical BROWSE_RESULT message.
01.01/1/000:BROWSE_RESULT:3:3:Martha Argerich:0:1:1:1.7.1.2.2.Q_9457.0:
0:3:3:1.Q_9457;1=1:0:::::::::::::/86
The following tables describe each field in this example command.
device_id sequence status message name
code
relative absolute text
line
line
play
status
01.01
3
0
1
Kaleidescape Part No. 101-0005 Rev 8
000
BROWSE_RESULT
3
Martha
Argerich
Page 142
Kaleidescape System Control Protocol Reference Manual
default action
action 1
action 2
1:1:1.7.1.2.2.Q_9457.0:0
3:3:1.Q_9457;1=1:0
action 3
action 4
This example BROWSE_RESULT message states that this is the third line sent in
the requested window, and the third line in the node overall. The text to
display to the user is Martha Argerich, and the line is not playing.
The default action is 1:1:1.7.1.2.2.Q_9457.0:0, which can be expanded to
the following sections.
label
behavior
handle
pop
1
1
1.7.1.2.2.Q_9457.0 0
Which means that the label for this action is Browse and that to execute this
action, the controller should send a BROWSE command with the handle
1.7.1.2.2.Q_9457.0. Once the command is executed, no popping is
required.
The first action is 3:3:1.Q_9457;1=1:0, which can be expanded to the
following sections.
label
behavior
handle
pop
3
3
1.Q_9457;1=1
0
The label for this action is Play and that to execute this action, the controller
should send a PERFORM_ACTION command with the handle 1.Q_9457;1=1.
Once the command is executed, no popping is required.
There are no other actions associated with this line.
PERFORM_ACTION
Affects
Any zone
Command
Response
PERFORM_ACTION:handle:passcode:action:
status:ACTION_PERFORMED:text:
This command performs a specified action on the handle. Only music
handles (albums and tracks), not movies, are supported by this command.
For the PERFORM_ACTION command:
Kaleidescape Part No. 101-0005 Rev 8
Page 143
Kaleidescape System Control Protocol Reference Manual
handle
is a unique identifier specifying the content to receive
action. Handles can be content handles such as those
provided by HIGHLIGHTED_SELECTION, or handles that
combine action with a link to content, for example,
handles provided by a BROWSE_RESULT message.
passcode
must be blank.
action
is the action to be performed, and can be blank if the
handle is passed from a BROWSE_RESULT message.
For the ACTION_PERFORMED response:
text
is a plain text description describing the action that
has just occurred, suitable for display to a user. This
text usually matches the text displayed in the upper
right corner of the onscreen display, for example,
Playing album or Song will play later.
When using the text-based music browsing protocol, handles containing an
action are sometimes returned by BROWSE_RESULT messages. If the behavior
field of one of these messages is 3, then the handle provided contains a
combined action and content handle. In this situation, the action field of the
PERFORM_ACTION command is ignored and can be left blank.
Example
Controller sends:
03.01/1/PERFORM_ACTION:1.96de0c01d6fd4a9e-t30c_1951;1=1:::
Kaleidescape System sends:
03.01/1/000:ACTION_PERFORMED:Playing Home:
In this example, an action is performed on the handle
1.96DE0C01D6FD4A9E-T30C_1951;1=1. This is an action handle returned by
the BROWSE_RESULT message, so no action has to be specified. This handle
causes the album Home to begin playback. The response to the
PERFORM_ACTION command is the ACTION_PERFORMED message, describing the
action that occurred as Playing Home.
Implementation and examples
When using the text-based music browsing interface, the controller is
expected to manage the behavior and navigation of the interface, unlike the
OSD paradigm. A typical interface implements a method to switch between
the music browsing hierarchy and the now playing queue, a back button, a
way to apply a filter (i.e., a search) to a given node, the ability to scroll up
and down in a given node, and an indicator showing where the controller is
in a given node.
The control panel in the browser interface has an excellent example of this
interface. See Figure 10.
Kaleidescape Part No. 101-0005 Rev 8
Page 144
Kaleidescape System Control Protocol Reference Manual
Figure 10: Browser interface control panel
The following examples assume that a controller has been designed to
support these features, and describe the actual text sent back and forth. In
these examples, the controller only supports 5 lines.
Music browsing fundamentals
Browsing the music hierarchy usually starts with the top level music node
with handle music.
Controller sends:
01.01/1/BROWSE:music::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:music:Music:5:8:/38
01.01/1/000:BROWSE_RESULT:1:1:Albums by Artist:
0:1:1:1.7.1.1.0:0:3:3:1.0-a_690008;1=1:0:::::::::::::/33
01.01/1/000:BROWSE_RESULT:2:2:Albums by Title:
0:1:1:1.7.1.d.0:0:3:3:1.0-a_690008;1=1:0:::::::::::::/69
01.01/1/000:BROWSE_RESULT:3:3:Artists:
0:1:1:1.7.1.2.0:0:3:3:1.0-a_690008;1=1:0:::::::::::::/58
01.01/1/000:BROWSE_RESULT:4:4:Classical Composers:
0:1:1:1.7.1.c.0:0:3:3:1.D_12117;1=1:0:::::::::::::/80
01.01/1/000:BROWSE_RESULT:5:5:Classical Works:
0:1:1:1.7.1.b.0:0:3:3:1.D_12117;1=1:0:::::::::::::/60
Kaleidescape Part No. 101-0005 Rev 8
Page 145
Kaleidescape System Control Protocol Reference Manual
After the controller has processed the response, the following display might
be shown to the user.
Music
Albums by Artist >
Albums by Title >
Artists >
Classical Composers >
Classical Works >
The BROWSE_RESULTS_OVERVIEW response indicates that these items are the
results for the music node, as requested, and that the title that should be
displayed to the user is Music. The response also shows that there are 8 lines
in this node, and that there are five BROWSE_RESULT responses following this
message.
The controller uses each BROWSE_RESULT response to determine what to put
on the controller’s display. For example, this is the BROWSE_RESULT message
that describes the Artists line.
01.01/1/000:BROWSE_RESULT:3:3:Artists:0:1:1:1.7.1.2.0:0:3:3:
1.0-a_690008;1=1:0:::::::::::::/58
The text field of the line indicates that Artists be placed on the screen, and
that the line is not currently playing. When the user selects this line, the
default action tuple describes what the controller should do.
label
behavior
handle
pop
1
1
1.7.1.1.0
0
A behavior 1 indicates that the controller should call the BROWSE command
with the handle 1.7.1.2.0 to execute this action.
Controller sends:
01.01/1/BROWSE:1.7.1.2.0::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.0:Artists:5:65:/12
01.01/1/000:BROWSE_RESULT:1:1:Play all music:0:3:3:
1.0-a_690008;1=1:0:::::::::::::::::/55
01.01/1/000:BROWSE_RESULT:2:2::0:::::::::::::::::::::/70
01.01/1/000:BROWSE_RESULT:3:3:Martha Argerich:0:1:1:1.7.1.2.2.Q_9457.0:
0:3:3:1.Q_9457;1=1:0:::::::::::::/86
01.01/1/000:BROWSE_RESULT:4:4:The Beach Boys:0:1:1:1.7.1.2.2.P_3640.0:
0:3:3:1.P_3640;1=1:0:::::::::::::/53
01.01/1/000:BROWSE_RESULT:5:5:The Beatles:0:1:1:1.7.1.2.2.P_3644.0:
0:3:3:1.P_3644;1=1:0:::::::::::::/55
Kaleidescape Part No. 101-0005 Rev 8
Page 146
Kaleidescape System Control Protocol Reference Manual
After processing, the display is.
Music
Play all music
Martha Argerich >
The Beach Boys >
The Beatles >
Note that this display is slightly different from the previous display, not all
the lines have angle brackets. This change is based on a decision made by
the programmer to display angle brackets next to lines that lead to further
nodes.
The Play all music line does not contain an angle bracket. This is because this
line default action does not lead to a new node. The tuple is described in this
following table.
label
behavior
handle
pop
3
3
1.0-a_690008;1=1
0
A behavior 3 means that the controller should send the handle to the music
zone using the PERFORM_ACTION command to activate this action. This does
not lead to any new nodes, so this line is not displayed with a terminating
angle bracket.
Meanwhile, the line with the text The Beatles does have an angle bracket. The
following table shows its default action tuple.
label
behavior
handle
pop
1
1
1.7.1.2.2.P_3640.0
0
The behavior 1 means that to execute this action, the controller should call
BROWSE with the indicated handle and display the results on the screen. This
leads to a new node, so the controller places an angle bracket at the end of
the line.
The user selects this line, and the controller sends the appropriate command
to the music zone.
Controller sends:
01.01/1/BROWSE:1.7.1.2.2.P_3644.0::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.2.P_3644.0:The Beatles:
5:6:/64
Kaleidescape Part No. 101-0005 Rev 8
Page 147
Kaleidescape System Control Protocol Reference Manual
01.01/1/000:BROWSE_RESULT:1:1:Play The Beatles:
0:3:3:1.P_3644;1=1:0:::::::::::::::::/78
01.01/1/000:BROWSE_RESULT:2:2::0:::::::::::::::::::::/70
01.01/1/000:BROWSE_RESULT:3:3:Abbey Road:0:1:1:
1.7.1.2.2.P_3644.2.R_1525.0:0:3:3:1.R_1525;1=1:0:::::::::::::/53
01.01/1/000:BROWSE_RESULT:4:4:Let It Be [Collector's Crate White]:
0:1:1:1.7.1.2.2.P_3644.2.R_1663460.0:0:3:3:1.R_1663460;1=1:0::::::::::::
:/54
01.01/1/000:BROWSE_RESULT:5:5:Revolver:0:1:1:1.7.1.2.2.P_3644.2.R_1518.0
:
0:3:3:1.R_1518;1=1:0:::::::::::::/09
The Beatles
Play The Beatles
Abbey Road
Let It Be [Collector's Crate White]
Revolver
The user wants to access the album Rubber Soul, which is not visible on the
screen. In this example, the user can tell that there are more items below this
window by looking at the scrollbar. The user scrolls down one line.
Controller sends:
01.01/1/BROWSE:1.7.1.2.2.P_3644.0::2-6::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.2.P_3644.0:The Beatles:
5:6:/64
01.01/1/000:BROWSE_RESULT:1:2::0:::::::::::::::::::::/69
01.01/1/000:BROWSE_RESULT:2:3:Abbey Road:
0:1:1:1.7.1.2.2.P_3644.2.R_1525.0:0:3:3:1.R_1525;1=1:0:::::::::::::/52
01.01/1/000:BROWSE_RESULT:3:4:Let It Be [Collector's Crate White]:
0:1:1:1.7.1.2.2.P_3644.2.R_1663460.0:0:3:3:1.R_1663460;1=1:
0:::::::::::::/53
01.01/1/000:BROWSE_RESULT:4:5:Revolver:0:1:1:
1.7.1.2.2.P_3644.2.R_1518.0:0:3:3:1.R_1518;1=1:0:::::::::::::/08
01.01/1/000:BROWSE_RESULT:5:6:Rubber Soul:
0:1:1:1.7.1.2.2.P_3644.2.R_1515.0:0:3:3:1.R_1515;1=1:0:::::::::::::/12
The Beatles
Abbey Road
Let It Be [Collector's Crate White]
Revolver
Kaleidescape Part No. 101-0005 Rev 8
Page 148
Kaleidescape System Control Protocol Reference Manual
Rubber Soul
Note that the BROWSE command in this example uses the same handle as the
previous request for this node, but has updated the lines field to specify a
different window to view for the node, in this case, lines 2-6.
Note that the scrollbar has moved. The scrollbar is rendered using three
pieces of information.

The number of lines returned, found in the
BROWSE_RESULTS_OVERVIEW (5 for this example)

The total number of lines in the node, also found in the
BROWSE_RESULTS_OVERVIEW (6 for this example)

The starting point for the window, found in the first BROWSE_RESULT,
absolute_line (2 in this example)
This information is used to determine what percentage of the total view is
displayed, and create an appropriate scrollbar for the results.
The user selects Rubber Soul.
Controller sends:
01.01/1/BROWSE:1.7.1.2.2.P_3644.2.R_1515.0::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.2.P_3644.2.R_1515.0:
The Beatles - Rubber Soul:5:16:/06
01.01/1/000:BROWSE_RESULT:1:1:Play album:
0:3:3:1.R_1515;1=1:0:::::::::::::::::/79
01.01/1/000:BROWSE_RESULT:2:2::0:::::::::::::::::::::/70
01.01/1/000:BROWSE_RESULT:3:3:1. Drive My Car:
0:3:3:1.b9bca9a6f224fb54-t301_22;1=1:0:::::::::::::::::/28
01.01/1/000:BROWSE_RESULT:4:4:2. Norwegian Wood (This Bird Has Flown):
0:3:3:1.b9bca9a6f224fb54-t302_22;1=1:0:::::::::::::::::/69
01.01/1/000:BROWSE_RESULT:5:5:3. You Won't See Me:
0:3:3:1.b9bca9a6f224fb54-t303_22;1=1:0:::::::::::::::::/29
The Beatles - Rubber Soul
Play album
1. Drive My Car
2. Norwegian Wood (This Bird Has Flown)
3. You Won’t See Me
Finally, the user selects Drive My Car to begin playback. This selection
executes the default action for the line, so the controller examines the
default action information to decide what to do.
Kaleidescape Part No. 101-0005 Rev 8
Page 149
Kaleidescape System Control Protocol Reference Manual
label
behavior
handle
pop
3
3
1.b9bca9a6f224fb54-t301_22;1=1
0
The behavior is 3, indicating that to execute this action, the controller must
send the PERFORM_ACTION command with the designated handle.
Controller sends:
01.01/1/PERFORM_ACTION:1.b9bca9a6f224fb54-t301_22;1=1:::
Kaleidescape System sends:
01.01/1/000:ACTION_PERFORMED:Playing Drive My Car:/67
01.01/!/000:MUSIC_TITLE:Drive My Car:The Beatles:Rubber Soul:
1.b9bca9a6f224fb54-t301_22:1.R_1515:2.202e9:/13
01.01/!/000:MUSIC_PLAY_STATUS:2:0:00150:+00000:000.00:/46
01.01/!/000:MUSIC_NOW_PLAYING_STATUS:00001:00000:1:0:0000002278:
2.202e9:/31
01.01/!/000:PLAYING_MUSIC_INFORMATION:b9bca9a6f224fb54-t301_22:
Drive My Car - The Beatles:/35
The music zone responds by beginning playback of the track Drive My Car
which generates several event messages describing the start of playback.
Adding music to the queue
Continuing the previous example, the user decides to play the entire Rubber
Soul album instead of playing an individual song.
The user looks at the screen, which had just reloaded the Rubber Soul node
after the PERFORM_ACTION command was sent.
Controller sends:
01.01/1/BROWSE:1.7.1.2.2.P_3644.2.R_1515.0::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.2.P_3644.2.R_1515.0:
The Beatles - Rubber Soul:5:16:/06
01.01/1/000:BROWSE_RESULT:1:1:Play album:
0:1:1:1.7.1.2.2.P_3644.2.R_1515.1.a.0:0:::::::::::::::::/03
01.01/1/000:BROWSE_RESULT:2:2::0:::::::::::::::::::::/70
01.01/1/000:BROWSE_RESULT:3:3:1. Drive My Car:1:1:1:
1.7.1.2.2.P_3644.2.R_1515.2.b9bca9a6f224fb54-t301_22.0:
0:::::::::::::::::/38
01.01/1/000:BROWSE_RESULT:4:4:2. Norwegian Wood (This Bird Has Flown):
0:1:1:1.7.1.2.2.P_3644.2.R_1515.2.b9bca9a6f224fb54-t302_22.0:
0:::::::::::::::::/78
01.01/1/000:BROWSE_RESULT:5:5:3. You Won't See Me:0:1:1:
1.7.1.2.2.P_3644.2.R_1515.2.b9bca9a6f224fb54-t303_22.0:
0:::::::::::::::::/38
Kaleidescape Part No. 101-0005 Rev 8
Page 150
Kaleidescape System Control Protocol Reference Manual
The Beatles - Rubber Soul
Play album >
►
1. Drive My Car >
2. Norwegian Wood (This Bird Has Flown) >
3. You Won't See Me >
Note that the play_status field for the line labeled 1. Drive My Car has been
updated to show that the line is playing back. In this example, the controller
puts a play icon next to the line to indicate that track is playing.
Note that all the lines have angle brackets now. This was not the case before
beginning playback because the default action behavior was 3 for all the
lines. Now, the default action behavior is 1, indicating that the default action
for the line is to BROWSE to a new node.
The reason for this change is that the music zone must now present the user
with a choice when selecting music for playback. The user can decide either
to add the selected item to the now playing list, or replace the now playing
list with the selected item. This choice is accomplished by loading a new
node with the relevant choices.
The user still wants to put the entire album in the now playing list, so the
user selects Play album. The controller sends out the BROWSE command.
Controller sends:
01.01/1/BROWSE:1.7.1.2.2.P_3644.2.R_1515.1.a.0::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.2.P_3644.2.R_1515.1.a.0:
Play Rubber Soul:3:3:/94
01.01/1/000:BROWSE_RESULT:1:1:Replace playing music:
0:3:3:1.R_1515;1=1:1:::::::::::::::::/78
01.01/1/000:BROWSE_RESULT:2:2:Add to playing music:
0:3:3:1.R_1515;1=3:1:::::::::::::::::/06
01.01/1/000:BROWSE_RESULT:3:3:Do nothing:0:3:3:
1.0-a_690009;1=1:1:::::::::::::::::/03
Play Rubber Soul
Replace playing music
Add to playing music
Do nothing
Kaleidescape Part No. 101-0005 Rev 8
Page 151
Kaleidescape System Control Protocol Reference Manual
The user wants to replace the playing music and selects Replace playing music.
The controller inspects the default action for this line.
label
behavior
handle
pop
3
3
1.R_1515;1=1
1
Another PERFORM_ACTION command is required. The controller sends the
command.
Controller sends:
01.01/1/PERFORM_ACTION:1.R_1515;1=1:::
Kaleidescape System sends:
01.01/1/000:ACTION_PERFORMED:Playing Rubber Soul:/82
01.01/!/000:MUSIC_PLAY_STATUS:2:0:00150:+00000:000.00:/46
01.01/!/000:MUSIC_NOW_PLAYING_STATUS:00014:00000:1:0:0000002281:
2.202ea:/69
01.01/!/000:PLAYING_MUSIC_INFORMATION:R_1515:
The Beatles - Rubber Soul:/11
The controller remains on the browsing page and must reload the page.
However, this action had a pop value of 1, different than other actions that
have been executed so far in this example.
A pop value of 1 means that the controller should not reload the current
node, but rather, should load the parent of the current node. This is like
pressing a back button once. To facilitate this action and to support a back
button, Kaleidescape recommends that controllers implement a history stack
to store the handles for nodes that have previously been visited. When the
back button is pressed, or when a pop value is greater than 0, simply pop the
handle off the stack and re-request that handle using the BROWSE command.
In this case, the controller re-requests the node for the Rubber Soul album.
Controller sends:
01.01/1/BROWSE:1.7.1.2.2.P_3644.2.R_1515.0::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.2.P_3644.2.R_1515.0:
The Beatles - Rubber Soul:5:16:/06
01.01/1/000:BROWSE_RESULT:1:1:Play album:
0:1:1:1.7.1.2.2.P_3644.2.R_1515.1.a.0:0:::::::::::::::::/03
01.01/1/000:BROWSE_RESULT:2:2::0:::::::::::::::::::::/70
01.01/1/000:BROWSE_RESULT:3:3:1. Drive My Car:1:1:1:
1.7.1.2.2.P_3644.2.R_1515.2.b9bca9a6f224fb54-t301_22.0:
0:::::::::::::::::/38
01.01/1/000:BROWSE_RESULT:4:4:2. Norwegian Wood (This Bird Has Flown):
0:1:1:1.7.1.2.2.P_3644.2.R_1515.2.b9bca9a6f224fb54-t302_22.0:
0:::::::::::::::::/78
Kaleidescape Part No. 101-0005 Rev 8
Page 152
Kaleidescape System Control Protocol Reference Manual
01.01/1/000:BROWSE_RESULT:5:5:3. You Won't See Me:0:1:1:
1.7.1.2.2.P_3644.2.R_1515.2.b9bca9a6f224fb54t303_22.0:
0:::::::::::::::::/38
The Beatles - Rubber Soul
Play album >
► 1. Drive My Car >
2. Norwegian Wood (This Bird Has Flown) >
3. You Won't See Me >
Playback for the entire album has now begun.
The Now Playing queue
Continuing the previous example, the user listens to several tracks and
decides to change the currently active track. The user instructs the controller
to go to the now playing place, probably by pressing a button marked Now
Playing.
To fulfill this request, the controller must BROWSE to the special Now Playing
node. This node uses the handle now_playing.
The BROWSE command for this would be the following command.
01.01/1/BROWSE:now_playing::1-5::
But the controller in this example is programmed to display the item
currently playing to the user immediately when the controller switches to the
now playing place. The controller adds a suggest flag to the BROWSE
command. So the actual BROWSE command sent follows.
Controller sends:
01.01/1/BROWSE:now_playing::1-5:suggest:
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:now_playing:Now
Playing:5:15:9:11:/52
01.01/1/000:BROWSE_RESULT:1:9: 8. What Goes On:
0:3:3:2.202f1;1=1:0:::::::::::::::::/56
01.01/1/000:BROWSE_RESULT:2:10: 9. Girl:
0:3:3:2.202f2;1=1:0:::::::::::::::::/42
01.01/1/000:BROWSE_RESULT:3:11: 10. I'm Looking Through You:
1:3:3:2.202f3;1=1:0:::::::::::::::::/82
01.01/1/000:BROWSE_RESULT:4:12: 11. In My Life:
0:3:3:2.202f4;1=1:0:::::::::::::::::/20
01.01/1/000:BROWSE_RESULT:5:13: 12. Wait:
0:3:3:2.202f5;1=1:0:::::::::::::::::/00
Kaleidescape Part No. 101-0005 Rev 8
Page 153
Kaleidescape System Control Protocol Reference Manual
Now Playing
8. What Goes On
9. Girl
►
10. I'm Looking Through You
11. In My Life
12. Wait
Although the controller specified a window of 1-5 in the original BROWSE
command, the music zone responded with lines 9 through 12. When the
suggest flag is used, the Kaleidescape System ignores the requested
window and replaces the window with a window centered on the currently
playing item, which in this case is 10. I’m Looking Through You.
The user can now select other tracks to skip to by touching the tracks,
causing an appropriate PERFORM_ACTION command to be generated. This
action is identical to the examples above.
The play action
Continuing the example, the user now decides to listen to the Beach Boys
instead of the Beatles. The user switches back to the music browsing
hierarchy and presses the back button several times to load previous nodes
until reaching the Artists node.
The controller switches to the appropriate history stack and begins popping
handles off the stack until the user is satisfied. The following example skips
that process and jumps right to the Artists node.
Controller sends:
01.01/1/BROWSE:1.7.1.2.0::1-5::
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.0:Artists:5:65:/12
01.01/1/000:BROWSE_RESULT:1:1:Play all music:
0:3:3:1.0-a_690008;1=1:0:::::::::::::::::/55
01.01/1/000:BROWSE_RESULT:2:2::0:::::::::::::::::::::/70
01.01/1/000:BROWSE_RESULT:3:3:Martha Argerich:
0:1:1:1.7.1.2.2.Q_9457.0:0:3:3:1.Q_9457;1=1:0:::::::::::::/86
01.01/1/000:BROWSE_RESULT:4:4:The Beach Boys:
0:1:1:1.7.1.2.2.P_3640.0:0:3:3:1.P_3640;1=1:0:::::::::::::/53
01.01/1/000:BROWSE_RESULT:5:5:The Beatles:
0:1:1:1.7.1.2.2.P_3644.0:0:3:3:1.P_3644;1=1:0:::::::::::::/55
Artists
Play all music
Martha Argerich >
Kaleidescape Part No. 101-0005 Rev 8
Page 154
Kaleidescape System Control Protocol Reference Manual
The Beach Boys >
The Beatles >
In this example, the controller has been programmed to support a highlight
that can be moved around the screen. The controller also has a Play button
programmed to activate the play action for the highlighted line when
pressed.
The user wants to play The Beach Boys, but does not want to bother drilling
down into the Beach Boys node to start playback. Instead, the user can
highlight the Beach Boys line and press Play on the controller.
To determine the correct action, the controller looks for the line action with a
play label.
label
behavior
handle
pop
3
3
1.P_3640;1=1
0
The label 3 indicates that this is the play action for the line. The behavior
indicates that the controller should send a PERFORM_ACTION command with
the handle 1.P_3640;1=1.
Controller sends:
01.01/1/PERFORM_ACTION:1.P_3640;1=1:::
Kaleidescape System sends:
01.01/1/000:ACTION_PERFORMED:Playing The Beach Boys:/54
01.01/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000002297::/29
01.01/!/000:MUSIC_NOW_PLAYING_STATUS:00051:00000:1:1:0000002298::/37
01.01/!/000:PLAYING_MUSIC_INFORMATION:P_3640:The Beach Boys:/48
01.01/!/000:MUSIC_TITLE:Let's Go Away for While[Stereo Mix]:The Beach
Boys:Pet Sounds:1.b9bca9a6f224fb54-t314_36:1.R_485904:2.202f8:/66
01.01/!/000:MUSIC_PLAY_STATUS:2:0:00144:+00000:000.00:/49
If there were no play action for the line, the controller would simply have
executed the default action.
label
behavior
handle
pop
1
1
1.7.1.2.2.P_3640.0
0
Searching a node
Continuing the example, after listening to The Beatles for a while, the user
decides to listen to some Bob Dylan. The user returns to the Artists page.
Controller sends:
01.01/1/BROWSE:1.7.1.2.0::1-5::
Kaleidescape Part No. 101-0005 Rev 8
Page 155
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.0:Artists:5:65:/12
01.01/1/000:BROWSE_RESULT:1:1:Play all music:
0:3:3:1.0-a_690008;1=1:0:::::::::::::::::/55
01.01/1/000:BROWSE_RESULT:2:2::0:::::::::::::::::::::/70
01.01/1/000:BROWSE_RESULT:3:3:Martha Argerich:
0:1:1:1.7.1.2.2.Q_9457.0:0:3:3:1.Q_9457;1=1:0:::::::::::::/86
01.01/1/000:BROWSE_RESULT:4:4:The Beach Boys:
0:1:1:1.7.1.2.2.P_3640.0:0:3:3:1.P_3640;1=1:0:::::::::::::/53
01.01/1/000:BROWSE_RESULT:5:5:The Beatles:
0:1:1:1.7.1.2.2.P_3644.0:0:3:3:1.P_3644;1=1:0:::::::::::::/55
Artists
Play all music
Martha Argerich >
The Beach Boys >
The Beatles >
Observe that Bob Dylan does not appear on the screen. To avoid the need to
scroll through the entire list looking for Bob Dylan, the user presses the
search button. This action causes the controller to display a full keyboard, on
which the user begins typing the world Bob, starting with the letter B.
The controller modifies the BROWSE command to include a filter on the Artists
node. The filter just has the character B, so the filter is formatted as
filter="B".
Controller sends:
01.01/1/BROWSE:1.7.1.2.0::1-5:filter="B":
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.0:Artists:5:13:/05
01.01/1/000:BROWSE_RESULT:1:1:The [B]each Boys:
0:1:1:1.7.1.2.2.P_3640.0:0:3:3:1.P_3640;1=1:0:::::::::::::/31
01.01/1/000:BROWSE_RESULT:2:2:The [B]eatles:
0:1:1:1.7.1.2.2.P_3644.0:0:3:3:1.P_3644;1=1:0:::::::::::::/33
01.01/1/000:BROWSE_RESULT:3:3:Thomas [B]eecham:
0:1:1:1.7.1.2.2.Q_8214.0:0:3:3:1.Q_8214;1=1:0:::::::::::::/37
01.01/1/000:BROWSE_RESULT:4:4:Leonard [B]ernstein:
0:1:1:1.7.1.2.2.Q_7057.0:0:3:3:1.Q_7057;1=1:0:::::::::::::/97
01.01/1/000:BROWSE_RESULT:5:5:Fabio [B]iondi:
0:1:1:1.7.1.2.2.Q_13362.0:0:3:3:1.Q_13362;1=1:0:::::::::::::/18
Artists
The [B]each Boys >
Kaleidescape Part No. 101-0005 Rev 8
Page 156
Kaleidescape System Control Protocol Reference Manual
The [B]eatles >
Thomas [B]eecham >
Leonard [B]ernstein >
Fabio [B]iondi >
The BROWSE_RESULTS_OVERVIEW message identifies 13 responses, and a
visual inspection shows that Bob Dylan is not visible in the window. The user
types another character, o. Note that the handle remains the same.
Controller sends:
01.01/1/BROWSE:1.7.1.2.0::1-5:filter="Bo":
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.0:Artists:3:3:/54
01.01/1/000:BROWSE_RESULT:1:1:The Beach [Bo]ys:
0:1:1:1.7.1.2.2.P_3640.0:0:3:3:1.P_3640;1=1:0:::::::::::::/31
01.01/1/000:BROWSE_RESULT:2:2:Ian [Bo]stridge:
0:1:1:1.7.1.2.2.Q_14299.0:0:3:3:1.Q_14299;1=1:0:::::::::::::/65
01.01/1/000:BROWSE_RESULT:3:3:[Bo]b Dylan:
0:1:1:1.7.1.2.2.P_4147.0:0:3:3:1.P_4147;1=1:0:::::::::::::/19
Artists
The Beach [Bo]ys >
Ian [Bo]stridge >
[Bo]b Dylan >
Bob Dylan is now visible on the screen, and the user can select Bob Dylan to
begin playing music.
Note: The letters searched for in this example appear bracketed and
can appear at the beginning of any word in the artist's name.
Searching a node with an alphanumeric keypad
The previous examples suppose that the controller provides the user with a
full keyboard. Sometimes the user is limited to a small alphanumeric keypad
similar to that found on a telephone.
1
2 (ABC)
3 (DEF)
4 (GHI)
5 (JKL)
6 (MNO)
7 (PQRS)
8 (TUV)
9 (WXYZ)
Kaleidescape Part No. 101-0005 Rev 8
Page 157
Kaleidescape System Control Protocol Reference Manual
In this case, the user can begin searching for Bob Dylan by typing 2. The
controller represents this 2 as [abc] and sends the appropriate filter to the
music zone.
Controller sends:
01.01/1/BROWSE:1.7.1.2.0::1-5:filter="[abc]":
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.0:Artists:5:25:/08
01.01/1/000:BROWSE_RESULT:1:1:Martha [A]rgerich:
0:1:1:1.7.1.2.2.Q_9457.0:0:3:3:1.Q_9457;1=1:0:::::::::::::/66
01.01/1/000:BROWSE_RESULT:2:2:The [B]each Boys:
0:1:1:1.7.1.2.2.P_3640.0:0:3:3:1.P_3640;1=1:0:::::::::::::/33
01.01/1/000:BROWSE_RESULT:3:3:The [B]eatles:
0:1:1:1.7.1.2.2.P_3644.0:0:3:3:1.P_3644;1=1:0:::::::::::::/35
01.01/1/000:BROWSE_RESULT:4:4:Thomas [B]eecham:
0:1:1:1.7.1.2.2.Q_8214.0:0:3:3:1.Q_8214;1=1:0:::::::::::::/39
01.01/1/000:BROWSE_RESULT:5:5:Leonard [B]ernstein:
0:1:1:1.7.1.2.2.Q_7057.0:0:3:3:1.Q_7057;1=1:0:::::::::::::/99
Artists
Martha [A]rgerich >
The [B]each Boys >
The [B]eatles >
Thomas [B]echam >
Leonard [B]ernstein >
Bob Dylan is not present, and the BROWSE_RESULTS_OVERVIEW message
shows 25 items that match this string. The user continues the search by
adding a 6, representing MNO.
Controller sends:
01.01/1/BROWSE:1.7.1.2.0::1-5:filter="[abc][mno]":
Kaleidescape System sends:
01.01/1/000:BROWSE_RESULTS_OVERVIEW:1.7.1.2.0:Artists:5:5:/58
01.01/1/000:BROWSE_RESULT:1:1:The Beach [Bo]ys:
0:1:1:1.7.1.2.2.P_3640.0:0:3:3:1.P_3640;1=1:0:::::::::::::/31
01.01/1/000:BROWSE_RESULT:2:2:Ian [Bo]stridge:
0:1:1:1.7.1.2.2.Q_14299.0:0:3:3:1.Q_14299;1=1:0:::::::::::::/65
01.01/1/000:BROWSE_RESULT:3:3:John [Co]ltrane:
0:1:1:1.7.1.2.2.P_65851.0:0:3:3:1.P_65851;1=1:0:::::::::::::/77
01.01/1/000:BROWSE_RESULT:4:4:[Co]lin Davis:
0:1:1:1.7.1.2.2.Q_8172.0:0:3:3:1.Q_8172;1=1:0:::::::::::::/52
01.01/1/000:BROWSE_RESULT:5:5:[Bo]b Dylan:
0:1:1:1.7.1.2.2.P_4147.0:0:3:3:1.P_4147;1=1:0:::::::::::::/23
Kaleidescape Part No. 101-0005 Rev 8
Page 158
Kaleidescape System Control Protocol Reference Manual
Artists
The Beach [Bo]ys >
Ian [Bo]stridge >
John [Co]ltrane >
[Co]lin David >
[Bo]b Dylan >
The user has found Bob Dylan. Notice that even though the user intends to
type Bo, the music zone is returning results for Co as well.
Keypad collections and presets
PLAY_FIRST_IN_MUSIC_COLLECTION
Affects
Any zone
Command
Response
PLAY_FIRST_IN_MUSIC_COLLECTION:collection:
status:
Plays the first item in a collection which always corresponds to the first
BROWSE_RESULT, usually the topmost selectable item on the onscreen display.
Because that selection is usually a music mix, the order of the songs from
that collection is random.
collection
is the name of the collection whose next item is to be
played, for example, Artists or Albums by Title.
This command is useful for programming keypads that only support
direction and select keys (and not presets). Direction keys can be used to
obtain the name of the next/previous collection, and the
PLAY_FIRST_IN_MUSIC_COLLECTION can be used to play the contents of that
collection.
Example
Controller sends:
01.01/0/PLAY_FIRST_IN_MUSIC_COLLECTION:Artists:
Kaleidescape System sends:
01.01/0/000:/31
03/!/000:MUSIC_NOW_PLAYING_STATUS:00000:00000:1:0:0000000022::/72
03/!/000:MUSIC_NOW_PLAYING_STATUS:00051:00000:1:1:0000000023::/80
03/!/000:PLAYING_MUSIC_INFORMATION:0-a_690008:All Music:/16
This example shows the PLAY_FIRST_IN_MUSIC_COLLECTION command used
to start playback of the Artists collection. Because the first item in the
collection is Play all music, this command has the effect of beginning playback
of all music, as shown by the PLAYING_MUSIC_INFORMATION event message
generated. The MUSIC_NOW_PLAYING_STATUS event messages confirm that
music is playing back.
Kaleidescape Part No. 101-0005 Rev 8
Page 159
Kaleidescape System Control Protocol Reference Manual
PLAY_NEXT_IN_MUSIC_COLLECTION
Affects
Any zone
Command
Response
PLAY_NEXT_IN_MUSIC_COLLECTION:collection:
status:
Plays the item after either the currently playing or the last item played in a
collection.
collection
is the name of the collection whose first item is to be
played, for example, Artists or Albums by Title.
This command is useful for keypads that have up and down keys.
PLAY_NEXT_IN_MUSIC_COLLECTION can be used for the up key, and
PLAY_PREVIOUS_IN_MUSIC_COLLECTION can be used for the down key.
Note: To determine the music currently playing, see the
GET_PLAYING_MUSIC_INFORMATION command.
Example
Controller sends:
01.01/1/PLAY_NEXT_IN_MUSIC_COLLECTION:Artists:
Kaleidescape System sends:
01.01/1/000:/32
01.01/!/000:MUSIC_NOW_PLAYING_STATUS:00051:00000:1:1:0000001732::/29
01.01/!/000:PLAYING_MUSIC_INFORMATION:P_3640:The Beach Boys:/48
01.01/!/000:MUSIC_TITLE:Pet Sounds:The Beach Boys:Pet
Sounds:1.b9bca9a6f224fb54-t30c_36:1.R_485904:2.2007c:/07
01.01/!/000:MUSIC_PLAY_STATUS:2:0:00143:+00000:000.00:/48
In this example, the next item in the Artists collection is activated. The
PLAYING_MUSIC_INFORMATION event message is generated to indicate that The
Beach Boys are the music item playing, and the MUSIC_TITLE,
MUSIC_PLAY_STATUS, and MUSIC_NOW_PLAYING_INFORMATION event messages
are generated with new playback information for this content.
PLAY_PREVIOUS_IN_MUSIC_COLLECTION
Affects
Any zone
Command
Response
PLAY_PREVIOUS_IN_MUSIC_COLLECTION:collection:
status:
Plays the next item before either the item currently playing or last item
played in the collection.
collection
is the name of the collection, for example, Albums by
Artist.
This command is useful for keypads that have up and down keys.
PLAY_NEXT_IN_MUSIC_COLLECTION can be used for the up key, and
PLAY_PREVIOUS_IN_MUSIC_COLLECTION can be used for the down key.
Kaleidescape Part No. 101-0005 Rev 8
Page 160
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01.01/1/PLAY_PREVIOUS_IN_MUSIC_COLLECTION:Artists:
Kaleidescape System sends:
01.01/1/000:/32
01.01/!/000:MUSIC_NOW_PLAYING_STATUS:00051:00000:1:1:0000001738::/35
01.01/!/000:PLAYING_MUSIC_INFORMATION:Q_9457:Martha Argerich:/70
01.01/!/000:MUSIC_TITLE:Piano Concerto No. 3 in C minor, Op. 37\: 2.
Largo:Ludwig van Beethoven:Piano Concerto No. 3 in C minor, Op.
37:1.b9bca9a6f224fb54-t302_6d:1.W_121665:2.200b2:/66
01.01/!/000:MUSIC_PLAY_STATUS:2:0:00621:+00000:000.00:/49
In this example, the previous item in the Artists collection is activated. The
PLAYING_MUSIC_INFORMATION event message is generated identifying Martha
Argerich as the music playing. The MUSIC_NOW_PLAYING_STATUS, MUSIC_TITLE,
and MUSIC_PLAY_STATUS event messages are generated with new playback
information for the new track.
ASSIGN_PLAYING_MUSIC_TO_PRESET
Affects
Command
Any zone
ASSIGN_PLAYING_MUSIC_TO_PRESET:tag:
Response
status:
This command is used to store a music item into a preset by associating the
currently playing music item to a preset tag that can be accessed from
anywhere in the system.
The tag is an arbitrary string that a controller uses to recall the preset with
the PLAY_MUSIC_PRESET command. The tag can indicate which button is
pressed, for example, Bedroom Button 1, or the nature of the preset, for
example, Bob's Favorites. These tags might be made available to the user
through the onscreen display later, so name the tags appropriately.
Music items that can be assigned are artists, genres, albums, tracks, mix
albums, or even all music.
Kaleidescape suggests that buttons using this command be implemented
like a car stereo, i.e., when the button is held down for a period of time, the
controller sends the command.
When a music preset is changed, a MUSIC_PRESET_INFORMATION event
message is generated with the new settings.
tag
is an identifier to use in PLAY_MUSIC_PRESET later.
Example
Controller sends:
01.01/8/ASSIGN_PLAYING_MUSIC_TO_PRESET:Fav:
Kaleidescape Part No. 101-0005 Rev 8
Page 161
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01/!/000:MUSIC_PRESET_INFORMATION:Fav:R_650407:Puffy AmiYumi - Nice:/12
01.01/8/000:/39
In this example, the ASSIGN_PLAYING_MUSIC_TO_PRESET command is used to
assign the music currently playing to the preset tag Fav. Because the
currently playing information is the Puffy AmiYumi album Nice, this is
assigned to the preset. The MUSIC_PRESET_INFORMATION event message
confirms the event change.
PLAY_MUSIC_PRESET
Affects
Command
Response
Any zone
PLAY_MUSIC_PRESET:tag:
status:
Plays the music item associated with the preset tag.
Presets can be set to play back all music, genres, artists, albums, tracks, and
mix albums using the ASSIGN_PLAYING_MUSIC_TO_PRESET command.
Music preset tags are usually associated to music items that play as music
mixes.
When the PLAY_MUSIC_PRESET command is sent for a given tag, a new
random element from the music item is selected for playback. Therefore, to
skip an undesired song in a preset, simply send the command again.
Kaleidescape recommends this command be implemented like a car stereo,
i.e., when the button is held down for a period of time, the controller sends
the command.
tag
indicates which preset to play, must correspond to
the tag assigned earlier with the
ASSIGN_PLAYING_MUSIC_TO_PRESET command.
Example
Controller sends:
01.01/0/PLAY_MUSIC_PRESET:Fav:
Kaleidescape System sends:
01.01/0/000:/31
01/!/000:PLAYING_MUSIC_INFORMATION:R_650407:Puffy AmiYumi - Nice:/02
In this example, the preset Fav is recalled by the PLAY_MUSIC_PRESET
command. This causes the information stored in the preset, specifically the
album Nice by Puffy AmiYumi, to begin playback. This is seen in the
PLAYING_MUSIC_INFORMATION event message.
Kaleidescape Part No. 101-0005 Rev 8
Page 162
Kaleidescape System Control Protocol Reference Manual
GET_MUSIC_PRESET_INFORMATION
Affects
Any zone
Command
Response
GET_MUSIC_PRESET_INFORMATION:tag:
status:MUSIC_PRESET_INFORMATION:tag:
handle:label:
This message provides detailed information about a preset. The event
message is sent when any preset tag is reassigned to a new music item.
tag
is a controller-assigned unique identifier for a preset.
Must match the string used in the
ASSIGN_PLAYING_MUSIC_TO_PRESET command to
identify the preset.
handle
is a short text string that identifies the associated
music item. The controller can compare this handle
against the handle returned by the
PLAYING_MUSIC_INFORMATION command to determine
if the preset music item is playing. A controller can
use this information to identify a preset button as
active.
label
is a plain text description of the music item assigned
to the preset (for example, Jazz, The Beatles, Tattoo
You – The Rolling Stones, or Bach).
Label text can be provided on keypad character
displays and touch panels.
Example
Controller sends:
01.01/2/GET_MUSIC_PRESET_INFORMATION:Fav:
Kaleidescape System sends:
01.01/2/000:MUSIC_PRESET_INFORMATION:Fav:R_650407:
Puffy AmiYumi - Nice:/72
In this example, information is requested for the music preset tag Fav. The
MUSIC_PRESET_INFORMATION response indicates that the preset is associated
with the album Nice by Puffy AmiYumi. The response also indicates that the
handle is R_650407, which can be compared with the handle returned by the
PLAYING_MUSIC_INFORMATION message to determine if the preset Fav is
active.
GET_PLAYING_MUSIC_INFORMATION
Affects
Any zone
Command
Response
GET_PLAYING_MUSIC_INFORMATION:
status:PLAYING_MUSIC_INFORMATION:handle:label:
This message provides keypad related information about the music currently
playing. This message can be used with the MUSIC_PRESET_INFORMATION
message to identify which presets are active and which are not.
Kaleidescape Part No. 101-0005 Rev 8
Page 163
Kaleidescape System Control Protocol Reference Manual
The event message is generated when the currently playing music item
changes.
The music being played back can be a specific genre, artist, album, or mix
album. The music item can also be an individual track or represent all music.
For example, when playing back the genre Jazz, the music item currently
playing is Jazz, not the specific song currently playing.
handle
is a unique identifier that represents the associated
music item. The controller can compare this handle
against handles returned in
MUSIC_PRESET_INFORMATION events to determine
which presets are assigned to the music item
currently playing.
label
is a plain text description of the item currently playing
(for example, Jazz, The Beatles, Tattoo You – The
Rolling Stones, or Bach).
Label text can be provided on keypad character
displays and touch panels.
Example
Controller sends:
01.01/5/GET_PLAYING_MUSIC_INFORMATION:
Kaleidescape System sends:
01.01/5/000:PLAYING_MUSIC_INFORMATION:R_650407:Puffy AmiYumi - Nice:/65
In this example, the currently playing information is returned as the album
Nice by Puffy AmiYumi, which has the handle R_650407. The controller can
match this handle against presets used by the controller to determine if any
match and can be set as active.
Advanced Integration
These commands provide additional capabilities that are useful when
integrating a Kaleidescape component with lighting systems, masking
systems, projectors, and other third party equipment. Table 12 lists onscreen
display control commands
Table 12: Advanced integration command summary
Command/Event
Lighting, screen masking, video settings
GET_MOVIE_LOCATION
GO_CALIBRATE_MASKING
Kaleidescape Part No. 101-0005 Rev 8
Description
Identifies the location in the movie, whether in the main
content, intermission, or end credits.
Calibrates the top and bottom values for screen masking.
Page 164
Kaleidescape System Control Protocol Reference Manual
Command/Event
Description
GO_CALIBRATE_MASKING_OVERSCAN
Defines the position of the overscan in a movie zone.
GET_CINEMASCAPE_MASK
Provides aspect ratio when a player is in a CinemaScape
mode.
GET_SCREEN_MASK
Provides aspect ratio and masking information for the
current video image.
GET_SCREEN_MASK2
Provides masking information based on aspect ratio and
overscan area.
SET_SCREEN_MASK
Used to inform the Kaleidescape System that a masking
system is in use.
GET_VIDEO_MODE
Identifies the video mode currently active.
GET_CINEMASCAPE_MODE
Identifies the CinemaScape mode currently active.
SET_CINEMASCAPE_MODE
Sets the CinemaScape mode. Useful for players whose
video output can be switched from a 2:35 theater to
another room with a non-CinemaScape friendly display.
GET_SCALE_MODE
Indicates whether the image from the player requires
horizontal scaling, vertical and horizontal scaling, or does
not require scaling.
Scripts
PLAY_SCRIPT
User-defined events
USER_DEFINED_EVENT
Executes one of the scripts created in the browser
interface.
Custom event message that can be set to be generated by
scripts created in the browser interface, sent from another
controller, or triggered by system events.
SEND_EVENT
Emits a user-defined event to controllers with enabled
event messages.
SELECT_KALEIDESCAPE_INPUT
Sent when selecting Kaleidescape input, for example, when
the child user interface is activated.
Kaleidescape Part No. 101-0005 Rev 8
Page 165
Kaleidescape System Control Protocol Reference Manual
Command/Event
Description
Child mode
GET_CHILD_MODE_STATE
Used to determine if the onscreen display is displaying the
child user interface.
ENTER_CHILD_MODE
Displays the child user interface.
LEAVE_CHILD_MODE
Exits the child user interface and displays covers view.
Lighting, screen masking, and video settings
GET_MOVIE_LOCATION
Affects
Any movie zone
Command
Response/Event
GET_MOVIE_LOCATION:
status:MOVIE_LOCATION:location:
Provides information about the current location in the movie, whether
playback is in the main content, intermission, or end credits. The event
message is generated when this location changes.
This command is useful for triggering lighting systems and other events
based on the current location within the movie. For example, during
intermission, the controller could raise the lights and activate a popcorn
machine.
location
is a two-digit numeric code indicating the general
location of movie playback.
00
In the Kaleidescape interface or location
unknown
01
unused
02
unused
03
Main content (feature, episode, bonus
material, DVD/Blu-ray Disc menu)
04
Intermission (see INTERMISSION_ON)
05
End credits
Example
Controller sends:
01/6/GET_MOVIE_LOCATION:
Kaleidescape System sends:
01/6/000:MOVIE_LOCATION:03:/89
This response to GET_MOVIE_LOCATION shows that movie playback is
currently in the main content.
Kaleidescape Part No. 101-0005 Rev 8
Page 166
Kaleidescape System Control Protocol Reference Manual
GO_CALIBRATE_MASKING
Affects
Any movie zone
Command
Response
GO_CALIBRATE_MASKING:
status:
Displays the Calibrate Masking page. This page is used to calibrate the
top_calibrated and bottom_calibrated values in the GET_SCREEN_MASK2
command.
Figure 11: Calibrate Masking page
To calibrate masking, enter values for three positions in the range of motion
of the top and bottom screen masks and assign a value to each position. For
example, if the screen mask expects 0 for fully closed and 128 for fully
extended, set the top mask first value to 0, the top mask second value to a
midpoint of 64, and the top mask third value to 128. The zone interpolates
the value of all positions in this range from these three values and returns
the exact value required by the masking system without additional
calculations by the controller.
To get accurate information, first calibrate the masking overscan using the
GO_CALIBRATE_MASKING_OVERSCAN command.
Note: This page is not accessible through the menus on the onscreen
display. The only way to display this page is to use this command.
Example
Controller sends:
01/7/GO_CALIBRATE_MASKING:
Kaleidescape System sends:
01/7/000:/95
Kaleidescape Part No. 101-0005 Rev 8
Page 167
Kaleidescape System Control Protocol Reference Manual
GO_CALIBRATE_MASKING_OVERSCAN
Affects
Any movie zone
Command
Response
GO_CALIBRATE_MASKING_OVERSCAN:
status:
Displays the Calibrate Masking Overscan page. This page is used to define
the position of the overscan extension into the Kaleidescape movie zone.
This overscan data is used in calculating the values returned by the
GET_SCREEN_MASK2 command. These values are not used to adjust the
position of the screen.
Figure 12: Calibrate Masking Overscan page
To calibrate the masking overscan, adjust the top, bottom, left, and right
overscan percentage values until the associated set of arrows is directly at
the edge of the viewing area. When in the correct position, the entire arrow
should be visible at the edge of the screen with no blank space between the
arrow and the edge of the screen.
Masking overscan must be calibrated before calibrating the masking values
with GO_CALIBRATE_MASKING to get accurate values.
Note: This page is not accessible through the menus on the onscreen
display. The only way to display this page is to use this command.
Example
Controller sends:
01/3/GO_CALIBRATE_MASKING_OVERSCAN:
Kaleidescape System sends:
01/3/000:/91
Kaleidescape Part No. 101-0005 Rev 8
Page 168
Kaleidescape System Control Protocol Reference Manual
GET_CINEMASCAPE_MASK
Affects
Any movie zone
Command
Response/Event
GET_CINEMASCAPE_MASK:
status:CINEMASCAPE_MASK:frame_ratio:
When in CinemaScape mode, provides information about the frame aspect
ratio. The event message is generated whenever the CinemaScape mode is
changed or when the player is set to any of the CinemaScape modes and the
aspect ratio changes, e.g., starting/ending movie playback and displaying the
Kaleidescape user interface.
frame_ratio
is a zero-padded, three-digit number between 000 and
999, in hundredths of the ratio of the frame width to
the frame height. The parameter can have the
following values: 133, 166, 178, 237, 240. Future
revisions of kOS may support additional aspect ratios.
Note: This event and the command only work when in CinemaScape
mode. If GET_CINEMASCAPE_MASK is issued when not in a
CinemaScape mode, the response will be error code 028, with the
text Incompatible video configuration.
Example 1
Controller sends:
01/1/GET_CINEMASCAPE_MASK:
Kaleidescape System sends:
01/1/000:CINEMASCAPE_MASK:133:/23
In this example, the CINEMASCAPE_MASK is set for 4:3 video.
Example 2
Kaleidescape System sends:
01/!/000:CINEMASCAPE_MASK:178:/53
In this example, the CINEMASCAPE_MASK is set for 16:9 video. A frame_ratio
value of 178 is also emitted for movies with an aspect ratio of 1.85 or 2.20.
Kaleidescape Part No. 101-0005 Rev 8
Page 169
Kaleidescape System Control Protocol Reference Manual
GET_SCREEN_MASK
Affects
Any movie zone
Command
Response/Event
GET_SCREEN_MASK:
status:SCREEN_MASK:image_ratio:
top_trim_rel:bottom_trim_rel:
conservative_ratio:top_mask_abs:
bottom_mask_abs:
This message contains information about the aspect ratio and masking for
the current video image. The aspect ratio information is kept simple for basic
mask controller programming, while the trim/mask fields contain precise
information for fine adjustments to masks. If the controller adjusts screen
masks, the controller should react to this event message with a
SET_SCREEN_MASK message.
The event message is generated whenever the aspect ratio of the video
output changes.
This message provides all information needed by masking controllers of
varying capabilities, some of which can be redundant depending on the
masking controller.
Generally, a controller needs to use only a subset of the information,
depending on the capabilities of the masking system.

Masking controllers with presets and fine-tuning adjustments should
use image_ratio, top_trim_rel, and bottom_trim_rel together.

Masking controllers with absolute positioning should use
top_mask_abs and bottom_mask_abs.

Masking controllers with presets alone will choose based upon the
type of masks.

16:9 or 4:3 screens with top and bottom masks should use just
conservative_ratio.

2.35:1 screens with side masks should use just image_ratio.
Note: GET_SCREEN_MASK does not take overscan into account. This
command provides values based on the full frame of the video
image. See GET_SCREEN_MASK2 for more information.
Kaleidescape Part No. 101-0005 Rev 8
Page 170
Kaleidescape System Control Protocol Reference Manual
image_ratio
is the actual aspect ratio of the video content (as
opposed to the full-frame content stored on the DVD).
This parameter can have the following values.
00
top_trim_rel
bottom_trim_rel
01
No image aspect ratio specified (not in
playback, Kaleidescape user interface is
displayed), or image aspect ratio unknown
(often the case with trailers and supplemental
material). The controller cannot make any
assumptions about the projected video, and
so should open up the masks.
Image aspect ratio is 1.33 (4:3)
02
Image aspect ratio is 1.66
03
Image aspect ratio is 1.78 (16:9)
04
Image aspect ratio is 1.85
05
Image aspect ratio is 2.35
indicate top and bottom trim values, relative to the
aspect ratio specified by image_ratio. The value of
each is a signed, zero-padded, three-digit number
between -999 and +999, in tenths of a percent of the
screen height.
Positive values indicate adjustment towards the
center of the screen, negative toward the edge. For
example, +010 means adjust a mask inward by 1% of
the screen height, and -005 means adjust the mask
outward by 0.5% of the screen height.
The value always includes a plus or minus sign.
conservative_ratio
has the same possible values as the image_ratio
field, but represents a more conservative estimate of
the image aspect ratio. This value never goes too far
into the actual picture.
Note: This field is designed for 16:9 and 4:3 screens
that have top and bottom masks without trim
capability. This field should not be used on 2.35:1
screens with side masks, because it can cause the
masks to move too far into the picture.
top_mask_abs
bottom_mask_abs
Kaleidescape Part No. 101-0005 Rev 8
describe the position for the top and bottom masks in
absolute terms, measured from the top and bottom of
the screen, respectively. These fields are each zeropadded, four-digit numbers between 0000 and 1000,
in tenths of a percent of the screen height.
For example, a top_mask_abs value of 0200, means
that the corresponding mask should be located 20%
from the top of the screen.
Page 171
Kaleidescape System Control Protocol Reference Manual
Example 1
A 2.35 movie on a 16:9 screen
Kaleidescape System sends:
01/!/000:SCREEN_MASK:05:+000:+000:05:0121:0121:/90
This event message example shows that the image ratio is 05, which
represents a 2.35 aspect ratio movie. No relative trim is indicated, and the
conservative image ratio is also set to 05. The absolute positions indicate
that the masks should be in 12.1% from both the top and bottom.
Example 2
A 2.35 movie on a 4:3 screen
Kaleidescape System sends:
01/!/000:SCREEN_MASK:05:+000:+000:05:0216:0216:/00
This event message is similar to the previous example, except that the
absolute positions are 21.6% instead of 12.1%. This is because a 2.35 movie
on a 4:3 frame has larger letterboxes. The adjustments (the relative ratios)
are not affected by the frame ratio.
GET_SCREEN_MASK2
Affects
Any movie zone
Command
Response/Event
GET_SCREEN_MASK2:
status:SCREEN_MASK2:
top_mask_abs:bottom_mask_abs:
top_calibrated:bottom_calibrated:
This message provides masking information based on aspect ratio and
overscan area. This information depends on the calibration parameters
entered in the Calibrate Masking Overscan and Calibrate Masking pages
accessed when the GO_CALIBRATE_MASKING_OVERSCAN and
GO_CALIBRATE_MASKING commands are issued.
Note: To receive meaningful data, set calibration parameters first.
top_mask_abs
bottom_mask_abs
describe the position for the top and bottom masks in
absolute terms, relative to the aspect ratio and
accounting for overscan as set in on the Calibrate
Masking Overscan page accessed when a
GO_CALIBRATE_MASKING_OVERSCAN command is
issued.
These fields are zero-padded, four-digit numbers
between 0000 and 1000, in tenths of a percent of the
screen height.
For example, a top_mask_abs value of 0200, means
that the corresponding mask should be located 20%
from the top of the screen.
Kaleidescape Part No. 101-0005 Rev 8
Page 172
Kaleidescape System Control Protocol Reference Manual
top_calibrated
bottom_calibrated
contain masking positions calculated by the movie
zone based on values entered in the Calibrate
Masking page accessed through the
GO_CALIBRATE_MASKING command.
These fields return the top and bottom trim values as
a zero-padded, five-digit number between 00000 and
99999.
To calibrate the masking overscan, adjust the top, bottom, left, and right
overscan percentage values until the associated set of arrows is directly at
the edge of the viewing area. When in the correct position, the entire arrow
is visible at the edge of the screen with no blank space between the arrow
and the edge of the screen.
Note: Masking overscan should be calibrated using the
GO_CALIBRATE_MASKING_OVERSCAN command before calibrating the
masking with the GO_CALIBRATE_MASKING command.
To calibrate masking, enter values for three positions in the range of motion
of the top and bottom screen masks and assign a value to each position. For
example, if the screen mask expects 0 for fully closed and 128 for fully
extended, set the top mask first value to 0, the top mask second value to a
midpoint of 64, and the top mask third value to 128. The zone interpolates
the value of all positions in this range from these three values and returns
the exact value required by the masking system without additional
calculations by the controller.
Example
Controller sends:
01/7/GET_SCREEN_MASK2:
Kaleidescape System sends:
01/7/000:SCREEN_MASK2:0121:0123:00000:00000:/52
This response to the GET_SCREEN_MASK2 command indicates that the
absolute position for the top mask would be 12.1% from the top of the
screen. The bottom mask should be 12.3% from the bottom. There are no
calibrated masking values in this response.
SET_SCREEN_MASK
Affects
Any movie zone
Command
Response
SET_SCREEN_MASK:flag:
status:SCREEN_MASK:image_ratio:
top_trim_rel:bottom_trim_rel:
conservative_ratio:
top_mask_abs:bottom_mask_abs:
This command is used to tell the movie zone whether or not a masking
system is being used.
Kaleidescape Part No. 101-0005 Rev 8
Page 173
Kaleidescape System Control Protocol Reference Manual
If a masking system is in use, the movie zone automatically adjusts the
position of onscreen elements such as drop-down menus to appear in the
unmasked portion of the display. If a masking system is not in use, these
elements are displayed at the edges of the screen, possibly in letterbox
areas.
flag
indicates whether or not a masking system is in use.
0
Instructs the movie zone not to compensate
for masking.
1
Instructs the movie zone to compensate for
masking.
A controller should send this message when the controller starts up, or when
the player restarts. The response to this command includes the current
screen masking as described under GET_SCREEN_MASK.
Example
Controller sends:
01/0/SET_SCREEN_MASK:1:
Kaleidescape System sends:
01/0/000:SCREEN_MASK:05:+000:+001:05:0121:0123:/08
In this example, the controller is instructing the movie zone to compensate
for masking system when positioning various elements of the screen. The
response provides the latest screen masking information.
GET_VIDEO_MODE
Affects
Any movie zone
Command
Response/Event
GET_VIDEO_MODE:
status:VIDEO_MODE:composite:component:HDMI:
This message provides information about the video outputs for the
composite, component, and HDMI video outputs. Controllers can use this
information to configure external scalers, video processors, display devices,
and screen masks.
The event message is generated whenever the video mode of any video
output changes.
composite
is the video mode of the composite and S-Video
analog video outputs.
component
is the video mode of the component analog video
output.
is video mode of the HDMI digital video output.
HDMI
Kaleidescape Part No. 101-0005 Rev 8
Page 174
Kaleidescape System Control Protocol Reference Manual
These fields can have the following values:
00
No output
01
480i60 4:3
02
480i60 16:9
03
480p60 4:3
04
05
480p60 16:9
576i50 4:3
06
576i50 16:9
07
576p50 4:3
08
576p50 16:9
09
720p60 NTSC HD
10
11
720p50 PAL HD
1080i60 16:9
12
1080i50 16:9
13
1080p60 16:9
14
1080p50 16:9
15
reserved
16
17
reserved
1080p24 16:9
18
reserved
19
1080i60 64:27
20
1080i50 64:27
21
22
1080p60 64:27
1080p50 64:27
23
1080p24 64:27
24
reserved
Example
Controller sends:
01/4/GET_VIDEO_MODE:
Kaleidescape System sends:
01/4/000:VIDEO_MODE:02:02:04:/83
The response to this GET_VIDEO_MODE command shows that both the
composite and component video outputs are displaying 480i60 16:9. The
HDMI video output is outputting 480p60 16:9.
Kaleidescape Part No. 101-0005 Rev 8
Page 175
Kaleidescape System Control Protocol Reference Manual
GET_CINEMASCAPE_MODE
Affects
Any movie zone
Command
Response/Event
GET_CINEMASCAPE_MODE:
status:CINEMASCAPE_MODE:mode:
The command provides information about the CinemaScape mode of the
zone. This information is useful for installations that can switch player video
output from a 2:35 theater to another room with a non-CinemaScape friendly
display.
mode
This parameter can have the following values.
0
Not in CinemaScape mode
1
CinemaScape 2.35 Anamorphic
2
CinemaScape 2.35 Letterbox
3
CinemaScape Native 2.35 Display
Example
Controller sends:
01/1/GET_CINEMASCAPE_MODE:/4C
Kaleidescape System sends:
01/1/000:CINEMASCAPE_MODE:0:/59
SET_CINEMASCAPE_MODE
Affects
Any movie zone
Command
Response/Event
SET_CINEMASCAPE_MODE:mode:
status:CINEMASCAPE_MODE:mode:
The command sets the CinemaScape mode of the zone. This command is
useful for installations that can switch player video output from a 2:35
theater to another room with a non-CinemaScape friendly display.
mode
This parameter can have the following values.
0
Not in CinemaScape mode
1
CinemaScape 2.35 Anamorphic
2
CinemaScape 2.35 Letterbox
3
CinemaScape Native 2.35 Display
Example
Controller sends:
01/1/SET_CINEMASCAPE_MODE:2:/2B
Kaleidescape System sends:
01/1/000:CINEMASCAPE_MODE:2:/59
In this example, the CinemaScape mode is set to CinemaScape 2.35
Letterbox.
Kaleidescape Part No. 101-0005 Rev 8
Page 176
Kaleidescape System Control Protocol Reference Manual
GET_SCALE_MODE
Affects
Any movie zone
Command
Response/Event
GET_SCALE_MODE:
status:SCALE_MODE:mode:
This command provides information about the video image output from an
M-Class player, which allows triggering of an anamorphic lens or zoom
mode when using a native 2.35:1 projector when CinemaScape mode is
enabled. This command returns 0 when CinemaScape mode is not enabled.
Mode
This parameter can have the following values.
0
No scaling required
1
Image requires anamorphic scaling
2
Reserved
3
Image requires zoom
Scripts
PLAY_SCRIPT
Affects
Any movie zone
Command
Response
PLAY_SCRIPT:script_name:
status:
Begins playback of the script named by the script_name. Scripts are set up
in the user pages of the browser interface and can be used to combine
movies, scenes, cover art, and other actions into a single playback item.
script_name
is the case-sensitive name of the script to be played.
Example
Controller sends:
01/4/PLAY_SCRIPT:Great Vistas:
Kaleidescape System sends:
01/4/000:/92
01/!/000:TITLE_NAME::/59
In this example, the script named Great Vistas is set to begin playback. This
command causes various event messages to occur as the script runs
through its steps.
Kaleidescape Part No. 101-0005 Rev 8
Page 177
Kaleidescape System Control Protocol Reference Manual
User-defined events
SEND_EVENT
Affects
Command
Response
Any zone
SEND_EVENT:message:
status:
This command causes a USER_DEFINED_EVENT to be emitted to all controllers
with enabled event messages from the component.
message
is the string emitted in the USER_DEFINED_EVENT.
Example
Controller sends:
02/1/SEND_EVENT:my_custom_event:
Kaleidescape System sends:
02/1/000:/90
02/!/000:USER_DEFINED_EVENT:my_custom_event:/13
USER_DEFINED_EVENT
Affects
Any zone, any controller
Event
status:USER_DEFINED_EVENT:event_message:
This special event message can be used to trigger lighting, switch input
sources, and more. User-defined events can be used to facilitate
communication between controllers. Often event_message is a command for
the controller. The Kaleidescape System sends a USER_DEFINED_EVENT event
message when one of five cases occurs.
1. A player executes a script step configured to send a command to the
control system (scripts are created and managed in the user pages of
the browser interface).
event_message
is the command string configured in a script
step.
2. The child user interface is activated, whether by a button press on
the Child Remote or by sending a child command (e.g., CHILD_PLAY,
ENTER_CHILD_MODE). Controllers can listen for this message and
select the Kaleidescape player as the active source device.
event_message
is hard coded to SELECT_KALEIDESCAPE_INPUT.
3. A user presses volume buttons on a Kaleidescape Remote.
Kaleidescape Remotes (KREMOTE-10 and KREMOTE-20) shipped
prior to July 2011 do not have the IR codes programmed for volume
or mute functions. For information on adding on adding IR codes to
these remotes consult www.kaleidescape.com/go/remote-volume
event_message
Kaleidescape Part No. 101-0005 Rev 8
is hard coded to VOLUME_DOWN_PRESS,
VOLUME_UP_PRESS, VOLUME_DOWN_RELEASE,
VOLUME_UP_RELEASE, or TOGGLE_MUTE.
Page 178
Kaleidescape System Control Protocol Reference Manual
4. A controller issues a SEND_EVENT command.
event_message
is the string provided by the controller issuing
the command.
5. The volume capabilities of the Kaleidescape App for iPad are
enabled.
event_message
Example 1
is hard coded to VOLUME_QUERY, VOLUME_UP,
VOLUME_DOWN, TOGGLE_MUTE.
Script step event
After invoking a user-created script named User Event, the script executed
the step “Send command to control system: My User Event.”
Controller sends:
01/2/PLAY_SCRIPT:User Event:
Kaleidescape System sends:
01/2/000:/90
01/!/000:UI_STATE:12:00:00:0:/40
01/!/000:UI_STATE:07:00:00:0:/44
01/!/000:USER_DEFINED_EVENT:My User Event:/72
Example 2
SELECT_KALEIDESCAPE_INPUT
A user presses a button on the Child Remote. The onscreen display switches
to the child user interface.
Kaleidescape System sends:
01/!/000:UI_STATE:01:00:00:0:/38
01/!/000:USER_DEFINED_EVENT:SELECT_KALEIDESCAPE_INPUT:/76
01/!/000:UI_STATE:03:00:00:0:/40
Example 3
Kaleidescape Remote volume control event
A user presses (and releases) the Volume Down button on the Kaleidescape
Remote.
Kaleidescape System sends:
02/!/000:USER_DEFINED_EVENT:VOLUME_DOWN_PRESS:/51
02/!/000:USER_DEFINED_EVENT:VOLUME_DOWN_RELEASE:/67
Example 4
SEND_EVENT command
A controller sends the command SEND_EVENT:Bedroom Controller
Started: to the player, and the player issues the USER_DEFINED_EVENT to all
listening controllers.
Controller sends:
02/4/SEND_EVENT:Bedroom Controller Started:
Kaleidescape System sends:
02/4/000:/93
Kaleidescape Part No. 101-0005 Rev 8
Page 179
Kaleidescape System Control Protocol Reference Manual
02/!/000:USER_DEFINED_EVENT:Bedroom Controller Started:/43
Kaleidescape App for iPad
To provide volume control and feedback, the Kaleidescape App for iPad uses
USER_DEFINED_EVENTS events to communicate with a control system. The
controller responds with SEND_EVENT commands.
Event
USER_DEFINED_EVENT:VOLUME_QUERY:
This event message is sent by the Kaleidescape App for iPad when a new
zone is selected or playback on the selected zone is initiated. The controller
should respond to a volume query with SEND_EVENT commands issuing
VOLUME_CAPABILITIES, VOLUME_LEVEL, and MUTE_ON_FB/MUTE_OFF_FB
messages. If two modules are controlling the same zone, and the audio path
is the same for both uses of the player’s zone, then only one module should
respond to the volume query.
Event
USER_DEFINED_EVENT:VOLUME_UP:
USER_DEFINED_EVENT:VOLUME_DOWN:
These event messages are sent by the Kaleidescape App for iPad when a
volume button (Volume Up or Volume Down) is pressed on the app. The event
message repeats until the volume button is released.
Event
USER_DEFINED_EVENT:TOGGLE_MUTE:
This event message is sent by the Kaleidescape App for iPad app when the
Mute button is tapped on the app.
Command
SEND_EVENT:VOLUME_CAPABILITIES=flag:
This command is used by the controller to set the volume capabilities of the
Kaleidescape App for iPad.
flag
0
1
No volume control or feedback
Volume control but no mute or feedback
3
Volume and mute control but no feedback
5
Volume control and feedback but no mute
7
Volume and mute control with volume
feedback
15
Volume and mute control with feedback
Command
SEND_EVENT:VOLUME_LEVEL=vol_percent:
This command is used by the controller to send the volume level to the
Kaleidescape App for iPad. The value of vol_percent should be between 0
and 100.
Kaleidescape Part No. 101-0005 Rev 8
Page 180
Kaleidescape System Control Protocol Reference Manual
Command
SEND_EVENT:MUTE_ON_FB:
SEND_EVENT:MUTE_OFF_FB:
These commands are used by the controller to show the active state of the
Mute button on the Kaleidescape App for iPad when mute feedback is
enabled (flag = 15 above).
The controller should update the feedback on the Kaleidescape App for iPad
using VOLUME_LEVEL and MUTE_ON_FB/MUTE_OFF_FB messages whenever the
audio processor indicates a change in volume level or mute status.
Example
The controller is connected directly to a player (CPDID 01). The controller
uses command routing to communicate with other players (e.g., CPDID 02).
The controller is listening for event messages from all players (see
ENABLE_EVENTS). The controller communicates with other A/V components
(e.g., the audio processors).
A user opens the Kaleidescape App for iPad to control the directly connected
player (CPDID 01). The app sends a volume query about the player.
Kaleidescape System sends:
01/!/000:USER_DEFINED_EVENT:VOLUME_QUERY:/52
The controller is listening for volume queries and responds to the volume
query with SEND_EVENT commands (with VOLUME_CAPABILITIES,
VOLUME_LEVEL, and MUTE_ON_FB/MUTE_OFF_FB messages) to initialize volume
settings. First, the controller tells the app about the volume capabilities. In
this case, the controller can control volume and mute with feedback.
Controller sends:
01/1/SEND_EVENT:VOLUME_CAPABILITIES=15:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_DEFINED_EVENT:VOLUME_CAPABILITIES=15:/83
Next, the controller provides feedback to the app about the state of the Mute
button. In this case, the Mute button is off.
Controller sends:
01/1/SEND_EVENT:MUTE_OFF_FB:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_DEFINED_EVENT:MUTE_OFF_FB:/39
Next, the controller provides feedback about the volume level. In this case,
the volume level is 25%.
Controller sends:
01/1/SEND_EVENT:VOLUME_LEVEL=25:
Kaleidescape Part No. 101-0005 Rev 8
Page 181
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_DEFINED_EVENT:VOLUME_LEVEL=25:/86
Now the user starts to use the app. The user taps the Mute button. The
Kaleidescape System sends an event.
Kaleidescape System sends:
01/!/000:USER_DEFINED_EVENT:TOGGLE_MUTE:/39
The controller should use the Kaleidescape event as a trigger to send
commands to another device (the audio processor) to control the volume.
The controller sends feedback to the app that the Mute button should be on.
Controller sends:
01/1/SEND_EVENT:MUTE_ON_FB:
Kaleidescape System sends:
01/1/000:/89
01/!/000:USER_DEFINED_EVENT:MUTE_ON_FB:/77
The app displays the active state of the Mute button indicating the zone is
muted.
Next, the user selects a different zone. The app sends a volume query.
Kaleidescape System sends:
02/!/000:USER_DEFINED_EVENT:VOLUME_QUERY:/53
The controller should now initialize the volume settings in the new zone with
SEND_EVENT commands to device ID 02 with VOLUME_CAPABILITIES,
VOLUME_LEVEL, and MUTE_ON_FB/MUTE_OFF_FB messages.
Child user interface
GET_CHILD_MODE_STATE
Affects
Any movie zone
Command
Response
GET_CHILD_MODE_STATE:
status:CHILD_MODE_STATE:child_mode:
This command is used to determine if the onscreen display is displaying the
child user interface.
child_mode
indicates whether or not the child user interface is
active.
0
The child user interface is not active.
1
The child user interface is active.
Example
Controller sends:
02/1/GET_CHILD_MODE_STATE:
Kaleidescape Part No. 101-0005 Rev 8
Page 182
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
02/1/000:CHILD_MODE_STATE:0:/78
The child user interface is not active because the child_mode parameter is 0.
ENTER_CHILD_MODE
Affects
Any movie zone
Command
Response
ENTER_CHILD_MODE:
status:
This command causes the onscreen display to show the child user interface.
Does not stop movie playback.
Example
Controller sends:
02/1/ENTER_CHILD_MODE:
Kaleidescape System sends:
02/1/000:/90
02/!/000:CHILD_MODE_STATE:1:/63
02/!/000:USER_DEFINED_EVENT:SELECT_KALEIDESCAPE_INPUT:/77
LEAVE_CHILD_MODE
Affects
Command
Response
Any movie zone
LEAVE_CHILD_MODE:
status:
If the child user interface is displayed, the onscreen display exits the child
user interface and shows the Movie Covers view. Does not stop movie
playback.
Example
Controller sends:
02/1/LEAVE_CHILD_MODE:
Kaleidescape System sends:
02/1/000:/90
02/!/000:CHILD_MODE_STATE:0:/62
Other Commands
These commands are not described in other sections and can be useful in
some installations. Table 13 lists these commands.
Kaleidescape Part No. 101-0005 Rev 8
Page 183
Kaleidescape System Control Protocol Reference Manual
Table 13: Command summary for other commands
Command
Description
GET_NETWORK_SETTINGS
Returns component network settings.
SET_NETWORK_SETTINGS
Changes network settings.
GET_SYSTEM_CAPABILITIES
Returns whether or not the system has
movie/music licenses.
GET_TIME
Displays current date and time.
GET_NETWORK_SETTINGS
Affects
All components
Command
Response
GET_NETWORK_SETTINGS:
status:NETWORK_SETTINGS:static:ip_address:
subnet_mask:gateway:dns1:dns2:
Parameters:
static
is the component IP address (dynamic or static).
0
Component uses DHCP to obtain an IP
address.
1
Component has a statically-assigned IP
address.
ip_address
is the IP address of the component formatted as a
string with four zero-padded, three-digit numbers
between 000 and 255, separated by periods. For
example, the IP address 10.200.1.120, is given as the
string 010.200.001.120.
subnet_mask
is the subnet mask used by the component in the
same format as the ip_address.
gateway
is the IP address of the default gateway used by the
component, in the same format as the ip_address.
dns1
is the IP address of the primary DNS server currently
used by the component, in the same format as the
ip_address.
is the IP address of the secondary DNS server used by
the component, in the same format as the
ip_address. If no secondary DNS server is set, this
field is ???.???.???.???.
dns2
Example
Controller sends:
01/1/GET_NETWORK_SETTINGS:
Kaleidescape Part No. 101-0005 Rev 8
Page 184
Kaleidescape System Control Protocol Reference Manual
Kaleidescape System sends:
01/1/000:NETWORK_SETTINGS:0:010.100.012.194:255.255.252.000:
010.100.012.001:010.100.000.092:010.100.000.018:/69
This example shows a setup where the component is set to DHCP and
currently has an IP address of 10.100.12.194. The subnet mask is
255.255.252.000 and the default gateway is 10.100.12.1. This component is
using 10.100.0.92 and 10.100.0.18 as the DNS servers.
SET_NETWORK_SETTINGS
Affects
Command
Response
All components
SET_NETWORK_SETTINGS:static:ip_address:subnet:
gateway:dns1:dns2:
status:NETWORK_SETTINGS:static:ip_address:
subnet_mask:gateway:dns1:dns2:
This command is used to change network settings for a component. The
NETWORK_SETTINGS response contains all the new network settings for the
component. See GET_NETWORK_SETTINGS for more information on this
command.
Blank fields in this command are ignored, allowing only partial changes to
be made.
static
0
1
Sets component to use DHCP to obtain an IP
address. When DHCP is used, all other
network fields in the command are ignored.
Sets component to use a static IP address.
Use the value of the ip_address in this field.
ip_address
is a static IP address, as a string with four numbers
between 0 and 255, separated by periods. No need to
use zero-padding for the numbers. Leave this field
blank if static is 0, or to keep the static IP address at
its current setting.
subnet_mask
is the subnet mask used by the component, in the
same format as the ip_address. Leave this field blank
if static is 0, or to keep the subnet mask at its current
setting.
is the IP address of the default gateway, in the same
format as the ip_address. Leave this field blank if
static is 0, or to keep the default gateway address at
the current setting.
gateway
dns1
is the IP address of the primary DNS server, in the
same format as the ip_address. Leave this field blank
if static is 0, or to keep the primary DNS server
address at the current setting.
dns2
is the IP address of the secondary DNS server, in the
same format as the ip_address. Leave this field blank
if static is 0, or to keep the secondary DNS server
address at the current setting.
Kaleidescape Part No. 101-0005 Rev 8
Page 185
Kaleidescape System Control Protocol Reference Manual
Example
Controller sends:
01/1/SET_NETWORK_SETTINGS:1:10.100.12.194::10.100.12.1:
10.100.0.92:10.100.0.18:
Kaleidescape System sends:
01/1/000:NETWORK_SETTINGS:1:010.100.012.194:255.255.252.000:
010.100.012.001:010.100.000.092:010.100.000.018:/70
In this example, the network settings are set to static IP address
10.100.12.194. The gateway is set to 10.100.12.1, and the DNS addresses are
10.100.0.92 and 10.100.0.18. Note that the subnet field has been left blank,
telling the Kaleidescape System to use the prior settings.
GET_SYSTEM_CAPABILITIES
Affects
All components
Command
Response
GET_SYSTEM_CAPABILITIES:
status:SYSTEM_CAPABILITIES:movies:music:
::::::::
Provides information about the capabilities of the system.
movies
indicates whether the system supports movies.
Y
N
music
System supports movies.
System does not support movies.
indicates whether the system supports music.
Y
System supports music.
N
System does not support music.
The remaining eight fields are blank in this version of the protocol, and are
reserved for future use. The response to this command indicates system
capabilities, and is therefore identical on all components in a system.
Example
Controller sends:
01/1/GET_SYSTEM_CAPABILITIES:
Kaleidescape System sends:
01/1/000:SYSTEM_CAPABILITIES:Y:Y:::::::::/59
This is a typical response for most systems, indicating support for both
movies and music.
Kaleidescape Part No. 101-0005 Rev 8
Page 186
Kaleidescape System Control Protocol Reference Manual
GET_TIME
Affects
All components
Command
Response
GET_TIME:
status:TIME:yyyy:mm:dd:hh:mm:ss:timezone:
The response contains the current date and time in the following fields.
yyyy
is a four-digit year.
mm
is a zero-padded two digit month, starting at 01 for
January.
dd
is a zero-padded, two digit day of the month, starting
at 01 for the first day.
is a 24-hour clock hour as a zero-padded, two-digit
number; 00 is midnight or 12 a.m., 23 is 11 p.m.
hh
mm
is a zero-padded, two-digit minute from 0 to 59.
ss
are the clock seconds as a two-digit number from 0 to
59.
is a three-letter time zone abbreviation, including the
daylight savings letter. For example, PST is Pacific
Standard Time and PDT is Pacific Daylight Time. The
time zone can be set in the browser interface.
timezone
Example
Controller sends:
01/1/GET_TIME:
Kaleidescape System sends:
01/1/000:TIME:2015:05:01:11:23:00:PDT:/93
This response returns the current date is May 1, 2015 and that the current
time is 11:23:00 a.m. in Pacific Daylight Time.
Note: This command replaces GET_DATE_TIME command which is still
available, but GET_TIME is preferred.
Getting Additional Support
Kaleidescape provides software for AMX, Crestron, Control4, Philips Pronto,
Universal Remote Control, and ELAN control systems, including drivers,
modules, touch panel templates and sample programs, as well as databases
and codes for popular IR remotes. Software and documentation are available
for download. See www.kaleidescape.com/support/control-systems.
If a problem occurs when programming a controller, or for additional help,
contact Kaleidescape Support.

See online resources at www.kaleidescape.com/support.

Contact Kaleidescape Support at support@kaleidescape.com
or +1 (650) 625-6160.
Kaleidescape Part No. 101-0005 Rev 8
Page 187
Kaleidescape System Control Protocol Reference Manual
When contacting Kaleidescape Support, be prepared to provide the serial
number of the Kaleidescape server. The serial number label is located
behind the front panels of servers, and on the back of all components except
mini players – it is on the bottom of these players.
Kaleidescape Part No. 101-0005 Rev 8
Page 188
Kaleidescape System Control Protocol Reference Manual
Appendix A: Command Summary and
Status Codes
Commands
A
ALPHABETIZE_COVER_ART
Arranges covers alphabetically.
ANGLE_NEXT
Changes to the next camera angle defined for
playback.
ANGLE_PREVIOUS
Changes to the previous camera angle defined
for playback.
Arrow commands
CHILD_UP
CHILD_UP_PRESS
CHILD_UP_RELEASE
CHILD_DOWN
CHILD_DOWN_PRESS
CHILD_DOWN_RELEASE
CHILD_LEFT
CHILD_LEFT_PRESS
CHILD_LEFT_RELEASE
CHILD_RIGHT
CHILD_RIGHT_PRESS
CHILD_RIGHT_RELEASE
DOWN
DOWN_PRESS
DOWN_RELEASE
LEFT
LEFT_PRESS
LEFT_RELEASE
RIGHT
RIGHT_PRESS
RIGHT_RELEASE
UP
UP_PRESS
UP_RELEASE
Used to navigate the onscreen display.
ASSIGN_PLAYING_MUSIC_TO_PRESET
Assigns a preset tag to the music item current
playing.
AUDIO_NEXT
Changes to the next audio stream during movie
playback.
Kaleidescape Part No. 101-0005 Rev 8
Page 189
Kaleidescape System Control Protocol Reference Manual
B
BACKSPACE
Erases the last character entered.
Blu-ray color buttons
BLUE
BLUE_PRESS
BLUE_RELEASE
GREEN_PRESS
GREEN_RELEASE
GREEN
RED
RED_PRESS
RED_RELEASE
YELLOW_PRESS
YELLOW_RELEASE
YELLOW
Performs actions associated with color buttons.
BLURAY_POPUP_MENU_TOGGLE
Toggles display of Blu-ray Disc pop-up menu.
BLURAY_SPECIAL_STOP
Stops Blu-ray Disc playback. Use with caution.
BROWSE
Used to navigate the text-based music browsing
interface (SATP).
CANCEL
Dismisses a page, dialog, or text entry.
CHILD_PLAY
If the child user interface is already active, plays
the selected movie. If not, activates the child
user interface.
CHILD_PAUSE
If the child user interface is already active,
pauses the movie. If not, activates the child user
interface.
CHILD_SELECT
If child user interface is already active, plays the
highlighted movie. If not, activates the child user
interface.
CHILD_SHUFFLE_COVER_ART
If the child user interface is already active,
shuffles the cover art. If not, activates the child
user interface.
CHILD_STOP
If the child user interface is already active, stops
movie playback. If not, activates the child user
interface.
C
Kaleidescape Part No. 101-0005 Rev 8
Page 190
Kaleidescape System Control Protocol Reference Manual
D
DEFAULT_LEVEL
Changes the parental control level to the default
level.
DETAILS
Toggles between the details page and the
current display.
DISABLE_EVENTS
Disables event messages from a specified movie
or music zone.
DISC_IN_TRAY_TOGGLE
Toggles the disc in player sheet in the OSD.
DISC_MENU
Displays DVD or Blu-ray Disc menu for the
current playback.
DISC_OR_KALEIDESCAPE_MENU
Behaves like DISC_MENU during movie or music
playback.
Behaves like KALEIDESCAPE_MENU_TOGGLE in
user interface.
DISC_RESUME
Resumes playback from the point of interruption.
DISC_TOP_MENU
Displays the top menu for the DVD or Blu-ray
Disc.
ENABLE_EVENTS
Enables event messages from a specified movie
or music zone.
ENTER_CHILD_MODE
Displays the child user interface.
ENTER_STANDBY
Puts component into standby.
FILTER_LIST
Filters the list view to search criteria.
GET_AVAILABLE_DEVICES
Returns a list of device IDs for all system
components powered on.
E
F
G
GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER Returns a list containing the serial number device
identifiers of all components in the system.
GET_CAMERA_ANGLE
Kaleidescape Part No. 101-0005 Rev 8
Provides information about the current camera
angle.
Page 191
Kaleidescape System Control Protocol Reference Manual
GET_CINEMASCAPE_MASK
Provides aspect ratio when a player is in a
CinemaScape mode.
GET_CINEMASCAPE_MODE
Identifies the CinemaScape mode currently
active.
GET_CONTENT_DETAILS
Provides information about a movie or album
selected on the user interface.
GET_CHILD_MODE_STATE
Used to determine if the onscreen display is
displaying the child user interface.
GET_CONTROLLED_ZONE
Returns the music zone currently under control.
GET_DEVICE_INFO
Returns component device type, serial number,
device ID, and IP address.
GET_DEVICE_POWER_STATE
Returns power state of a component.
GET_DEVICE_TYPE_NAME
Returns component type.
GET_FRIENDLY_NAME
Returns name of component or music zone.
GET_HIGHLIGHTED_SELECTION
Specifies the handle of the movie or album
currently selected on the user interface.
GET_MOVIE_LOCATION
Identifies the location in the movie, whether in
the main content, intermission, or end credits.
GET_MOVIE_MEDIA_TYPE
Identifies the type of media being played.
GET_MUSIC_NOW_PLAYING_STATUS
Sends the state of the Now Playing list.
GET_MUSIC_PLAY_STATUS
Provides playback information for the currently
playing music.
GET_MUSIC_PRESET_INFORMATION
Provides detailed information about a music
preset.
GET_MUSIC_TITLE
Provides detailed information about the music
currently playing.
GET_NETWORK_SETTINGS
Returns component network settings.
GET_NUM_ZONES
Returns number of zones in a component.
GET_PLAY_STATUS
Identifies movie play mode, speed, location and
chapter.
Kaleidescape Part No. 101-0005 Rev 8
Page 192
Kaleidescape System Control Protocol Reference Manual
GET_PLAYING_MUSIC_INFORMATION
Provides information about music currently
playing.
GET_PLAYING_TITLE_NAME
Provides the title of the movie currently playing.
GET_PROTOCOL
Returns protocol version number.
GET_SCALE_MODE
Indicates whether the image from the player
requires horizontal scaling, vertical and horizontal
scaling, or does not require scaling.
GET_SCREEN_MASK
Provides aspect ratio and masking information
for the current video image.
GET_SCREEN_MASK2
Provides masking information based on aspect
ratio and overscan area.
GET_SYSTEM_CAPABILITIES
Returns whether or not the system has
movie/music licenses.
GET_SYSTEM_READINESS_STATE
Returns the idle mode of Alto or Cinema One (2nd
generation).
GET_SYSTEM_VERSION
Returns protocol version number and the version
of kOS.
GET_TIME
Displays current date and time.
GET_UI_STATE
Provides details about the current state of the
user interface.
GET_USER_INPUT
Provides information about user input requested
from the user interface.
GET_VIDEO_MODE
Identifies the video mode currently active.
GO_CALIBRATE_MASKING
Calibrates the top and bottom values for screen
masking.
GO_CALIBRATE_MASKING_OVERSCAN
Defines the position of the overscan in a movie
zone.
GO_MOVIE_COLLECTION
Displays a specific collection in the Movie
Collections view.
GO_MOVIE_COLLECTIONS
Displays the Movie Collections view.
GO_MOVIE_COVERS
Displays the Movie Covers view.
GO_MOVIE_LIST
Displays the Movie List view.
Kaleidescape Part No. 101-0005 Rev 8
Page 193
Kaleidescape System Control Protocol Reference Manual
GO_MOVIES
Changes the interface from a music view to a
movie view.
GO_MUSIC
Changes the interface from a movie view to a
music view.
GO_MUSIC_COLLECTION
Displays a specific collection in the Music
Collections view.
GO_MUSIC_COLLECTIONS
Displays the Music Collections view.
GO_MUSIC_COVERS
Displays the Music Covers view.
GO_MUSIC_LIST
Displays the Music List view.
GO_NOW_PLAYING
Displays the Now Playing view.
GO_PARENTAL_CONTROL
Displays the Parental Control view.
GO_SCREEN_SAVER
Displays the screen saver.
GO_SYSTEM_STATUS
Displays the System Status view.
GO_VAULT_SUMMARY
Displays the Vault Summary view
INTERMISSION_OFF
Removes the intermission screen and resumes
playback.
INTERMISSION_ON
Pauses playback and displays intermission
screen.
INTERMISSION_TOGGLE
Toggles intermission screen on and off.
KALEIDESCAPE_MENU_OFF
Removes Kaleidescape menu.
KALEIDESCAPE_MENU_ON
Displays Kaleidescape menu.
KALEIDESCAPE_MENU_TOGGLE
Toggles Kaleidescape menu on and off.
KEYBOARD_CHARACTER
Sends a single character to the onscreen display.
LEAVE_CHILD_MODE
Exits the child user interface and displays covers
view.
I
K
L
Kaleidescape Part No. 101-0005 Rev 8
Page 194
Kaleidescape System Control Protocol Reference Manual
LEAVE_IDLE_MODE
Takes Alto or Cinema One (2nd generation) out of
idle mode.
LEAVE_STANDBY
Takes component out of standby.
MUSIC_RANDOM_OFF
Turns off random playback for music.
MUSIC_RANDOM_ON
Turns on random playback for music.
MUSIC_RANDOM_TOGGLE
Toggles on/off random playback for music.
MUSIC_REPEAT_OFF
Turns off repeat playback for music.
MUSIC_REPEAT_ON
Turns on repeat playback for music.
MUSIC_REPEAT_TOGGLE
Toggles on/off repeat playback for music.
NEXT and PREVIOUS
NEXT command skips forward through chapters
or songs.
Page up/down commands
PAGE_DOWN
PAGE_DOWN_PRESS
PAGE_DOWN_RELEASE
PAGE_UP
PAGE_UP_PRESS
PAGE_UP_RELEASE
Used to navigate by pages on the onscreen
display.
Paging and skipping
PAGE_DOWN_OR_NEXT
PAGE_DOWN_OR_NEXT_PRESS
PAGE_DOWN_OR_NEXT_RELEASE
PAGE_DOWN_OR_PREVIOUS
PAGE_DOWN_OR_PREVIOUS_PRESS
PAGE_DOWN_OR_PREVIOUS_RELEASE
PAGE_UP_OR_NEXT
PAGE_UP_OR_NEXT_PRESS
PAGE_UP_OR_NEXT_RELEASE
PAGE_UP_OR_PREVIOUS
PAGE_UP_OR_PREVIOUS_PRESS
PAGE_UP_OR_PREVIOUS_RELEASE
Behaves like NEXT or PREVIOUS during movie
playback
Behaves like PAGE_UP or PAGE_DOWN in the user
interface.
PAUSE
Toggles pause.
M
N
P
Kaleidescape Part No. 101-0005 Rev 8
Page 195
Kaleidescape System Control Protocol Reference Manual
PERFORM_ACTION
Performs a specified action on a music handle.
PLAY
Begins playback of movies and music.
PLAY_FIRST_IN_MUSIC_COLLECTION
Plays the first item in a music collection.
PLAY_MUSIC_PRESET
Plays the music item associated with a preset
tag.
PLAY_NEXT_IN_MUSIC_COLLECTION
Plays the next item in the collection.
PLAY_PREVIOUS_IN_MUSIC_COLLECTION
Plays the item previous item in the collection.
PLAY_SCRIPT
Executes one of the scripts created in the
browser interface.
PLAYER_RESTART
Event message stating that a player has just
been restarted.
POSITION_SELECT
Transmits touch screen interaction to the
onscreen display.
PREVIOUS (see NEXT and PREVIOUS)
PREVIOUS command skips backward through
chapters or songs.
REPLAY
Skips back five seconds during movie playback.
SAFE_LEVEL
Changes parental control to highest level without
a passcode.
SCAN_FORWARD and SCAN_REVERSE
Cycles through fast-forward or fast-reverse.
SELECT
Selects the highlighted item in the onscreen
display.
SELECT_KALEIDESCAPE_INPUT
Selects the Kaleidescape input.
SEND_EVENT
Emits a user-defined event to controllers with
enabled event messages.
SEND_TO_SYSLOG
Posts a message to Kaleidescape System logs.
SET_CINEMASCAPE_MODE
Sets the CinemaScape mode. Useful when video
output is distributed to displays with different
aspect ratios.
R
S
Kaleidescape Part No. 101-0005 Rev 8
Page 196
Kaleidescape System Control Protocol Reference Manual
SET_CONTROLLED_ZONE
Changes the music zone controlled by the
onscreen display.
SET_FAVORITE_SCENE_END
Records a bookmark for the end of a scene.
SET_FAVORITE_SCENE_START
Records a bookmark for the start of a scene.
SET_FRIENDLY_NAME
Renames component or music zone.
SET_NETWORK_SETTINGS
Changes network settings.
SET_PROTOCOL_SETTINGS
Changes protocol syntax.
SET_SCREEN_MASK
Used to inform the Kaleidescape System that a
masking system is in use.
SET_STATUS_CUE_PERIOD
Sets the frequency of PLAY_STATUS and
MUSIC_PLAY_STATUS event messages.
SHOW_NAVIGATION_OVERLAY
During playback, opens the navigation option of
the movie overlay to the chapter/title navigation
page.
SHUFFLE_COVER_ART
Shuffles cover art on covers view.
START_CHAPTER_ENTRY
Displays a tab to enter chapter number to skip
directly to.
START_DISC_TITLE_ENTRY
Displays a tab to enter title number to skip
directly to a title.
START_SEND_NUMBER_TO_DISC_ENTRY
Displays a tab to enter a number key to send to a
DVD or Blu-ray Disc.
STATUS_AND_SETTINGS
During playback, toggles the display of the
navigation option of the movie overlay.
Otherwise, brings up the System Status page.
STOP
Stops playback.
STOP_OR_CANCEL
Behaves like STOP during movie playback or
when sent directly to a music zone.
Behaves like CANCEL in the user interface.
STOP_SCREEN_SAVER
Removes screen saver.
SUBTITLES_NEXT
Changes to the next subtitle track during
playback.
Kaleidescape Part No. 101-0005 Rev 8
Page 197
Kaleidescape System Control Protocol Reference Manual
U
USER_DEFINED_EVENT
Kaleidescape Part No. 101-0005 Rev 8
Custom event message that can be set to be
generated by scripts created in the browser
interface, sent by another controller, initiated by
an infrared volume command, or automatically
generated based on system events.
Page 198
Kaleidescape System Control Protocol Reference Manual
Status codes
Status Code
Name
Description
000
Success
Command was accepted and executed without
error.
001
Message too long
Command is larger than the maximum frame size of
1024 characters.
002
Message contains
invalid character
Character in the command is outside the supported
character set from decimal ASCII value 32 (space) to
decimal ASCII value 126 (tilde (~)).
003
Checksum error
Message checksum does not match calculated
checksum.
004
Invalid device
Device identifier is invalid.
005
Device unavailable
There is no component available with that device
identifier. Component can be turned off,
disconnected, or misconfigured; or the device
identifier in the message is incorrect.
006
Invalid zone syntax
Music zone identifier (the part of the device
identifier after the period) was not specified
correctly and must be two digits.
007
Invalid zone
Music zone identifier (the part of the device
identifier after the period) is invalid. Use
GET_NUM_ZONES to determine the range of valid
identities for a given component.
010
Invalid command
Command name is unknown to the target device
(possibly corrupted).
011
Invalid number of
parameters
Command body contains an incorrect number of
fields for the message name.
012
Invalid parameter
One or more values in the command field is invalid.
013
Device identifier
conflict
More than one Kaleidescape component in the
server group has the same routable (02–99) device
identifier in the command. Note that a message to
device ID 01 always goes to the directly connected
component.
014
Invalid sequence
number
Sequence number is invalid.
Kaleidescape Part No. 101-0005 Rev 8
Page 199
Kaleidescape System Control Protocol Reference Manual
Status Code
Name
015
Unused
016
Invalid passcode
Passcode required to access specified content is
invalid.
017
Invalid content handle
Content handle specified is not valid. This situation
occurs if content is deleted, or if the server with the
content is turned off.
018
Network error
Network connectivity issues exist between
Kaleidescape components. Check network
configuration.
019
Invalid serial syntax
Serial number specified for the device identifier is
improperly formatted.
020
Device is in standby
Component specified by the device identifier is
currently in standby and cannot respond to most
control protocol requests.
999
Other error
Undetermined error occurred or the command
cannot be handled because of hardware limitations.
Kaleidescape Part No. 101-0005 Rev 8
Description
Page 200
Kaleidescape System Control Protocol Reference Manual
Appendix B: Revision History
Changes in document revision 8
(Kaleidescape software version 6.1)
New commands
No new commands or messages have been added.
Other

Updated GET_DEVICE_TYPE_NAME, GET_FRIENDLY_NAME, and
SET_FRIENDLY_NAME for Alto.

Clarifications to differentiate between Cinema One (1st generation)
and Cinema One (2nd generation).
Changes in document revision 7
(Kaleidescape software version 6.0)
New commands
The following new commands have been added:
GET_SYSTEM_READINESS_STATE
LEAVE_IDLE_MODE
DISC_IN_TRAY_TOGGLE
The following new messages have been added:
SYSTEM_READINESS_STATE
GET_SCALE_MODE
Other

The protocol version as reported by GET_PROTOCOL is now 13.
Changes in document revision 6
(Kaleidescape software version 4.3)
New commands
The following new commands have been added:
GET_CINEMASCAPE_MODE
SET_CINEMASCAPE_MODE
GET_CINEMASCAPE_MASK
GET_AVAILABLE_DEVICES_BY_SERIAL_NUMBER
GET_SYSTEM_VERSION
Kaleidescape Part No. 101-0005 Rev 8
Page 201
Kaleidescape System Control Protocol Reference Manual
Other

The protocol version as reported by GET_PROTOCOL is now 11.

Updated GET_VIDEO_MODE with outputs for CinemaScape mode.
Changes in document revision 5
(Kaleidescape software version 4.1)
Commands have been reorganized depending on application. A command
usage section was added with brief explanations of how commands work
together. All parameters are defined with command examples.
New commands
The following new commands have been added:
SEND_TO_SYSLOG
GO_VAULT_SUMMARY
SEND_EVENT
TOGGLE_MUTE
VOLUME_UP
VOLUME_DOWN
VOLUME_UP_PRESS
VOLUME_UP_RELEASE
VOLUME_DOWN_PRESS
VOLUME_DOWN_RELEASE
GET_CHILD_MODE_STATE
ENTER_CHILD_MODE
LEAVE_CHILD_MODE
CHILD_PLAY
CHILD_STOP
CHILD_PAUSE
SHUFFLE_COVER_ART
CHILD_SELECT
CHILD_UP
CHILD_UP_PRESS
CHILD_UP_RELEASE
CHILD_DOWN
CHILD_DOWN_PRESS
CHILD_DOWN_RELEASE
CHILD_LEFT
CHILD_LEFT_PRESS
CHILD_LEFT_RELEASE
CHILD_RIGHT
CHILD_RIGHT_PRESS
CHILD_RIGHT_RELEASE
Commands removed
The following commands have been removed:
GET_ASPECT_RATIO
Kaleidescape Part No. 101-0005 Rev 8
GET_SQUEEZE_OF_4X3_ON_16X9
Page 202
Kaleidescape System Control Protocol Reference Manual
GO_DEMO
SET_SQUEEZE_OF_4X3_ON_16X9
GO_DEMO_LOOP
Other

Status codes have been added to Appendix A.

The BROWSE command has been expanded with examples.
Changes in document revision 4.6
(Kaleidescape software version 4.0)
New commands
The following new commands have been added:
GO_CALIBRATE_MASKING
RED_PRESS
GO_CALIBRATE_MASKING_OVERSCAN
RED_RELEASE
BLURAY_SPECIAL_STOP
BLUE_PRESS
BLURAY_POPUP_MENU_TOGGLE
BLUE_RELEASE
GET_MOVIE_MEDIA_TYPE
GREEN_PRESS
RED
GREEN_RELEASE
BLUE
YELLOW_PRESS
GREEN
YELLOW_RELEASE
YELLOW
Renamed commands
The following commands have been renamed to support both DVDs and
Blu-ray Discs in the Kaleidescape library. The old commands are still
supported, but are deprecated.
New Command
Deprecated Command
DISC_MENU
DVD_MENU
DISC_TOP_MENU
DVD_TOP_MENU
DISC_RESUME
DVD_RESUME
Kaleidescape Part No. 101-0005 Rev 8
Page 203
Kaleidescape System Control Protocol Reference Manual
START_DISC_TITLE_ENTRY
START_DVD_TITLE_ENTRY
START_SEND_NUMBER_TO_DISC_ENTRY START_SEND_NUMBER_TO_DVD_ENTRY
DISC_OR_KALEIDESCAPE_MENU
DVD_OR_KALEIDESCAPE_MENU
Other

Changed protocol version as reported by GET_PROTOCOL to 10.

Changed terminology based on introduction of M-Class players.

Updated GET_VIDEO_MODE with new status codes.
Changes in document revision 4.5
(Kaleidescape software version 3.7)
New commands
The following new commands have been added:
GET_NUM_ZONES
GET_DEVICE_TYPE_NAME
GET_DEVICE_POWER_STATE
New status codes
The following new status code was added:
Status
Code
Name
Description
020
Device is in
standby
The component specified by the device identifier
is currently in standby. Component does not
respond to most control protocol requests.
Other

The protocol version as reported by GET_PROTOCOL is now 09.

The device_type field in the response to GET_DEVICE_INFO has been
deprecated in favor of using GET_NUM_ZONES and
GET_DEVICE_TYPE_NAME.

Added filter and suggest flags to BROWSE command.

Added play action to BROWSE_RESULT responses.
Kaleidescape Part No. 101-0005 Rev 8
Page 204
Kaleidescape System Control Protocol Reference Manual

Numerous terminology changes with the introduction of the
Kaleidescape Cinema One.
Changes in document revision 4.4
(Kaleidescape software version 3.6)
New commands
The following new commands have been added:
GO_MOVIES_COLLECTION
GET_SCREEN_MASK2
GO_MUSIC_COLLECTION
SET_PROTOCOL_SETTINGS
Changes in document revision 4.3
(Kaleidescape software version 3.5)
New commands
The following new commands have been added:
GO_MOVIES
GET_MUSIC_PRESET_INFORMATION
GO_MUSIC
GET_PLAYING_MUSIC_INFORMATION
Changes in document revision 4.2
(Kaleidescape software version 3.4)
New commands
The following new commands have been added:
ASSIGN_PLAYING_PLAYING_MUSIC_TO_PRESET
PLAY_MUSIC_PRESET
PLAY_FIRST_IN_MUSIC_COLLECTION
PLAY_NEXT_IN_MUSIC_COLLECTION
PLAY_PREVIOUS_IN_MUSIC_COLLECTION
Kaleidescape Part No. 101-0005 Rev 8
Page 205
Kaleidescape System Control Protocol Reference Manual
Changes in document revision 4.1
(Kaleidescape software version 3.3)
New commands
The following new commands have been added:
GET_CONTROLLED_ZONE
SET_CONTROLLED_ZONE
Changes in document revision 4.0
New commands
The following new commands have been added:
BROWSE
PREVIOUS
GET_CONTENT_DETAILS
NEXT
PERFORM_ACTION
PAGE_UP_OR_NEXT
STOP_OR_CANCEL
PAGE_DOWN_OR_PREVIOUS
GET_MUSIC_TITLE
PAGE_UP_OR_PREVIOUS
GET_MUSIC_PLAY_STATUS
PAGE_DOWN_OR_NEXT
MUSIC_REPEAT_ON
MUSIC_RANDOM_ON
MUSIC_REPEAT_OFF
MUSIC_RANDOM_OFF
MUSIC_REPEAT_TOGGLE
MUSIC_RANDOM_TOGGLE
GET_USER_INPUT
GET_SYSTEM_CAPABILITIES
GO_MUSIC_LIST
GET_MUSIC_NOW_PLAYING_STATUS
GO_MUSIC_COVERS
GO_NOW_PLAYING
GO_MUSIC_COLLECTIONS
Deprecated commands
The following commands have been deprecated. Use the context-sensitive
page up/down commands instead (e.g., PAGE_UP_OR_NEXT).
Kaleidescape Part No. 101-0005 Rev 8
Page 206
Kaleidescape System Control Protocol Reference Manual
SKIP_FORWARD
SKIP_REVERSE
Other

The protocol version as reported by GET_PROTOCOL is now 05.

The device ID can be specified as a serial number preceded by a
pound sign.

The device ID can include a zone ID to control a specific music zone.
Changes in document revision 3.3.1
Commands that have been replaced
The following commands have been replaced. The GET_SCREEN_MASK and
GET_VIDEO_MODE commands provide more detailed information. New control
programs should use these commands instead.
ASPECT_RATIO
GET_ASPECT_RATIO
Other

The protocol version as reported by GET_PROTOCOL is now 04.

The instructions for configuring the control protocol device ID were
corrected.
Changes in document revision 3.3
(Kaleidescape software version 2.4)
New commands
The following new commands have been added:
GET_FRIENDLY_NAME
USER_DEFINED_EVENT
GET_VIDEO_MODE
USER_INPUT
PLAY_SCRIPT
VIDEO_MODE
SET_FRIENDLY_NAME
Kaleidescape Part No. 101-0005 Rev 8
Page 207
Kaleidescape System Control Protocol Reference Manual
Commands that have been replaced
The following commands have been replaced. The scripts feature provides
more flexibility in organizing and presenting automated sequences of
favorite scenes. New control programs should use the PLAY_SCRIPT
command instead.
GO_DEMO
GO_DEMO_LOOP
Changes in document revision 3.2
(Kaleidescape software version 2.2)
New commands
The following new command has been added:
POSITION_SELECT
Other

The protocol version as reported by GET_PROTOCOL is now 03.
Kaleidescape Part No. 101-0005 Rev 8
Page 208
Kaleidescape System Control Protocol Reference Manual
Changes in document revision 3.1
(Kaleidescape software version 2.1)
New commands
The following new commands have been added:
ANGLE_NEXT
DEFAULT_LEVEL
ANGLE_PREVIOUS
GET_CAMERA_ANGLE
START_SEND_NUMBER_TO_DVD_ENTRY
CAMERA_ANGLE
Other

The second value of the ASPECT_RATIO event command now
represents the aspect ratio of the video frame that the Kaleidescape
Movie Player outputs, rather than that of the frame in the DVD. These
values will be different if the Movie Player is performing internal
adaptation between 4:3 and 16:9. The new behavior is more useful as
it allows a controller to use the value directly to run an external
scaler or projector.

The GET_SQUEEZE_OF_4X3_ON_16X9 and
SET_SQUEEZE_OF_4X3_ON_16X9 commands are now deprecated, as
the Movie Player provides options for many more combinations of
media format and video aspect ratio, controllable through the
browser interface. Changing this setting has no effect.

The SQUEEZE_OF_4X3_ON_16X9 command description has been
removed. This event message is never sent by the Movie Player.
Changes in document revision 3.0.1
Corrections

The PLAY_STATUS command listed incorrect values for the mode field.
The values have been corrected

The UI_STATE command listed the screen field value 06 as “Screen
Saver”. This value is unused.
Changes in document revision 3.0
(Kaleidescape software version 2.0)
Changes

Control Protocol version incremented
Kaleidescape Part No. 101-0005 Rev 8
Page 209
Kaleidescape System Control Protocol Reference Manual
The control protocol version, as returned by the GET_PROTOCOL
command, is now 02 to reflect the added features of TCP/IP and
addressable devices.

Support for TCP/IP
The Kaleidescape device control protocol is now supported over
Ethernet using TCP/IP connections.

Support for addressable devices
A single controller connection, whether serial or TCP/IP, can now be
used to send commands to any device in a Kaleidescape System.
Device identifier 01 has been defined to target the device to which a
connection has been directly established; device identifiers above 01
can be assigned to individual devices.

ISO Latin-1 character set support
The control protocol now accepts unescaped, accented Latin-1
characters (those from decimal 128 to 255).

New Status Codes
The following new status codes were added:
Status
Code
Name
Description
005
Device
Unavailable
There is no device available with the indicated
device identifier. It can be turned off,
disconnected, or configured incorrectly; or the
device identifier in the command was
incorrect.
013
Device Identifier
Conflict
Multiple Kaleidescape components in the
server group share the routable (02–99) device
identifier in the command. Note that a
command to device ID 01 always goes to the
local device (the one with a direct connection).
014
Invalid sequence The sequence number is invalid.
number
999
Other error
Kaleidescape Part No. 101-0005 Rev 8
An undetermined error occurred or the request
could not be handled because of hardware
limitations.
Page 210
Kaleidescape System Control Protocol Reference Manual
New and deprecated commands
The following new commands have been added, in some cases replacing
existing commands with ambiguous responses:
New Command
Deprecated Command
GET_PLAYING_TITLE_NAME
GET_TITLE_NAME
GET_PROTOCOL
GET_PROTOCOL_VERSION
GET_TIME
GET_DATE_TIME
GO_COLLECTIONS
GO_FAVORITES
SET_SCREEN_MASK
SCREEN_MASK_USED
SET_STATUS_CUE_PERIOD
ENABLE_STATUS_CUES
SHOW_NAVIGATION_OVERLAY
Other
The following corrections and amendments have been made to this
document:

There is no NETWORK_SETTINGS event command; this is a response
only to a GET_NETWORK_SETTINGS request command.

The full-frame aspect ratio in the ASPECT_RATIO response now
indicates the aspect ratio of the video frame output by the Movie
Player, and not necessarily that encoded on the DVD itself. The two
aspect ratios can be different, as when the Movie Player is doing
internal scaling from 4:3 to 16:9 or vice versa.
Kaleidescape Part No. 101-0005 Rev 8
Page 211
Kaleidescape System Control Protocol Reference Manual
Notices
Document Title: Kaleidescape System Control Protocol Reference Manual
Document Number: 101-0005 Rev 8
Publication Date: May 2015
Permanent Link: www.kaleidescape.com/go/control-protocol
This document revision corresponds to Kaleidescape software version 6.1.
This document is for informational purposes only. Kaleidescape makes no
representations or warranties, express or implied, regarding the accuracy or
completeness of the information contained herein and Kaleidescape shall have no
obligation to provide updates to this information in the future.
Copyright © 2009–2015 Kaleidescape, Inc. All rights reserved. Kaleidescape and the
Kaleidescape logo are trademarks of Kaleidescape, Inc. and are registered in the
United States and certain other jurisdictions. CinemaScape is a trademark of
Kaleidescape, Inc. iPad and Mac are trademarks of Apple Inc. Other trademarks and
trade names are owned by third parties and may be registered in some
jurisdictions.