Product icon Help book icon Sound Mill X3 - User's Guide

IPC Commands

IPC Commands for Show Designers

  • Media Item commands - Play, Stop, Pause, Resume: These commands take the Item Id number as a parameter.
    Syntax: Play Item-Id , or Stop Item-Id, etc
    Ex. Play 1234 , or Stop 1234
  • Script commands - RunScript, StopScript, PauseScript, ResumeScript: These commands take the Script Id number as a parameter.
    Syntax: RunScript Item-Id , or StopScript Item-Id, etc
    Ex. RunScript 1234 , or StopScript 1234
  • StopAll - Stops all playing media items and running Scripts on the target Remote Client. (on VideoMill also performs the UnLoad All Screens action). No parameters.
    Syntax: StopAll
  • Msg - You can send messages to an operator sitting at another Remote Client computer. Example: Msg We start in 5 minutes.
    Syntax: Msg Message text...
    Ex. Msg Lorem ipsum dolor sit amet ...
  • ListOpen - Requests that the Remote Client open the specified source list file. The Remote Client should reply with a ListId command (below). If the list filename does not match the ListOpen filename, the list did not open successfully (likely bad filename or file does not exist).
    Syntax: ListOpen Full-Path-Filename
    Ex. ListOpen C:\Users\MyWinUserId\Documents\Sound Mill X3\Beatles-One.slt
  • Scheduler - Operates the Scheduler on the Remote Client. The command has one Operation parameter: Start, Stop, Pause, or Resume.
    Syntax: Scheduler Operation
    Ex. Scheduler Start or Scheduler Stop
  • AllMedia - Operates on all currently playing media on the Remote Client including: Scripts, the Scheduler, and items in the Soundlist editor. Basically equivalent to 3 commands: Stop_All, Stop_Pause, Resume_All. The command has one Operation parameter: Stop, Pause, or Resume.
    Syntax: AllMedia Operation
    Ex. AllMedia Stop, AllMedia Pause, or AllMedia Resume

IPC Commands for System Integrators

  • CueListGet - Requests that the Remote Client send a Cuelist for the current opened source List. Cuelist is returned as XML text. One parameter, Type of Cues to include: Item, Script, Any.
    Any includes both Items and Scripts.
    Ex: CueListGet Item
  • CueList - The information returned from a CueListGet command.
    Syntax: CueList XML-document
  • IPC - Starts or Stops IPC on the target Remote Client. The command has one Operation-code parameter: Start, Stop. The Start function will restart IPC if IPC is currently running. But if IPC is not currently running on the Remote Client, it will not be listening for IPC commands.
    Syntax: IPC Operation-code
    Ex. IPC Start or IPC Stop
  • ItemAdd - Adds one or multiple media items to the Remote Client list. Specify a media file to add one media item. Specify a folder that contains multiple media files to add multiple media item. This returns a Item IPC command (below) that contains the Id number of the added media item.
    Syntax: ItemAdd Full-Path-Filename
    Ex. ItemAdd C:\MEDIA\BeatlesOne\HeyJude.mp3
    Ex. ItemAdd C:\MEDIA\BeatlesOne\
  • Item - Returned to the sender of an ItemAdd IPC command. It contains the Id number of the added media item.
    Syntax: Item Item-Id Full-Path-Filename
    Ex. Item 123456 C:\MEDIA\BeatlesOne\HeyJude.mp3
  • ListIdGet - Requests that the Remote Client send the current opened List Id and List Filename. No parameters.
    Syntax: ListIdGet
  • ListId - The information received from the Remote Client from a ListIdGet request.
    Syntax: ListId List-Id Full-Path-Filename
    Ex. ListId 496096464 C:\Users\MyWinUserId\Documents\Sound Mill X3\Beatles-One.slt
  • ListNew - Opens a new list on remote client, effectively clears remote list. No attempt is made to save changes to the current list on the remote client.
  • MediaEvent - A media event is sent to Remote Clients when an Item or Script starts, stops, pauses, or resumes . Only Remote Clients that 'Subscribe To Media Events' will receive these unsolicited event messages (see Remote Client configuration).
    Syntax: MediaEvent Item-Id Item-Type Event-Type Item-Name
    Item-Type can be: Item or Script.
    Event-Type can be: Start, Stop, Pause, Resume
    Ex. MediaEvent 1234 Item Start Hard Days Night
  • Ping - Sends a Ping to the target Remote Client to confirm that IPC is started and operational on the remote client. The remote client will return a Msg command back to the Ping sender to report the Ping was received. After starting IPC on all clients, it is a best practice to Ping all clients to confirm all connections are initialized with no errors. The Remote Client will return this message 'IPC MSG Ping Returned' to confirm the connection is working in both directions.
    Syntax: Ping
  • StatusGet - Requests that the Remote Client send information about the current operational status of the client including: Source list opened; Playing media; Running Scripts; and scheduler status. No parameters.
    Syntax: StatusGet
  • Status - The information returned from a StatusGet command.
    Syntax: Status Information-text...
    Ex. Status Lorem ipsum dolor sit amet ...
  • TimeCheck - Requests that the Remote Client send TimePosition information about an Item or Script. Parameters: 1) Id of the Item or Script, 2) Item-Type: Item, Script .
    Syntax: TimeCheck Item-Id Item-Type
    Ex. TimeCheck 1234 Item or TimeCheck 1234 Script
    TimeCheck 0 Any (this is a special case to request TimePosition for anything that is playing, Item or Script.)
  • TimePosition - The information returned from a TimeCheck command. Parameters: 1) Item Id or Script Id, 2) Item-Type: Item, Script, 3) Current playback time position in milliseconds, 4) Full length (duration) in milliseconds, (5) Play-State: Start ( media is started, playing), Pause (is paused) or Stop (is stopped), (6) Item or Script Name (can includes spaces).
    Syntax: TimePosition Item-Id Item-Type Position-Time Media-Length Play-State Item-Name
    Ex. TimePosition 1747035517 Item 1000 191815 Start A Hard Day's Night

Tech Notes
  • The maximum value for Item Ids and time parms is 2,147,483,647 (2+ billion, 32-bit integer). Do NOT include commas or periods in number values of IPC command syntax.
  • Each Command parameter is separated by ONE space. (one space, no more, no less)
  • CueList - Remote Media Manager (RMM) is the only app that will receive and open a CueList. Soundmill and Videomill can view a CueList.
  • IPC Log auto-resets after reaching 100K bytes. (~800 to 1000 lines of messages)

Methods for Sending IPC Commands

There are multiple methods for sending IPC Commands between applications (detailed in the sections below). Results shown on the app status bar are also written into the app's IPC log.

  • Send using a Script IPC_Send Step.
  • Adhoc IPC Command Tool.
  • SendTo_UDP Tool (ONE-way comms, for System Integrators of third pary apps).
  • IPC Connect Tool (TWO-way comms, for System Integrators of third pary apps).
  • UDP Capable Devices (ex smart phones).

Send using a Script IPC_Send Step

Available in Sound Mill, Video Mill.

In an Automation Script, use the Start External Program Step (IPC Send External Program). See associated product Help Pages for Script Steps.

An app could send IPC commands to itself by setting up a Remote Client for itself then using the IPC_Send Step. So as an example, if you want to automate Soundmill to change Soundlists at a scheduled time, you can use a scheduled Step to send an IPC ListOpen command to its own Remote Client. In this case the Soundmill Origin Client and Soundmill Remote Client would generally use the Loopback IP address (127.0.0.1) and have the same port number.

Send Adhoc IPC Command Tool

Available in Sound Mill, Video Mill and Remote Media Manager (RMM).

You can manually send an IPC message to a Remote Client. This menu item pops up the Send Adhoc IPC Command dialog (Figure 1) so you can enter a Command. Sending a message with the MSG command is an easy way to confirm that IPC is started and working on both client programs (you will see an IPC message sent/received on the Media List Editor program status bar). This dialog will stay open to allow you to send multiple commands without having to reopen the dialog each time. Commands tags are case-insensitive (ex. Play, PLAY, play are all accepted). All IPC commands sent and received are logged to the IPC Log.

  • Send - Sends the command(s) to the specified Destination Remote Client.
  • Command Picker - Pops up a pick list of valid IPC commands (Figure 2). For some commands you will need to replace "ItemId" or "ScriptId" with the real Id value of an Item.
  • Recall Forward - Recalls previously sent commands starting with the most recent sent command. Useful for repetitive operations.
  • Recall Reverse - Recalls previously sent commands but in the reverse order.
  • Empty - Empties the Recall Commands list.
  • Refresh - Updates the Destination Client selection list in the event you have made edits to the Remote Clients. Also reacquires the IPC encryption password in case it has been changed in the IPC Options.
  • Destination Client - Selects the Destination Remote Client to receive the command.
Figure 1. Send Adhoc IPC Command dialog
Figure 1. Send Adhoc IPC Command dialog
Figure 2. IPC Command Picker
Figure 2. IPC Command Picker

SendTo_UDP Tool (ONE-Way Comms)

For System Integrators. (FREE tool) This provides a one way communication method to send IPC commands to an app. If you need to recieve messages back from the target app, use the IPC Connect Tool instead. Can be used with SoundMill, VideoMill and/or FreeStyler DMX Portal.

You may find a need to send an IPC command from a third party tool to trigger automation based an external event. The SendTo_UDP Tool is available for this purpose. Any third party tool that can execute a Windows command line (exe program), can use this tool to send IPC commands to SoundMill, VideoMill and/or FreeStyler DMX Portal.

For Download Link and User's Guide

SendTo_UDP Tool

IPC Connect Tool (TWO-Way Comms)

For System Integrators. (FREE tool) This provides a two way communication method to send IPC commands to an app and for some commands to recieve a response back. Can be used with Sound Mill and Video Mill.

You may find a need to send an IPC command from a third party tool to trigger automation based an external event. The IPC Connect Tool is available for this purpose. Any third party tool that can execute a Windows command line (exe program), can use this tool to send IPC commands to SoundMill, VideoMill and/or FreeStyler DMX Portal.

For Download Link and User's Guide

IPC Connect Tool

Sending IPC Commands from a UDP Capable Device

Can be used with Sound Mill and Video Mill.

Any device (Windows or non-Windows device) that can send UDP network messages can communicate with SoundMill to play media and run automation. This section pertains to cases where you have your own UDP messaging tool for sending messages from your device.

  • IPC sends and receives UTF8 formatted text strings using standard network UDP (User Datagram Protocol) packets. (must be UTF8, not Ascii or other text format)
  • Your device will communicate over an IP network (wired or wireless, using a network router).
  • SoundMill needs to run on a Windows computer with the speakers either builtin; or soundcard attached; or via bluetooth.
  • You need to send text commands to SoundMill to either play an audio file or run a SoundMill automation Script that can automate/time playback of multiple audios files. (see IPC Commands section above for a list of available commands)
    • Example commands: Play 1234 ; or RunScript 123456. (note that there are no double quotes surrounding the commands)
  • The UDP packets are sent to the IP address and port number that SoundMill is listening on. So if the SoundMill computer has this IP address 10.0.0.4 and listening on port 52010, you would send the text UDP packet to IP address 10.0.0.4:52010 . You can assign any IP address and port number you want to SoundMill.