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.