Skip to content

Commands

Note

This page documents the available commands for X-Series products. That includes RidePlayer, V16X, V4X, BinloopX, and RidePlayerX. While many of the commands may be the same for previous generations, consult their product manuals for specifics.

System Commands

Get/Set IP Address

//------------------------------------------------------------------------------
// Get/Set IP Address
//
// Description:
//          Get or set the IP Address.
//
// Supported Products:
//          All
//          
// Command Format:
//          SET:
//              <x><i>IP
//          GET:
//              <i>IP
//
// Parameters:
//          <x> = the IP Address, eg. "192.168.0.254"
//          <i> = the interface to set the IP, optional if only one
//                ethernet interface.
//                "a" - Port A (V16X, V4X)
//                "b" - Port B (V16X, V4X)
//                "c" - Port C (V16X)
//                "d" - Port D (V16X)
//                "p" - Primary Control (RidePlayer)
//                "s" - Secondary Control (RidePlayer)
//                "RP" - Primary Media (RidePlayer)
//
// Response:
//          SET:
//              "R"\r
//          GET:
//              "XXX.XXX.XXX.XXX"\r
//
// Examples:
//          Get the IP address of port C on a V16X
//          Sent: "cIP"\r
//          Received: "192.168.5.86"\r
//          
//          Set the IP address of a BinloopX to 192.168.1.100
//          Sent: "192.168.1.100IP"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Get/Set Subnet Mask

//------------------------------------------------------------------------------
// Get/Set Subnet Mask
//
// Description:
//          Get or set the Subnet Mask.
//
// Supported Products:
//          All
//          
// Command Format:
//          SET:
//              <x><i>SM
//          GET:
//              <i>SM
//
// Parameters:
//          <x> = the Subnet Mask, eg. "255.255.255.0"
//          <i> = the interface to set the subnet mask, optional if only one
//                ethernet interface.
//                "a" - Port A (V16X, V4X)
//                "b" - Port B (V16X, V4X)
//                "c" - Port C (V16X)
//                "d" - Port D (V16X)
//                "p" - Primary Control (RidePlayer/RidePlayerX)
//                "s" - Secondary Control (RidePlayer/RidePlayerX)
//                "RP" - Primary Media (RidePlayer)
//
// Response:
//          SET:
//              "R"\r
//          GET:
//              "XXX.XXX.XXX.XXX"\r
//
// Examples:
//          Get the subnet mask of primary control port on a RidePlayerX
//          Sent: "pSW"\r
//          Received: "255.255.128.0"\r
//          
//          Set the subnet mask of a BinloopX to 255.255.255.0
//          Sent: "255.255.255.0SM"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Get/Set Gateway Address

//------------------------------------------------------------------------------
// Get/Set Gateway Address
//
// Description:
//          Get or set the Gateway IP Address.
//
// Supported Products:
//          All
//          
// Command Format:
//          SET:
//              <x><i>GW
//          GET:
//              <i>GW
//
// Parameters:
//          <x> = the Gateway Address, eg. "192.168.0.1"
//          <i> = the interface to set the gateway address, optional if only one
//                ethernet interface.
//                "a" - Port A (V16X, V4X)
//                "b" - Port B (V16X, V4X)
//                "c" - Port C (V16X)
//                "d" - Port D (V16X)
//                "p" - Primary Control (RidePlayer/RidePlayerX)
//                "s" - Secondary Control (RidePlayer/RidePlayerX)
//                "RP" - Primary Media (RidePlayer)
//
// Response:
//          SET:
//              "R"\r
//          GET:
//              "XXX.XXX.XXX.XXX"\r
//
// Examples:
//          Get the gateway address of a BinloopX.
//          Sent: "GW"\r
//          Received: "192.168.0.1"\r
//          
//          Set the gateway of a V16X Port A to 192.168.5.1
//          Sent: "192.168.5.1aGW"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Get/Set Time

//------------------------------------------------------------------------------
// Get/Set Time
//
// Description:
//          Gets or sets the time.  If using a time of day source like
//          NTP or PTP, the remote time source will take priority over
//          times set by this command.
//
// Supported Products:
//          All
//          
// Command Format:
//          SET:
//              <x>TI
//          GET:
//              TI
//
// Parameters:
//          <x> = the time, as HH:MM:SS
//
// Response:
//          SET:
//              "R"\r
//              or
//              "Error: Time Not In Correct Format"\r
//          GET:
//              "HH:MM:SS"\r
//
// Examples:
//          Sent: "TI"\r
//          Received: "01:23:14"\r
//          
//          Sent: "01:23:14TI"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Get/Set Date

//------------------------------------------------------------------------------
// Get/Set Date
//
// Description:
//          Gets or sets the date.  If using a time of day source like
//          NTP or PTP, the remote time source will take priority over
//          dates set by this command.
//
// Supported Products:
//          All
//          
// Command Format:
//          SET:
//              <x>DA
//          GET:
//              DA
//
// Parameters:
//          <x> = the date, as MM/DD/YYYY
//
// Response:
//          SET:
//              "R"\r
//              or
//              "Error: Date Not In Correct Format"\r
//          GET:
//              "MM/DD/YYYY"\r
//
// Examples:
//          Sent: "DA"\r
//          Received: "11/15/2020"\r
//          
//          Sent: "11/15/2020DA"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Get Version

//------------------------------------------------------------------------------
// Get Version
//
// Description:
//          Returns the firmware version of the device.
//          
// Command Format:
//          ?V
//
// Response:
//          "DeviceName vX.X.X"\r
//
// Examples:
//          Sent: "?V"\r
//          Received: "RidePlayer v6.8.0"\r
//
//------------------------------------------------------------------------------

Media Commands

Note

RidePlayer and RidePlayerX can be sent media commands directly. In the case of BinloopX, the media command must be wrapped in the "Forward Command" syntax, which directs the command to the appropriate module. See "Forward Command to BX Module" below.

Forward Command to BX Module

//------------------------------------------------------------------------------
// Forward Command to BX Module
//
// Description:
//          Sends a specified command directly to a module within a BinloopX
//          card cage
//          
// Command Format:
//          <cmd>|<slot>FC
//
// Parameters:
//          <cmd>            - required, the command to send to the module
//          <slot>           - required, the BinloopX slot to send the command
//                             to
//
// Examples:
//         ""myClip"PL|R2FC"\r - send this play command to slot 2
//         "RJ|R3FC"\r         - send this stop command to slot 3
//
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Play / Loop / Search Media
//
// Description:
//      Start playback of media.  Play commands will play and stop at the end of
//      the media.  Loop commands will continue to loop the media.  Search
//      commands will load the media and pause, waiting for a play command to
//      start playback.
//
// Supported Products:
//      RidePlayer, RidePlayerX, BinloopX
//
// Command Format:
//      Play:
//          <id><actionTime><effectTime><start_offset><end_offset><filename><output><player>PL
//      Loop:
//          <id><actionTime><effectTime><start_offset><end_offset><filename><output><player>LP
//      Search:
//          <id><actionTime><effectTime><start_offset><end_offset><filename><output><player>SE
//
// Parameters:
//      <id>            = optional, $IDx where x is 1-65535.  A command with
//                        the same id from the same sender will not be processed
//                        twice.  ID's can be reused after 5 seconds.
//      <actionTime>    = optional, time of day that the command was sent,
//                        as A2017-07-28T01:02:03.456Z
//                        If time sync is lost, this is used along with the
//                        effect time to determine a relative time when
//                        playback should begin.
//      <effectTime>    = optional, time of day to start playback,
//                        as T2017-07-28T01:02:03.456Z
//                        will be rounded to nearest frame edge.
//      <start_offset>  = optional, starting offset into the media. 
//                        as >00:00:00.00<
//      <end_offset>    = optional, ending offset from end of media.  
//                        as E>00:00:00.00<
//      <filename>      = required, filename or number in quotes.
//                        If a number is specified, it will match the filename
//                        or clip name that ends in the same number,
//                        (e.g. "1" -> clip00001/)
//      <output>        = optional, output on which to play the file (1-indexed)
//                        as "[2]" (channel 2)
//                        or "[1,2,3]" (channels 1, 2, 3)
//                        or "[1-3, 5-7]" (channels 1, 2, 3, 5, 6, 7)
//                        or "C4" (channel 4)
//                        or * for all outputs.
//                        (defaults to output 1 if not specified).
//      <player>        = optional, audio files only.  The player to use for
//                        this playback event.
//
// Response:
//          Success: "R"\r
//          or
//          Invalid command: "E04"\r
//          or
//          Invalid parameters: "E06"\r
//          or
//          Media not found: "E11"\r
//
// Examples:
//          Play video clip named "myVideo" to output 1, starting 10 seconds
//          and one frame into the clip.
//          Sent: ">00:00:10.01<"myVideo"[1]PL"\r
//          Received: "R"\r
//
//          Loop the audio file "myMusic.wav" to outputs 1 and 2, starting
//          at the specified time, with a command ID of 6, on
//          the "Scene3" player.
//          Sent: "$ID6T2024-06-21T01:02:05.873Z"myMusic.wav""Scene3"LP"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Play Next / Loop Next

//------------------------------------------------------------------------------
// Play Next / Loop Next
//
// Description:
//      Queues media to start after the current playback ends.  For audio files,
//      a player must be specified.  Media format must be the same as the current
//      playing file.
//
// Supported Products:
//      RidePlayer, RidePlayerX, BinloopX
//
// Command Format:
//      Play Next:
//           <id><actionTime><effectTime><start_offset><end_offset><filename><output><player>PN
//      Loop Next:
//           <id><actionTime><effectTime><start_offset><end_offset><filename><output><player>LN
//
// Parameters:
//      <id>            = optional, $IDx where x is 1-65535.  A command with
//                        the same id from the same sender will not be processed
//                        twice.  ID's can be reused after 5 seconds.
//      <actionTime>    = optional, time of day that the command was sent,
//                        as A2017-07-28T01:02:03.456Z
//                        If time sync is lost, this is used along with the
//                        effect time to determine a relative time when
//                        playback should begin.
//      <effectTime>    = optional, time of day to start playback,
//                        as T2017-07-28T01:02:03.456Z
//                        will be rounded to nearest frame edge.
//      <start_offset>  = optional, starting offset into the media. 
//                        as >00:00:00.00<
//      <end_offset>    = optional, ending offset from end of media.  
//                        as E>00:00:00.00<
//      <filename>      = required, filename or number in quotes.
//                        If a number is specified instead of a filename,
//                        it will match any file whose name ends with that
//                        number (e.g., "1" will match "clip00001").
//      <output>        = optional, output on which to play the file (1-indexed)
//                        as "[2]" (channel 2)
//                        or "[1,2,3]" (channels 1, 2, 3)
//                        or "[1-3, 5-7]" (channels 1, 2, 3, 5, 6, 7)
//                        or "C4" (channel 4)
//                        or * for all outputs.
//                        (defaults to output 1 if not specified).  
//      <player>        = required for audio files only.  The player to use for
//                        this playback event.
//
// Response:
//          Success: "R"\r
//          or
//          Invalid command: "E04"\r
//          or
//          Invalid parameters: "E06"\r
//          or
//          Media not found: "E11"\r
//
// Examples:
//          After the current clip ends on output 3, transition to a video clip
//          named "myVideo", starting 10 seconds and one frame into the clip.
//          Sent: ""myVideo"[3]PN"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Pause / Stop

//------------------------------------------------------------------------------
// Pause / Stop Media
//
// Description:
//      Pauses or stops any media playing with the specified filename, output, or
//      player (for audio).
//
// Supported Products:
//      RidePlayer, RidePlayerX, BinloopX
//
// Command Format:
//      Pause:
//           <id><actionTime><effectTime><output><player>PA
//      Stop:
//           <id><actionTime><effectTime><output><player>RJ
//
// Parameters:
//      <id>            = optional, $IDx where x is 1-65535.  A command with the same id from the
//                        same sender will not be processed twice.  ID's can be reused after 5 seconds.
//      <actionTime>    = optional, time of day that the command was sent,
//                        as A2017-07-28T01:02:03.456Z
//                        If time sync is lost, this is used along with the
//                        effect time to determine a relative time when
//                        playback should pause.
//      <effectTime>    = optional, time of day to pause playback,
//                        as T2017-07-28T01:02:03.456Z
//                        will be rounded to nearest frame edge.
//      <output>        = optional, output to pause (1-indexed)
//                        as "[2]" (channel 2)
//                        or "[1,2,3]" (channels 1, 2, 3)
//                        or "[1-3, 5-7]" (channels 1, 2, 3, 5, 6, 7)
//                        or "C4" (channel 4)
//                        or * for all outputs.
//                        (defaults to output 1 if not specified).  
//      <player>        = optional, audio files only, the player to pause.
//
// Response:
//          Success: "R"\r
//          or
//          Invalid command: "E04"\r
//          or
//          Invalid parameters: "E06"\r
//          or
//          Media not found: "E11"\r
//
// Examples:
//          Pause anything playing on output 3
//          Sent: "[3]PA"\r
//          Received: "R"\r
//
//          Pause audio playing on the "GiantTalkingHead" player
//          Sent: "*"GiantTalkingHead"PA"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Get Current Clip

//------------------------------------------------------------------------------
// Get Current Clip
//
// Description:
//      Get the name of the clip playing on the specified output.
//
// Supported Products:
//      BinloopX, BX-4KU video module only.
//
// Command Format:
//      <output>?C
//
// Parameters:
//      <output>        = optional, output to get clip name from (1-indexed)
//                        as "[2]" (channel 2)
//                        or "C4" (channel 4)
//                        (defaults to output 1 if not specified).  
//
// Response:
//          Success: "R"\r
//          or
//          Invalid command: "E04"\r
//
// Examples:
//          Get the name of the clip playing on output 1
//          Sent: "?C"\r
//          Received: "scene6Video"\r
//
//          Get the name of the clip playing on output 3
//          Sent: "[3]?C"\r
//          Received: "myClip"\r
//
//------------------------------------------------------------------------------

Get Current Clip Frame Number

//------------------------------------------------------------------------------
// Get Current Clip Frame Number
//
// Description:
//      Get the current frame number of the clip playing on the specified output.
//
// Supported Products:
//      BinloopX, BX-4KU video module only.
//
// Command Format:
//      <output>?F
//
// Parameters:
//      <output>        = optional, output to get clip name from (1-indexed)
//                        as "[2]" (channel 2)
//                        or "C4" (channel 4)
//                        (defaults to output 1 if not specified).  
//
// Response:
//          Success: "1024"\r
//          or
//          Invalid command: "E04"\r
//
// Examples:
//          Get the frame number of the clip playing on output 1 (assuming
//          clip is currently on 456th frame)
//          Sent: "?F"\r
//          Received: "456"\r
//
//          Get the name of the clip playing on output 3 (assuming clip is
//          currently on the 123 frame)
//          Sent: "[3]?F"\r
//          Received: "123"\r
//
//------------------------------------------------------------------------------

Get Current Clip Timecode

//------------------------------------------------------------------------------
// Get Current Frame Number
//
// Description:
//      Get the current timecode of the clip playing on the specified output.
//
// Supported Products:
//      BinloopX, BX-4KU video module only.
//
// Command Format:
//      <output>?T
//
// Parameters:
//      <output>        = optional, output to get clip name from (1-indexed)
//                        as "[2]" (channel 2)
//                        or "C4" (channel 4)
//                        (defaults to output 1 if not specified).  
//
// Response:
//          Success: "00:10:02.23"\r
//          or
//          Invalid command: "E04"\r
//
// Examples:
//          Get the timecode of the clip playing on output 1
//          Sent: "?T"\r
//          Received: "00:00:05.49"\r
//
//          Get the timecode of the clip playing on output 3
//          Sent: "[3]?T"\r
//          Received: "00:10:05.03"\r
//
//------------------------------------------------------------------------------

On-Screen Display

//------------------------------------------------------------------------------
// Enable/Disable On-Screen Display
//
// Description:
//      This commands turns on or off the on-screen display which overlays
//      on the video output.  This is only available in single output mode 
//      (ie, it is not available when the module is in 4-output, or Quad HD
//      mode).
//
// Supported Products:
//      BinloopX, BX-4KU video module only.
//
// Command Format:
//      <action><type>OS
//
// Parameters:
//      <action> = the type of on-screen display
//                0 - disable
//                1 - enable
//      <type> = the type of on-screen display
//                "i" - clip information (name, timecode, etc.)
//                "s" - sync information (clock alignment, for troubleshooting)
//
// Response:
//          Success: "R"\r
//          or
//          Invalid command: "E04"\r
//
// Examples:
//          Enable the clip info OSD
//          Sent: "1IOS"\r
//          Received: "R"\r
//
//          Disable the sync info OSD
//          Sent: "0SOS"\r
//          Received: "R"\r
//
//------------------------------------------------------------------------------

Scheduled Sequence Triggers

The Scheduled Sequence Trigger API allows users to start, stop, and pause sequences at a specified Time of Day via commands sent to the device from an external control system.

All commands and responses are terminated with a carriage return (<0D>.) Some responses (like the List Triggers command) may contain multiple data points that are separated with a line feed (<0A>.) Each created trigger is assigned a Universally Unique Identifier (UUID). This UUID is provided within the response whenever a trigger is created so that you can reference the trigger at a later time.


Add Trigger

Adds a new trigger to the scheduled sequence trigger list.

Command

<Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|AddTT<0D>

<Seq Offset> Sequence offset (HH:MM:SS.FF format)

<Seq Name> Name of the sequence to be triggered

<Execution Time> Trigger execution time (SSSSSSSSSS.nnnnnnnnn format.) This value represents an offset from the UTC Epoch (12:00am January 1st 1970) where the 10-digit SSSSSSSSSS field represents seconds, and the 9-digit nnnnnnnnn represents nanoseconds.

<Trigger Type> Action to perform on the sequence when the trigger fires - Play, Pause, or Stop

Response

 <UUID><0D>
<UUID> Unique ID of the new trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format)

Examples

Play sequence "Timeline_Scene1" at 17:39:42 GMT

00:00:00.00|Timeline_Scene1|1681839582.123456|Play|AddTT<0D>
Response
12345678-1234-1234-123456789012<0D>


Modify Trigger

Modifies an existing trigger in the scheduled sequence trigger list.

Command

 <Seq Offset>|<Seq Name>|<Execution Timestamp>|<Trigger Type>|<UUID>|ModTT<0D>

<Seq Offset>:: Sequence offset (HH:MM:SS.FF format)

<Seq Name>:: Name of the sequence to be triggered

<Execution Time>:: Trigger execution time (SSSSSSSSSS.nnnnnnnnn format.) This value represents an offset from the UTC Epoch (12:00am January 1st 1970) where the 10-digit SSSSSSSSSS field represents seconds, and the 9-digit nnnnnnnnn represents nanoseconds.

<Trigger Type>:: Action to perform on the sequence when the trigger fires - Play, Pause, or Stop

<UUID>:: Unique ID of the existing trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format)

Response

 <UUID><0D>
<UUID> Unique ID of the new trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format)

Examples

Modify trigger to Play sequence "Timeline_Scene2" at 17:39:42 GMT

00:00:00.00|Timeline_Scene2|1681839582.123456|Play|12345678-1234-1234-123456789012|ModTT<0D>
Response
12345678-1234-1234-123456789012<0D>


Delete Trigger

Deletes an existing trigger (or all triggers) in the scheduled sequence trigger list.

Command

 <UUID>|DelTT<0D>

<UUID>:: Unique ID of the existing trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format) or * to delete all triggers.

Response

 <UUID><0D>
<UUID>:: Unique ID of the existing trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format)

Examples

Delete trigger with UUID 12345678-1234-1234-123456789012

12345678-1234-1234-123456789012|DelTT<0D>
Response
12345678-1234-1234-123456789012<0D>


List Trigger(s)

Retrieves trigger parameters for one or all triggers.

Command

 <UUID>|LstTT<0D>

<UUID>:: Unique ID of the existing trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format) or * to retrieve all triggers.

Response

<Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0D>

The response to a List Trigger command for all triggers is essentially a list of strings representing each trigger on the controller. Each trigger string is terminated with a linefeed and the end of the list is terminated by a carriage return.

 <Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0A>
 <Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0A>
 <Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0D>

It is easy for the length of this response to exceed the MTU of a network path and/or the minimum datagram size that hosts must accept. Since transmission takes place with UDP, this can cause data loss. In the case where the length of this response would exceed 512 bytes, the response will be split into multiple 512-byte (or smaller) datagrams in the following way:

  1. Response message will start in the normal way. Information about triggers will be appended to the datagram and separated by line feeds.

  2. If appending a trigger to the response would cause the payload size to exceed 500 bytes, the trigger will not be appended to the message. Instead, an opening square bracket will be appended on that line, followed by a four-digit zero-padded "block number", a forward slash, a four-digit zero-padded "block count", and a closing square bracket. The end of the datagram will be the closing bracket (no carriage return or line feed will be appended to it.)

  3. The final block will have the same pattern as the previous blocks, containing linefeed-separated triggers and being terminated by the block number and block count in square brackets. In addition, the final block will be terminated by a carriage return immediately following the closing square bracket. The client can determine if they have received the full message by checking that each block they have received has a unique number and that the total number of blocks received is equal to the given block count.

Packet 1

 <Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0A>
 <Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0A>
 [0001/0002]
Packet 2
 <Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0A>
 <Seq Offset>|<Seq Name>|<Execution Time>|<Trigger Type>|<UUID><0A>
 [0002/0002]<0D>

Examples

Get parameters of trigger with UUID

12345678-1234-1234-123456789012|LstTT<0D>
Response
00:00:00.00|Timeline_Scene2|1681839582.123456|Play|12345678-1234-1234-123456789012|ModTT<0D>

Get parameters of ALL triggers

*|LstTT<0D>
Response
00:00:00.00|Timeline_Scene2|1681839582.123456|Play|12345678-1234-1234-123456789012<0A>
00:00:01.00|Timeline_Scene4|1681839582.123456|Play|11111111-1111-1111-111111111111<0A>
00:00:02.00|Timeline_Scene5a|1681839582.123456|Play|22222222-2222-2222-222222222222<0D>


Disable Trigger

Disables an existing trigger in the scheduled sequence trigger list.

Command

 <UUID>|DisTT<0D>

<UUID>:: Unique ID of the existing trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format)

Response

 <UUID><0D>

Examples

Disable trigger with UUID 12345678-1234-1234-123456789012

12345678-1234-1234-123456789012|DisTT<0D>
Response
12345678-1234-1234-123456789012<0D>


Enable Trigger

Enables an existing trigger in the scheduled sequence trigger list.

Command

 <UUID>|EnaTT<0D>
<UUID>:: Unique ID of the existing trigger (XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX format)

Response

 <**UUID**><0D>

Examples

Enable trigger with UUID 12345678-1234-1234-123456789012

12345678-1234-1234-123456789012|DisTT<0D>
Response
12345678-1234-1234-123456789012<0D>