This guide describes the CUBE manifest structure. The manifest is used to configure the CUBE’s music and message playlists as well as device and network settings and scheduling information.
The CUBE offers individual apps such as Basic, Advanced, and Licensed Music. (The version running on a particular CUBE is shown in the web interface as Basic, Adv, LM etc).
The particular app running on the CUBE, affects the types of manifest operations that are permitted. The following configuration information will apply to all apps unless explicitly stated.
Manifests can be provisioned onto CUBEs by uploading them into the CUBE MC Web Application. A manifest can also be installed onto a CUBE via a USB stick.
To install a manifest via USB, the manifest file should be placed into the root folder of a USB stick and named Manifest*.xls or Manifest*.c3, where ‘*’ represents any combination of characters.
The actual manifest file itself is an Excel XP style format that can contain multiple tabs aka worksheets.
Arbitrary worksheets can be included in the Excel file – the CUBE will only look for the particular worksheets that it recognizes, and will ignore the rest.
The following are the worksheet names the CUBE will look for and recognize. These names are case sensitive, and each sheet name determines the kind of operation that that sheet provides. Sheets come in a couple of varieties: playlist sheets (ch1, ch2, music, message) and settings sheets (Device Settings, Network Settings):
- ch1-music – contains the music playlist for channel 1.
- ch1-msg – contains the message playlist for channel 1.
- ch2-music – contains the music playlist for channel 2. (LICENSED MUSIC)
- ch2-msg – contains the message playlist for channel 2. (LICENSED MUSIC)
- Device Settings – contains the device configuration settings related to audio playback.
- Network Settings – contains the unit’s network configuration.
- ch1-music-* – contains a scheduled music playlist for channel 1. (LICENSED MUSIC)
- ch2-music-* – contains a scheduled music playlist for channel 2. (LICENSED MUSIC)
NOTE: ‘*’ is used to represent any combination of characters
Each of the playlist sheets contains a listing of the audio to be played back. The types of playlist sheets are chX-music and chX-msg type of sheets. The playlist simply consists of a list of audio in column A of the playlist sheet. Audio can be specified to be retrieved via the web if the file specified is a valid URL, otherwise the audio is attempted to be synced from the inserted USB stick.
The mechanics of playback differ between the Basic App and the Licensed Music App.
- Basic App:
- Music is played continuously and messages are overlayed with the music.
- The device settings govern how the fading is done and the various audio levels.
- Scheduling of playlists and messages is not supported.
- Only one channel of playback is supported.
- Licensed Music App:
- Music playlists are played continuously and messages are played between the gaps in songs.
- The device settings govern how often messages are queued and audio levels.
- Scheduling of playlists and messages is supported as described below.
- Up to two independent channels of playback is supported.
- Music playlists are shuffled by default.
Each time that a new manifest is loaded on the CUBE using either the USB or web based syncing methods, the following syncing process is conducted by the CUBE:
Scheduling information is used to tell a CUBE to switch between music playlists at a certain date or time or to play a specific message at a specific date and time.
The scheduling information for various actions is specified in a format known as cron style. This a columnar format using 5 columns, as follows:
* * * * *
- - - - -
| | | | |
| | | | |
| | | | +----- day of week (0 - 6) (Monday=0)
| | | +---------- month (1 - 12)
| | +--------------- day of month (1 - 31)
| +-------------------- hour (0 - 23)
+------------------------- minute (0 – 59)
Each of the columns can be a specific value, a range, a recurrence or a match-all. It is possible to combine these to make many arbitrary and specific scheduling rules.
Note
Think of this as a kind of time pattern. It’s rather similar to a filename pattern; for instance if one asks a computer for all files named MyFile-*.txt, it will pattern-match and find all files with names such as MyFile-Breakfast.txt, MyFile-Lunch.txt and so forth.
Time patterns work as follows: every minute the CUBE will check every time pattern against the current wall-time of the CUBE. If all 5 columns of a pattern matches the current time, the CUBE executes the particular trigger action.
For example:
Minute Hour Day of Month Month Day of Week 5 9 1 4 * This time pattern will trigger at 9:05AM every April 1st, no matter what day of the week it falls on 0 12 1,15 * * This time pattern will trigger at 12 noon on the 1st and 15th of every month 0 8 * * 0-4 This time pattern will trigger at 8AM on every weekday (but not weekends) 0 14 */2 * * This time pattern triggers every other day at 2 PM 15,30 10-16/3 1-15,20 4,5 mon,thu,fri This time pattern triggers at 10:15am, 10:30am, 1:15pm, 1:30pm, 4:15pm and 4:30pm on Mondays, Thursdays and Fridays, but only during 1-15 April, 20 April, 1-15 May and 20 May
Note
The specified date/time is in the CUBE’s local time. The local time is specified using the web management interface. Please refer to the Web Management Interface Guide for information on setting the CUBE’s local time.
The layout of scheduling information in the Manifest is always consistent, irrespective of whether music or messages are being scheduled. Column B contains a scheduling priority directive (either schedule or critical, see below), and then columns C to G are the 5 columns providing the time pattern.
Tip
In the above examples the “*” means “any value of”. As a shortcut in the CUBE Manifest, leaving any scheduling column blank, is the same as placing “*” in that column.
A scheduled message or playlist is indicated by placing either schedule or critical in column B of the sheet, and then the scheduling time pattern following in columns C to G.
To schedule a music playlist switch, include this information at the top of the music playlist sheet with column A left blank.
It is possible to have several time patterns that should all trigger a switch to a music playlist. Simply place them all at the top of the sheet, each on a separate line.
To schedule a message, include this information in the same row as the message item (which will be in column A).
Again, it is possible to have several time patterns all triggering a particular message; simply place each on a subsequent line in the manifest.
Note
There are two types of scheduling priorities supported. They are the default schedule priority and critical priority. Each scheduled item must have an assigned priority.
- Schedule scheduling priority
- The CUBE will schedule the action to occur after the current piece of music is finished playing. In the case of playlists, the new music playlist will only commence after the currently playing music track is finished. In the case of a scheduled message, the message is appended to the back of the outgoing messages and the entire message queue is played out after the currently playing music track is finished.
- Critical scheduling priority
- The CUBE will immediately fade out the currently playing music, to perform the action straight away. In the case of music playlists, the new playlist commences immediately. In the case of messages, the message is pushed to the front of the queue of outgoing messages and the entire message queue is played out immediately.
Note
Only the Licensed Music app supports shuffling. Basic and Advanced apps will always play all playlists in the exact order defined in the manifest.
By default the music playlist will shuffle after each playthrough of the entire music sheet (each item is played once). Shuffling is enabled/disabled on a per music playlist basis. This is accomplished by including a row at the top of the sheet with Column A blank, Column B set to shuffle and Column C either on or off.
Regular Excel formulas can be used to speed up the creation of manifest files. This allows one to reduce the amount of repetitive work done when creating manifests. A simple use case includes using formulas to create the path to web based content.
Any item that isn’t recognized by the CUBE as part of the above descriptions, is treated as a comment (i.e., ignored by the CUBE). This allows one to keep detailed notes of the manifest within the manifest itself without breaking functionality.
Downloadable Examples:
- Example 1 - Contains an example of a USB syncable manifest containing a single music playlist on channel 1.
- Example 2 - Contains an example of a USB syncable manifest containing a single music playlist on channel 1 with a single message playlist on channel 1.
- Example 3 - Contains an example of a USB syncable manifest containing music playlists on channel 1 and channel 2.
- Example 4 - Contains an example of a USB syncable manifest containing music and message playlists on channel 1 and 2.
- Example 5 - Contains an example of a USB syncable manifest containing a single music and message playlist on channel 1 with scheduled messages.
- Example 6 - Contains an example of a USB syncable manifest containing multiple channel 1 music playlists whose play order is determined via schedule switches.
- Example 7 - Contains an example of a USB syncable manifest containing a single music playlist on channel 1 that contains an example of remotely retrieving content.
- Example 8 - Contains an example of a USB syncable manifest containing a single music playlist on channel 1 that has shuffle specifically turned off.
- Example 9 - Contains an example of a USB syncable manifest containing a single music playlist on channel 1 that remotely retrieves audio from URL’s that are constructed using Excel formulas.
The various settings sheets are used to configure the CUBE. These sheets can be included in a spreadsheet that contains playlist information or as a separate Manifest entirely. If the installed manifest contains only configuration settings, the currently running playlist and audio will be left intact. This feature lets one configure the CUBE without worrying about modifying the current audio playback information.
The Device Settings tab is used to configure the CUBE’s playback parameters. This includes global playback parameters like Master Volume and channel specific playback parameters.
The following settings pertain to channel 1:
Key | Path | Allowable Values | Base Default | Description |
---|---|---|---|---|
masterVolume | 1 | 0 to 100 | 50 | Changes the maximum output volume of channel 1. Also controllable by the keyboard. |
min_vol | 1/music | 0 to 100 | 60 | Volume of the music as a percentage of masterVolume when faded down for message overlay (primarily applies to Basic App) |
max_vol | 1/music | 0 to 100 | 100 | Volume of music as a percentage of masterVolume while not faded down |
fade_time | 1/music | 0 on up | 2 | The time in seconds that it should take to fade up and down to and from min_vol and max_vol (Basic App Only) |
wait_time | 1/msg | 0 on up | 5 | For the Basic App, this is the time in seconds between messages (not including the time it takes to fade). |
max_vol | 1/msg | 0 to 100 | 100 | Volume of the messages. |
min_vol | 1/msg | 0 to 100 | 100 | Volume of the messages. |
To modify the settings for channel 2, simply duplicate the settings for channel 1 then replace every occurrence of 1 in the path with 2.
An example Device Settings Manifest can be seen here: Default device settings file
The Network Settings tab is used to configure the CUBE’s network parameters. This is where the CUBE can be configured to use DHCP or Static address configuration, use alternate DNS servers for domain name lookups and use an external proxy for http traffic.
Key | Path | Allowable Values | Base Default | Description |
---|---|---|---|---|
mode | Either dhcp or static | dhcp | IP configuration parameters | |
address | A valid IPv4 address | Statically configured IP address | ||
netmask | A valid IPv4 address | Statically configured network netmask | ||
gateway | A valid IPv4 address | Statically configured gateway | ||
dns/1 | A valid IPv4 address | Primary DNS server | ||
dns/2 | A valid IPv4 address | Secondary DNS server | ||
dns/3 | A valid IPv4 address | Tertiary DNS server | ||
proxy | proxy | Either on or off | off | The flag to indicate whether to use proxy or not |
address | proxy | A valid IPv4 address | The proxy address | |
port | proxy | Any port number 0 or greater | The proxy port number | |
username | proxy | Proxy authentication username | ||
password | proxy | Proxy authentication password |
Note
The static parameters address, netmask, gateway, dns/1, dns/2, dns/3 are used only when mode is static. They are ignored when mode is dhcp.
An example Network Settings Manifest can be seen here: Default network settings file
If the CUBE is network-connected and is operational, errors in the manifest configuration are reported to the web management interface. Please refer to the Web Management Interface Guide for instructions on viewing the various types of errors.