advertisement
kaleidescape
Programming AMX
Controllers
for a Kaleidescape System
May 2015
Contents
Who Should Use This Document
Getting Started with AMX
Overview of Kaleidescape Module and Templates
Touch Panels and Keypads
OSD control with a video window
OSD control without a video window
Standalone touch panel (SATP) control
Layout for touch panel user interface
Using Music Presets
Music items in the Kaleidescape System
Programming
Programming AMX Controllers for a Kaleidescape System
11
6
7
6
6
17
Page 2
Downloading and importing the Kaleidescape module for AMX
Configuring the Kaleidescape Multiple Panel Include file
Command routing using Control Protocol Device IDs (CPDID)
Command routing using serial number addressing
Calibrating the touch interface
Setting the Controlled Zone from AMX
Controlling multiple players with multiple touch panels
Controlling a movie zone with both SATP and OSD control
Controlling the same zone with multiple virtual devices 33
Power control for the Movie Player (KPLAYER-2000, KPLAYER-2500)
Power control for the 1080p Player, 1080p Mini Player, Music Player, and
Power control for the Cinema One (1
Power control for the Cinema One (2
Power control for the M-Class players nd
Sample Installation
Assigning a static IP address for the 1U Server
36
Programming AMX Controllers for a Kaleidescape System Page 3
Setting the M500 Player and Music Player CPDIDs
Configuring the Kaleidescape Multiple Panel Include file
Enabling volume control from a Kaleidescape controller 43
Troubleshooting
Music is not changing (SATP controlled music zone)
Cannot make selections with a touch panel with a video window
No video on the touch panel with a video window
Video on the touch panel is black and white
Appendix A: Screen Shots for UI Layouts
OSD control with a video window — Music
OSD control with a video window — Movies
OSD control without a video window — Music
OSD control without a video window — Movies
Appendix B: RS-232 Port Configuration and Cable Pinout
M500 Player, Music Player and Cinema One (1 st generation)
52
57
49
Programming AMX Controllers for a Kaleidescape System Page 4
Appendix C: OSD Module v8.3 Channel Lineup
Appendix D: SATP Module v8.3 Channel Lineup
Appendix E: Keypad Module v8.3 Channel Lineup
Appendix F: Module v8.3 Level Lineup
Appendix G: Module v8.3 Commands
Appendix H: Revision History
Programming AMX Controllers for a Kaleidescape System
63
64
66
72
58
60
Page 5
Who Should Use This Document
This document explains how to configure an AMX control system for a
Kaleidescape System. Kaleidescape provides a module specifically designed for controlling Kaleidescape Systems using AMX controllers.
The installer must be familiar with AMX NetLinx Studio, the NetLinx programming language, AMX Touch Panel Design (TPDesign4) software, and Kaleidescape products.
This document revision corresponds to kOS version 6.1 and Kaleidescape AMX module version 8.4.0.
Getting Started with AMX
Kaleidescape provides both a control module and touch panel templates for AMX controllers.
Before beginning a project or revising an existing program for an AMX system, the
Kaleidescape module and templates for AMX controllers must be downloaded and
and templates.
For information on installing and configuring the Kaleidescape System, refer to the
Kaleidescape Installation Guide ( www.kaleidescape.com/go/install ) on the
Kaleidescape website ( www.kaleidescape.com
).
Overview of Kaleidescape Module and
Templates
Kaleidescape provides a single control module with three methods for using an
AMX controller:
Onscreen display (OSD) interface
Standalone touch panel (SATP) interface
Keypad controls
The Kaleidescape module is designed to control all zones in the Kaleidescape
System via a single connection.
Touch panel controls are an integral part of the Kaleidescape experience.
Kaleidescape touch panel control templates can be incorporated into AMX projects without major modifications. These templates are complex and any modification can remove important functions or introduce bugs.
Programming AMX Controllers for a Kaleidescape System Page 6
Touch Panels and Keypads
Touch panels
The Kaleidescape module uses the full screen on a touch panel and incorporates a large video window to provide complete consistency even when a separate video display is unavailable. Only the buttons required for a particular feature are displayed. For example, the keyboard is displayed only when alphanumeric input is required. After text entry is complete, the keyboard vanishes. Pop-up windows are used sparingly to simplify the user experience and to manage secondary and tertiary controls. The upper right corner of the layout is intentionally left open so a programmer can add buttons to tie into other whole-house sources and controls.
Touch panel variations
Kaleidescape offers three types of touch panel controls.
OSD control WITH a video window
OSD control WITHOUT a video window
Standalone touch panel (SATP)
OSD with a video window provides the richest user experience and is the
Kaleidescape preferred implementation. When choosing which variation to use for a particular installation, consider whether or not a video display is present, what the technical capabilities of the touch panel are, and whether a movie or music zone is to be controlled. Most installations need to implement several touch panel variations to provide quality control in every zone.
Touch panel variations are packaged separately and available as downloadable TP4 and TPD files. Each file is constructed as a single page with sub-pages to manage secondary and tertiary controls within each variation. The appropriate Kaleidescape module must also be downloaded.
The touch panel variations in Figures 1 through 3 are screenshots taken from the
1024 × 768 pixel template for a 15-inch touch panel. Refer to Appendix A: Screen
Shots for UI Layouts on page 52 for more sample screen shots of all three
variations.
OSD control with a video window
The OSD Video template displays the Kaleidescape System OSD on the touch panel simplifying user operation. Kaleidescape strongly recommends that installers use this interface configuration to deliver a superior user experience for both movies and music.
This solution has the following requirements:
A touch panel that supports a video window
A Kaleidescape movie zone to provide video output to the panel
Programming AMX Controllers for a Kaleidescape System Page 7
Figure 1: OSD control with a video window
OSD control without a video window
Instead of the video window, the OSD No Video template delivers text-based details for the content currently selected in the OSD. The touch panel replicates the movie details page or album details page for the selected movie or album in any
OSD view. Use this variation only when the touch panel cannot support a video window or when the touch panel has too little area to display the OSD video image clearly.
On Premiere line systems, Kaleidescape provides control panels in the
Kaleidescape browser interface identical to this OSD touch panel.
This solution has the following requirements:
A Kaleidescape movie zone
A video display in the same room as the touch panel
Figure 2: OSD control without a video window
Programming AMX Controllers for a Kaleidescape System Page 8
Standalone touch panel (SATP) control
The standalone touch panel (SATP) template provides control for music on touch panels in rooms without video displays, like hallways, dining rooms, and patios, or touch panels with display areas too small to support a large video window. This simple, text-based interface is a powerful browsing tool, ideal for small LCD displays (320 × 240 pixels). Although this configuration is an effective way to browse a library and make selections, the experience is not as rich or as powerful as the previous two touch panel variations.
On Premiere line systems, Kaleidescape provides control panels in the
Kaleidescape browser interface identical to this standalone touch panel.
This solution has the following requirement:
A Kaleidescape music zone
Figure 3: Standalone touch panel (SATP) control
Programming AMX Controllers for a Kaleidescape System Page 9
Layout for touch panel user interface
Figure 4 outlines the organization of the Kaleidescape touch panel user interface.
This layout complements the Kaleidescape OSD and provides an intuitive method to control the Kaleidescape System. Using a consistent implementation of this grid layout across all panel sizes and control platforms improves overall system usability.
Figure 4: Layout for touch panel user interface
Selecting the Kaleidescape logo accesses the Kaleidescape menu.
Programmers can integrate whole-house controls with the Volume buttons (located in the upper right corner).
The secondary Kaleidescape navigation area (located along the left side), has buttons for selecting the movie or music views: List , Covers , and Collections .
The Now Playing information (located in the lower left corner) is visible whenever movies or music are playing.
Playback transports, directional arrows, pop-ups and other view-specific
Kaleidescape controls are on the lower section of the screen.
Programming AMX Controllers for a Kaleidescape System Page 10
Keypad control
Keypad commands provide a method for controlling music playback from any zone on any Kaleidescape player without requiring control feedback. Although keypad commands were created for keypads, these commands can use any button-like input, a button on a keypad or touch panel, a motion sensor, or any other input device.
Kaleidescape provides two different types of keypad commands.
Presets
Music collections
With the keypad presets commands, a keypad can be programmed to play a predetermined music item that can be easily changed by the user.
With the music collections commands, a keypad can be programmed so users can cycle through music items within a music collection.
Using Music Presets
A preset ties a music item in the Kaleidescape System to a keypad button or other input trigger. Any music item can be saved as a preset, and there is no limit to the number of presets that can be used in a system. The same music presets can be used throughout an installation, or each zone can have a separate set of presets.
Presets can be set in any manner useful for the installation. For example, a button designated My Music can be set in the family room that plays the same music preset as any other My Music button in the installation.
Alternatively, every keypad in an installation can have unique presets assigned to each individual button. In this scenario, setting a music preset to the first button in the family room does not affect buttons on the kitchen keypad; however, these approaches can be combined. A set of rooms can share a set of presets. For example, the breakfast nook, hallway, and entryway can all share one set of presets, while each child’s room has unique presets.
Programming AMX Controllers for a Kaleidescape System Page 11
Music items in the Kaleidescape System
The Kaleidescape System treats several different music items as playable. Table 1 defines these items and the effect of the random and repeat settings on each item.
Table 1: Music items
Item Description Example Random Repeat
Single track
Album
Mix album
Artist
Any single track on any album
Hey Bulldog by the Beatles
Only the single track plays
Can be repeated
Any single album Abbey Road by the Beatles
All music tracks performed or composed by the artist, no matter what album the track is on
The Beatles
Can be played randomly
User-defined album that can contain any tracks or albums
My Favorite Jazz Can be played randomly
Always random
Can be repeated
Can be repeated
Always repeats
Classical
Composer
All music tracks composed by the artist, no matter what album the track is on
Maurice Ravel Always random
Always repeats
Classical work Single classical work, incorporates all tracks into a single music item
Piano Concerto in
G Major by
Maurice Ravel
Can be played randomly
User-defined collection
All tracks from any albums, mix albums, artists, genres, or classical composers in a user-defined collection
My favorites Always random
Can be repeated
Always repeats
Genre
All music
All music tracks in the genre
All music on all albums
Jazz Always random
Always random
Always repeats
Always repeats
Programming AMX Controllers for a Kaleidescape System Page 12
Random and repeat
In the Kaleidescape System, some music items always play in random order and repeat. These music items include any genre, artist, composer, user-defined collection, and all music.
When any of these items are saved to a preset and played, the item plays in random order starting with a random track. If the preset is selected again, a new random track plays. This behavior removes the requirement to use a next track button to skip a track within the selection. For example, if a preset button is programmed to play the Jazz genre, every time that button is pressed, a randomly selected Jazz track starts playing. If the user does not care for the current track, the user can simply press the button again to hear a different track. A Beatles button, a
Mozart button, a My Favorites button, or an All Music button behaves the same way.
The most recent random and repeat settings in a Kaleidescape zone control how albums, mix albums, and single tracks play from a preset. To control how these items are played back, the random and repeat settings of the zone can be changed with the SATP interface, the OSD interface, or through the programming interface.
Tags and the Preset ID
Most radio tuners have presets, typically using numbered buttons to define each one. For instance, Button 1 can be WKRP, Button 2 can be WNPR, and so forth. The
Kaleidescape System uses a text tag instead of a physical button. Each preset is defined by a tag associated with a music item in a system-wide table.
To simplify creating presets, the Kaleidescape module uses a Preset ID parameter to generate tags. A Preset ID can refer to a location or function. For instance, a
Preset ID like Kitchen can be used to create presets for the kitchen music zone. A module with a Preset ID like Country can be used to program the same button on all keypads in the installation to play Country music. For example, a Preset ID named My Favorites can be used to create a My Favorites music button on multiple keypads. This means the user can set the type of music the button plays. The user can set the preset to play the genre Jazz, the sub-genre Dixieland, or even a favorite mix album.
The Preset ID is appended with the module preset channel number, to create the final tag used by the module. In other words, if the module is programmed with the
Preset ID Kitchen, the module’s first preset channel uses the tag Kitchen1, the second preset input uses Kitchen2 and so forth. For two virtual devices to share the same presets, simply give the virtual devices the same Preset ID. To create separate presets for each virtual device, assign different Preset IDs.
Tags are currently not visible to end users, but might be displayed on the onscreen display or browser interface someday, so be sure to name Preset ID appropriately.
Programming AMX Controllers for a Kaleidescape System Page 13
Zones
Presets are shared between all zones on all players in the system. A preset saved on one music zone can be used anywhere in the system. The zone number must be defined when setting up the virtual device. A single virtual device can control both
an SATP interface as well as a set of keypads. See Programming on page 17 for
more information.
Saving presets
To save a preset, the music item must be played first from any control interface — through OSD control, SATP control, or the control panels available on the browser interface. Once the music is playing, press and hold a programmed preset button for a few seconds to set the preset. The playback will mute briefly to acknowledge that the preset has been saved.
Any discrete music item can be saved as a preset. An individual track, album, mix album, genre, artist, classical work, classical composer, user-defined collection, or all music can be saved to a preset.
If more than one item is set to play (for example, three albums are queued up in
Now Playing ), only the item currently playing is saved to the preset. There is no need to re-save presets when new content is added to a genre, artist, classical composer, user-defined collection, or mix album. The system plays the entire contents each time recalled, regardless of what songs were present when the preset was saved.
Preset browsing
The module also provides the ability to browse through the presets in numerical order. There are three controls provided for this activity: first, next, and previous. If a specific preset has not been defined, that preset is skipped and the next defined preset is activated.
To stop the next and previous commands at a certain maximum preset index, send the Max Preset command to the device to indicate the maximum preset to cycle through. The First, Next, and Previous commands can be activated through channels 140 , 141 , and 142 , respectively.
Preset feedback
Each preset in the module is associated with a descriptive text label identifying what is saved to that preset. For example, if the user saves the genre Jazz to a preset, then Jazz becomes the preset label. If the user saves music by Queen or the
Alice in Chains album Facelift to a preset, then the preset label becomes Queen or
Alice in Chains – Facelift , respectively. These labels can be used on keypad character displays or touch panels to identify the preset value of buttons.
The module also reports information about the currently selected music entity using the Now Playing Item output. If a preset is currently playing, the label associated with that preset is displayed.
Programming AMX Controllers for a Kaleidescape System Page 14
Collection browsing
A set of buttons can be programmed to browse through the items in a music collection. Any music collection (Albums by Artist, Albums by Title, Artists, Genres,
Mix Albums, Classical Composers, Classical Works, New, or any user-defined collection) can be specified. The module provides three controls for browsing: first, next, and previous. These controls step through the collection in the order displayed on the OSD.
Each virtual device passed to the module can have three sets of buttons for browsing collections as shown in the following table.
Table 2: Virtual device button sets
Control Command Collection 1
Channels
Collection 2
Channels
First 131 134
Collection 3
Channels
137
Next 132 135 138
Previous 133 136 139
Use send commands to tell the module which collection to step through when one of the collection channels is triggered. The command COLLECTION 1 Albums enables channels 131 , 132, and 133 to step through the Albums collection.
The music collections currently available in the Kaleidescape System are described in the following table.
Table 3: Current Kaleidescape music collections
Item Description (of system contents)
Albums by Artist All albums
Albums by Title
Artists
Classical composers
Classical works
Genres
All classical works
Top 40 genres
Alphabetical Sort Order
Work name
Genre name
First Item
Artist name, then album title
All music
Album name All music All albums
All artists Artist name
All classical composers Composer name
All music
All classical music
All classical music
All music
Mix Albums All user-defined mix albums
Mix album name
Programming AMX Controllers for a Kaleidescape System
First mix album
Page 15
Item
New
User-defined
Description (of system contents)
Alphabetical Sort Order
Most recently imported albums. The time period for considering an album new can be set in the browser interface.
Album name
Collection of any music items defined by the user
Item name
First Item
First new album
All in this collection
As more music collections are added to the Kaleidescape System, the keypad commands are also able to browse the collections.
Example
If the user wants to step through every album in the Kaleidescape System, define a set of buttons to step through the Albums by Artist collection. When the user presses the First Album button, all music plays, this is because the first item on the
Albums by Artist collection is All Music . If the user subsequently presses the Next button, the first album by the first artist plays, since the Album Collection is sorted alphabetically by artist name.
The API controls in the keypad music collections operate independently from other methods for choosing music to play. When a user presses the next button for a collection, the next item relative to the last item played from the keypad always plays. For example, the system has three artists, ABBA, The Beatles, and The Cars.
While listening to ABBA, the user presses the Next Artist button on the keypad to skip from ABBA to The Beatles. A little while later, the user selects ABBA from the onscreen display. The next time the user presses Next Artist on the keypad, The Cars starts playing, even though the user might expect The Beatles to start playing.
Programming AMX Controllers for a Kaleidescape System Page 16
Programming
Kaleidescape command protocol
Kaleidescape System control is based on bidirectional ASCII string commands. All
Kaleidescape components respond to commands from an AMX controller and provide feedback in ASCII format. Although understanding the details of
Kaleidescape command protocol is not required for AMX programming, it is important to understand how these commands are routed in the Kaleidescape
System.
The first field in the command string identifies the Kaleidescape component to which the command is being sent or from which feedback is being received. This device field can have two variables that also appear in module settings and settings made in the browser interface.
The first variable is the device id, which identifies the Kaleidescape component. On Premiere line systems, this is usually the Control Protocol
Device ID(CPDID) or may also be the serial number of the component. Alto and Cinema One (2 nd generation) do not support the use of CPDIDs and must always use the serial number of the component.
The second variable is Zone ID , which identifies the movie or music zone to be controlled.
Note: There are a few commands intended for a 1U, 3U or 5U Server, but these commands are generally limited to IP address recovery commands, and are not useful for the AMX system.
Comment in
In the following instructions, comment in means to remove the two slashes.
//send_string 0,
(This line is commented out) send_string 0,
(This line is commented in)
Device ID
Every command and response begins with a device ID which can be a Control
Protocol Device ID (CPDID) or the serial number of the component to be controlled.
The device ID is used to determine which Kaleidescape component the command is intended for and to indicate which component a message was generated by.
All Kaleidescape components, including Alto and Cinema One (2 nd generation), have a default CPDID set to None (01 in the ASCII command). This default CPDID will always control the Kaleidescape component connected directly to the controller regardless of the CPDID set on the component.
When a value other than the default CPDID is used (either an assigned CPDID or the component serial number), the command is routed through the connected
Kaleidescape component to the Kaleidescape component with the matching CPDID or serial number. The Kaleidescape module verifies receipt of a valid response from
Programming AMX Controllers for a Kaleidescape System Page 17
the targeted zone by comparing the device ID of the response and the device IDs set in the program.
If CPDIDs are used for command routing each Premiere line component being controlled must have a unique CPDID set in the browser interface.
String examples:
If CPDID 02 is used as the device ID, the PLAY command has the following format.
'02/1/PLAY:',$0D
If the Kaleidescape component’s serial number is used as the device ID, the PLAY command has the following format.
'#020600007410/1/PLAY:',$0D
The device ID is set in the program by sending the device ID to the virtual device that will control the corresponding movie or music zone using send_command. For example: send_command KPLAYER1 'ID 02' send_command KPLAYER2 'ID #020600007410'
The Kaleidescape module is designed to be used with command routing.
The examples in this manual use CPDIDs however they can be changed to use serial number IDs by replacing the CPDID with a hash (#) followed by the target component’s serial number. The serial number can be padded with zeroes to a maximum of 12 characters but it is not required.
Kaleidescape music zones
Some Kaleidescape components have more than one music zone. For example, the
Kaleidescape Music Player incorporates four music zone outputs, each of which must be controlled independently.
To control the four music zones, the device field includes a Zone ID (01–04) that identifies the music zone to which the command is targeted. Each music zone behaves as a separate endpoint. Commands that target Zone ID 01 do not usually affect Zone ID 02 and so on. (Power on/off commands affect all four zones.)
For example, if CPDID 06 is assigned to a Music Player, the PLAY command intended for Zone ID 03 has the following format.
'06.03/1/PLAY:',$0D
Music commands addressed to the single zone of a M500 Player always use
Zone ID 01.
Send commands (see configuration instructions on page 24) are used to tell the
Kaleidescape module which virtual devices control which zones.
Programming AMX Controllers for a Kaleidescape System Page 18
Kaleidescape module
Kaleidescape provides a single control module for either standalone touch panel
(SATP), onscreen display (OSD), or keypad controls. The Kaleidescape module is designed to control all zones in the Kaleidescape System via a single connection.
Each playback zone is represented by a virtual device in the array passed to the module. To configure the zone controlled by each virtual device, use send commands in the Kaleidescape Multiple Panel Include file.
These virtual devices act as actual devices and use the standard AMX channel lineup. For example, if channel 1 is pulsed on the virtual device, the PLAY command is issued to the corresponding zone. Channel 2 sends Stop, channel 3 sends Pause, and so forth. This feature provides a great degree of flexibility for the programmer.
A touch panel can trigger channels and receive feedback via the virtual device.
A one-way remote can use the virtual device as though the virtual device were an IR device.
Feedback events from the virtual device can trigger other actions.
Downloading and importing the Kaleidescape module for AMX
Always download the latest module before starting a new program or modifying an old one. Use the following steps to download and import the Kaleidescape module and templates for the AMX system.
1. Download the Kaleidescape module and templates ZIP file ( Download all
AMX files ) from the Support page on the Kaleidescape website
( www.kaleidescape.com/support ) and extract the files.
2. To use the Kaleidescape module in an existing program, copy the following files into the project folder:
Kaleidescape.axs
Kaleidescape.tko
Kaleidescape.tkn
Kaleidescape Multiple Panel Include.axi
3. In the main program, define the port for the AMX system to use to connect to the Kaleidescape System. If using TCP/IP communications, define a local port for the module to use. Verify that the port is not already used somewhere else in the program.
DEFINE_DEVICE
KALEIDESCAPE_PORT = 0:4:0
4. If using RS-232 communications, define the RS-232 port connected to the
Kaleidescape component.
DEFINE_DEVICE
KALEIDESCAPE_PORT = 5001:1:0
Programming AMX Controllers for a Kaleidescape System Page 19
5. Add a line to the program to call the Kaleidescape Multiple Panel Include file.
INCLUDE 'Kaleidescape Multiple Panel Include'
The module is configured with passed parameters and send_command commands listed in the Kaleidescape Multiple Panel Include file.
Configuring the Kaleidescape Multiple Panel Include file
Use the following steps to configure the Kaleidescape Multiple Panel Include file.
1. Define virtual devices for all the zones to be controlled.
A virtual device is usually required for each zone but it is not necessary to configure unused zones.
Verify again that the virtual devices used are not used anywhere else in the program. Virtual devices that use ports other than the first (i.e., 33001:2:0 or 33001:3:0 ) do not always behave properly when used in an array as required by the Kaleidescape module.
AMX recommends using virtual devices over 33000:1:0 .
2. Modify the KTouchPanels array to include the touch panels that will be controlling the zones in the Kaleidescape System.
3. Modify the controlledKplayers array to define which touch panel controls which virtual device.
4. In the Set up interface section, modify or add send_command commands to tell each virtual device which zone to control.
5. Instruct the module how to connect to the system by sending the IP command to any ONE virtual device or by sending the RS-232 configuration
(baud rate) to any ONE virtual device.
6. For each defined SATP virtual device, set how many lines to use on the interface.
7. For any keypad control, set the Preset ID or music collection to browse through.
8. For the touch panels to change the zone controlled at runtime, either
comment in the appropriate code or create the necessary code to modify the controlledKplayers array at runtime.
9. Save work, compile, and load the program to the processor.
Module version number
The module version number describes changes both internally and in the interface.
The version number of a module is presented in the following format:
(major).(minor).(patch)
The major version number changes indicate major changes, such as the removal or addition of levels or channels to the module, and changes to the user interface.
Programming AMX Controllers for a Kaleidescape System Page 20
The minor version number changes indicate changes to the internal behavior of the module or minor modifications to the interface. Changes in the minor version number indicate that the program might have to be modified when the program is updated.
Changes to the patch number indicate that there are no outward changes to the module and updating the module should not require any program changes.
Example
If module version 9.0.0 is released and the version currently in use is 8.0.0 or earlier, changes to the program and touch panels may be required. If version 9.0.1 were released, upgrading from 9.0.0 is easy and there should be no outward changes. If version 9.1.0 were released, updating from either 9.0.0 or 9.0.1 might require program changes.
Kaleidescape strives to minimize interface changes. The majority of the changes are new channels or slight functional changes to existing channels.
Updating the module
Updating is easy when the only difference between the old module and the new module is the patch number. Simply copy the new module over the old one (AXS,
TKO, and TKN files), open the program and recompile.
Changes in the major or minor revision number are likely to have interface changes that affect the existing program and these changes might have to be reconciled in the program — probably in the Kaleidescape Multiple Panel Include file. The simplest approach might be to replace the file with the updated file, and simply copy over the configuration changes.
Verifying the module version
To verify the module version on a running system, open a console port, turn messages on by typing msg on. Use a send_command to send the version command to any defined virtual device to retrieve the module version number.
Example
> msg on
Extended diagnostic information messages turned on.
> send_command KPLAYER1, 'version'
Kaleidescape Player AMX Module v8.4.0 (SATP+OSD)
Connection methods
All Kaleidescape players can be controlled via a TCP/IP connection over Ethernet — some can also be controlled via a RS-232 connection. The Kaleidescape Cinema
One (2 nd generation), Kaleidescape Alto, and Kaleidescape Mini Players such as the
KPLAYER-300 and KPLAYER-M300 do not have an RS-232 port and must be controlled via IR or TCP/IP connection. In an AMX control system, the Kaleidescape module does not distinguish between these two connection methods; the protocol is identical.
Programming AMX Controllers for a Kaleidescape System Page 21
Kaleidescape recommends using TCP/IP over Ethernet for control connection in most cases. TCP/IP over Ethernet offers several advantages over RS-232:
Very high bandwidth compared to RS-232
Error detection and correction
Standard Cat5/5e/6 cable and pinout (simple standard termination) usage
Longer cable runs possible
Only a single network port required
No extra COM port cards needed
Bandwidth can be a key issue, especially in multi-zone systems. Text-based feedback from several zones can cause noticeable response latency over an RS-232 connection.
There are some installations that require RS-232. If controlling the power state of an older Movie Player is an issue, RS-232 might be the only option. M-Class players, the 1080p Player, 1080p Mini Player, Movie Player 2, Music Player, Cinema
One, and Alto can be powered on from TCP/IP over Ethernet commands. For more
information on controlling power states, see Power control on page 33.
The AMX module must be passed to a device for communication. This device can be a physical RS-232 port (for example, 5001:1:0 ), or a virtual master port (for example, 0:4:0 ). The module interprets a nonzero device number as an RS-232 port, and a zero device number as a master port for TCP/IP communications. If the communication device is an RS-232 port, the module sets the baud rate to match the default baud rate of the Kaleidescape player. If the program sends a new baud setting to any of the virtual devices, the module uses that new baud setting instead.
The module manages the IP connection through a master port, establishing the connection and attempting to restore the connection if the connection fails.
Note: Connection settings are sent through any ONE of the defined virtual devices. This device only needs to be set ONCE for the entire module, not once per virtual device.
Inform the module that the RS-232 connection is using a nonstandard baud rate by using the following command. send_command KPLAYER1, 'SET BAUD 38400,N,8,1'
The module uses this string when the port comes online. Any command that starts with SET BAUD is recognized as a port instruction. Do NOT send this command to more than one virtual device. Send only once for each module.
The module can also be informed which IP address to use for connection with the following command. send_command KPLAYER1, 'IP 192.168.1.60'
Programming AMX Controllers for a Kaleidescape System Page 22
Command routing
Command routing allows control of multiple Kaleidescape players with only one connection to the controller. This can be either a TCP/IP or an RS-232 connection to almost any player or server in the system.
Although multiple controllers can make multiple connections to Kaleidescape players, it is usually unnecessary to define more than a single connection to the
Kaleidescape System.
Command routing limits the options for managing the power states of some
Kaleidescape components, for more information on controlling power states, see
Although the module can connect to any player to control any or all zones in the system, control of those zones is lost if that player is turned off. To avoid this potential problem, connect directly to a server because servers generally stay powered on all the time. If there are multiple servers in the system, the additional servers can be ignored.
Command routing using Control Protocol Device IDs (CPDID)
If the player to be controlled will be connected directly to the AMX controller, either by RS-232 or TCP/IP, routing of commands is not needed and the default Control
Protocol Device ID, ‘01’, should be used.
Setting the Control Protocol Device ID (CPDID)
CPDIDs are set for Kaleidescape Premiere line components in the component settings pages of the browser interface. Each virtual device must also be set with the same CPDID as the component being controlled. Valid CPDID numbers for command routing range from 02 to 99. CPDID 01 (None) is reserved for the device directly connected to the controller. Set the CPDID to None in the browser interface if the device is not using command routing. Kaleidescape players with a CPDID
None can only be controlled via the RS-232 port or the TCP/IP address.
For example, if using command routing via an RS-232 connection to a 3U Server, the server responds to requests sent to CPDID 01 (None) and routes commands with other CPDIDs to the components with assigned unique CPDIDs.
CPDIDs are not a feature of Kaleidescape Alto or Kaleidescape Cinema One (2 nd generation).
Use the following steps to assign a CPDID to a Premiere line component.
1. Open the browser interface using: http://my-kaleidescape/ (Windows) http://my-kaleidescape.local/ (Mac)
2. Click on the SETTINGS tab.
3. Click on Components in the second row of tabs.
Programming AMX Controllers for a Kaleidescape System Page 23
4. Click on the Settings button for the player.
Figure 5: Component Settings button
5. Select the CONTROL tab from the Settings page.
6. Select the Control Protocol Device ID (None, 02 through 99) from the dropdown menu.
Select None only if command routing is NOT used for this device as shown in the following figure.
Figure 6: Control tab
Click on Settings
Select None
7. Click OK . The component does not have to be rebooted.
Configuring the Kaleidescape Multiple Panel Include file when using CPDID addressing
In the example illustrated in Figure 7, an AMX controller is connected to a 1U
Server either by Ethernet or the RS-232 control port. Unique CPDIDs are assigned
(in the installer pages of the browser interface) to four M500 Players and one Music
Player. The Music Player has four music zones controlled independently by adding
Zone IDs. Because the 1U Server connected to the AMX controller is the local device, the server uses the default CPDID None. The second 1U Server does not have to be controlled, so the CPDID is left at the default CPDID None.
After CPDIDs for M500 Players have been defined, use the ID command to associate the CPDIDs with the corresponding virtual devices.
Programming AMX Controllers for a Kaleidescape System Page 24
Figure 7: CPDID addressing example
Within DEFINE_START, set each virtual device to control an individual movie or music zone, and set another virtual device to control the family room M500 Player via SATP: send_command KPLAYER1, 'ID 02' //Theater send_command KPLAYER2, 'ID 03' //Kitchen send_command KPLAYER3, 'ID 04' //Master Bedroom send_command KPLAYER4, 'ID 05' //Family room OSD send_command KPLAYER5, 'ID 05.01' //Family room SATP send_command KPLAYER6, 'ID 06.01' //Music Player, Zone 1 send_command KPLAYER7, 'ID 06.02' //Music Player, Zone 2 send_command KPLAYER8, 'ID 06.03' //Music Player, Zone 3 send_command KPLAYER9, 'ID 06.04' //Music Player, Zone 4
To direct the M500 Player to play the selected movie in the Theater, pulse
[KPLAYER1,1] and the module sends the text command below to the 1U Server:
'02/1/PLAY:',$0D
The 1U Server receives the command and routes the command to the component with CPDID 02 via TCP/IP over Ethernet. The response is directed through the 1U
Server back to the virtual device with the CPDID 02.
For the Music Player, the module sends every command with the CPDID followed by the Zone ID. This identifies each music zone as a separate, routable endpoint.
To direct the Music Player to play the selected music in music zone 3 , pulse
[KPLAYER8,1] and the SATP module sends the following text command.
'06.03/1/PLAY:',$0D
Programming AMX Controllers for a Kaleidescape System Page 25
The 1U Server receives the command and routes the command to the Music Player
(CPDID 06) over Ethernet. The Music Player identifies the Zone ID of the command and plays back music in zone 3 . The response is directed through the 1U Server and the module sends feedback through the KPLAYER8 virtual device.
Command routing using serial number addressing
Every Kaleidescape component has a twelve-character alphanumeric serial number. The serial number of a component can be found on the Components page of the browser interface or the back of most components. The serial number is located on the bottom of mini players. The serial number of movie players can also be found on the Systems Summary page of the Onscreen Display.
Configuring the Kaleidescape Multiple Panel Include file when using serial number addressing
In the example illustrated in figure 8, an AMX controller is connected to a
Kaleidescape Cinema One (2 nd generation) by Ethernet. Because the AMX controller is connected directly to the first Cinema One, this Cinema One uses the default
CPDID None. The AMX controller will use serial number addressing to communicate with the second Cinema One. Each Cinema One has one music zone controlled independently by adding Zone IDs.
Figure 8: Serial Number routing example
Within DEFINE_START, set each virtual device to control an individual movie or music zone: send_command KPLAYER1, 'ID #050300000201' //Family room send_command KPLAYER2, 'ID #050300000130' //Theater send_command KPLAYER5, 'ID #050300000201.01' //Family room SATP send_command KPLAYER6, 'ID #050300000130.01' //Theater SATP
SATP setup
The module checks the ID command for a Zone ID to determine if a virtual device should be handled as an SATP command instead of an OSD command. If the Zone
ID is set (nonzero), the command is assumed to be an SATP command. send_command KPLAYER6, 'ID 06.01'//Music Player, Zone 1
Programming AMX Controllers for a Kaleidescape System Page 26
The number of lines to be displayed on the touch panel must be defined for every
SATP virtual device. Define the number of lines using a send_command to the virtual device. send_command KPLAYER6, 'lines 16'
The module allocates 16 lines for the touch panel. The lines command can be resent at any time, which is helpful if the same virtual device is accessed by different sized panels.
Keypad Setup
Keypad controls piggyback on the SATP virtual devices. The ID command for keypad controls uses the same syntax as ID commands for SATP control. send_command KPLAYER6, 'ID 06.01'//Music Player, Zone 1
After the lines are defined, the SATP interface functions as described in SATP setup
above. If the module is given a Preset ID, the keypad presets API is available. send_command KPLAYER6, 'PRESET ID House'
//use the ”House” presets
This command instructs the module to use the tags House1 through House10 for channels 121 through 130 .
If a music collection is defined to step through, then the keypad music collection
API becomes available. send_command KPLAYER6, 'COLLECTION 1 Genres'
Now the first set of collection browsing buttons steps through the Genre collection.
131 causes the first item in Genre collection to play ( All music ), 132 causes the next item in Genre collection to play, and 133 causes the previous item in Genre collection to play.
Calibrating the touch interface
If the OSD Video template is used, the touch panel must be calibrated to enable the user to touch the video feed. This calibration must be performed IN ADDITION to calibrating the AMX touch panel itself.
Once the system is functioning, press the Kaleidescape logo in the upper left corner of the OSD touch panel to bring up the Kaleidescape menu . On a Premiere line system, highlight System, select Status and then use the left/right arrows to select
System Setup . On Alto and Cinema One (2 nd generation), highlight System then select
Settings and then use the up/down arrows to select Advanced . From there, select the
Calibrate Touch Panel entry and follow the instructions.
Calibration information is stored in the player itself. Each zone used for OSD Video control must be calibrated.
Programming AMX Controllers for a Kaleidescape System Page 27
Music zone control
Music zone control provides control for any music zone in a Premiere line system from the OSD for a movie zone. Setting the music zone control in the browser interface allows the user to select any zone from the movie zone onscreen display.
Now Playing shows what is playing in the currently selected zone.
Music zone control is not supported on Cinema One (2 nd generation).
Naming music zones
Music zone names appear in the OSD to identify the controlled music zone. It is important to give the music zones names that can be easily understood by the user, like Den, Living Room, or Patio.
Use the following steps to set name music zones.
1. Open the browser interface using: http://my-kaleidescape/ (Windows) http://my-kaleidescape.local/ (Mac)
2. Select the SETTINGS tab.
3. Click on Components in the second row of tabs.
4. For each component, enter a music zone name in the Zone # Name (for music) field and then click OK to save. Each name must be saved before the music name for the next component can be entered.
Note: If a zone is named Unused, that name does not appear as an option on the OSD selection.
Figure 8: Components Settings page
Select Children’s
Zone
Programming AMX Controllers for a Kaleidescape System Page 28
Controlling music zones
Use the following steps to set music zone control.
1. Open the browser interface using: http://my-kaleidescape/ (Windows) http://my-kaleidescape.local/ (Mac)
2. Select the SETTINGS tab as shown in Figure 9.
3. Select Any music zone in the system can be controlled from the onscreen display radio button.
Figure 9: General Settings page
Select
Any music zone in the system can be controlled from the onscreen display
4. Click Save Changes .
Music zone selection
Using the OSD, the user can select the Control Zone option in the Now Playing view of the display as shown the following figure.
Programming AMX Controllers for a Kaleidescape System Page 29
Figure 10: Now Playing view
When the user selects Control Zone , the Select Music Zone dialog box appears with all the available music zones in the system, labeled with the names assigned in the
Kaleidescape browser interface.
Figure 11: Select Music Zone dialog box
If the OSD is not controlling the local zone when the user selects new music for playback, a reminder that control is for a different music zone will appear. The user then has the option to confirm playback or to select another music zone.
Setting the Controlled Zone from AMX
The Kaleidescape control protocol includes a command to select the music zone to be controlled. Use a send_command in the AMX program to send the appropriate commands to the zone. These commands must use the serial number of the component that contains the zone to be controlled. To restore control to the local zone, use the serial number of the local player.
The following command instructs KPLAYER1 to control zone 4 of the component with a serial number of 123F (123F on the browser interface or 0000 0000123F on the component). send_command KPLAYER1, 'SET_CONTROLLED_ZONE:#123F.04:'
The module does not provide feedback to indicate this change. If the local player serial number is 123A , the following command returns control to the local player. send_command KPLAYER1, 'SET_CONTROLLED_ZONE:#123A.01:'
Programming AMX Controllers for a Kaleidescape System Page 30
Controlling multiple players with multiple touch panels
The Kaleidescape Multiple Panel Include file makes it easy to integrate multiple touch panels and Kaleidescape players into a system. These settings can be set at compile time and never changed or can be modified at run time by pressing buttons or using other programming logic.
To use the logic within the Kaleidescape Multiple Panel Include file, begin by defining every touch panel (or remote) in the KTouchPanels array that controls a Kaleidescape player. dev KTouchPanels[] =
{
TP_ONE,
TP_TWO,
TP_THREE
}
For every touch panel in the KTouchPanels array, set a position within the controlledKplayer array and define which touch panel controls which virtual device.
The array position relates to the touch panel and the value at that position relates to the Kplayer . integer controlledKplayer[] =
{
1, //First TP to control player 1
2, //Second TP to control player 1 SATP
3 //Third TP to control player 2
}
However, this straightforward array definition is too simple for most installations.
Most installations leave all the values at 0 and set them at runtime. Keep in mind that when a touch panel is controlling a player movie zone, feedback from that zone drives page flips. If a touch panel is not controlling any Kaleidescape zone at all (for example, when used to control another source), the position for that touch panel within the controlledKplayer array must be 0 to turn off all control and feedback.
Otherwise, pop-up pages will continue to be activated, even though the user is controlling another source.
Most installations start with the controlledKplayer array populated with 0s, then as various touch panels select different zones (virtual devices) to control, the array changes. integer controlledKplayer[] =
{
0, //All touch panels control nothing
0,
0
}
Programming AMX Controllers for a Kaleidescape System Page 31
The particular zone that the touch panel controls changes at runtime. When a touch panel connects to a virtual device, send the REFRESH command to instruct the module to resend page flips and text information. button_event[KTouchPanels,500] //select no player button_event[KTouchPanels,501] //select KPLAYER1 button_event[KTouchPanels,502] //select KPLAYER2 button_event[KTouchPanels,503] //select KPLAYER3
{ push:
{ stack_var integer touchpanelRef stack_var integer interfaceRef
//determine the TP that generated this event touchpanelRef = get_last(KTouchPanels)
//determine the player Ref that is requested interfaceRef = button.input.channel – 500
//set the new player reference controlledKplayer[touchpanelRef] = interfaceRef
//resend strings to the touch panel if (interfaceRef != 0)
{ send_command Kplayer[interfaceRef],
'REFRESH'
}
}
}
This button event is only one example. These commands can be incorporated into any routine used to perform source selection.
Controlling a movie zone with both SATP and OSD control
Using both the standalone touch panel (SATP) and the onscreen display (OSD) interface to control a movie zone (like the single zone output of an M500 Player) the user can select music from a touch panel without turning on the video display. The best approach for this scenario is to imagine that the single zone is actually two different devices: one is an OSD-controlled movie zone which can play movies or music, and the other is an SATP-controlled music-only zone. Both SATP and OSD templates must be loaded onto the touch panel. These two interfaces must be treated as if the interfaces were two separate components, each with a virtual device that switches back and forth in the program as needed.
Programming AMX Controllers for a Kaleidescape System Page 32
Controlling the same zone with multiple virtual devices
In some installations, it is necessary to control a single zone with multiple devices such as touch panels and remotes. This is especially useful for SATP control where a second virtual device can support touch panels with differing numbers of lines.
The virtual devices can browse independently — a user can be searching among albums with the first device while another user can be viewing Now Playing information with a second virtual device. Both users are controlling the same zone.
Although this method works for OSD control, the processor becomes needlessly burdened. The movie zone only has a single video zone output and can only show one OSD. If two virtual devices both controlled the OSD, these devices just show the same information.
All ID commands must be unique so that the module can keep the command and response streams distinct. To create a second virtual device to control the same zone and keep the ID unique, assign a sequence number. The sequence number can be /1 through /9 and if omitted, the sequence number is assumed to be /1.
For example, to use two virtual devices to control Music Player 3, Zone 1, define the first with 'ID 03.1' (/1 is assumed) and the second with 'ID 03.1/2'. send_command KPLAYER1, 'ID 02' //Theater OSD send_command KPLAYER2, 'ID 03' //Family room OSD send_command KPLAYER3, 'ID 03.01' //Family room SATP small send_command KPLAYER4, 'ID 03.01/2' //Family room SATP large
Now, a separate number of lines for KPlayer3 and KPlayer4 can be defined. send_command KPLAYER3, 'LINES 8' //for small touch panels send_command KPLAYER4, 'LINES 16' //for large touch panels
Power control
Whether to connect to a component via RS-232 or TCP/IP might be determined by how the power state of the component is managed. Both connection types support power off (ENTER STANDBY) commands, but not all components can respond to a power on (LEAVE STANDBY) command over TCP/IP. Power on commands work for all M500, 1080p, Music and Movie Players receiving the command from an RS-232 connection.
Note: Mini players, Alto, and Cinema One (2 nd generation) do not have an
RS-232 control port.
Power control for the Movie Player (KPLAYER-2000, KPLAYER-2500)
Early model Movie Players cannot be powered on over a TCP/IP connection. When the Movie Player is put into standby mode, the Ethernet port shuts down and the player cannot receive TCP/IP communications. Movie Players connected directly to the controller via the RS-232 control port can be powered on.
Programming AMX Controllers for a Kaleidescape System Page 33
With command routing, a serial connection can be made to one player and issue commands that route to a second player. Routed commands travel over the network to the second player. If the second player is in standby mode in this scenario, power on commands routed through the first player will not cause the second player to leave standby.
In some situations, this limitation is not an issue. The Movie Player remembers the last power state, and resumes that last power state after a power outage. For example, if the Movie Player is fully powered on when the power is lost, the player automatically returns to the fully powered on state when the power is restored.
Additionally, the Movie Player is very quiet (not completely silent because the fan runs as needed) and the noise is usually not noticeable when the player is in a cabinet. In many installations, the Movie Player is always fully powered on.
If the Movie Player has to be powered on by the AMX controller, there are two options.
Use RS-232 control without command routing (cable directly connected to the player).
Use an infrared (IR) emitter to send the IR POWER ON command, but use
TCP/IP for all other commands.
Power control for the 1080p Player, 1080p Mini Player, Music Player, and Movie Player 2
The Ethernet port for the 1080p Player, 1080p Mini Player, Music Player, and Movie
Player 2 is powered while in standby — but in a limited mode.
If the ENTER STANDBY command is sent to the component over TCP/IP, initially there is no response. After a moment, the network connection drops, and is then re-established. The component is now in limited mode and responds only to a limited set of commands.
When a LEAVE STANDBY command is received, the component powers on. The network connection drops momentarily and then reconnects. The component is now ready to respond to commands normally. Command routing cannot be used to power on these components. When using TCP/IP, a direct connection must be made to the component to turn the component on.
ENTER/LEAVE STANDBY
commands sent to the Music Player affect all four music zones.
Power control for Cinema One (1
st
generation)
The standby mode on Cinema One only affects the movie zone and the first music zone of the component. Standby does not affect the second and third music zones.
When in standby mode, commands that affect the movie zone or first music zone return error code 020, indicating that the component is in standby mode.
Programming AMX Controllers for a Kaleidescape System Page 34
When the ENTER STANDBY command is sent to Cinema One, the system responds with a DEVICE_POWER_STATE event message indicating the new power state and turns off the movie zone and first music zone. Similarly, Cinema One responds to the LEAVE STANDBY command by immediately returning to the fully powered-on state and sending another DEVICE_POWER_STATE message.
Unlike the components listed in the previous section, Cinema One does not drop the TCP/IP connection when entering or leaving standby mode.
Power control for M-Class players
The standby mode on Kaleidescape M-Class players is similar to that of Cinema
One (1 st generation). If the ENTER STANDBY command is sent to an M-Class player, the player responds with a DEVICE_POWER_STATE event message indicating the new power state and enters standby.
Similarly, the player responds to the LEAVE STANDBY command by immediately returning to the fully powered-on state and sending another DEVICE_POWER_STATE message. An M-Class player does not drop the TCP/IP connection when entering or leaving standby mode.
Power control for Alto and Cinema One (2
nd
generation)
The default standby behavior is similar to the Cinema One (1 st generation): it responds to ENTER_STANDBY and LEAVE_STANDBY commands, and sends
DEVICE_POWER_STATE events to indicate a change in power state.
Alto and Cinema One (2 nd generation) also have a user-selectable option for low power standby mode. If this option is selected, standby mode acts like a full power
OFF state and the device will not respond to ENTER_STANDBY or
LEAVE_STANDBY commands. When configured to power off these players can be put into and taken out of standby using IR or the front panel power button.
Programming AMX Controllers for a Kaleidescape System Page 35
Sample Installation
This section contains a step-by-step implementation of a sample installation that uses command routing, via TCP/IP over Ethernet. The following figure shows the layout of the sample installation.
Figure 12: Layout for a sample Installation
Theater
Family Room
Bedroom and Sunroom
Master Bedroom
Kitchen
The Theater has an NXT-1500VG touch panel with video capabilities. The theater contains a projector, an adjustable screen masking system, controlled lighting, and shades. The
M500 Player will be controlled using the OSD Video template.
The Family Room also has an NXT-1500VG touch panel and controlled lighting but no masking or shades. The M500 Player will be controlled using the OSD Video template.
The Bedroom and Sunroom each have an NXD-CV5 touch panel to control music zones 2 and 3 of the Music Player. Each zone will be controlled with an SATP interface.
The Master Bedroom uses a universal remote to control the local M500 Player, so there is no control from AMX.
The Kitchen has an NXT-1200VG touch panel, but a video cable could not be wired to that location, so the M500 Player will be controlled using the OSD No Video interface.
The Kitchen touch panel will also control music in the Dining
Room using the music zone control feature.
Programming AMX Controllers for a Kaleidescape System Page 36
This installation requires a total of five virtual devices to be defined.
Three for OSD control of the three M500 Players
Two for two of the Music Player zones
Music zone 1 from the Music Player is unused in this installation.
The entire system is controlled with a single TCP/IP connection to the 1U Server.
Assigning a static IP address for the 1U Server
Kaleidescape components, by default, obtain IP addresses from a DHCP server.
Most control systems that communicate via TCP/IP require a fixed address for each component connected to the control system. The safest and easiest way to do this is to create a DHCP reservation in the router and use the default Obtain IP configuration automatically setting.
DHCP reservations help prevent duplicate addresses from being assigned, provide simple centralized management, and provide automatic updates when network settings change.
With DHCP reservations, network parameters such as IP address, subnet mask, router IP, and DNS servers are configured 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.
DHCP reservations are usually made using MAC addresses. The procedure to create DHCP reservations is device-specific. Refer to the documentation for the router or DHCP server.
For AMX processor TCP/IP communications, the 1U Server must be given a static IP address. Be careful not to assign an IP address already being used by another device in the network or within the dynamic range of addresses being assigned by the DHCP server.
In this installation, the 1U Server is given a static IP address of 192.168.1.50.
Use the following steps to set a static IP address for the 1U Server.
1. Open the browser interface using: http://my-kaleidescape/ (Windows) http://my-kaleidescape.local/ (Mac)
2. Select the SETTINGS tab.
3. Click on Components in the second row of tabs.
4. Click the Settings button for the component. A new window opens.
5. Select the NETWORK tab. Information about the current network configuration for the component is displayed.
Programming AMX Controllers for a Kaleidescape System Page 37
Figure 13: Static IP address assignment under the NETWORK tab
Select
Use the following
IP configuration
6. Select the Use the following IP configuration radio button.
7. Enter the IP Address , Subnet Mask , Default Gateway , and DNS Servers . This information is required for interactive BD-Live features of Blu-ray discs to operate correctly.
8. For M-Class players, select the radio button to allow or deny Internet access through BD-Live. If the customer is not interested in chat, downloaded trailers, or other Internet features, or has privacy concerns, select Deny
Internet Access .
9. Click OK .
Setting the M500 Player and Music Player CPDIDs
After the system is installed and all components are running, the CPDID for each
M500 Player and Music Player must be configured.
Use the following steps to set the Theater M500 Player to CPDID 02, the Family
Room M500 Player to CPDID 03, the Kitchen to CPDID 04, and the Music Player to
CPDID 05.
1. Click on Components in the second row of tabs.
2. Click the Settings button for the component. A new window opens.
3. Select the CONTROL tab.
Programming AMX Controllers for a Kaleidescape System Page 38
Figure 14: Control tab
4. Use the drop-down menu to change the Control Protocol Device ID for the component.
5. Click OK to save the change.
6. Repeat steps 2 to 5 for each component.
Configuring the Kaleidescape Multiple Panel Include file
Define these virtual devices in the Kaleidescape Multiple Panel Include file. Be sure each device is unique across the project.
KPLAYER_Theater
KPLAYER_FamilyRoom
KPLAYER_Kitchen
KPLAYER_MusicZ3
KPLAYER_MusicZ4
1. Add the virtual devices to the Kplayer array.
= 33068:1:0
= 33069:1:0
= 33070:1:0
= 33071:1:0
= 33072:1:0
Kplayer[] =
{
KPLAYER_Theater,
KPLAYER_FamilyRoom,
KPLAYER_Kitchen,
KPLAYER_MusicZ3,
KPLAYER_MusicZ4
}
Programming AMX Controllers for a Kaleidescape System Page 39
2. Add the touch panels to the KTouchPanels array. dev KTouchPanels[] =
{
TP_Theater,
TP_Family_Room,
TP_Kitchen,
TP_Bedroom,
TP_Sunroom
}
3. Define which touch panel controls which virtual device. integer controlledKplayer[] =
{
1, //Theater TP to control KPLAYER_Theater
2, //Family Room TP to control KPLAYER_FamilyRoom
3, //Kitchen TP to control KPLAYER_Kitchen
4, //Bedroom TP to control KPLAYER_MusicZ3
5, //Sunroom TP to control KPLAYER_MusicZ4
}
4. Set each virtual device to control an individual zone in DEFINE_START. send_command KPLAYER_Theater, 'ID 02' send_command KPLAYER_FamilyRoom, 'ID 03' send_command KPLAYER_Kitchen, 'ID 04' send_command KPLAYER_MusicZ3, 'ID 05.03' send_command KPLAYER_MusicZ4, 'ID 05.04'
5. Instruct the module how many lines of text the touch panels for the two
SATP zones ( KPLAYER_MusicZ3 and KPLAYER_MusicZ4 ) need to support. Each room has an NXD-CV5 controller which only supports 8 lines of text. send_command KPLAYER_MusicZ3, 'lines 8' send_command KPLAYER_MusicZ4, 'lines 8'
6. Use any of the virtual devices to instruct the module how to connect to the system (through the IP address of the 1U Server). send_command KPLAYER_Theater, 'IP 192.168.1.50'
//IP of the Kaleidescape server
After the program is loaded, pulsing [33068, 1] sends the PLAY command to the
M500 Player in the Theater. Pulsing [33069, 2] sends the STOP command to the
OSD for the M500 Player in the Family Room (if the screen saver is on, the screen saver is removed and nothing else happens).
System Readiness
Level 35 on the virtual device reports the Kaleidescape system’s readiness state.
After a period of inactivity Alto or Cinema One (2 nd generation) will automatically enter idle mode. (Premiere line systems do not enter idle mode.) Idle mode is a
Programming AMX Controllers for a Kaleidescape System Page 40
system-wide state; every player in the system will report the same system readiness state.
An idle system will automatically exit idle mode when it receives
LEAVE_IDLE_MODE, LEAVE_STANDBY, or any other user interaction. Level 35 can be used to provide feedback to the user that the Kaleidescape system is idle, warming up, or ready to be used. level_event[KPLAYER_Theater , 35]
{ stack_var integer touchpanelRef stack_var integer kplayerRef stack_var integer system_readiness_state kplayerRef = get_last(Kplayer) //determine which virtual device triggered the event system_readiness_state = level.value
//step through each TP for(touchpanelRef = 1; touchpanelRef <= length_array(KTouchPanels); touchpanelRef++)
{
//if this TP is controlling this player if(controlledKplayer[touchpanelRef] = kplayerRef)
{ switch(system_readiness_state)
{
} case 0:{} // System ready case 1:{} // System becoming ready case 2:{} // System not ready
}
}
}
Screen masking
Level 11 on the virtual device reports masking information. There is a sample level event in the Kaleidescape Multiple Panel Include file to handle this information. The example below shows how to modify the level event for the masking system. level_event[KPLAYER_Theater,11] //Screen masking data
{ switch (level.value)
{ case 0: { call 'MASK'('open') } //unknown image size case 1: { call 'MASK'('1.33') } //image is 1.33 (4x3) case 2: { call 'MASK'('1.66') } //image is 1.66
Programming AMX Controllers for a Kaleidescape System Page 41
case 3: { call 'MASK'('1.78') } //image is 1.78 (16x9) case 4: { call 'MASK'('1.85') } //image is 1.85 case 5: { call 'MASK'('2.35') } //image is 2.35
}
}
With this logic (and an appropriately written 'MASK' system call), an automated screen masking system is truly automated — the masking system changes dynamically to fit whatever content is played.
CinemaScape Mode
When CinemaScape is active in any mode, Level 33 is used to report the aspect ratio of the current video. CinemaScape Mask is a zero-padded 3 digit number in hundredths representing the image ratio of width to height. The sample level event can also be written to handle values that fall between those currently listed in the switch case. This will allow the control system to react to values that are not currently supported, but may be added in the future without the need for additional programming.
When CinemaScape Native mode is enabled, Level 32 can be used to trigger an anamorphic lens or the zoom mode of a native 2.35 projector.
Programming AMX Controllers for a Kaleidescape System Page 42
Lighting and shades
In rooms that are primarily for movie watching, for example, the Theater and
Family Room, it is a nice touch to turn down the lights when the movie starts, turn up the lights during intermission, and turn on the lights as the end credits roll. The
Kaleidescape module provides a set of channels to control lighting. channel_event[KPLAYER_Theater,1090] //lights movie
{ on:
{ pulse[IR_LIGHTS,5] //instruct the lights to turn off
}
}
//lights intermission channel_event[KPLAYER_Theater,1091] channel_event[KPLAYER_Theater,1092] //lights credits channel_event[KPLAYER_Theater,1093] //lights non-movie
{ on:
{
Pulse[IR_LIGHTS,6] //instruct the lights to turn on
}
}
Enabling volume control from a Kaleidescape controller
Volume control messages (volume up, volume down, and mute) can be triggered by Kaleidescape controllers, such as the Kaleidescape App for iPad or by IR commands.
Volume control messages from the Kaleidescape app can be configured to determine the iPad on the local network that sent the message, which allows the messages to be dynamically routed. This is useful in installations where an individual Kaleidescape player can be used in more than one zone simultaneously, such as in a matrix-switched installation. The Kaleidescape App can also display a zone’s volume level and mute state.
Configuring an AMX controller for volume control when a player can only be used in one zone at a time or when messages will be triggered by IR
If the Kaleidescape player can only be used in one zone at a time or the volume messages are going to be triggered by an IR remote control then the Kaleidescape
Multiple Panel Include file needs to be configured for “volume by player” and the
Kaleidescape App for iPad does not need to be configured with a controller zone name.
Programming AMX Controllers for a Kaleidescape System Page 43
Configuration
Search for #DEFINE volumeByPlayer in the DEFINE_VARIABLE section of the
Kaleidescape Multiple Panel Include . Remove the open and close comment symbols (/* and */) surrounding the code block. Enter the number of Kaleidescape players being controlled by the AMX controller in the constant numberOfPlayers . This should be the same as the number of virtual devices in the Kplayer array. In the example below two players are being controlled.
/*
#DEFINE volumeByPlayer constant numberOfPlayers = 2
*/
Find #IF_DEFINED volumeByPlayer in DEFINE_START. For each player use the constants provided to set the volume capabilities of each zone.
#IF_DEFINED volumeByZone playerVolumeProperties[1].capability =
Volume_and_mute_control_with_feedback playerVolumeProperties[2].capability =
Volume_and_mute_control_but_no_feedback
Additionally, if non-standard channels are to be used, they can be defined here also. playerVolumeProperties[1].capability =
Volume_and_mute_control_with_feedback playerVolumeProperties[1].volUpChannel = 124 playerVolumeProperties[1].volDownChannel= 125 playerVolumeProperties[1].volMuteChannel= 126
Programming AMX Controllers for a Kaleidescape System Page 44
Programming Events
When the AMX master receives a volume control message, it will pulse the standard AMX channel (unless an alternate channel has been defined as described above) for the command on the virtual device of the player that received the command. Button events for these channels can be created and used to trigger actions that can raise, lower, or mute the volume in the zone. The code snippet below shows a sample button event from the Kaleidescape Multiple Panel Include file that will raise the volume in Zone1 when KPLAYER1 receives a volume up message.
BUTTON_EVENT [KPLAYER1, 24]
{
push:
{ do_push_timed (KZone1, 24, 1)
}
hold [5, repeat]:
{ do_push (KZone1, 24)
}
release:
{
}
} do_release (KZone1, 24)
Programming Feedback
Volume level feedback can be sent to Kaleidescape controllers that support feedback by setting level 55 of the player’s virtual device. When the volume level changes, playerVolumeProperties[].volLevel
should be updated with the new volume level. The stored volume will be sent in response to VOLUME_QUERY.
LEVEL_EVENT [KZone1, 1]
{
stack_var integer scaledVolume
scaledVolume = type_cast(level.value/2.55)
send_level KPLAYER1, 55, scaledVolume
playerVolumeProperties[1].volLevel = scaledVolume
}
1
Programming AMX Controllers for a Kaleidescape System Page 45
Mute feedback can be sent to Kaleidescape controllers that support feedback by turning on and off channel 26 of the player’s virtual device. The value in playerVolumeProperties[].muteStatus
is sent in response to VOLUME_QUERY and should be set to reflect the mute state of the zone.
CHANNEL_EVENT [KZone1, 26]
{
on:
{
} on [KPLAYER1, 26] playerVolumeProperties[1].muteStatus = 1
off:
{ off [KPLAYER1, 26] playerVolumeProperties[1].muteStatus = 0
}
}
Configuring an AMX controller and the Kaleidescape App for iPad for volume control when a player can be used in multiple zones simultaneously.
If the Kaleidescape player can be used in more than one zone at a time then the
Kaleidescape Multiple Panel Include file needs to be configured for “volume by zone” and the Kaleidescape App for iPad needs to be configured with a controller zone name.
Configuration
Search for #DEFINE volumeByZone in the DEFINE_VARIABLE section of the
Kaleidescape Multiple Panel Include. Remove the open and close comment symbols (/* and */) surrounding the code block. Enter the number of iPads being used in the constant numberOfiPads . Enter the number of zones that the Kaleidescape players can be used in, in the constant numberOfZones . In the example below there will be two iPads running the Kaleidescape App for iPad. The Kaleidescape players can be heard in three zones.
/*
#DEFINE volumeByZone constant numberOfControllers = 2 constant numberOfZones = 3
*/
Programming AMX Controllers for a Kaleidescape System Page 46
Also in DEFINE_VARIABLE modify the KZones array to include the zones that can access the Kaleidescape players. dev KZones[] =
{
KZone1,
KZone2,
KZone3
}
On each iPad, enter a controller zone name on the Kaleidescape page in the
Settings app.
Find #IF_DEFINED volumeByZone in DEFINE_START. For each iPad create a new element in the array controllerProperties; enter the controller zone name used on the iPad in .controllerZoneName
and enter a default zone for the iPad to control in
.zoneToControl
. When a message is received with a controller zone name a match will be looked for in each array member’s .controllerZoneName
element. If a match is found the value in the member’s .zoneToControl
will be used as the index when the command is sent to KZones. If the iPad is also being used as touch panel on the
AMX system, match its position in this array and the KTouchPanels array.
#IF_DEFINED volumeByZone controllerProperties[1].controllerZoneName controllerProperties[1].zoneToControl controllerProperties[2].controllerZoneName controllerProperties[2].zoneToControl
= 'iPad 1'
= 1
= 'iPad 2'
= 2
Use the constants provided to set the volume capabilities of each zone. zoneVolumeProperties[1].capability =
Volume_and_mute_control_with_feedback zoneVolumeProperties[2].capability =
No_volume_control_or_feedback zoneVolumeProperties[3].capability =
Volume_control_and_feedback_but_no_Mute
Additionally, if non-standard channels are to be used for volume up, volume down and mute; they can be defined here also. zoneVolumeProperties[1].capability =
Volume_and_mute_control_with_feedback zoneVolumeProperties[1].volUpChannel = 124 zoneVolumeProperties[1].volDownChannel zoneVolumeProperties[1].volMuteChannel
= 125
= 126
Programming AMX Controllers for a Kaleidescape System Page 47
Programming Events
The zone being controlled by the Kaleidescape App for iPad can be changed by pulsing channels between 600 and 608 or by using the call Select Zone for Kaleidescape
Controller in your zone selection code. The parameters that must be included in this call are the iPad ID, new zone number, volume level of the zone, and mute status of the zone. In the example below, pulsing channel 600 will disconnect the volume buttons from all zones, pulsing channels between 601 and 608 will connect the volume commands to zones 1 through 8.
In the sample code, the iPad is also used as a touch panel on the system ( TP_ONE ) and is in the first position of the KTouchPanels array.
BUTTON_EVENT[KTouchPanels, 600] //deselect touch panel
BUTTON_EVENT[KTouchPanels, 601] //select ZKones[1]
BUTTON_EVENT[KTouchPanels, 602] //select ZKones[2]
BUTTON_EVENT[KTouchPanels, 603] //select ZKones[3]
BUTTON_EVENT[KTouchPanels, 604] //select ZKones[4]
BUTTON_EVENT[KTouchPanels, 605] //select ZKones[5]
BUTTON_EVENT[KTouchPanels, 606] //select ZKones[6]
BUTTON_EVENT[KTouchPanels, 607] //select ZKones[7]
BUTTON_EVENT[KTouchPanels, 608] //select ZKones[8]
{
push:
{ stack_var integer touchPanelRef stack_var integer zone touchPanelRef = get_last(KTouchPanels) zone = button.input.channel - 600 send_string 0, "'Zone select button event, button ', itoa(zone),
' pressed on panel ', itoa(touchPanelRef), '.'"
}
} call 'Select Zone for Kaleidescape Controller' ( controllerProperties[touchPanelRef].controllerZoneName, zone, zoneVolumeProperties[zone].volLevel, zoneVolumeProperties[zone].muteStatus)
Programming Feedback
Volume level feedback can be sent to a Kaleidescape controller by setting Level 1 of the zone in KZones , or using the call Send Volume Level to Kaleidescape Controller , to the room’s volume level.
Programming AMX Controllers for a Kaleidescape System Page 48
Mute feedback can be sent to a Kaleidescape controller by turning channel 26 of the zone in KZones on and off, or using the call Send Mute Feedback to Kaleidescape
Controller .
These calls also store the volume level and mute state to send when the zone is changed or when the Kaleidescape App for iPad sends VOLUME_QUERY.
Secondary SATP control
After programming the controller in the sample installation, the owner decides to add a second SATP touch panel in the Bedroom, for example, an MVP-8400. The
SATP template for the MVP-8400 uses 16 lines of text for display, instead of the 8 lines on the NXD-CV5.
The best approach in this situation is to define a virtual device for each touch panel size controlling each music zone, and add a sequence number /2 to the new device
ID command. send_command KPLAYER_MusicZ3_B, 'ID 05.03/2' send_command KPLAYER_MusicZ3_B, 'lines 16'
Now, this new virtual device behaves as an independent device which can browse and scroll independently from KPLAYER_MusicZ3 , but both control the same physical music output.
Troubleshooting
Nothing is working
1. Open the console (either through a TCP/IP connection to the master, or through the master’s program port) and type msg on to turn on extended diagnostic information. Error messages can appear immediately.
Additional commands can still be entered even if console messages interrupt typing. If too distracting, type msg off to turn off the messages while entering commands. Type msg on to resume the error messages.
For additional module debug data, type send command <virtual device address>, 'debug'
where <virtual device address> is the virtual device the program is using. A message appears immediately indicating that debugging has been enabled.
2. If using a TCP/IP connection and a Connection Refused message appears that repeats every few seconds, it usually means that the master is not able to open a connection to the Kaleidescape System.
Verify that the master is trying to connect to the proper IP address.
There should be a line, Opening IP port <ip address>:10000 that repeats. Check that the address is correct.
Verify that the AMX master can successfully ping the Kaleidescape
System by typing ping followed by the system IP address. If this fails, check network connections and settings.
Programming AMX Controllers for a Kaleidescape System Page 49
3. If using an RS-232 connection and a message appears indicating the
Kaleidescape module is sending the command
"01/0/GET_DEVICE_POWER_STATE:" every 20 seconds, it means the module is not receiving responses from the Kaleidescape System and is in an initialization loop.
Verify cable connections and pinouts (usually a cross-over cable).
If Kaleidescape control port baud settings have been changed in the browser interface, be sure that the SET BAUD command is being sent to one of the virtual devices to prevent the module from resetting the baud rate to the default. The module passes the command verbatim to the port and keeps the command in a nonvolatile variable for use if the module restarts. Servers have a default baud rate that differs from players and Cinema One (1 st generation) systems, and the module sets up the port for the baud rate of the player by default.
4. If using an RS-232 connection, and a message appears indicating the
Kaleidescape module is sending the command
"01/0/GET_DEVICE_INFO:" every 20 seconds, it means that the module is able to speak to the component directly connected, but the player to be controlled is offline.
Verify that the Kaleidescape component the RS-232 cable is plugged into is powered on.
Verify that the Kaleidescape player is powered on.
5. Verify that the ID sent to the virtual device matches the player Control
Protocol Device ID as set in the browser interface.
6. If using SATP control, verify that the Zone ID matches the audio output. If controlling an M-Class player, the Zone ID must be 01.
7. Verify that control is for a player and not a Kaleidescape server. Connection can be made to the server, but the server should be forwarding commands to a player in the system.
8. Try to use the Kaleidescape System by pressing a button on a touch panel.
Module errors are displayed in the console as errors occur and can provide useful information. All commands to the zone generate a response and changing any valid channel on the virtual device generates debugging information. If a button is pressed on a touch panel and a message does not appear in the console, the button press is not being received by the module.
9. Pulse channel 1 on the virtual device (the PLAY command) and debug information appears indicating the PLAY command is being sent (for example, 01/1/PLAY:/55). The Kaleidescape component should send some type of response.
Music is not changing (SATP controlled music zone)
When listening to a specific zone, verify that control is set for that zone (audio output).
Programming AMX Controllers for a Kaleidescape System Page 50
Cannot make selections with a touch panel with a video window
The Kaleidescape movie zone touch panel interface might not be calibrated
correctly. See Calibrating the touch interface on page 27.
No video on the touch panel with a video window
1. If using S-Video, verify that the Y and C connections are not reversed. (Try reversing connections to be sure.)
2. Verify that the touch panel video input is set correctly.
In the console, type send_command <TP address>, 'setup' to put the panel into setup mode. The touch panel setup menu appears which includes an option for setting up the video input.
3. Verify that the Kaleidescape player is configured to provide the video output that the touch panel needs.
4. If more than one video input is available on the touch panel, verify that the input is correct.
Video on the touch panel is black and white
The video input for the touch panel is set incorrectly (either to S-Video and the setting should be Composite, or vice versa). In the console, type send_command
<TP address>, 'setup'
to put the panel into setup mode. The touch panel setup menu appears which includes an option for setting up the video input.
Getting additional support
The Kaleidescape module and templates described in this document are not supported by AMX.
For additional help contact Kaleidescape Support.
See online resources at www.kaleidescape.com/support .
Contact Kaleidescape Support at [email protected]
or +1 (650) 625-6160.
When contacting Kaleidescape Support, be prepared to provide the serial number of the Kaleidescape server. The serial number label is located on the back of all components, and behind the front panels of Kaleidescape servers.
Programming AMX Controllers for a Kaleidescape System Page 51
Appendix A: Screen Shots for UI Layouts
OSD control with a video window — Music
Programming AMX Controllers for a Kaleidescape System Page 52
OSD control with a video window — Movies
Music can be playing while selecting a movie to watch. The playback status box in the lower left corner feeds back either movie or music information.
This layout shows the keyboard pop-up after selecting the SEARCH… button.
Programming AMX Controllers for a Kaleidescape System Page 53
OSD control without a video window — Music
Programming AMX Controllers for a Kaleidescape System Page 54
OSD control without a video window — Movies
This layout shows the keyboard pop-up after selecting the SEARCH… button.
Music can be playing while selecting a movie. The playback status box in the lower left corner feeds back either movie or music information.
Programming AMX Controllers for a Kaleidescape System Page 55
Standalone touch panel
Programming AMX Controllers for a Kaleidescape System Page 56
Appendix B: RS-232 Port Configuration and
Cable Pinout
Port configuration
M500 Player, Music Player and Cinema One (1
st
generation)
If the RS-232 port is used to communicate with a Kaleidescape player or Cinema
One, use the following default communication parameters:
Baud rate
Data bits
Stop bits
Parity
Flow control
19200
8
1
N
N
RS-232 communication parameters can be changed on the installer pages of the browser interface.
1U, 3U and 5U Servers
If the RS-232 port is used to communicate with the Kaleidescape server, server default communication parameters cannot be changed.
Baud rate
Data bits
Stop bits
Parity
Flow control
115200
8
1
N
N
RS-232 port pinouts
The pinouts for the RS-232 port are illustrated below.
Most AMX controllers require a crossover (null-modem) cable.
Note: The older KPLAYER-2000 also has a female DB-9 service port that cannot be used for AMX control.
Programming AMX Controllers for a Kaleidescape System Page 57
1
2
3
Appendix C: OSD Module v8.4 Channel
Lineup
All feedback channels are offset by 1000. For example, during playback channel 1001 is on (PLAY feedback) and when playback stops, channel 1002 is on (STOP feedback).
4
5
PLAY
STOP
PAUSE
SKIP FORWARD
SKIP REVERSE
8
9
6
7
SCAN FORWARD
SCAN REVERSE unused unused
10 KEYPAD KEY 0
11 KEYPAD KEY 1
12 KEYPAD KEY 2
22 PAGE UP
23 PAGE DOWN
24 VOLUME UP (sent from a
Kaleidescape player to change volume in a zone)
25 VOLUME DOWN (sent from a
Kaleidescape player to change volume in a zone)
26 VOLUME MUTE (sent from a
Kaleidescape player to change volume in a zone)
27 LEAVE STANDBY (Power on)
28 ENTER STANDBY (Power off)
29 unused
30 INTERMISSION
31 INSTANT REPLAY (Jumps back
5 seconds in playback)
32 START CHAPTER ENTRY (To change disc chapters)
33 SET FAVORITE SCENE START
13 KEYPAD KEY 3
14 KEYPAD KEY 4
15 KEYPAD KEY 5
16 KEYPAD KEY 6
17 KEYPAD KEY 7
18 KEYPAD KEY 8
19 KEYPAD KEY 9
20 KEYPAD ENTER
21 unused
34 SET FAVORITE SCENE END
35 RANDOM TOGGLE
36 REPEAT TOGGLE
37 PLAY OR PAUSE (For small touch panels where there is no room for Play and Pause)
38 unused
39 unused
40 COORDINATES (Future use for the XY video window)
41 unused
42 unused
Programming AMX Controllers for a Kaleidescape System Page 58
43 unused
44 DISC MENU
45 UP
46 DOWN
47 LEFT
48 RIGHT
49 OK
50 CANCEL
51 TOP MENU
52 CHAPTER ENTRY (Same as 32)
53 CLEAR
54 RESUME
55 unused
56 SUBTITLE
57 unused
58 STATUS AND SETTINGS (Info button on many remotes)
59 DETAILS
60 AUDIO
61 SHUFFLE COVERS
62 SAFE LEVEL
63 ALPHABETIZE COVERS
64 unused
65 FILTER LIST (List search button)
66 KEYBOARD SPACE (Keyboard keys A-Z are handled as touch panel strings)
67 KEYBOARD BACKSPACE
68 unused
69 unused
70 KALEIDESCAPE MENU
71 COVER ART
72 MOVIE LIST
73 COLLECTIONS
74 PARENTAL CONTROL
75 SYSTEM STATUS
76 DEMO
77 DEMO LOOP (replaced)
78 SCREEN SAVER
79 SCREEN SAVER STOP
80 DISC OR KALEIDESCAPE
MENU (Shows disc menu in playback or Kaleidescape menu otherwise. Designed for oneway small panels or remotes.)
81 MUSIC LIST
82 MUSIC COVERS
83 MUSIC COLLECTIONS
84 MUSIC NOW PLAYING
85 MOVIE OSD PLACE
86 MUSIC OSD PLACE
87 unused
88 unused
89 unused
90 (1090) LIGHTS MOVIE (f/b only)
91 (1091) LIGHTS INTERMISSION
(f/b only)
92 (1092) LIGHTS INTERMISSION
(f/b only)
93 (1093) LIGHTS NON-MOVIE
(f/b only)
94 unused
95 RED (Blu-ray Disc button)
96 GREEN (Blu-ray Disc button)
97 BLUE (Blu-ray Disc button)
98 YELLOW (Blu-ray Disc button)
Programming AMX Controllers for a Kaleidescape System Page 59
Appendix D: SATP Module v8.4 Channel
Lineup
All channels up to channel 49 are the same as the OSD channel lineup. All feedback is shown offset by 1000. For example, during playback channel 1001 is on (PLAY feedback) and when playback stops, channel 1002 is on (STOP feedback).
7
8
5
6
3
4
1
2
PLAY
STOP
PAUSE
SKIP FORWARD
SKIP REVERSE
SCAN FORWARD
SCAN REVERSE unused
9 unused
10 KEYPAD KEY 0
11 KEYPAD KEY 1
12 KEYPAD KEY 2
13 KEYPAD KEY 3
21 unused
22 PAGE UP
23 PAGE DOWN
24 unused
25 unused
26 unused
27 LEAVE STANDBY (Power on)
28 ENTER STANDBY (Power off)
29 unused
30 INTERMISSION
31 INSTANT REPLAY (Jumps back
5 seconds in playback)
32 START CHAPTER ENTRY (To change disc chapters)
33 SET FAVORITE SCENE START
14 KEYPAD KEY 4
15 KEYPAD KEY 5
16 KEYPAD KEY 6
17 KEYPAD KEY 7
18 KEYPAD KEY 8
19 KEYPAD KEY 9
20 KEYPAD ENTER
34 SET FAVORITE SCENE END
35 RANDOM TOGGLE
36 REPEAT TOGGLE
37 PLAY OR PAUSE (For small touch panels where there is no room for Play and Pause)
38 unused
39 unused
40 COORDINATES (Future use for the XY video window)
Programming AMX Controllers for a Kaleidescape System Page 60
41 unused
42 unused
43 unused
44 DISC MENU (Future use)
45 UP (Future use)
46 DOWN (Future use)
47 LEFT (Future use)
48 RIGHT (Future use)
49 OK (Future use)
50 FIRST LIST COMMAND
51 LIST KEYB CANCEL
52 LIST KEYB ENTER
53 LIST KEYB SPACE
54 LIST KEYB BACKSPACE
55 LIST KEYB CLEAR
56 LIST SEARCH
57 LIST SEARCH RESULT
58 unused
59 unused
60 LIST TITLE
61 LIST LINE 1
62 LIST LINE 2
63 LIST LINE 3
64 LIST LINE 4
65 LIST LINE 5
66 LIST LINE 6
67 LIST LINE 7
68 LIST LINE 8
69 LIST LINE 9
70 LIST LINE 10
87 unused
88 unused
89 unused
90 unused
91 unused
92 unused
93 unused
94 unused
95 unused
96 unused
97 unused
98 unused
99 unused
100 unused
71 LIST LINE 11
72 LIST LINE 12
73 LIST LINE 13
74 LIST LINE 14
75 LIST LINE 15
76 LIST LINE 16
77 LIST LINE 17
78 LIST LINE 18
79 LIST LINE 19
80 LIST LINE 20
81 LIST BACK
82 LIST UP
83 LIST DOWN
84 LIST HOME
85 LIST BROWSE SELECT
86 LIST NOW PLAYING SELECT
Programming AMX Controllers for a Kaleidescape System Page 61
101 LINE 1 STATUS (f/b only)
102 LINE 2 STATUS (f/b only)
103 LINE 3 STATUS (f/b only)
104 LINE 4 STATUS (f/b only)
105 LINE 5 STATUS (f/b only)
106 LINE 6 STATUS (f/b only)
107 LINE 7 STATUS (f/b only)
108 LINE 8 STATUS (f/b only)
109 LINE 9 STATUS (f/b only)
110 LINE 10 STATUS (f/b only)
111 LINE 11 STATUS (f/b only)
112 LINE 12 STATUS (f/b only)
113 LINE 13 STATUS (f/b only)
114 LINE 14 STATUS (f/b only)
115 LINE 15 STATUS (f/b only)
116 LINE 16 STATUS (f/b only)
117 LINE 17 STATUS (f/b only)
118 LINE 18 STATUS (f/b only)
119 LINE 19 STATUS (f/b only)
120 LINE 20 STATUS (f/b only)
Programming AMX Controllers for a Kaleidescape System Page 62
Appendix E: Keypad Module v8.4 Channel
Lineup
All channels piggyback on the SATP channel lineup. All feedback channels are offset by 1000. For example, when Preset 1 is activated, channel 1121 turns on
(Preset 1 feedback) and when playback stops, channel 1121 turns off.
121 Preset 1
122 Preset 2
123 Preset 3
124 Preset 4
125 Preset 5
126 Preset 6
127 Preset 7
128 Preset 8
129 Preset 9
130 Preset 10
131 Collection 1 First
132 Collection 1 Next
133 Collection 1 Previous
134 Collection 2 First
135 Collection 2 Next
136 Collection 2 Previous
137 Collection 3 First
138 Collection 3 Next
139 Collection 3 Previous
140 Preset First
141 Preset Next
142 Preset Previous
Programming AMX Controllers for a Kaleidescape System Page 63
3
4
Appendix F: Module v8.4 Level Lineup
Except where noted, these values are set by the module and are used for feedback.
1
2
5
6
MOVIE LOCATION RELATIVE
(For the progress bar) unused unused
SCROLL BAR COMMAND
(For the SATP scroll bar, sent to the module)
SCROLL BAR TOP (For the
SATP scroll bar)
SCROLL BAR BOTTOM (For the SATP scroll bar)
7
8 unused unused
9 unused
10 unused
11 MASK DATA
0) Unknown image (should open the mask as wide as possible)
1) 1.33 (4×3)
2) 1.66
3) 1.78 (16×9)
4) 1.85
5) 2.53
12
13
14
15
16
17
18
19
20
MASK TRIM TOP (Percentage adjustment for the top)
MASK TRIM BOTTOM
(Percentage adjustment for the bottom)
MASK CONSERVATIVE (Uses the same values as 11. Using this level instead of 11 ensures that the mask never covers any light.)
MASK TOP ABSOLUTE
(Percentage of black at the top of the image)
MASK BOTTOM ABSOLUTE
(Percentage of black at the bottom of the image) unused unused unused
VIDEO MODE COMPOSITE
(For both composite and S-
Video)
0) no output
1) 480i60 4×3 NTSC
2) 480i60 16×9
3) unused
4) unused
5) 576i50 4×3 PAL
6) 576i50 16×9
Programming AMX Controllers for a Kaleidescape System Page 64
21 VIDEO MODE COMPONENT
0) no output
1) 480i60 4×3 NTSC
2) 480i60 16×9
3) 480p60 4×3
4) 480p60 16×9
5) 576i50 4×3 PAL
6) 576i50 16×9
7) 576p50 4×3
8) 576p50 16×9
9) 720p60 NTSC HD
10) 720p50 PAL HD
11) 1080i60 16x9
12) 1080i50 16x9
13) 1080p60 16x9
14) 1080p50 16x9
15) Reserved
16) Reserved
17) 1080p24 16x9
18) Reserved
19) 1080i60 64x27
20) 1080i50 64x27
21) 1080p60 64x27
22) 1080p50 64x27
23) 1080p24 64x27
24) Reserved
22 VIDEO MODE HDMI
(Uses same values as 21)
23-30 unused
31 CINEMASCAPE MODE
0) Screen Aspect Ratio 16:9
1) Screen Aspect Ratio
CinemaScape 2.35
Anamorphic
2) Screen Aspect Ratio
CinemaScape 2.35 Letterbox
3) Screen Aspect Ratio
CinemaScape 2.35 Native
33 CINEMASCAPE MASK (A three digit 0 padded number describing the CinemaScape aspect ratio) unused 34
35 System Readiness State
0) System ready
1) System becoming ready
2) System idle
36-49 Unused
50 COORDINATE X (For the video window, sent to the module)
51
55
COORDINATE Y (For the video window, sent to the module)
52-54 unused
VOLUME FEEDBACK (for the
Kaleidescape App for iPad)
32 CINEMASCAPE SCALE MODE
0) No Scaling required
1) CinemaScape Scale mode
Anamorphic
2) Reserved
3) CinemaScape Scale mode
Zoom
Programming AMX Controllers for a Kaleidescape System Page 65
Appendix G: Module v8.4 Commands
All of the commands in this appendix are sent to a virtual device passed to the module. The commands can be sent in the Kaleidescape Multiple Panel Include file, in a program or even from the text console. All commands are case-insensitive.
Syntax send_command <virtual device> '<command> [<value>]'
Any command sent to the module not listed below is forwarded directly to the corresponding Kaleidescape zone as a protocol command. This allows the programmer to use commands that are in the protocol but not used by the module.
Whole module commands
This set of commands controls the entire module and can be sent through any of the defined virtual devices.
Cover Host Override
Overrides the host used to download cover art. Use this command in installations where the AMX controller is connecting to the Kaleidescape System through a NAT firewall and the IP address in the cover art URL is incorrect. This can happen because the Kaleidescape System true IP is masked behind the NAT router. In this situation, the IP address that the module reports to the touch panel for cover art must be set to the NAT firewall address using this command.
Syntax
'Cover Host Override <address>'
Example
'Cover Host Override 64.32.120.10'
Debug
Use to enable or disable the debugging output for the module.
Syntax
'Debug [off]'
Examples
'debug' //enable debugging output
'debug off' //disable debugging output
Programming AMX Controllers for a Kaleidescape System Page 66
IP
Use to set the IP address that the module should connect to. This command can be sent to any one of the defined virtual devices, but should only be sent ONCE in the entire program.
Syntax
'IP <ADDRESS>'
Example
'IP 192.168.1.10'
Set Baud
Use to set the baud rate that the module should send to the RS-232 port when coming online. This command can be sent to any one of the defined virtual devices but should only be sent ONCE in the entire program. This command only needs to be sent if the default baud rate has been changed.
Syntax
'Set Baud <rate>'
Example
'Set Baud 9600,N,8,1,'
Version
Use to retrieve the version of the module to the text console. The output of this command can only be seen if msg on has been typed into the text console.
Syntax
Reply
'Version'
"Kaleidescape Player AMX Module v…"
Individual device commands
This set of commands controls the individual virtual device interface. These commands only apply to the virtual device that the commands are sent to.
(Single Character)
Use to send a single keyboard character (a-z, 0-9, and any punctuation). This command is used by the onscreen keyboard to transmit the individual letters to the player.
Syntax
'<any single character>'
Programming AMX Controllers for a Kaleidescape System Page 67
Example
'A' //send the letter A
'4' //send the number 4
'.' //send a period
' ' //send a space character
The [ character cannot be sent as a single character. If needed, send as a single predictive text character, [[].
[]
Use to send a predictive text character. When using SATP search, this command sends a character group to use for predictive text. This group is used by the zone to match results.
Sending [AB] causes the zone to show anything starting with A or B . Following that, if [CD] were sent, the zone would show everything starting with A or B followed by C or D . This behaves like the (Single Character) above, like the keypad on a cell phone. Note that even though the touch panel templates use cell-phone style grouping, any grouping can be defined.
Syntax
'[<any set of characters>]'
Example
'[2ABC]' //send predictive text character 2ABC
'[9WXYZ]' //send predictive text character 9WXYZ
Calibrate Masking
Causes the OSD to change to the Calibrate Masking screen.
Syntax
'CALIBRATE MASKING'
Calibrate Masking Overscan
Causes the OSD to change to the Calibrate Masking Overscan screen.
Syntax
'CALIBRATE MASKING OVERSCAN'
Programming AMX Controllers for a Kaleidescape System Page 68
Collection
Used to indicate which music collection to cycle through when the collection first/next/previous channels are triggered.
Syntax
'Collection <collection number> <collection name>' collection number is a number from 1 to 3 to indicate which set of buttons to use. collection name is the name of the collection to control.
Examples
'Collection 1 Albums' //First set of channels (131,132,133)
//to control the albums collection
'Collection 2 Genres' //First set of channels (134,135,136)
//to control the genres collection
'Collection 3 New' //First set of channels (137,138,139)
//to control the new collection
ID
Use to indicate which control ID a virtual device should control. Each ID command must be unique, that is, no two virtual devices can use the same ID command. If both devices must control the same zone, use the sequence digit to make them unique.
Syntax
'ID <CPDID>[.<zone>][/<sequence>]'
CPDID is the CPDID of the Kaleidescape player.
'ID <#serial number>[.<zone>][/<sequence>]' serial number is the serial number of the Kaleidescape player. zone sequence is the zone to control (if using SATP controls). can be used to make two different virtual devices control the same zone. The sequence is a single digit from 1 to 9, and defaults to 1 if not defined.
Examples
'ID 02'
'ID 02.01'
//control OSD of player 02
//control the SATP of player 02
'ID 03.02' //control zone 2 on player 03 (SATP)
'ID 03.02/2' //control same as above
Lines
Use to indicate to the module how many lines are needed to render on the SATP interface. This command can be resent at any time if the one virtual device is to be controlled by a different sized touch panel.
Programming AMX Controllers for a Kaleidescape System Page 69
Syntax
'Lines <number of lines>'
Example
'Lines 16' //16 line interface (large TP)
'Lines 8' //8 line interface (smaller TP)
Max Preset
Use to indicate the number of presets to cycle through when using the preset next and preset previous commands. When this preset index is reached in the cycle, another press of the next preset command returns to the first preset. When at the first preset, a previous preset command switches to the preset with the index that corresponds to the value set with this command.
Syntax
'Max Preset <number>'
Examples
'Max Preset 2' //Sets the maximum preset to 2.
'Max Preset 10' //Sets the maximum preset to 10.
Preset ID
Used to set the text identifier for the set of presets. The Preset ID can be unique among all virtual devices, or multiple virtual devices can use the same Preset ID to manipulate the same set of presets. The module uses this Preset ID to create the final tag used for each preset.
Syntax
'Preset ID <text>'
Example
'Preset ID Kitchen' //Use the tags "Kitchen1", "Kitchen2", etc.
'Preset ID Bedroom' //Use the tags "Bedroom1", "Bedroom2", etc.
Preset Lock/Unlock
Used to lock or unlock preset modification for this device. When presets are locked, holding a preset button down does not save the preset.
Syntax
'Preset Lock'
'Preset Unlock'
Programming AMX Controllers for a Kaleidescape System Page 70
Refresh
Use to resend all the strings through the virtual device. This command is used to repopulate all strings on a touch panel that was either offline or previously not controlling this virtual device. This command also sends any page change strings to bring the panel in sync with the OSD.
Syntax
'Refresh'
Programming AMX Controllers for a Kaleidescape System Page 71
Appendix H: Revision History
Version 8.4.0
Added support for using serial numbers as control IDs
Added support for SYSTEM_READINESS_STATE.
Version 8.3.0
Added support for controller zone names in volume messages from the
Kaleidescape app for iPad.
Added support for SCALE MODE
Removed port connection logic from DEFINE_PROGRAM and added support for a connection handling popup
Minor performance enhancements and bug fixes.
Version 8.2.0
Added support for video modes above 1080i.
Added support for CinemaScape mode.
Added support for volume control and feedback when using the
Kaleidescape App for iPad.
Version 8.1.0
Added support for Jump and Search commands while OSD is in the
Collections view.
Version 8.0.0
Added Blu-ray Disc color button support.
Added support for special Blu-ray Disc stop button.
Added support for CALIBRATE MASKING and CALIBRATE MASKING
OVERSCAN commands.
Fixed issue where flags internal to the module could be changed through external channel assignments.
Fixed issue where it was impossible to compile the module without enabling SATP.
Fixed issue where module would fail when only controlling an SATP zone.
Version 7.2.0
Added support for the Cinema One (1 st generation).
Significant speed improvements.
The SATP Now Playing list now defaults to the song currently playing.
Programming AMX Controllers for a Kaleidescape System Page 72
Better handling of component power states and IP connection issues.
Added feedback for the power state. Virtual device channels 1027 (power on feedback) and 1028 (power off feedback) now reflect the component power state.
The SATP search button is now suppressed on top Browse node. Searching on the top node is not supported.
Better handling of an invalid SATP node. If an SATP interface is showing a collection while the collection is deleted, the interface will correctly move to a valid node.
Added 1080p option in the Kaleidescape Multiple Panel Include file.
Version 7.1.0
OSD-No-Video details page now includes the movie synopsis.
Fixed the sample lighting cue code in the Kaleidescape Multiple Panel Include file.
Fixed a problem where the Now Playing cover art would not show when not using command routing.
Fixed a double highlighting problem in the SATP Now Playing place.
Changed the virtual device numbers used in the Kaleidescape Multiple Panel
Include file to start at 33001, which fixes an occasional problem with level events.
Changed the current track time position in the KVariableTextFields array from 0 (unused) to 5 to support the updated touch panel templates.
Version 7.0.0
Preset feedback channels now indicate whether or not the preset is actually being played. This requires a modification in the Kaleidescape Multiple Panel
Include file to function. Older Kaleidescape Multiple Panel Include files do not support the new feedback channels.
Added variable text fields to output plain text labels for each preset.
Added functions for preset browsing.
Added Now Playing item output to display a plain text string indicating what is currently playing.
Fixed bug where user-defined cover art sometimes did not show on touch panels.
Modified the Kaleidescape Multiple Panel Include file to include support for setting the Kaleidescape system to a different device than the first device on older touch panels.
Added internal references to “K StatusScreen” for when the onscreen display shows the status screen place.
Programming AMX Controllers for a Kaleidescape System Page 73
Modified nomenclature inside the module to clarify the browse protocol implementation.
Fixed lighting event channel feedback IDs in the multiple panel Kaleidescape
Multiple Panel Include file.
Version 6.2.0
Modified coding style of module to reflect a single consistent style.
Modified many channel and variable names to clarify their purpose and use a consistent style.
Fixed bug where the module would not properly initialize if using command routing.
Fixed ‘Index by zero’ error when controlling the null player.
Fixed bug where too many search results were being returned.
Modified parsing routines to improve module performance.
Renamed the ‘Preset Tag’ command to ‘Preset ID’ to match AMX.
Version 6.1.2
Changed the presets button hold time to 2.0 seconds.
Version 6.1.0
Initial implementation of keypad API.
Programming AMX Controllers for a Kaleidescape System Page 74
Notices
Document Name: Programming AMX Controllers for a Kaleidescape System
Document Number: 101-0123-00
Publication Date: May 2015
This document revision corresponds to kOS version 6.1 and Kaleidescape AMX module version 8.4.0.
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. 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.
advertisement
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Related manuals
advertisement
Table of contents
- 7 Touch panel variations
- 7 OSD control with a video window
- 8 OSD control without a video window
- 9 Standalone touch panel (SATP) control
- 10 Layout for touch panel user interface
- 11 Keypad control
- 17 Comment in
- 17 Device ID
- 18 Kaleidescape music zones
- 19 Downloading and importing the Kaleidescape module for AMX
- 20 Configuring the Kaleidescape Multiple Panel Include file
- 20 Module version number
- 21 Updating the module
- 21 Verifying the module version
- 23 Command routing using Control Protocol Device IDs (CPDID)
- 23 Setting the Control Protocol Device ID (CPDID)
- 24 Configuring the Kaleidescape Multiple Panel Include file when using CPDID addressing
- 26 Command routing using serial number addressing
- 26 Configuring the Kaleidescape Multiple Panel Include file when using serial number addressing
- 26 SATP setup
- 27 Keypad Setup
- 28 Naming music zones
- 29 Controlling music zones
- 29 Music zone selection
- 30 Setting the Controlled Zone from AMX
- 33 Power control for the Movie Player (KPLAYER-2000, KPLAYER-2500)
- 34 Power control for the 1080p Player, 1080p Mini Player, Music Player, and Movie Player 2
- 34 Power control for Cinema One (1st generation)
- 35 Power control for M-Class players
- 35 Power control for Alto and Cinema One (2nd generation)
- 43 Configuring an AMX controller for volume control when a player can only be used in one zone at a time or when messages will be triggered by IR
- 44 Configuration
- 45 Programming Events
- 45 Programming Feedback
- 46 Configuring an AMX controller and the Kaleidescape App for iPad for volume control when a player can be used in multiple zones simultaneously.
- 46 Configuration
- 48 Programming Events
- 48 Programming Feedback
- 57 M500 Player, Music Player and Cinema One (1st generation)
- 57 1U, 3U and 5U Servers
- 66 Cover Host Override
- 66 Debug
- 67 IP
- 67 Set Baud
- 67 Version
- 67 (Single Character)
- 68 []
- 68 Calibrate Masking
- 68 Calibrate Masking Overscan
- 69 Collection
- 69 ID
- 69 Lines
- 70 Max Preset
- 70 Preset ID
- 70 Preset Lock/Unlock
- 71 Refresh