1 - Actions

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%d can 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

  • 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. $0D0A to 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.

2 - Remote Control Commands

3 - Logging Variables

Logging variables are placeholders that are replaced with information about the current item, the current time etc. when a text is processed. They are used in many places throughout mAirList, for example:

  • the various logging interfaces (text file, HTTP, XML, e-mail, …),
  • filenames of the File Recorder and Aircheck Recorder,
  • the dynamic columns of the playlist (see skin.ini),
  • the Dynamic Text screen object,
  • the custom text format of the library export,
  • URLs and filenames of stream and auto file container items,
  • the filename format of the playlist import (see below).

Syntax

A variable consists of a percent sign followed by a single character, e.g. %a for the artist. Some variables take a parameter in curly braces, e.g. %u{Album} for the value of the attribute “Album”:

Now playing: %a - %b (%u{Year})

Any text that is not a variable is copied unchanged. To insert a literal percent sign, use %%.

Insert a ^ between the percent sign and the character in order to convert the value to upper case, e.g. %^a for the artist in upper case.

If a variable is not available in the current context (e.g. item information when there is no item, or a file name for an item that is not a file), it is replaced with an empty string.

General Variables

These variables do not depend on a particular item.

VariableDescription
%YCurrent year, four digits
%yCurrent year, two digits
%MCurrent month, two digits
%DCurrent day, two digits
%hCurrent hour, two digits
%mCurrent minute, two digits
%sCurrent second, two digits
%w, %w{n}ISO 8601 week of the year, optionally padded with leading zeros to n digits
%W, %W{n}Year the ISO 8601 week belongs to (which may differ from the calendar year around New Year), optionally padded to n digits
%T{format}Current date and time in a custom date/time format. Append +n or -n to the format in order to add or subtract n seconds, e.g. %T{hh:nn+30}
%S{format}Start time of the item, in a custom date/time format. Useful when logging the end of playback
%tTab character
%rCarriage return (CR, ASCII 13)
%nLine feed (LF, ASCII 10)
%%Percent sign
%gUnique ID of the playback operation, which is the same for the start and stop event of an item
%R{key}Value of the runtime data variable key, as set by a script with SetRuntimeData
%#Total number of current listeners across all encoder connections
%xName of the computer
%XName of the mAirList instance
%BCurrent title, as sent with a title update (e.g. the title of a stream)
%N, %N{n}Number of the region, optionally padded to n digits
%N{CODE}, %N{NAME}Code or name of the region

Item Variables

These variables return information about the item being processed, e.g. the item that has just been started or stopped.

VariableDescription
%aArtist
%bTitle
%CComment
%EEnd type
%IItem type, as internal identifier (e.g. Music, StationID)
%JItem type, as displayed in the user interface (e.g. “Station ID”)
%u{key}Value of the attribute key, e.g. %u{Album}
%UDatabase ID
%VExternal ID
%c{marker}Position of a cue marker in seconds, e.g. %c{CueIn}, %c{FadeOut}, %c{Ramp1}
%kFilename of the item icon
%KItem icon as Base64 encoded data

Durations

VariableDescription
%lTotal duration of the item in seconds, with fractions
%l{n}Total duration in seconds, with n decimal places
%l{format}Total duration in a custom date/time format
%LTotal duration as hh:nn:ss
%p, %p{n}, %p{format}Effective playback duration (from Cue In to Cue Out, or the point where the next item is started), in the same notations as %l
%PEffective playback duration as hh:nn:ss
%e, %e{n}, %e{format}Actual playback duration, i.e. how long the item was actually played, in the same notations as %l. Only available when logging the end of playback
%dActual playback duration in units of 100 nanoseconds (integer)
%F{format}Expected finish time (current time plus effective playback duration), in a custom date/time format

File Information

These variables are only available for file items.

VariableDescription
%1Filename with full path
%2Filename without path
%3Filename without path and extension
%4First character of the filename
%i{key}Raw value of the file tag field key

Subsequent Items

In the logging interfaces and in the stream title of the encoders, you can access the items following the current item in the playlist, by inserting one or more + signs after the percent sign: %+a is the artist of the next item, %++a the artist of the item after that, and so on. This also works with all other item variables, e.g. %+b or %+u{Album}. For subsequent items, %S returns their expected start time.

If you combine + with the upper case modifier, the + signs come first, e.g. %+^a.

By default, only the next three items are considered. You can increase this limit in mAirList.ini:

[Options]
NextLoggingLimit=10

Note that the limit applies to all subsequent items, before any filtering by item type takes place. For example, if you want to log the next three music items, and there may be up to four other items (jingles, news, advertising) in between, set the limit to 7 or higher.

Date/Time Formats

Variables with a date/time format parameter (%T, %S, %F, and %l, %p, %e) use the format codes of Delphi’s FormatDateTime function. The most important ones are:

CodeMeaning
yyyy, yyYear (four or two digits)
mm, mMonth (with or without leading zero)
dd, dDay (with or without leading zero)
ddd, ddddAbbreviated or full name of the weekday
hh, hHour (with or without leading zero)
nn, nMinute (with or without leading zero)
ss, sSecond (with or without leading zero)
zzzMilliseconds
"text"Literal text

Note that n (not m) stands for minutes.

mAirList supports the following additional codes:

CodeMeaning
epochUnix timestamp (seconds since 1970-01-01)
hhhTotal number of hours, which may exceed 24 (useful for durations)
sssTotal number of seconds (useful for durations)
uTenths of a second
vHundredths of a second

Examples: %T{yyyy-mm-dd hh:nn:ss} gives the current date and time, e.g. 2026-10-26 14:30:00; %l{nn:ss} gives the duration of the item in minutes and seconds, e.g. 03:45.

Playlist Import Filenames

The filename format of the playlist import (e.g. for files from external schedulers) supports all general variables. The date and time variables (%Y, %M, %D, %h, %T{...} etc.) refer to the date and hour of the playlist being imported, not to the current time. For example, %Y%M%D.txt imports the file 20261026.txt for the playlists of October 26, 2026.

In addition, the following variables are available:

VariableDescription
%BNumber of the block (e.g. advertising break) within the hour
%2B, %3BNumber of the block, padded to two or three digits
%N, %N{n}Number of the region, optionally padded to n digits
%2N, %3NNumber of the region, padded to two or three digits
%N{CODE}, %N{NAME}Code or name of the region

Note that %B has a different meaning here than in logging, where it stands for the current title.

HTTP Logging

When using the HTTP logging interface with multipart/form-data, the special variable %ALBUMART can be used to send the album art of the item as binary form data, if available. It must be the only content of the respective field value, without any other text or variables.

4 - Skin (skin.ini)

The appearance of the mAirList user interface (colors, fonts, buttons, etc.) can be customized through a skin. The skin is defined in a text file named skin.ini, which is located in the configuration folder of your mAirList installation.

If skin.ini does not exist, or a particular setting is not present in the file, mAirList will use its built-in defaults. So the file only needs to contain the settings you want to change.

Skin Editor

The easiest way to edit the skin is the built-in Skin Editor, which can be opened from the Windows menu of the playout window. It shows the contents of skin.ini in a text editor, and many changes are applied to the playout window immediately, so you can see the effect right away.

In addition to the usual editing functions (cut/copy/paste, undo, and search with Ctrl+F), the Skin Editor provides a Select Color dialog, which lets you pick any of the color values described below, including a preview for both light and dark mode.

When you close the Skin Editor, you will be prompted to save your changes.

If you edit skin.ini with an external editor instead, use the SKIN RELOAD command in order to apply the changes without restarting mAirList.

File Structure

skin.ini uses the common INI file format, i.e. it consists of sections in square brackets, each containing a number of Key=Value lines:

[Colors]
ButtonActiveBackground=#C00000

[Peakmeter]
Design=Classic

Each section controls a particular part of the user interface, see Sections below.

Light and Dark Mode

mAirList supports a light and a dark mode, which can be switched with the commands DARKMODE ON, DARKMODE OFF and DARKMODE ON/OFF.

For each section, you can add settings that only apply to one of the modes, by creating an additional section with the suffix .Light or .Dark. These settings will be merged with (and take priority over) those of the base section:

[Player]
BorderColor=#808080

[Player.Dark]
BorderColor=#404040

As an alternative for colors, you can also specify a pair of colors for light and dark mode in a single value (see below).

Prefixes

Some components embed other components, e.g. each player contains a progress bar and a waveform display. In these cases, the settings of the embedded component are specified within the section of the outer component, using the name of the embedded component as a prefix for the keys. For example, the settings of the progress bar within the players are specified as ProgressBar... keys in the [Player] section.

Value Types

Colors

Colors can be specified in any of the following ways:

  • HTML color code: #RRGGBB, e.g. #FF8000. The short form #RGB is also accepted.
  • Light/dark pair: Two HTML color codes separated by a comma, e.g. #FFFFFF,#202020. The first color is used in light mode, the second one in dark mode.
  • Predefined colors: LightRed, Red, DarkRed, and likewise for Orange, Yellow, Green, Cyan, Blue and Purple; White, Black, and the shades of gray Gray1 to Gray7.
  • Skin colors: The name of any of the colors defined in the [Colors] section, e.g. ButtonActiveBackground. This allows you to reuse the same color in multiple places.
  • Style and system colors: The name of a color of the current Windows style, so that the color automatically adapts to light and dark mode.
  • Custom colors: The name of a color defined in the [CustomColors] section.

The Select Color dialog of the Skin Editor lists all available names.

Fonts

Fonts are specified with up to four keys, which usually share a common prefix indicating the element they apply to:

  • ...FontName: The name of the font, e.g. Segoe UI.
  • ...FontSize: The size of the font in points.
  • ...FontStyle: Any combination of the letters B (bold), I (italic), U (underline) and S (strikeout), e.g. BI.
  • ...FontColor: The color of the font (see above).

Keys that are not specified retain their default values.

Buttons

Buttons in the players, toolbars etc. share a common set of settings. They are specified with a prefix, which depends on the section and the button, e.g. Button for all buttons of a toolbar, or PlayButton for a particular button. In the descriptions below, the prefix is written as Prefix.

KeyDescriptionDefault
PrefixColorBackground colorsee below
PrefixGradientColorSecond background color, if UseGradient is enabledsame as Color
PrefixUseGradientDraw the background as a gradient from Color to GradientColoroff
PrefixFontName, PrefixFontSize, PrefixFontStyle, PrefixFontColorFont of the caption, see FontsTahoma, 14
PrefixBorderColorBorder colorButtonBorder
PrefixHoverBorderColorBorder color while the mouse is over the buttonButtonBorderHover
PrefixBorderRadiusRadius of rounded corners in pixels0

All settings except the border settings can be specified for a particular state of the button, by adding the name of the state after the prefix:

StateMeaningDefault background / font color
InactiveThe button is in its normal stateButtonInactiveBackground / ButtonInactiveText
ActiveThe button is in its active (pressed, switched on) stateButtonActiveBackground / ButtonActiveText
DisabledThe button is disabledButtonDisabledInactiveBackground / ButtonDisabledInactiveText
DisabledActiveThe button is disabled, but in its active stateButtonDisabledActiveBackground / ButtonDisabledActiveText

The default colors refer to the [Colors] section. A setting without a state applies to all four states, and a setting with a state takes priority over it:

ButtonColor=#404040
ButtonActiveColor=#C00000
ButtonActiveFontStyle=B

Toolbars

The toolbars of the playlists, cartwall and Mix Editor share the following settings:

KeyDescription
HeightHeight of the toolbar in pixels
BackgroundColorBackground color of the toolbar (HTML color codes and predefined colors only)
FullWidthStretch the buttons so that they fill the entire width of the toolbar (on/off)
ButtonWidthWidth of all buttons in pixels
ButtonMarginLeft, ButtonMarginRight, ButtonMarginTop, ButtonMarginBottomMargins of all buttons in pixels
Button...Appearance of all buttons, see Buttons

In addition, each button can be configured individually, using the name of the button (see the respective section) followed by Button:

KeyDescription
NameButtonVisibleSet to off to hide the button
NameButtonCaptionCaption of the button
NameButtonWidthWidth of the button in pixels
NameButtonMarginLeft, …Right, …Top, …BottomMargins of the button in pixels
NameButton...Appearance of the button, see Buttons

For example, PlayButtonWidth=80 and PlayButtonActiveColor=#00C000 change the width and active color of the Play button.

Sections

General Sections

[Colors]

This section defines the default colors of the various components, e.g. buttons, waveforms and progress bars. Most of these colors can also be overridden for a particular component in its own section; the values in [Colors] apply wherever no such specific setting is made. In addition, each color can be referred to by its name in other sections (see Colors above).

Note that the values in this section are more restricted than elsewhere: Only HTML color codes (#RRGGBB or #RGB) and the names of the predefined colors (e.g. Red, Gray3) are accepted. Light/dark pairs and references to other colors cannot be used here. In order to set different colors for light and dark mode, use a separate [Colors.Dark] (or [Colors.Light]) section:

[Colors]
ButtonActiveBackground=#A6CAF0

[Colors.Dark]
ButtonActiveBackground=#2A353B

The tables below list all available keys, along with their default values for light and dark mode. Defaults marked as (system) refer to the respective Windows system color.

Buttons

These colors apply to the buttons of the players, cartwall, browser and toolbars. “Active” refers to a button in its active (pressed, switched on) state, e.g. the PLAY button of a player while it is playing.

KeyDescriptionLightDark
ButtonInactiveBackgroundBackground of an inactive buttonBtnFace (system)#37474F
ButtonInactiveTextText of an inactive buttonBtnText (system)#FFFFFF
ButtonActiveBackgroundBackground of an active button#A6CAF0#2A353B
ButtonActiveTextText of an active buttonBtnText (system)#FFFFFF
ButtonDisabledInactiveBackgroundBackground of a disabled, inactive buttonBtnFace (system)#37474F
ButtonDisabledInactiveTextText of a disabled, inactive buttonBtnText (system)#FFFFFF
ButtonDisabledActiveBackgroundBackground of a disabled, active button#A6CAF0#2A353B
ButtonDisabledActiveTextText of a disabled, active buttonBtnText (system)#FFFFFF
ButtonBorderBorder of the buttons#C0C0C0#263238
ButtonBorderHoverBorder of a button while the mouse is over it#000000#808080
Waveform

These colors apply to the waveform displays in the players, Cue Editor, cartwall, Mix Editor etc.

KeyDescriptionLightDark
WaveformInactiveFill of the waveform area when no waveform is displayedGray2Gray7
WaveformBackgroundBackground behind the waveformGray7Gray7
WaveformNormalThe waveform itselfDarkGreenDarkGreen
WaveformFocusedThe waveform while the waveform display has the keyboard focusGreenGreen
WaveformCueThe waveform before Cue In and after Cue OutGray6Gray6
WaveformPlayedThe part of the waveform that has already been played (if enabled in the waveform options)Gray5Gray5
WaveformCueDataMarkers for additional cue data#FFFFFF#FFFFFF
WaveformPositionLine indicating the current playback position#C0C0C0#C0C0C0
WaveformEnvelopeFill of the volume envelope#808080#808080
WaveformEnvelopeLineOutline of the volume envelope#C0C0C0#C0C0C0
WaveformEnvelopeBoxPoints of the volume envelope#FFFFFF#FFFFFF
WaveformTimelineLines and labels of the timeline#FFFFFF#FFFFFF
WaveformTimelineBackgroundBackground of the timeline#000000#000000
WaveformTitleBackgroundBackground of the item titles (Mix Editor)#000000#000000
WaveformEmptySpaceEmpty area beyond the end of the items (Mix Editor)BtnFace (system)#2A353B
WaveformTimelineDividerLine between timeline and waveforms (Mix Editor)#FFFFFF#FFFFFF
WaveformTitleDividerLine between item titles and waveforms (Mix Editor)#FFFFFF#FFFFFF
WaveformWaveformDividerLine between the waveform tracks (Mix Editor)#000000#000000
Peak Meters
KeyDescriptionLightDark
PeakmeterEmptyBackgroundBackground when no audio source is assignedGray2Gray7
PeakmeterBackgroundBackground of the peak meterGray6Gray7
PeakmeterInactiveUnlit part of the bars#808080#808080
PeakmeterActiveLit part of the bars in the normal rangeDarkGreenDarkGreen
PeakmeterHeadroomLit part of the bars in the headroom rangeDarkYellowDarkYellow
PeakmeterOverloadLit part of the bars in the overload rangeRedRed
PeakmeterClipClip indicator at the end of the bars#FF0000#FF0000
Volume Faders
KeyDescriptionLightDark
VolumeFaderBarActivePart of the bar below the current level#2A82DA#2A82DA
VolumeFaderBarInactivePart of the bar above the current level#A0A0A0#606060
VolumeFaderKnobFill of the knob#FFFFFF#F0F0F0
VolumeFaderKnobOutlineOutline of the knob#646464#1E1E1E
VolumeFaderTickScale ticks#D8D8D8#F0F0F0
Progress Bars

These colors apply to the progress bars in the players, cartwall, and the global progress bar below the playlists.

KeyDescriptionLightDark
ProgressBarIdleFill of the progress bar when nothing is loadedBtnFace (system)#2A353B
ProgressBarBorderBorder of the progress bar#000000#263238
ProgressBarIdleBorderBorder of the progress bar when nothing is loaded#808080#808080
ProgressBarElapsedElapsed partGray3Gray7
ProgressBarRemainRemaining partGreenGreen
ProgressBarOutroRemaining part after the Outro markerDarkGreenDarkGreen
ProgressBarRamp1Remaining part of the ramp up to Ramp 1RedRed
ProgressBarRamp2Remaining part of the ramp up to Ramp 2#FF6600#FF6600
ProgressBarRamp3Remaining part of the ramp up to Ramp 3#FFFF00#FFFF00
ProgressBarElapsedRampElapsed part of the ramp#808080#808080
Cartwall
KeyDescriptionLightDark
CartwallPlayerActiveCart player that is playingRedRed
CartwallPlayerInactiveCart player that is loaded but not playing; also used as the alternate color when the end-of-file warning flashes#C0C0C0#2A353B
CartwallPlayerPFLCart player that is playing in PFL modeYellowYellow
CartwallPlayerDisabledCart players while the cartwall is in OFF AIR modeBtnFace (system)#37474F
CartwallPlayerSelectedSelected cart playerDarkRedDarkRed
CartwallBackgroundBackground of the cartwallBtnFace (system)#37474F
CartwallGridGrid between the cart playersInactiveCaption (system)Gray6

If a playlist item loaded into a cart player has its own color, that color is used instead of CartwallPlayerInactive and CartwallPlayerDisabled.

Database App
KeyDescriptionLightDark
TemplateItemRandom“Random” elements in the hour template editorGreenDarkGreen
TemplateItemFixed“Fixed” elements in the hour template editorPurpleDarkPurple
TemplateItemMusic“Music” elements in the hour template editorYellowDarkYellow
TemplateItemMarker“Marker” elements in the hour template editorBlueDarkBlue
TemplateItemAdvertising“Advertising” elements in the hour template editorCyanDarkCyan
SelectPlaylistOKHours that contain a playlist, in the Select Playlist dialogGreenDarkGreen
SelectPlaylistErrorHours without a playlist (empty), in the Select Playlist dialogRedDarkRed

[CustomColors]

In this section, you can define your own named colors, e.g. MyRed=#E00000. These names can then be used as a color value in any other section, which makes it easy to change a color in a single place.

[MainWindow]

Settings for the main playout window.

KeyDescriptionDefault
ColorBackground color of the main windowWindow style default
BackgroundFull path of an image file to be displayed as the background of the main window. Only used when a custom layout is configured.(none)

Like in the [Colors] section, Color only accepts HTML color codes and the names of the predefined colors.

Changes to this section only take effect after restarting mAirList; they are not applied by the Skin Editor or SKIN RELOAD.

[Toolbar]

Settings for the main toolbar of the playout window.

KeyDescriptionDefault
VisibleShow the toolbar at allon
CaptionsShow captions below the button iconson
ListShow the captions to the right of the icons, rather than below themoff
AutoSizeAdjust the width of each button to its caption, rather than using the same width for all buttonsoff
ShowNewShow the New buttonon
ShowOpenShow the Open buttonon
ShowSaveShow the Save buttonon
ShowInsertShow the Insert buttonon
ShowPropertiesShow the Properties buttonon
ShowDeleteShow the Delete buttonon
ShowEventsShow the Events buttonon
ShowActionsShow the Actions buttonon
ShowCartwallShow the Cartwall buttonon
ShowMixEditorShow the Mix Editor buttonon
ShowVoiceTrackingShow the Voice Tracking buttonon
ShowBrowserShow the Browser buttonon
ShowToolsShow the Tools buttonon
ShowAboutShow the About buttonon
ShowSeparator0Show the separator after the Save buttonon
ShowSeparator1Show the separator after the Delete buttonon
ShowSeparator2Show the separator after the Database buttonon
ShowSeparator3Show the separator after the Tools buttonon
FontName, FontSize, FontStyle, FontColorFont of the button captions, see FontsWindow style default

The Show... settings can only hide buttons; a button that is not available anyway (e.g. because the respective function is disabled in the configuration) will not be shown even if the setting is on. The visibility of the Database button is controlled by the database configuration, see Options.

Like Color in the [MainWindow] section, FontColor only accepts HTML color codes and the names of the predefined colors, and changes only take effect after a restart.

Playlist and Players

[Playlist], [Playlistn]

Settings for the playlist display in the playout window. [Playlist] applies to all playlists; settings for a particular playlist are specified in [Playlist0], [Playlist1], etc. (numbering starts at 0).

The settings fall into two groups:

  • Row settings (colors, fonts and dimensions of the playlist rows) can be applied selectively to particular rows, e.g. only to the row of the item that is currently playing, or only to jingles. This is done with row selectors, see below.
  • Global settings (columns, header, grid lines, etc.) apply to the entire playlist.
Row Selectors

The key of a row setting consists of an optional selector, followed by the name of the property, e.g.:

RowColor=#FFFFFF
PlayingRowColor=#C0FFC0
MusicFontSize=16
Player0PlayingTitleFontStyle=B

Without a selector (RowColor), the setting applies to all rows. With a selector, it only applies to the rows matching the selector: PlayingRowColor sets the background of the row that is currently playing, MusicFontSize sets the font size for all music items, and Player0PlayingTitleFontStyle makes the title bold while the item is playing in the first player.

A selector is made up of the following parts, each of which is optional. If multiple parts are used, they must be specified in exactly this order:

#PartMatchesValues
1AlternateEvery second row (rows with an odd index, counting from 0)Alternate
2Row typeRegular item rows, or the underrun warning rowItem, Underrun
3PlayerItems loaded in a particular player of the playlist, counting from 0Player0, Player1, etc.; Player-1 for items not loaded in a player
4Player stateThe state of the item, see belowe.g. Playing, Next, Played
5Item typeThe type of the iteme.g. Music, Jingle, Advertising
6Item categoryThe kind of itemFile, Stream, Break, Command, Container, Dummy, Other
7Font categoryThe part of the row the font applies to (font settings only, see below)e.g. Title, Artist, Time

A row matches a selector if it matches all parts used in the selector. For example, AlternatePlayingMusicRowColor applies to rows that are on an odd position, are currently playing, and contain a music item.

The available player states are:

ValueMeaning
EmptyThe item is not loaded in a player (the normal state of an item waiting in the playlist)
LoadingThe item is being loaded into a player
LoadedThe item is loaded in a player, but not playing
PlayingThe item is playing
FadingThe item is fading out
PausedPlayback is paused
StoppedPlayback has been stopped
EOFPlayback has reached the end of the item
NextThe item is loaded in the player that will be started next
PFLThe item is being played in PFL mode
PlayedThe item has already been played
SkippedThe item has been skipped
ErrorThe item could not be loaded, or has been marked as erroneous by the error check
OverflowThe item is beyond the end of the hour (overflow)

The available item types are Unknown, Music, Voice, News, Weather, Traffic, Advertising, Package, Jingle, Sound, Trailer, Promo, Sponsorship, Sweeper, Drop, StationID, Bed, Instrumental, Show, Stream, Container, Playlist, Command, CartwallPage, Break, Dummy, Silence, Error, Other, Custom1, Custom2 and Custom3.

Some values exist both as an item type and an item category (Stream, Container, Break, Dummy, Other), and Error exists both as a player state and an item type. Since the parts are processed in the order given above, such a value is always interpreted as the earlier part, i.e. Error as a player state, and Stream etc. as an item type.

If a key cannot be parsed completely (e.g. because of a typo, or because the parts are in the wrong order), it is silently ignored.

Precedence

All settings whose selector matches a particular row are applied one after another, in the order in which they appear in the skin, so the last matching setting wins. In other words, put general settings first and more specific ones after them:

RowColor=#FFFFFF
MusicRowColor=#F0F0FF
PlayingRowColor=#C0FFC0

Here, a playing music item gets the PlayingRowColor, because it comes last. If the order of the last two lines were swapped, it would get the MusicRowColor instead.

The settings are processed in the following order: First the built-in defaults (see the tables below), then the settings in [Playlist], then those in [Playlistn]; for each of these sections, the .Light/.Dark variant follows directly after the base section. If a key is specified more than once, only the last occurrence counts, and it takes the position of that last occurrence.

Note that some of the built-in defaults already use selectors, e.g. PlayedFontColor. A plain FontColor in your skin will therefore not affect the played items, unless you also set PlayedFontColor.

Item Colors

The row background and the color ribbon can also be colored according to the color of the item, or the color of its item type, depending on the options Use item colors for row color and Use item colors for color ribbon in the playlist configuration. In this case, the item color takes priority over a RowColor or RibbonColor without selector, but settings with a selector (e.g. PlayingRowColor) still take priority over the item color, unless the option Item-specific colors have priority over skin.ini is enabled.

Row Settings

The following settings can be combined with a selector:

KeyDescriptionDefault
RowColorBackground color of the rowWindow
RibbonColorColor of the color ribbon on the left side of the row#F0F0F0
ElapsedColorElapsed part of the row background, if Show player progress as row background is enabledDarkRed
RemainingColorRemaining part of the row background, if Show player progress as row background is enabledRed
PlayerBorderColorBorder of the player name box in the Player column#000000
EditorBackgroundColorBackground of the inline editor#FFFFFF
DebugColorColor of the layout outlines in debug mode#FF0000
RowHeightHeight of the main row in pixels32 (64 for the underrun row)
RowPaddingSpace above and below the row content, in pixels8
PlayerNameHeightHeight of the player name box in the Player column32
IconSizeSize of the item icon (album art)32
TimingIconSizeSize of the timing icon24
ExpandIconSizeSize of the expand button24
LinkIconSizeSize of the link icon24
AutoMixIconSizeSize of the Auto Mix status icon, in percent of the icon size30
ProgressBarHeightHeight of the progress bar12
ProgressBarPaddingPadding above the progress bar4
ContentPaddingSpace above the container content area2
CommentPaddingSpace above the comment area8
TitleDisplayModeHow title and artist are displayed in the Title column, see belowJoinTitleArtist
FontNameFont nameArial
FontSizeFont size14
FontStyleFont style, see Fonts(none)
FontColorFont colorsfWindowTextNormal

For the font settings, the built-in defaults also include ContentFontSize=10, CommentFontSize=12, TimeFontSize=12, PlayerFontStyle=B, TimeFontStyle=B, TitleFontStyle=B, ContentFontStyle=B, PlayedFontColor=#808080, SkippedFontColor=#808080, DebugFontColor=#FF0000 and DebugFontSize=6.

The font category part of the selector (part 7) is only meaningful for the four font settings. It selects the text element the font applies to:

ValueText element
PlayerPlayer name in the Player column
TimeTime column
TitleTitle column (title, or title and artist)
ArtistArtist, when shown separately (see TitleDisplayMode)
Attribute1 … Attribute8Attribute columns
Dynamic1 … Dynamic8Dynamic columns
RampRamp column
DurationDuration column
EndTypeEnd column
ContentContainer content area
CommentComment area
DebugDebug information

For example, ArtistFontStyle=I shows the artist in italics, and PlayingTimeFontColor=#C00000 shows the time of the playing item in red.

The available values for TitleDisplayMode are:

ValueDisplay
TitleTitle only
JoinTitleArtistTitle and artist in one line, separated by TitleSeparator
JoinArtistTitleArtist and title in one line, separated by TitleSeparator
VSplitTitleArtistTitle above artist
VSplitArtistTitleArtist above title
HSplitTitleArtistTitle and artist side by side
HSplitArtistTitleArtist and title side by side
Columns

The playlist consists of the following columns, identified by these names: Player, Peakmeter, Timing, Time, Expand, Icon, Title, Attribute1 … Attribute8, Dynamic1 … Dynamic8, Ramp, Duration, EndType and Link.

KeyDescriptionDefault
ColumnsComma-separated list of the columns to display, in this order, e.g. Player,Time,Title,DurationAll columns, in the order listed above
ColumnColumnVisibleSet to off to hide a column (only used when Columns is not set)on
ColumnColumnWidthWidth of the column in pixelssee below
ColumnColumnPaddingHorizontal padding of the column in pixels4
ColumnColumnAlignmentText alignment: Left, Right or CenterCenter
AutoSizeColumnThe column that takes up the remaining width of the playlistTitle
Attribute1 … Attribute8Name of the item attribute to display in the respective attribute column, e.g. Attribute1=Album(none)
Dynamic1 … Dynamic8Text to display in the respective dynamic column, which can contain Logging Variables, e.g. Dynamic1=%u{Album} (%u{Year})(none)

Attribute and dynamic columns are only displayed if the respective Attributen or Dynamicn key is set. They are left-aligned and 150 pixels wide by default.

The default column widths are: Player 48 (120 if Show player state is enabled), Peakmeter 20, Timing 24, Time 80, Expand 32, Icon 48, Ramp 64, Duration 100, EndType 48 and Link 48. The default alignment is Left for Time and Title, and Right for Ramp and Duration.

Layout
KeyDescriptionDefault
MarginLeft, MarginRightMargin on the left and right side of the rows2
RibbonWidthWidth of the color ribbon8
RibbonPaddingSpace between the color ribbon and the first column4
ProgressBarMarginLeft, ProgressBarMarginRightMargins of the progress bar0
ContentMarginLeft, ContentMarginRightMargins of the container content area-1, 0
CommentMarginLeft, CommentMarginRightMargins of the comment area-1, 0
TitleSeparatorSeparator between title and artist in the Join... display modes·
ContentSeparatorSeparator between the items in the container content area (use \n for a line break),
ContentSectionSeparatorSeparator between sections in the container content area (use \n for a line break)line break

A left margin of -1 aligns the area with the left edge of the Title column.

The progress bar within the rows is configured with the prefix ProgressBar (see [ProgressBar] for the available keys), and the peak meter in the Peakmeter column with the prefix Peakmeter (in addition to the global [Peakmeter] section).

KeyDescriptionDefault
ShowHeaderShow the column headeron
HeaderHeightHeight of the header in pixels28
HeaderBackgroundColorBackground color of the headerWindow style button color
HeaderFontName, HeaderFontSize, HeaderFontStyle, HeaderFontColorFont of the headerSize 10, style B
HeaderPaddingTopTop padding of the header captions0
ColumnHeaderCaptionCaption of the respective column in the headerColumn name; empty for Timing, Peakmeter, Expand and Icon; attribute name or text for attribute and dynamic columns
Other Settings
KeyDescriptionDefault
BackgroundColorBackground color of the playlist area below the last rowWindow
SelectedFontColorFont color of selected rows#FFFFFF
GridLinesShow horizontal grid lines between the rowson
VertGridLinesShow vertical grid linesoff
GridLineStyleStyle of the grid lines: dotted or soliddotted
HideSelectionHide the selection when the playlist does not have the focusoff
UseBlendedSelectionDraw the selection semi-transparenton
DebugShow the outlines of the layout elements, for skin developmentoff

In addition, the following color keys of the underlying list control are available: BorderColor, DisabledColor, DropMarkColor, DropTargetBorderColor, DropTargetColor, FocusedSelectionBorderColor, FocusedSelectionColor, GridLineColor, HeaderHotColor, HotColor, SelectionRectangleBlendColor, SelectionRectangleBorderColor, TreeLineColor, UnfocusedSelectionBorderColor and UnfocusedSelectionColor. Like the SelectedFontColor setting, these only accept HTML color codes and the names of the predefined colors.

[PlaylistToolbar], [PlaylistToolbarn]

Settings for the toolbar above each playlist. [PlaylistToolbar] applies to all playlists; settings for a particular playlist are specified in [PlaylistToolbar0], [PlaylistToolbar1], etc., and take priority.

The toolbar supports the common toolbar settings. Its default height is 36 pixels, and the default button width is 40 pixels.

The toolbar contains the following buttons:

NameButtonDefault widthPosition
AssistAutoCombined ASSIST/AUTO button100left
AssistASSIST button (if separate automation buttons are enabled)100left
AutoAUTO button (if separate automation buttons are enabled)100left
StopAutomation STOP50left
PlayAutomation PLAY50left
NextAutomation NEXT50left
EventDisplay of the next scheduled event140right
EndTimeDisplay of the end time/duration of the playlist170right
AutoFloatAuto float on/off50right
EditBarShow/hide the edit bar50right
MoveUpMove the selected items up50right
MoveDownMove the selected items down50right

Some buttons have default colors that differ from the [Colors] section: AssistAuto is Green when inactive (ASSIST) and Red when active (AUTO); Auto is Red when active; Assist is Green when active; and Event is Yellow when inactive.

The buttons of the edit bar (shown with the EditBar button) are configured in the same section. Their appearance is controlled by the button settings with an empty prefix (i.e. Color, ActiveColor, FontName etc. apply to all edit bar buttons), or with the name of the button as prefix:

NameButton
EditTimingTiming of the selected item
EditHourlyFixTimeHourly fixed time on/off
EditMoveUpMove the selected items up
EditMoveDownMove the selected items down

For example, EditTimingActiveColor=#C00000 changes the active color of the timing button in the edit bar.

[Player], [Playern_m]

Settings for the players of the playlists.

[Player] applies to all players. Settings for an individual player can be specified in [Playern_m], where n is the number of the playlist and m the number of the player within that playlist (both starting at 0), e.g. [Player0_1] for the second player of the first playlist. These settings take priority over those in [Player].

(The section [PlaylistPlayer] is still supported for compatibility with older skins, but there is no reason to use it in new skins.)

Player States

Colors and fonts can be set differently for each state of the player, by adding the name of the state as a prefix to the key. The following states are available:

StateMeaning
EmptyNo item loaded
LoadingAn item is being loaded
LoadedAn item is loaded, but not playing
NextAn item is loaded, and the player is the next one to be started
PlayingThe item is playing
FadingThe item is fading out
PausedPlayback is paused
StoppedPlayback has been stopped
EOFPlayback has reached the end of the item
ErrorThe item could not be loaded
PFLThe item is being played in PFL mode
FlashEOFAlternate color while the end-of-file warning is flashing
Colors
KeyDescriptionDefault
ColorBackground color of the player in all statessee below
StateColorBackground color of the player in a particular state, e.g. PlayingColorsee below
BorderColorColor of the border around the playerWindowFrame

By default, the background color in the states Playing, Fading, EOF and PFL is the color of the player as set in the playlist configuration, and the panel color of the window style in all other states (including FlashEOF, so that the player flashes between its own color and the panel color). Note that Color overrides the defaults for all states, including the playing states; use StateColor in order to change particular states only.

If the player option Use item color when idle is enabled, the color of the loaded item (if set) is used instead of the Loaded and Paused colors. The FlashEOF color is only used if Flash during EOF warning is enabled.

Fonts

The player displays five text elements, each with its own font:

CategoryText elementDefault font
NameName of the player (e.g. “A”)Arial, 48
StateState of the player (e.g. “PLAYING”)Arial Narrow, 20
TimeElapsed/remaining timeArial, 32
TitleTitle of the itemArial, 12, bold
ArtistArtist of the itemArial, 12, bold

The default font color is black in the states Playing, Fading, EOF and PFL, and the caption text color of the window style otherwise.

The font keys (FontName, FontSize, FontStyle and FontColor, see Fonts) can be combined with a state and/or a category prefix. They are applied in the following order, so later ones take priority:

  1. FontSize etc.: all text elements in all states
  2. StateFontSize, e.g. PlayingFontColor: all text elements in a particular state
  3. CategoryFontSize, e.g. TimeFontSize: a particular text element in all states
  4. State**CategoryFontSize, e.g. PlayingTimeFontColor: a particular text element in a particular state

Note that a category setting (3) takes priority over a state setting (2). For example, with PlayingFontColor=#FFFFFF and TitleFontColor=#000000, the title of a playing item will be black; use PlayingTitleFontColor to change it for the playing state.

Buttons

The player has the following buttons: Start, Stop, Pause, Close, PFL, Loop, FadeOut and Reset.

Their appearance is configured with the button settings, using the prefix Button for all buttons, or the name of the button followed by Button for a particular button, e.g.:

ButtonFontSize=10
StartButtonActiveColor=#00C000
PFLButtonActiveColor=Yellow

Which buttons are displayed is set in the player configuration, not in the skin.

Dimensions
KeyDescriptionDefault
ButtonSizeHeight of the button row in pixels38
ProgressBarHeightHeight of the progress bar in pixels26
ProgressBarMarginSpace above the progress bar in pixels1
WaveformHeightHeight of the waveform display in pixels40
WaveformMarginSpace above the waveform display in pixels1
StatusHeightAdjustmentAdditional height of the status area (name, state and time) in pixels2
Other Settings
KeyDescriptionDefault
RampPrefixText displayed in front of the ramp countdownR
XMLLayoutFilename of a custom layout for the player, see below(none)

The embedded progress bar is configured with the prefix ProgressBar (e.g. ProgressBarRemainColor, see [ProgressBar] for the available keys), and the waveform display with the prefix Waveform, in addition to the global [Waveform] section.

Custom Layout

With the XMLLayout setting, you can replace the built-in arrangement of the elements of the player with your own layout, defined in an XML file. A relative filename refers to the config folder of your mAirList installation.

The XML file contains a root element (with any name), which contains Object and Container elements:

  • <Object Name="..."/> places one of the elements of the player. The available names are Name, State, Time, Title, Artist, Status, ProgressBar, Waveform, Peakmeter, VolumeSlider, and the buttons StartButton, StopButton, PauseButton, CloseButton, PFLButton, LoopButton, FadeOutButton and ResetButton. Elements that are not placed are not displayed.
  • <Container>...</Container> creates an invisible panel, which can contain further Object and Container elements, in order to build more complex layouts.

Both elements support the following attributes:

AttributeDescription
AlignTop, Bottom, Left, Right, or Client (also Fill) to fill the remaining space. Elements with the same alignment are arranged in the order in which they appear in the file.
Width, HeightSize of the element in pixels
Left, TopPosition of the element in pixels (for elements without alignment)
MarginMargin on all four sides in pixels
MarginLeft, MarginRight, MarginTop, MarginBottomMargin on a particular side, overriding Margin

For text elements (Name, State, Time, Title, Artist), the size adjusts automatically to the text unless Width or Height is specified.

Example:

<Layout>
  <Container Align="Left" Width="60">
    <Object Name="Name" Align="Client"/>
  </Container>
  <Object Name="ProgressBar" Align="Bottom" Height="12"/>
  <Container Align="Bottom" Height="38">
    <Object Name="StartButton" Align="Left" Width="60"/>
    <Object Name="StopButton" Align="Left" Width="60"/>
  </Container>
  <Object Name="Title" Align="Top"/>
  <Object Name="Time" Align="Right"/>
</Layout>

[ProgressBar]

Settings for the global progress bar displayed below the playlists, which shows the progress of the item that is currently playing.

KeyDescriptionDefault
IdleColorFill of the progress bar when no item is loaded, or the item has no duration (e.g. a stream)ProgressBarIdle
BorderColorBorder of the progress barProgressBarBorder
IdleBorderColorBorder of the progress bar when the item has no duration (e.g. a stream), or no item is loaded (except for the global progress bar, which uses BorderColor in this case)ProgressBarIdleBorder
ElapsedColorElapsed partProgressBarElapsed
RemainColorRemaining partProgressBarRemain
OutroColorRemaining part after the Outro markerProgressBarOutro
Ramp1ColorRemaining part of the ramp up to Ramp 1ProgressBarRamp1
Ramp2ColorRemaining part of the ramp up to Ramp 2ProgressBarRamp2
Ramp3ColorRemaining part of the ramp up to Ramp 3ProgressBarRamp3
ElapsedRampColorElapsed part of the rampProgressBarElapsedRamp

The defaults refer to the [Colors] section, so changing a color there changes it for all progress bars at once.

Whether the ramp is displayed, whether the progress bar is split during the ramp, and whether it is hidden when nothing is playing, is set in the configuration, not in the skin.

The progress bars embedded in other components use the same keys, with the prefix ProgressBar, e.g. ProgressBarRemainColor in the [Player] section. Note that these progress bars do not inherit the settings of the [ProgressBar] section; to change all progress bars at once, use the ProgressBar... colors in the [Colors] section.

Common Components

[Peakmeter]

Settings for all peak meters, i.e. those in the playlists, the Peakmeter and Encoder Status screen objects, etc.

KeyDescriptionDefault
DesignModern (continuous bars with peak hold) or Classic (segmented bars, as in earlier mAirList versions)Modern
HeadroomLevel in dB from which the bars are drawn in the headroom color-6
OverloadLevel in dB from which the bars are drawn in the overload color0
ClipTimeoutTime in milliseconds the clip indicator stays lit after an overload1000
EmptyBackgroundColorBackground when no audio source is assignedPeakmeterEmptyBackground
BackgroundColorBackground of the peak meterPeakmeterBackground
InactiveColorUnlit part of the barsPeakmeterInactive
ActiveColorLit part of the bars below the headroom levelPeakmeterActive
HeadroomColorLit part of the bars in the headroom rangePeakmeterHeadroom
OverloadColorLit part of the bars in the overload rangePeakmeterOverload
ClipColorClip indicator (classic design only)PeakmeterClip
HorizontalMargin, VerticalMarginMargins around the bars in pixels2
PaddingSpace between the bars of the individual channels in pixels2
PeakHoldWidthWidth of the peak hold indicator in pixels (modern design only; 0 to turn it off)2
TotalWidthWidth of one segment including the gap (classic design only)2
ActiveWidth, InactiveWidth, HeadroomWidth, OverloadWidthWidth of the lit part of a segment in the respective range (classic design only)1
ClipWidthWidth of the clip indicator in pixels (classic design only; 0 to turn it off)4
OverloadPaddingSpace between the bars and the clip indicator (classic design only)2

The default colors refer to the [Colors] section.

The same keys can be used with the prefix Peakmeter in the [Playlist] and [EncoderStatus] sections, in order to change the peak meters of these components only.

The Peakmeter screen object has a Skin ID setting; if set, the peak meter will additionally read its settings from the section with that name (without prefix). This allows you to give individual peak meters a different look:

[MyBigMeter]
Design=Classic
TotalWidth=4
ActiveWidth=3

[VolumeFader]

Settings for the volume faders in the players, cart players and VT Recorder.

KeyDescriptionDefault
BarActiveColorPart of the bar below the current levelVolumeFaderBarActive
BarInactiveColorPart of the bar above the current levelVolumeFaderBarInactive
KnobColorFill of the knobVolumeFaderKnob
KnobOutlineColorOutline of the knobVolumeFaderKnobOutline
TickColorScale ticksVolumeFaderTick
BarWidthWidth of the bar in pixels6
KnobWidth, KnobHeightSize of the knob in pixels18, 10
NotchWidthDistance in pixels around 0 dB within which the knob snaps to 0 dB (0 to turn it off)4
TickWidthThickness of the ticks every 10 dB (0 to turn them off)1
ZeroTickWidthThickness of the 0 dB tick (0 to turn it off)2
CurveFader curve, i.e. how the knob position relates to the level: Default, DHD or RodecasterDefault

The default colors refer to the [Colors] section.

[Waveform]

Settings for all waveform displays, e.g. in the players, Cue Editor, cartwall and Mix Editor.

KeyDescriptionDefault
InactiveColorFill of the waveform area when no waveform is displayedWaveformInactive
BackgroundColorBackground behind the waveformWaveformBackground
NormalColorThe waveform itselfWaveformNormal
FocusedColorThe waveform while the waveform display has the keyboard focusWaveformFocused
CueColorThe waveform before Cue In and after Cue OutWaveformCue
PlayedColorThe part of the waveform that has already been playedWaveformPlayed
CueDataColorMarkers for additional cue dataWaveformCueData
PositionColorLine indicating the current playback positionWaveformPosition
EnvelopeColorFill of the volume envelopeWaveformEnvelope
EnvelopeLineColorOutline of the volume envelopeWaveformEnvelopeLine
EnvelopeBoxColorPoints of the volume envelopeWaveformEnvelopeBox
TimelineColorLines and labels of the timelineWaveformTimeline
TimelineBackgroundColorBackground of the timelineWaveformTimelineBackground
TitleBackgroundColorBackground of the item titles (Mix Editor)WaveformTitleBackground
EmptySpaceColorEmpty area beyond the end of the items (Mix Editor)WaveformEmptySpace
TimelineDividerColorLine between timeline and waveforms (Mix Editor)WaveformTimelineDivider
TitleDividerColorLine between item titles and waveforms (Mix Editor)WaveformTitleDivider
WaveformDividerColorLine between the waveform tracks (Mix Editor)WaveformWaveformDivider
EnvelopeLineWidthWidth of the volume envelope outline in pixels2
PositionLineWidthWidth of the playback position line in pixels2
CueMarkerLineWidthWidth of the cue marker lines in pixels1
FadeLineWidthWidth of the fade lines in pixels1
NominalLevelReference level in dB for the amplitude of the waveform, relative to the amplification of the item0

The default colors refer to the [Colors] section.

The fonts of the waveform display are specified with the following prefixes, followed by FontName, FontSize, FontStyle or FontColor (see Fonts), e.g. TimelineFontSize or TitleFontColor:

PrefixText elementDefault
CuePositionLabels of the cue markers (the color is set automatically)Arial, 8, bold
TimelineLabels of the timelineArial, 6, #C0C0C0
TitleItem titles (Mix Editor)Arial, 8, #FFFFFF
PaddingPadding labels (Mix Editor)Arial, 8, #FFFFFF

The waveform displays of the players additionally read these settings with the prefix Waveform from their own section, and those of the Mix Editor from the [MixEditor] section.

Cartwall

[Cartwall]

Settings for the cartwall and its cart players.

Cart player colors. The background color of a cart player depends on its state, and on the mode of the cartwall (ON AIR, OFF AIR, PFL or VT). The keys are formed from an optional mode prefix and the state:

StateMeaningDefault
ActivePlayerColorCart player that is playingCartwallPlayerActive (PFL mode: CartwallPlayerPFL)
InactivePlayerColorCart player that is loaded but not playingCartwallPlayerInactive
SelectedPlayerColorSelected cart playerCartwallPlayerSelected
DisabledPlayerColorCart players while the cartwall is OFF AIRCartwallPlayerDisabled
FlashEOFColorAlternate color while the end-of-file warning is flashingCartwallPlayerInactive
BackgroundColorBackground of the cartwallCartwallBackground
GridColorGrid between the cart playersCartwallGrid

Without a prefix, the color applies to all modes. With one of the prefixes OnAir, OffAir, PFL or VT, it only applies to the respective mode, e.g. PFLActivePlayerColor. In OFF AIR mode, all players use the DisabledPlayerColor by default. If an item has its own color, that color is used for inactive and disabled cart players.

Other settings:

KeyDescriptionDefault
NormalFontColorFont color on a light background#101010
InverseFontColorFont color on a dark background#FFFFFF
InverseFontColorThresholdBrightness (0-255) below which a background counts as dark, i.e. InverseFontColor is used128
IndexFontName, IndexFontSize, IndexFontStyleFont of the player numberTahoma, 12, bold
TitleFontName, TitleFontSize, TitleFontStyleFont of the titleTahoma, 10, bold
TimeFontName, TimeFontSize, TimeFontStyleFont of the timeTahoma, 12, bold
IconMarginMargin around the item icon in pixels4
ResizeNodeActiveColor, ResizeNodeInactiveColorHandles for resizing cart players in design modeRed, Black
ToolbarVisibleShow the cartwall toolbaron

The font colors of the cart players are always determined by NormalFontColor and InverseFontColor, depending on the brightness of the background, so the ...FontColor keys have no effect here.

The progress bars of the cart players are configured with the prefix ProgressBar (see [ProgressBar] for the available keys), and the waveform display in the toolbar with the prefix Waveform, in addition to the global [Waveform] section.

Page tabs. The tabs for the cartwall pages are configured with the prefix Tab:

KeyDescription
TabHeightFixed height of the tabs in pixels (0 for automatic)
TabFontName, TabFontSize, TabFontStyle, TabFontColorFont of the tab captions (default: Tahoma, 8)
TabColorTabActive, TabColorTabHot, TabColorTabInActiveBackground of the active tab, the tab under the mouse, and the other tabs
TabColorTxtActive, TabColorTxtHot, TabColorTxtInActiveCaption color of these tabs
TabColorBrdActive, TabColorBrdHot, TabColorBrdInActiveBorder color of these tabs
TabColorOutActive, TabColorOutHot, TabColorOutInActiveOutline color of these tabs
TabColorBrdBottomLine below the tabs
TabColorBackgroundBackground of the tab bar

[CartwallToolbar]

Settings for the cartwall toolbar. The toolbar supports the common toolbar settings; the default button width is 40 pixels. It contains the following buttons:

NameButtonPosition
MenuCartwall menuleft
FavoritesFavoritesleft
NewPageNew pageleft
OpenPageOpen pageleft
SavePageSave pageleft
ClosePageClose pageleft
DesignModeDesign mode on/offleft
ColorColorleft
WaveformWaveform display of the playing cart (fills the remaining space)center
OnAirON AIR moderight, width 100
PFLPFL moderight, width 100
NextNEXTright, width 80

By default, the OnAir button is Red with white text when active, and the PFL button is Yellow when active.

Mix Editor

[MixEditor], [Waveformn]

The Mix Editor displays the items as waveforms on two levels: level 0 for the items themselves, and level 1 for sub-items, e.g. the contents of a container. The waveform settings (see [Waveform]) are read in the following order, so later settings take priority:

  1. The [Waveform] section
  2. The [Waveform0] or [Waveform1] section, for the respective level
  3. Keys with the prefix Waveform in the [MixEditor] section
  4. Keys with the prefix Waveform0 or Waveform1 in the [MixEditor] section

By default, the background of level 1 is #404040.

[MixEditorToolbar]

Settings for the Mix Editor toolbar. The toolbar supports the common toolbar settings; the default button width is 50 pixels. It contains the following buttons:

NameButtonPosition
PausePauseleft
PlayPlayleft
ElapsedDisplay of the elapsed timeleft, width 150
TotalDisplay of the total durationleft, width 150
JumpPreviousJump to previous mix pointleft
JumpNextJump to next mix pointleft
ZoomInZoom inright, width 30
ZoomOutZoom outright, width 30
ZoomOutFullZoom out fullright, width 30
UndoUndoright, width 30
RedoRedoright, width 30
OKOKright
CancelCancelright

Browser

[Browser]

Settings for the browser, which is displayed on the right-hand side of the playout window by default.

Navigation pane. The browser consists of a stack of panes. Their colors can be set with the following keys. Each color is drawn as a gradient; the key itself sets both ends, and the keys with the suffix From and To set the start and end of the gradient individually (e.g. HeaderColorFrom, HeaderColorTo):

KeyDescription
ButtonColorButtons for the individual panes
ButtonHotColorPane button under the mouse
ButtonSelectedColorButton of the active pane
HeaderColorHeader of the active pane
DividerColorDividers
SplitterColorSplitter between the pane buttons and the content
ToolPanelColorTool panels
ToolPanelHeaderColorHeaders of the tool panels

In addition, the following keys set a single color: ButtonSeparatorColor, FrameColor, HeaderFontColor, DividerFontColor, NavPanelFontColor and NavPanelHotTrackFontColor.

Lists. The following keys apply to the list-based panes of the browser (e.g. files, database):

KeyDescriptionDefault
BackgroundColorBackground of the listsWindow style default
FontName, FontSize, FontStyle, FontColorFont of the listsWindow style default
NodeHeightHeight of the list entries in pixelsFont height + 7
WindowBackgroundColorBackground of the browser windowWindow style default

In addition, the color keys of the underlying list control can be used, as described for the [Playlist] section (e.g. FocusedSelectionColor).

BackgroundColor, WindowBackgroundColor, FontColor and the list control colors only accept HTML color codes and the names of the predefined colors.

[BrowserToolbar]

Settings for the toolbar of the browser:

KeyDescriptionDefault
VisibleShow the toolbaron
CaptionsShow captions below the button iconson
ListShow the captions to the right of the icons, rather than below themoff
AutoSizeAdjust the width of each button to its captionoff
ShowAddShow the Add buttonon
ShowRefreshShow the Refresh buttonon
ShowCloseShow the Close buttonon
FontName, FontSize, FontStyle, FontColorFont of the button captionsWindow style default

All keys except Visible and the font keys can also be specified in the [Browser] section, which takes priority over [BrowserToolbar].

[CommentViewerBrowser]

Settings for the Comment Viewer pane of the browser:

KeyDescription
BackgroundColorBackground color (HTML color codes and predefined colors only)
FontName, FontSize, FontStyle, FontColorFont of the comment text

Screen Objects

[EncoderStatus]

Settings for the Encoder Status screen object.

KeyDescriptionDefault
BackgroundColorBackground color (HTML color codes and predefined colors only)Window style default
MicButton...Appearance of the Mic button, see ButtonsActive: Red with white text; inactive: red text
LineButton...Appearance of the Line button, see ButtonsActive: Red with white text; inactive: red text
Peakmeter...Settings of the peak meter, see [Peakmeter]

Database App

[Database], [DatabaseTree], [DatabaseLibrary], [DatabasePlaylist]

Settings for the lists in the Database app. [Database] applies to all lists; [DatabaseTree], [DatabaseLibrary] and [DatabasePlaylist] apply to the library tree, the library item list, and the playlist editor, respectively, and take priority.

KeyDescriptionDefault
FontName, FontSize, FontStyle, FontColorFont of the listWindow style default
NodeHeightHeight of the list entries in pixelsFont height + 7

The playlist editor ([DatabasePlaylist], or [Database]) supports the following additional settings:

KeyDescription
ItemColorsBackgroundUse the item colors as background of the rows (on/off)
ItemColorsFontUse the item colors as font color (on/off)
ExpandContainersShow the contents of containers (on/off)
MarkEmptyContainersHighlight containers without content (on/off)
ShowTotalDurationShow the total duration (on/off)
ShowDisplayDurationShow the display duration (on/off)
UnderrunsShow underrun warnings (on/off)
MainColumnNumber of the column that shows the tree lines
IconColumnNumber of the column that shows the item icon

For MainColumn and IconColumn, the columns are numbered as follows: 0 = number, 1 = time, 2 = database ID, 3 = external ID, 4 = title (default), 5 = artist, 6 = duration, 7 = filename.