Actions are the building blocks for automating tasks in mAirList. An action list contains one or more actions that are executed one after the other. Action lists are used in many places, for example:
- in the Event Scheduler, to run actions at predefined times,
- in the triggers of cartwall items,
- in the Action List cue data of an item, to run actions at a certain position during playback,
- in the standard action lists, e.g. the actions that run after startup or when entering ON AIR mode,
- in action commands, which run an action list when a particular remote control command is received.
This chapter describes the settings that are common to all actions, and then each available action type. The actions are grouped by purpose. In the Add… menu of the action list editor, they are sorted into categories, which are given in the description of each action as Category → Action.
Common Settings
Besides its specific settings, each action has an Options tab with the following settings.
Options
- Enable substitution of variables:
If enabled, logging variables in text fields of the
action (e.g. a filename, URL or command) are replaced with their current values before
the action is executed. For example, a filename containing
%Y%m%dcan refer to a file with the current date in its name. - Show confirmation dialog when run manually: If enabled, a confirmation prompt is displayed before the action is executed manually, e.g. from the action menu.
- Ignore errors (keep processing action list if action fails): See Error Handling below.
Time Adjustment
Adjusts the internal clock by the specified amount of time, forward or backward, while the action is executed. This affects the substitution of variables (e.g. the date and time in a filename), as well as the hour selected by the database playlist actions.
Example: An event runs at 13:58 to load a playlist file named after the current hour. To make it load the file for 14:00, adjust the clock forward by 5 minutes.
Affected Playlist
The playlist the action refers to, for actions that operate on a playlist. Default playlist means the playlist that is given by the context in which the action is executed – for events, the playlist selected in the event’s scope.
Custom Title
An optional title for the action. It is displayed in the action list instead of the automatically generated description.
Retry on Failure
If the action fails, it can be retried automatically. Enter the number of attempts and the delay between the attempts, in seconds. An error is only reported when the last attempt has failed.
Error Handling
The actions in a list are executed in order. If an action fails (after all retries), the error is written to the System Log, and the remaining actions of the list are skipped – unless the failed action has the Ignore errors option enabled, in which case processing continues with the next action.
After a failure, only Emergency actions that follow in the list are executed. Use them to define a fallback, e.g. to play a backup file when a download has failed.
Playback and Automation
Enable Automation
Automation → Enable automation
Switches the playlist to AUTO mode.
Disable Automation
Automation → Disable automation
Switches the playlist to ASSIST mode.
Start Automation Playback
Automation → Start automation playback
Starts playback in automation mode, as if the Play button in the main toolbar was clicked.
Fade to Next Item
Automation → Fade to next item
Fades out the current item and starts the next one in automation mode.
Stop Automation Playback
Automation → Stop automation playback
Stops playback in automation mode.
Play File / Insert File
File → Play file, File → Insert file
Inserts an audio file into the playlist, at the position of the next item to be played. Play file additionally starts the inserted item: if the playlist is currently playing, it fades to the new item; otherwise, it starts automation playback.
Settings:
- Filename: The audio file to insert.
Play Network File / Insert Network File
File → Play network file, File → Insert network file
Same as Play file and Insert file, but for an audio file that is located on a web server and specified by its URL.
Settings:
- URL: The URL of the audio file.
- Title: The title of the playlist item.
Play Stream / Insert Stream
Stream → Play stream, Stream → Insert stream
Inserts an internet stream into the playlist, at the position of the next item to be played. Play stream additionally starts the inserted item.
Settings:
- URL: The URL of the stream.
- Title: The title of the playlist item.
- Duration: The duration of the stream item, used for playback and backtiming. Check unlimited to play the stream until it is stopped manually.
Playlists
Load Playlist / Load and Play Playlist
Playlist → Load playlist, Playlist → Load and play playlist
Replaces the contents of the playlist with the contents of a playlist file. Load and play playlist additionally starts playback: if the playlist is currently playing, it fades to the first new item; otherwise, it starts automation playback.
Insert Playlist / Insert and Play Playlist
Playlist → Insert playlist, Playlist → Insert and play playlist
Inserts the contents of a playlist file at the position of the next item to be played. Insert and play playlist additionally starts the first inserted item.
Append Playlist
Playlist → Append playlist
Adds the contents of a playlist file to the end of the playlist.
The settings of all playlist file actions are:
- Filename: The playlist file to load.
- File Format: The format of the playlist file. All playlist formats supported by mAirList can be used, including third-party scheduling formats.
- Import Tasks for Unknown Files: The tasks that are performed for audio files in the playlist that are not yet known to mAirList, e.g. reading tags or applying auto cue.
- Only load current hour (if supported by file type): For playlist formats that contain a whole day, only load the items of the current hour.
Shuffle Playlist
Playlist → Shuffle playlist
Randomly reorders all items of the playlist that have not been played yet.
Database
Load Database Playlist and Related Actions
- Database → Load database playlist: Replaces the contents of the playlist.
- Database → Load and play database playlist: Same, and starts playback.
- Database → Insert database playlist: Inserts the items at the position of the next item to be played.
- Database → Insert and play database playlist: Same, and starts the first inserted item.
- Database → Append database playlist: Adds the items to the end of the playlist.
These actions retrieve the playlist for the current hour from a database, e.g. a playlist generated by the music scheduler.
Settings on the Database tab:
- Database Connection: The database to load the playlist from.
- Sub-Playlist: The sub-playlist (e.g. for a particular station) to load.
Settings on the Playlist Options tab:
- Number of hours to load: By default, one hour is loaded. Enter a larger number to load several consecutive hours at once.
- Load the playlist for the next hour (instead of the current hour): Use this option for events that run shortly before the top of the hour.
- Skip playlists that have already been loaded: Hours that are already present in the playlist are not loaded again.
- Set fixed time on first element: The first item of each hour is set to start at a fixed time – the top of the hour.
- Use soft fixed time: Use a soft fixed time instead of a hard fixed time (see the timing types).
- Use an extra Dummy element for fixed time: Instead of setting the fixed time on the first item, insert an extra dummy element with the fixed time at the beginning of the hour.
- Skip to current time: Items that should already have been played according to the backtiming are marked as skipped. This is useful when the playlist is loaded in the middle of the hour, e.g. after a restart.
- Update advertising: Fill the advertising containers of the playlist with the current content from the database before loading it.
- If advertising was updated, save playlist to database: Write the updated advertising back to the database playlist.
- Remove empty advertising containers: Advertising containers without any content are removed from the playlist.
- Report an error if the playlist is empty: Treat an empty playlist as an error, so that emergency actions can be used to load a fallback playlist.
- Report an error if the postprocessing script fails: Treat errors in the postprocessing script as errors of the action.
- Report error and underrun count to System Log: Write a warning to the System Log if the loaded playlist contains erroneous items or underruns.
- Postprocessing Script: An optional script that is run on the loaded playlist before it is inserted, e.g. to make station-specific modifications.
Update Playlist from Database
Database → Update playlist from database
Checks whether the database playlists of the hours that are already loaded have been changed in the database since they were loaded, and updates them in the playlist.
Settings:
- Database Connection and Sub-Playlist: As above.
Generate Playlists
Database → Generate playlists
Runs the music scheduler of the database to generate the playlists for the upcoming hours.
Settings:
- Number of hours to generate playlists for in advance
- Include current hour: Also generate the playlist for the current hour.
- Overwrite existing playlists: Regenerate playlists that already exist. Otherwise, existing playlists are left untouched.
- Overwrite existing playlists that contain errors: Only regenerate existing playlists if they contain errors.
- Generate debug log file: Write a detailed log of the scheduling process.
MusicMaster Actions
MusicMaster → Synchronize Playlist, MusicMaster → Update unscheduled positions
These actions are used with the MusicMaster (Nexus) database integration, and always refer to the first playlist. Synchronize Playlist synchronizes the playlist with the schedule in MusicMaster. Update unscheduled positions updates the unscheduled positions of the playlist from MusicMaster. A MusicMaster database connection must be set up.
Recording and Streaming
Encoder Actions
These actions control the integrated streaming encoder.
- Encoder → Connect encoder: Connects the encoder to the streaming server(s).
- Encoder → Disconnect encoder: Disconnects the encoder.
- Encoder → Enable local output: Enables the local output of the encoder.
- Encoder → Disable local output: Disables the local output of the encoder.
- Encoder → Switch input on or off: Switches an input of the encoder on or off. Select the Input (Player Input 1–4, High Priority Input, Mic Input, Line Input or Aux Input) and the New State.
File Recorder Actions
These actions control the file recorder.
File Recorder → Start recording starts a new recording with the following settings:
- Audio input: The input device to record from.
- Output filename: The file to record into. Logging variables can be used, e.g. to include the date and time.
- Duration (seconds): The recording is stopped automatically after this time. Leave the field empty to record until the recording is stopped by another action.
- Recording ID: An optional ID that can be used to stop this particular recording later.
- File Format: Use the default file format, or specify a different one.
- Save copy as and Delete original file after copying: After the recording has finished, copy the file to another location, e.g. a network drive.
- Cue Sheet: Create a cue sheet file that lists the items of the selected types that were played during the recording.
File Recorder → Stop recording stops all recordings with the specified Recording ID and/or the selected input (Filter by input).
Aircheck Recorder Actions
These actions control the Aircheck Recorder.
- Aircheck Recorder → Open output file: Opens a new recording file.
- Aircheck Recorder → Start/resume recording: Starts or resumes recording.
- Aircheck Recorder → Pause recording: Pauses the recording.
- Aircheck Recorder → Close output file: Closes the recording file.
Settings:
- Remote ID: Must match the Remote ID setting in the Aircheck Recorder configuration.
The default is
AIRCHECK.
Mixing Consoles and Hardware
The actions in this group control external hardware. They require the respective remote control to be set up. If more than one remote of the same type is configured, select the one to use on the Remote tab of the action.
DHD
- DHD → Set Fader On/Off: Switches a fader on or off.
- DHD → Set PFL: Switches the PFL of a fader on or off. Enable Auto Mute to switch off PFL for all other channels at the same time.
- DHD → Set all PFL off: Switches off PFL for all channels.
- DHD → Set Logic: Sets a logic to on or off. Enter the logic Address and the Value.
For the fader-related actions, specify the fader either by its Fader channel number, or by a Fixed fader number (requires firmware 06.xx.xx or later), and select the Value (on or off).
Lawo SAS
Each of these actions refers to a source on the console, identified by its Source name.
- SAS → Set fader level: Sets the fader of the source to the specified Level (in dB), with an optional Fade time (in milliseconds).
- SAS → Set fader input gain: Sets the input gain of the source to the specified level (in dB).
- SAS → Turn on PFL / Turn off PFL: Switches PFL for the source on or off.
- SAS → Turn on fader start button light / Turn off fader start button light: Switches the light of the fader start button on or off.
- SAS → Turn on GPI / Turn off GPI: Switches the specified GPI on or off.
Livewire
Livewire → Set GPI sets the state of a Livewire GPIO Port. For each of the five pins,
select the New State: H (high), L (low), or x (leave unchanged).
Windows Mixer
Mixer → Mute mixer channel, Mixer → Unmute mixer channel
Mutes or unmutes a channel of a sound card’s Windows mixer. Select the Device, the Destination (e.g. the output or recording mixer) and the Source (the channel).
Send Data to Serial Port
Miscellaneous → Send data to serial port
Sends data to a serial port, e.g. to control external equipment.
Settings:
- Port: The serial port to use.
- Data: The data to send. To send binary data, start with a
$sign, followed by hexadecimal byte values, e.g.$0D0Ato send a carriage return and a line feed. To send text that begins with a$sign, start the text with$$.
Commands and Communication
Execute Command
Miscellaneous → Execute command
Executes a remote control command, e.g. PLAYER 1-1 START.
Any command that mAirList understands can be used, which makes this one of the most
versatile actions.
Settings:
- Command: The command to execute.
Execute Command via REST
REST → Execute command via REST
Sends a remote control command to another mAirList instance through its REST server.
Settings:
- Host name or IP, Port (default: 9300) and Path: The address of the REST server. Leave the path empty to use the default path.
- Use SSL/HTTPS: Use an encrypted connection.
- Authentication: Enter the User and Password, or a Token. Click Sign In… to obtain a token.
- Command: The command to execute on the other instance.
Send E-Mail
Miscellaneous → Send e-mail
Sends an e-mail, e.g. to notify the station staff. The e-mail server is set up in the e-mail configuration.
Settings:
- Recipients: The recipient address(es).
- Subject and Body: The subject and text of the e-mail. Logging variables can be used if variable substitution is enabled.
Download File
Miscellaneous → Download file
Downloads a file from a web or FTP server, e.g. a news bulletin provided by a news agency.
Settings:
- Type:
- Direct download: The URL points to the file itself.
- RSS/Atom feed, most recent item: The URL points to a podcast feed. The file attached to the most recent item of the feed is downloaded. Only available for HTTP(S) URLs.
- Source URL: The URL to download from. HTTP, HTTPS and FTP are supported.
- Authentication (if required): The User and Password for the server.
- Destination Filename: The local file to save the download to. An existing file is overwritten.
The file is first downloaded to a temporary location, and only copied to the destination when the download has completed. This way, a failed download does not destroy the existing file. Combine this action with an emergency action to react to failed downloads.
Run Script
Miscellaneous → Run script
Runs a script file.
Settings:
- Filename: The script file to run.
Action Lists
Work an Action List
Miscellaneous → Work an action list
Contains a nested action list, which is executed as a whole. This is useful for grouping actions, e.g. to apply a common time adjustment to all of them.
Emergency Actions
Miscellaneous → Emergency actions
Contains a nested action list that is only executed if a previous action in the same list has failed (see Error Handling). In normal operation, emergency actions are skipped.
Example: An event first downloads the news with Download file, then plays it with Play file. An Emergency actions entry at the end of the list plays a backup jingle if the download fails.
No Action
Miscellaneous → No action
Does nothing. It can be used as a placeholder.