Programming AMX Controllers - Kaleidescape

Transcription

kaleidescapeProgramming AMXControllersfor a Kaleidescape SystemMay 2015

ContentsWho Should Use This Document6Getting Started with AMX6Overview of Kaleidescape Module and Templates6Touch Panels and Keypads7Touch panels7Touch panel variations7OSD control with a video window7OSD control without a video window8Standalone touch panel (SATP) control9Layout for touch panel user interface10Keypad control11Using Music Presets11Music items in the Kaleidescape System12Random and repeat13Tags and the Preset ID13Zones14Saving presets14Preset browsing14Preset feedback14Collection browsing15ProgrammingKaleidescape command protocol1717Comment in17Device ID17Kaleidescape music zones18Kaleidescape moduleProgramming AMX Controllers for a Kaleidescape System19Page 2

Downloading and importing the Kaleidescape module for AMX19Configuring the Kaleidescape Multiple Panel Include file20Module version number20Updating the module21Verifying the module version21Connection methods21Command routing23Command routing using Control Protocol Device IDs (CPDID)23Command routing using serial number addressing26SATP setup26Keypad Setup27Calibrating the touch interface27Music zone control28Naming music zones28Controlling music zones29Music zone selection29Setting the Controlled Zone from AMX30Controlling multiple players with multiple touch panels31Controlling a movie zone with both SATP and OSD control32Controlling the same zone with multiple virtual devices33Power control33Power control for the Movie Player (KPLAYER-2000, KPLAYER-2500)33Power control for the 1080p Player, 1080p Mini Player, Music Player, andMovie Player 234Power control for the Cinema One (1st generation)34Power control for the M-Class players35Power control for the Cinema One (2nd generation)35Sample InstallationAssigning a static IP address for the 1U ServerProgramming AMX Controllers for a Kaleidescape System3637Page 3

Setting the M500 Player and Music Player CPDIDs38Configuring the Kaleidescape Multiple Panel Include file39System Readiness40Screen masking41CinemaScape Mode42Lighting and shades43Enabling volume control from a Kaleidescape controller43Configuring an AMX controller for volume control when a player can only beused in one zone at a time or when messages will be triggered by IR43Configuring an AMX controller and the Kaleidescape App for iPad for volumecontrol when a player can be used in multiple zones simultaneously.46Secondary SATP controlTroubleshooting4949Nothing is working49Music is not changing (SATP controlled music zone)50Cannot make selections with a touch panel with a video window51No video on the touch panel with a video window51Video on the touch panel is black and white51Getting additional support51Appendix A: Screen Shots for UI Layouts52OSD control with a video window — Music52OSD control with a video window — Movies53OSD control without a video window — Music54OSD control without a video window — Movies55Standalone touch panel56Appendix B: RS-232 Port Configuration and Cable PinoutPort configurationM500 Player, Music Player and Cinema One (1st generation)Programming AMX Controllers for a Kaleidescape System575757Page 4

1U, 3U and 5U ServersRS-232 port pinouts5757Appendix C: OSD Module v8.3 Channel Lineup58Appendix D: SATP Module v8.3 Channel Lineup60Appendix E: Keypad Module v8.3 Channel Lineup63Appendix F: Module v8.3 Level Lineup64Appendix G: Module v8.3 Commands66Whole module commands66Cover Host Override66Debug66IP67Set Baud67Version67Individual device commands67(Single Character)67[]68Calibrate Masking68Calibrate Masking Overscan68Collection69ID69Lines69Max Preset70Preset ID70Preset Lock/Unlock70Refresh71Appendix H: Revision History72Programming AMX Controllers for a Kaleidescape SystemPage 5

Who Should Use This DocumentThis document explains how to configure an AMX control system for aKaleidescape System. Kaleidescape provides a module specifically designed forcontrolling Kaleidescape Systems using AMX controllers.The installer must be familiar with AMX NetLinx Studio, the NetLinx programminglanguage, AMX Touch Panel Design (TPDesign4) software, and Kaleidescapeproducts.This document revision corresponds to kOS version 6.1 and Kaleidescape AMXmodule version 8.4.0.Getting Started with AMXKaleidescape provides both a control module and touch panel templates for AMXcontrollers.Before beginning a project or revising an existing program for an AMX system, theKaleidescape module and templates for AMX controllers must be downloaded andimported. See Downloading and importing the Kaleidescape module for AMX onpage 19 for information on downloading and importing the Kaleidescape moduleand templates.For information on installing and configuring the Kaleidescape System, refer to theKaleidescape Installation Guide (www.kaleidescape.com/go/install) on theKaleidescape website (www.kaleidescape.com).Overview of Kaleidescape Module andTemplatesKaleidescape provides a single control module with three methods for using anAMX controller: Onscreen display (OSD) interface Standalone touch panel (SATP) interface Keypad controlsThe Kaleidescape module is designed to control all zones in the KaleidescapeSystem 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 projectswithout major modifications. These templates are complex and any modificationcan remove important functions or introduce bugs.Programming AMX Controllers for a Kaleidescape SystemPage 6

Touch Panels and KeypadsTouch panelsThe Kaleidescape module uses the full screen on a touch panel and incorporates alarge video window to provide complete consistency even when a separate videodisplay is unavailable. Only the buttons required for a particular feature aredisplayed. For example, the keyboard is displayed only when alphanumeric input isrequired. After text entry is complete, the keyboard vanishes. Pop-up windows areused sparingly to simplify the user experience and to manage secondary andtertiary controls. The upper right corner of the layout is intentionally left open so aprogrammer can add buttons to tie into other whole-house sources and controls.Touch panel variationsKaleidescape 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 theKaleidescape preferred implementation. When choosing which variation to use fora particular installation, consider whether or not a video display is present, whatthe technical capabilities of the touch panel are, and whether a movie or musiczone is to be controlled. Most installations need to implement several touch panelvariations to provide quality control in every zone.Touch panel variations are packaged separately and available as downloadable TP4and TPD files. Each file is constructed as a single page with sub-pages to managesecondary and tertiary controls within each variation. The appropriate Kaleidescapemodule must also be downloaded.The touch panel variations in Figures 1 through 3 are screenshots taken from the1024 768 pixel template for a 15-inch touch panel. Refer to Appendix A: ScreenShots for UI Layouts on page 52 for more sample screen shots of all threevariations.OSD control with a video windowThe OSD Video template displays the Kaleidescape System OSD on the touch panelsimplifying user operation. Kaleidescape strongly recommends that installers usethis interface configuration to deliver a superior user experience for both moviesand 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 panelProgramming AMX Controllers for a Kaleidescape SystemPage 7

Figure 1: OSD control with a video windowOSD control without a video windowInstead of the video window, the OSD No Video template delivers text-baseddetails for the content currently selected in the OSD. The touch panel replicates themovie details page or album details page for the selected movie or album in anyOSD view. Use this variation only when the touch panel cannot support a videowindow or when the touch panel has too little area to display the OSD video imageclearly.On Premiere line systems, Kaleidescape provides control panels in theKaleidescape 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 panelFigure 2: OSD control without a video windowProgramming AMX Controllers for a Kaleidescape SystemPage 8

Standalone touch panel (SATP) controlThe standalone touch panel (SATP) template provides control for music on touchpanels in rooms without video displays, like hallways, dining rooms, and patios, ortouch panels with display areas too small to support a large video window. Thissimple, text-based interface is a powerful browsing tool, ideal for small LCDdisplays (320 240 pixels). Although this configuration is an effective way tobrowse a library and make selections, the experience is not as rich or as powerfulas the previous two touch panel variations.On Premiere line systems, Kaleidescape provides control panels in theKaleidescape browser interface identical to this standalone touch panel.This solution has the following requirement: A Kaleidescape music zoneFigure 3: Standalone touch panel (SATP) controlProgramming AMX Controllers for a Kaleidescape SystemPage 9

Layout for touch panel user interfaceFigure 4 outlines the organization of the Kaleidescape touch panel user interface.This layout complements the Kaleidescape OSD and provides an intuitive methodto control the Kaleidescape System. Using a consistent implementation of this gridlayout across all panel sizes and control platforms improves overall systemusability.Figure 4: Layout for touch panel user interfaceSelecting the Kaleidescape logo accesses the Kaleidescape menu.Programmers can integrate whole-house controls with the Volume buttons (locatedin the upper right corner).The secondary Kaleidescape navigation area (located along the left side), hasbuttons for selecting the movie or music views: List, Covers, and Collections.The Now Playing information (located in the lower left corner) is visible whenevermovies or music are playing.Playback transports, directional arrows, pop-ups and other view-specificKaleidescape controls are on the lower section of the screen.Programming AMX Controllers for a Kaleidescape SystemPage 10

Keypad controlKeypad commands provide a method for controlling music playback from any zoneon any Kaleidescape player without requiring control feedback. Although keypadcommands were created for keypads, these commands can use any button-likeinput, a button on a keypad or touch panel, a motion sensor, or any other inputdevice.Kaleidescape provides two different types of keypad commands. Presets Music collectionsWith the keypad presets commands, a keypad can be programmed to play apredetermined music item that can be easily changed by the user.With the music collections commands, a keypad can be programmed so users cancycle through music items within a music collection.Using Music PresetsA preset ties a music item in the Kaleidescape System to a keypad button or otherinput trigger. Any music item can be saved as a preset, and there is no limit to thenumber of presets that can be used in a system. The same music presets can beused 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 buttondesignated My Music can be set in the family room that plays the same music presetas any other My Music button in the installation.Alternatively, every keypad in an installation can have unique presets assigned toeach individual button. In this scenario, setting a music preset to the first button inthe family room does not affect buttons on the kitchen keypad; however, theseapproaches can be combined. A set of rooms can share a set of presets. Forexample, the breakfast nook, hallway, and entryway can all share one set ofpresets, while each child’s room has unique presets.Programming AMX Controllers for a Kaleidescape SystemPage 11

Music items in the Kaleidescape SystemThe Kaleidescape System treats several different music items as playable. Table 1defines these items and the effect of the random and repeat settings on each item.Table 1: Music itemsItemDescriptionExampleRandomRepeatSingle trackAny single track onany albumHey Bulldog bythe BeatlesOnly thesingle trackplaysCan berepeatedAlbumAny single albumAbbey Road bythe BeatlesCan beplayedrandomlyCan berepeatedMix albumUser-defined albumthat can contain any tracksor albumsMy Favorite JazzCan beplayedrandomlyCan berepeatedArtistAll music tracks performedor composed by the artist,no matter what albumthe track is onThe ll music tracks composedby the artist, no matterwhat album the track is onMaurice RavelAlwaysrandomAlwaysrepeatsClassical work Single classical work,Piano Concerto in Can beplayedincorporates all tracks into a G Major byMaurice Ravelrandomlysingle music itemUser-definedcollectionAll tracks from any albums, My favoritesmix albums, artists, genres,or classical composers in auser-defined collectionGenreAll music tracks in thegenreAll musicAll music on all albumsJazzProgramming AMX Controllers for a Kaleidescape SystemCan aysrepeatsAlwaysrandomAlwaysrepeatsPage 12

Random and repeatIn the Kaleidescape System, some music items always play in random order andrepeat. These music items include any genre, artist, composer, user-definedcollection, and all music.When any of these items are saved to a preset and played, the item plays inrandom order starting with a random track. If the preset is selected again, a newrandom track plays. This behavior removes the requirement to use a next trackbutton to skip a track within the selection. For example, if a preset button isprogrammed to play the Jazz genre, every time that button is pressed, a randomlyselected Jazz track starts playing. If the user does not care for the current track, theuser can simply press the button again to hear a different track. A Beatles button, aMozart button, a My Favorites button, or an All Music button behaves the sameway.The most recent random and repeat settings in a Kaleidescape zone control howalbums, mix albums, and single tracks play from a preset. To control how theseitems are played back, the random and repeat settings of the zone can be changedwith the SATP interface, the OSD interface, or through the programming interface.Tags and the Preset IDMost radio tuners have presets, typically using numbered buttons to define eachone. For instance, Button 1 can be WKRP, Button 2 can be WNPR, and so forth. TheKaleidescape System uses a text tag instead of a physical button. Each preset isdefined by a tag associated with a music item in a system-wide table.To simplify creating presets, the Kaleidescape module uses a Preset ID parameterto generate tags. A Preset ID can refer to a location or function. For instance, aPreset ID like Kitchen can be used to create presets for the kitchen music zone. Amodule with a Preset ID like Country can be used to program the same button onall keypads in the installation to play Country music. For example, a Preset IDnamed My Favorites can be used to create a My Favorites music button on multiplekeypads. This means the user can set the type of music the button plays. The usercan set the preset to play the genre Jazz, the sub-genre Dixieland, or even a favoritemix album.The Preset ID is appended with the module preset channel number, to create thefinal tag used by the module. In other words, if the module is programmed with thePreset ID Kitchen, the module’s first preset channel uses the tag Kitchen1, thesecond preset input uses Kitchen2 and so forth. For two virtual devices to share thesame presets, simply give the virtual devices the same Preset ID. To create separatepresets for each virtual device, assign different Preset IDs.Tags are currently not visible to end users, but might be displayed on the onscreendisplay or browser interface someday, so be sure to name Preset ID appropriately.Programming AMX Controllers for a Kaleidescape SystemPage 13

ZonesPresets are shared between all zones on all players in the system. A preset savedon one music zone can be used anywhere in the system. The zone number must bedefined when setting up the virtual device. A single virtual device can control bothan SATP interface as well as a set of keypads. See Programming on page 17 formore information.Saving presetsTo 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 browserinterface. Once the music is playing, press and hold a programmed preset buttonfor a few seconds to set the preset. The playback will mute briefly to acknowledgethat the preset has been saved.Any discrete music item can be saved as a preset. An individual track, album, mixalbum, genre, artist, classical work, classical composer, user-defined collection, orall music can be saved to a preset.If more than one item is set to play (for example, three albums are queued up inNow Playing), only the item currently playing is saved to the preset. There is no needto 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 eachtime recalled, regardless of what songs were present when the preset was saved.Preset browsingThe module also provides the ability to browse through the presets in numericalorder. There are three controls provided for this activity: first, next, and previous. Ifa specific preset has not been defined, that preset is skipped and the next definedpreset is activated.To stop the next and previous commands at a certain maximum preset index, sendthe Max Preset command to the device to indicate the maximum preset to cyclethrough. The First, Next, and Previous commands can be activated throughchannels 140, 141, and 142, respectively.Preset feedbackEach preset in the module is associated with a descriptive text label identifyingwhat is saved to that preset. For example, if the user saves the genre Jazz to apreset, then Jazz becomes the preset label. If the user saves music by Queen or theAlice in Chains album Facelift to a preset, then the preset label becomes Queen orAlice in Chains – Facelift, respectively. These labels can be used on keypad characterdisplays or touch panels to identify the preset value of buttons.The module also reports information about the currently selected music entityusing the Now Playing Item output. If a preset is currently playing, the labelassociated with that preset is displayed.Programming AMX Controllers for a Kaleidescape SystemPage 14

Collection browsingA set of buttons can be programmed to browse through the items in a musiccollection. Any music collection (Albums by Artist, Albums by Title, Artists, Genres,Mix Albums, Classical Composers, Classical Works, New, or any user-definedcollection) can be specified. The module provides three controls for browsing: first,next, and previous. These controls step through the collection in the orderdisplayed on the OSD.Each virtual device passed to the module can have three sets of buttons forbrowsing collections as shown in the following table.Table 2: Virtual device button setsControl CommandCollection 1ChannelsCollection 2ChannelsCollection 139Use send commands to tell the module which collection to step through when oneof the collection channels is triggered. The command COLLECTION 1 Albumsenables channels 131, 132, and 133 to step through the Albums collection.The music collections currently available in the Kaleidescape System are describedin the following table.Table 3: Current Kaleidescape music collectionsItemDescription (of systemcontents)Alphabetical Sort OrderAlbums by ArtistAll albumsArtist name, then album All musictitleAlbums by TitleAll albumsAlbum nameAll musicArtistsAll artistsArtist nameAll musicClassicalcomposersAll classical composersComposer nameAll classicalmusicClassical worksAll classical worksWork nameAll classicalmusicGenresTop 40 genresGenre nameAll musicMix AlbumsAll user-defined mixalbumsMix album nameFirst mixalbumProgramming AMX Controllers for a Kaleidescape SystemFirst ItemPage 15

ItemDescription (of systemcontents)Alphabetical Sort OrderNewMost recently imported Album namealbums. The time periodfor considering an albumnew can be set in thebrowser interface.User-definedCollection of any musicitems defined by theuserItem nameFirst ItemFirst newalbumAll in thiscollectionAs more music collections are added to the Kaleidescape System, the keypadcommands are also able to browse the collections.ExampleIf the user wants to step through every album in the Kaleidescape System, define aset of buttons to step through the Albums by Artist collection. When the userpresses the First Album button, all music plays, this is because the first item on theAlbums by Artist collection is All Music. If the user subsequently presses the Nextbutton, the first album by the first artist plays, since the Album Collection is sortedalphabetically by artist name.The API controls in the keypad music collections operate independently from othermethods for choosing music to play. When a user presses the next button for acollection, the next item relative to the last item played from the keypad alwaysplays. 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 toskip from ABBA to The Beatles. A little while later, the user selects ABBA from theonscreen display. The next time the user presses Next Artist on the keypad, The Carsstarts playing, even though the user might expect The Beatles to start playing.Programming AMX Controllers for a Kaleidescape SystemPage 16

ProgrammingKaleidescape command protocolKaleidescape System control is based on bidirectional ASCII string commands. AllKaleidescape components respond to commands from an AMX controller andprovide feedback in ASCII format. Although understanding the details ofKaleidescape command protocol is not required for AMX programming, it isimportant to understand how these commands are routed in the KaleidescapeSystem.The first field in the command string identifies the Kaleidescape component towhich the command is being sent or from which feedback is being received. Thisdevice field can have two variables that also appear in module settings and settingsmade in the browser interface. The first variable is the device id, which identifies the Kaleidescapecomponent. On Premiere line systems, this is usually the Control ProtocolDevice ID(CPDID) or may also be the serial number of the component. Altoand Cinema One (2nd generation) do not support the use of CPDIDs andmust always use the serial number of the component. The second variable is Zone ID, which identifies the movie or music zone tobe controlled.Note: There are a few commands intended for a 1U, 3U or 5U Server, butthese commands are generally limited to IP address recovery commands,and are not useful for the AMX system.Comment inIn 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 IDEvery command and response begins with a device ID which can be a ControlProtocol 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 isintended for and to indicate which component a message was generated by.All Kaleidescape components, including Alto and Cinema One (2nd generation),have a default CPDID set to None (01 in the ASCII command). This default CPDIDwill always control the Kaleidescape component connected directly to the controllerregardless of the CPDID set on the component.When a value other than the default CPDID is used (either an assigned CPDID or thecomponent serial number), the command is routed through the connectedKaleidescape component to the Kaleidescape component with the matching CPDIDor serial number. The Kaleidescape module verifies receipt of a valid response fromProgramming AMX Controllers for a Kaleidescape SystemPage 17

the targeted zone by comparing the device ID of the response and the device IDsset in the program.If CPDIDs are used for command routing each Premiere line component beingcontrolled 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:', 0DIf the Kaleidescape component’s serial number is used as the device ID, the PLAYcommand has the following format.'#020600007410/1/PLAY:', 0DThe device ID is set in the program by sending the device ID to the virtual devicethat will control the corresponding movie or music zone using send command. Forexample: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 useserial number IDs by replacing the CPDID with a hash (#) followed by the targetcomponent’s serial number. The serial number can be padded with zeroes to amaximum of 12 characters but it is not required.Kaleidescape music zonesSome Kaleidescape components have more than one music zone. For example, theKaleidescape Music Player incorporates four music zone outputs, each of whichmust be controlled independently.To control the four music zones, the device field includes a Zone ID (01–04) thatidentifies the music zone to which the command is targeted. Each music zonebehaves as a separate endpoint. Commands that target Zone ID 01 do not usuallyaffect 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 commandintended for Zone ID 03 has the following format.'06.03/1/PLAY:', 0DMusic commands addressed to the single zone of a M500 Player always useZone ID 01.Send commands (see configuration instructions on page 24) are used to tell theKaleidescape module which virtual devices control which zones.Programming AMX Controllers for a Kaleidescape SystemPage 18

Kaleidescape moduleKaleidescape provides a single control module for either standalone touch panel(SATP), onscreen display (OSD), or keypad controls. The Kaleidescape module isdesigned 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 themodule. To configure the zone controlled by each virtual device, use sendcommands in the Kaleidescape Multiple Panel Include file.These virtual devices act as actual devices and use the standard AMX channellineup. For example, if channel 1 is pulsed on the virtual device, the PLAY commandis 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 virtualdevice. A one-way remote can use the virtual device as though the virtual devicewere an IR device. Feedback events from the virtual device can trigger other actions.Downloading and importing the Kaleidescape module for AMXAlways download the latest module before starting a new program or modifying anold one. Use the following steps to download and import the Kaleidescape moduleand templates for the AMX system.1. Download the Kaleidescape module and templates ZIP file (Download allAMX 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 followingfiles into the project folder: Kaleidescape.axs Kaleidescape.tko Kaleidescape.tkn Kaleidescape Multiple Panel Include.axi3. In the main program, define the port for the AMX system to use to connectto the Kaleidescape System. If using TCP/IP communications, define a localport for the module to use. Verify that the port is not already usedsomewhere else in the program.DEFINE DEVICEKALEIDESCAPE PORT 0:4:04. If using RS-232 communications, define the RS-232 port connected to theKaleidescape component.DEFINE DEVICEKALEIDESCAPE PORT 5001:1:0Programming AMX Controllers for a Kaleidescape SystemPage 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 commandslisted in the Kaleidescape Multiple Panel Include file.Configuring the Kaleidescape Multiple Panel Include fileUse 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 notnecessary to configure unused zones. Verify again that the virtual devices used are not used anywhereelse in the program. Virtual devices that use ports other than thefirst (i.e., 33001:2:0 or 33001:3:0) do not always behave properly whenused 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 becontrolling the zones in the Kaleidescape System.3. Modify the controlledKplayers array to define which touch panel controlswhic

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: