This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Database and Scheduling (mAirListDB)

The mAirList Database (mAirListDB) is the audio library and scheduling software built into mAirList.

The database consists of two parts:

  • A database (SQL) server that keeps the lists of all audio files along with their metadata, as well as the scheduled playlist. We support PostgreSQL, MariaDB/MySQL and Microsoft SQL Server as backends. For single-computers installations, a local database file (.mldb) may be used in place of a regular SQL server.
  • The actual audio files, typically located on one or more network shares, so all computers in the LAN can access them.

To serve clients outside the local LAN, the built-in DBServer application tunnels both parts through an HTTP-based protocol.

While using a database is fully optional in mAirList (you can also just drag&drop files from Windows Explorer into the playlist), running a properly configured and management database is an essential part the setup for a typical radio station.

1 - Setup

When you install mAirList from scratch, there will be no database configured, and the database application will not be available initially. You must first add a new database connection, possibly initialize the database tables, and configure the database according to your needs.

Add Database Connection

Database connections are managed in the configuration app (or mAirList Control Panel) on the Databases page. To add a new connection, click Add, and select either mAirListDB (Local Mode) or mAirListDB (SQL).

The third option, mAirListDB (Internet Client), is used to connect to a remote database through mAirList DBServer; see the Remote Access chapter for more information.

Local Database

A local mAirListDB database stores all information in a single .mldb file. It uses SQLite as the underlying SQL engine/library.

To create a new database, click the Create new database button, and select the desired location for your .mldb file. The database will automatically be initialized with the required tables.

To open/connect to an existing database file, click Open existing database.

SQL Database

An SQL backend should be used when the database will be accessed from multiple computers inside the LAN, something that is not supported by the local database. SQL databases could also be favorable for very large libraries, as they have better performance sometimes.

mAirList currently supports the following SQL server types:

  • PostgreSQL (recommended)
  • MySQL/MariaDB
  • Microsoft SQL Server

To prepare the SQL server to be used for mAirListDB, you must create an SQL user and an empty database (owned by that user). For Microsoft SQL Server, only SQL Server Authentication is supported.

On the Connection tab of the configuration dialog, select the appropriate type, host/IP, port number (optional), database, username and password. You can use the Test SQL Connection button to check if the raw connection to the database works.

If it is not an existing mAirListDB database you are connecting to, you must first prepare the database, i.e. create the required tables in it. This is done on the Setup tab by clicking Perform Initial Setup. Skip this step when adding more clients to an existing mAirListDB SQL database.

Configure Connection

This section covers the further configuration steps, common to local and SQL databases.

Database Login

mAirListDB has a built-in user and group management. The username and password you enter here (not to be confused with the SQL username and password) will be used for all unattended logins to the database, in particular, by the playout app.

The default login for new databases is user admin with password admin.

Alternatively, select Authenticate with token, click Sign In… and enter username and password in order to create a one-time password (token) that will be stored in the configuration rather than the actual username and password.

Click Test Login to check that the database can be accessed with the login data.

See the section on user management below for more information on this topic.

Upgrade

Sometimes, after installing a new version of mAirList, you will have to upgrade the database schema so that the tables are adjusted for newly introduced features in that program version.

The database will fail to connect, and an error will be displayed in the System Log, until you perform a Schema Upgrade.

To check the current schema version of your database, and then upgrade the schema, use the corresponding buttons on the Upgrade tab.

There is another button on this tab that will check the indices of your SQL tables. Indices speed up loading and searching records in your database. mAirList will set up the indices automatically when you create or upgrade your database, but you can click this button at any time to make sure they are all up to date.

Settings

The Settings tab contains several settings and options related to the database connection.

The Database ID is a unique identifier that is stored both in the database and in the configuration, and helps mAirList to distinguish database connections (if there is more than one). You should not edit this field manually. The ID is generated automatically when a new database is set up, or retrieved from an existing database when the connection is added to the configuration.

In case you have multiple stations configured in the administrative settings, you can adjust the Default Station, i.e. the station that the playout should operate on.

The Playlist Cache settings determine if, and how many and how often, mAirList should cache any future hourly playlists as XML files (.mlp) in the local temporary folder. This is so that the hourly event can still load the next playlist at the top of the hour, even if the database connection should be unavailable at that time. Please note that this XML file will only contain the playlist and the metadata of all items of that hour, not the actual audio files.

The Audio File Inbox is a special local folder where you can save audio to be imported into the database, e.g. from an audio editing application. To import these files into the database, click the Inbox button in the library window.

Options

On the Options tab, the following checkbox options are available:

  • Management software requires login: If enabled, the Database app, when launched as a separate application from Windows Start Menu, will present a login prompt. If disabled, it will use the default login set on the Connection tab.
  • Auto Importer requires login: If enabled, the Auto Importer application will present a login prompt when started. If disabled, it will use the default login set on the Connection tab.
  • Allow login with default credentials: If enabled, the login prompt (see the two options above) will be pre-filled with the default login set on the Connection tab, so you can just confirm it.
  • Show Database button in playout window: If enabled, the Database app will be available directly from the playout application, through a button in the main toolbar.
  • Show templates in popup/dropdown menus: If enabled, all available combinations of hour/music/transition templates will be available as menu items in the dropdown menu of the Generate button in the playlist editor toolbar. Disable this option if you have a large number of templates, and the popup menu would grow too large.
  • Sort stations alphabetically: Enables alphabetical sorting of stations in the menus and tabs, rather than sorting by ID.
  • Use external IDs for import and export: Import filters for 3rd party scheduler files that rely on database IDs will use the Internal Database ID by default; check this option to use the External ID instead.
  • Disable internal logging: This will disable the logging of played items into the internal logging tables. As the Reporting tool depends on these tables, you should not enable this option if you plan to use reporting.
  • Disable internal logging when OFF AIR: If enabled, items will only be logged when the instance is in ON AIR mode. Should be enabled for most installations.
  • Import new voice tracks recorded in the playlist editor: If checked, voice tracks recorded in the DB app (playlist editor) will be imported as library items by default. If unchecked, they will be kept as external items.
  • Import new voice tracks recorded in the playout window: If checked, voice tracks recorded in the playout app will be imported as library items by default. If unchecked, they will be kept as external items.
  • Refuse advertising update when new block has errors: This option refers to the Update Advertising function found in various places of the DB app. If enabled, any error during the update will immediately cancel the operation. For example, if you had an older version of an ad block imported from an external scheduler, then call Update Advertising, but the import source is not available at that time (because of a missing file etc.), it will keep the previous block rather than deleting it.
  • Use as default database for Update Advertising: When an ad block refers to a database that this instance is not directly connected to (e.g. because the advertising was originally scheduled from a different database), the database with this option enabled will be used for the update instead.
  • Keep SQL connections open: By default, a new SQL connection is opened for each database operation. If enabled, the Database app and DBServer will keep a single SQL connection open and reuse it, which speeds up operations. However, a stale connection (e.g. after a network outage or SQL server restart) might not be detected, so you may have to reconnect manually.
  • Compatibility mode (allow connections to older databases): By enabling this option, mAirList will be able to connect to databases used by older version of the software, possibly disabling particular features. In particular, mAirList 8.x will be able to connect to mAirList 6.x databases (schema version 24). This feature should only be used during migration and testing, and not in production.

Below the list of options, you can select the Full Text Search mode, which determines how the search box of the Database app and the Database Search browser match the search terms:

  • Fast: The search terms are matched against the beginning of the artist, title and external ID fields. This is the fastest option, as it can make use of SQL indexes.
  • Full: The search terms may appear anywhere in these fields. This also finds partial words, but can be slow in large libraries.
  • SQL native: Uses the native full-text search function of the SQL server. This is currently only supported for PostgreSQL; for other server types (and local databases), Fast will be used instead. Before using this mode, click Set up FTS Tables once in order to create the required tables in the database.

See the Library chapter for more information on searching.

Storage Redirection

On this tab, you can hard-redirect storage locations. Please see the Library chapter for more information.

Advanced

On the Advanced page, the following settings can be adjusted:

The Custom Caption will be used as the name for the database throughout the mAirList GUI. The default caption is just “Database”.

The Extra SQL Connection Options allow you to fine-tune the connection to the SQL server, and pass extra settings to the driver library. Please see the Delphi documentation for a list of available settings.

For local databases, there is an additional Synchronous Mode setting in the Performance section, which corresponds to the PRAGMA synchronous setting of the SQLite engine (OFF, NORMAL or FULL; leave empty to use the default). Lower settings speed up write operations, at the risk of data loss in case of a power failure or system crash.

Maintenance

On the Maintenance page, you will find a number of administrative maintenance tasks to execute:

  • Change administrator password: Change the password of the built-in “admin” user. The default password is admin.
  • Delete old playlists: This will remove all old scheduling data older than the specified age.
  • Clean up playback history: This will remove all playback history data (used e.g. for reporting) older than the specified age.
  • Delete playlist item icons: This will delete all icons from all playlist items. In older versions, it was recommended import album art from file tags as icons, so that it is displayed in the playlist. While that worked in general, it would bloat the database, depending on the number of items and the size of their album art. Modern versions of mAirList can extract the album art on the fly from the item tags, so it is no longer necessary to keep it as icons in the database.
  • VACUUM: (local database only) This will free up unused space after delete operations and defragment the database file, possibly reducing its size significantly.

Administrative Settings

Once the database connection has been added to the configuration, you should be able to open the Database app, either from the Database button in the main playout window, or as a separate process from Windows Start Menu.

In its main menu, under Administration -> Configuration, you will find a dialog with a number of administrative settings and options.

Storages

This is where the storages for audio files are configured. Please see the Library chapter for detailed information.

Stations

In mAirListDB, Stations are independent channels that are scheduled from the same audio library. So each database can host an (unlimited) number of stations.

Use the Add/Remove/Rename buttons to edit the list of stations. You must restart all mAirList instances after you do so.

When there is more than one station configured, a new Station menu will appear in the main menu, where you can switch between the available stations. There will also be tabs at the bottom of the window for faster switching between stations.

All stations share the following parts of the database:

  • The audio library and its items
  • The available hour, music and transition templates for the scheduler

The following parts of the database are managed separately for each station:

  • Scheduled playlist
  • Playback history/reporting
  • Assignment grid for hour, music, and transition templates
  • Advertising settings

Multi-station setups usually come with multiple playout instances or computers as well. Each playout must be assigned to the correct station. This is done by setting the Default Station in the database configuration settings, see above.

Sub-Playlists

Sub-playlists offer a way to schedule more than one playlist per hour. For example, the DJ could put together a list of items he or she intends to play manually during the show, but which are not part of the main schedule.

Once sub-playlists have been set up, the playlist editor will display a row of tabs to switch between them.

You can also use automatic scheduling for sub-playlists; that’s why the assignment grid in the Manage Templates dialog will display these tabs as well, allowing you to specify the desired templates per sub-playlist.

Sub-playlists have the following properties:

  • ID: Number used to identify the sub-playlist inside the system. The first one, ID 0, is always the main playlist, and it cannot be edited.
  • Name: The name of the sub-playlist, displayed on the tabs.
  • Group: Enter the same value for a group of sub-playlists, and an additional row of tabs, one for each group, will be displayed, for easier navigation.
  • Target Duration: When the Mini Scheduler is being used to schedule content for this playlist, this will be the (minimum) total duration of all scheduled items. The default is one hour.

Scheduler

This tab contains settings related to the scheduling part of mAirListDB (“Mini Scheduler”), organized in the sub-tabs Settings, Artist Groups, Options and Advanced. Please see the Scheduling chapter for more information.

Standard Attributes

On this tab, you can define the Standard Attributes, i.e. the attributes (fields) that you are going to edit and maintain for your library items, e.g. Album, Year, Genre etc.

The attribute defined here will be turned into input fields on the left-hand side of the Item Properties dialog, Attributes tab. Attributes defined here, on database-level, will be applied automatically to all mAirList instances connected to this database, alongside any attributes possibly defined in the local configuration.

Additionally, Standard Attributes will be displayed and used

  • as additional columns in the library and playlist editor of the Database app,
  • as additional columns when exporting database items as CSV,
  • as additional columns in the “Printable HTML (Extended)” playlist exporter,
  • as selection list in the Mass Edit dialog,
  • as selection list in the attribute filter configuration of scheduling templates.

Please see the Configuration chapter for a description of the available attribute types.

Since mAirList 8.2, Standard Attributes can also be defined per library folder, in the folder properties dialog. These attributes will only appear in the Item Properties dialog when it is opened from the respective folder view in the Database app.

Below the list, you can select an Attribute to store archived filenames in. When you replace an audio file by a dummy item in the Database app, and save a copy of the file before it is deleted, the location of that copy will be stored in this attribute.

Playlist Attributes

Playlist Attributes are similar to Standard Attributes (see above), but they apply to playlists, not library items. In other words, what you define here are “Playlist Standard Attributes”.

When you click the Edit Attributes button in the DB playlist editor, the Playlist Attributes will appear on the left hand side of the edit dialog. You can e.g. add attributes to attach notes to a playlist, e.g. the name of the DJ.

When you define Playlist Attributes here, a row of tabs is added to the playlist navigation (Go To…) dialog of the DB playlist editor; clicking these tabs will display the value of the respective attribute for each hour in the selected week.

Settings

This tab contains the following settings:

  • Playlist Import: Choose whether the database should automatically create error items during import into the library (e.g. from a CSV file) when the External ID specified in the import file is unknown, and if so, in which library folder to place them.
  • File Import: Here you can adjust the default file import settings for this database. Check Override import settings for the current station in order to use different settings for the currently selected station. Please see the Library chapter for more information.
  • Voice Track Import: Select the library folder where newly imported voice tracks should be placed into.

Auto Mix

On this tab, you can set up the rules for the Auto Mix feature, which automatically places sweepers or voice tracks on the ramps of music items. Rules can be defined for the entire database, and separately for each station.

User Management

Each mAirListDB database has a built-in user management.

Administrator Account

There is a fixed built-in administrator account, with username admin and default password admin. This user has unlimited permissions. The password can only be edited from the Maintenance tab in the database connection configuration.

Additional Users

Additional users can be set up from the user management dialog found in the Database app (Administration -> Users and Groups). Note that you must be logged in as a user with administrative privileges (either the default admin user, or a custom user with admin level) to access this dialog. It will also only work when you are connected directly through SQL or the local database, not a DBServer remote connection.

To add a user account, click New in the dialog toolbar. Enter a login name and optional description, and choose a password (or use the auto-generated random one).

Make sure that Allow user to access this service is checked – the user database can also be used for access control for e.g. the REST remote, and this checkbox controls which user is allowed to use which application.

In the Edit Permissions dialog, the following settings are available:

First, choose one of the ascending User Levels:

  • Read-only: Read access only, cannot make any changes to the database.
  • Studio: Same as read-only, but with write access to the internal logging/history tables; this level should be assigned to studio accounts, so that they can record the played items for recording.
  • DJ: Same as Studio, plus permission to make changes to playlists and run scheduling; library is read-only.
  • VT DJ: Same as DJ, plus permission to upload voice tracks to the library.
  • Folder Manager: Same as VT DJ, plus permission to move items around in library folders (but not edit them).
  • Manager: Same as Folder Manager, plus full write access to the library.
  • Administrator: Same as Manager, plus unlimited access to all settings including administrative settings.

More fine-grained control is provided through the General Permissions and Library Permissions options, which are enabled by default. For example, you can revoke a “Manager” user the right to delete items from the library.

Note that these checkboxes always revoke rights that would otherwise be granted by the assigned User Level. It is not possible to grant additional rights to a lower level user by using these checkboxes.

If you want to limit write access to playlists for a particular station (or sub-playlist) for a DJ (or above) user, use the Permitted Stations and Permitted Sub-Playlists field, respectively. Enter a comma-separated list of station/sub-playlist IDs.

On the Tokens tab, you see a list of tokens (one-time passwords) created by the user by signing in from a mAirList instance (when using the Sign In function rather than storing user/password in the configuration). You can delete a token in order to revoke access from that instance.

Groups

User groups are managed on the Groups tab of the User Management dialog. Groups use the same set of possible permissions as users. When a user is a member of a group, the permissions of that group will be merged with the permissions set for that specific user.

2 - Library

In this chapter, you will learn how to use the library part of mAirListDB to add and manage playlist items in your database.

The library part of mAirListDB can be found on the Library tab in the database application.

Library View

The library window consists of two parts:

  • A tree-like structure to navigate through the library (on the left-hand side), and
  • the list of items, with various columns (on the right hand side).

Overall, the library window works pretty much like Windows Explorer, with folders (and more) on the left-hand side, and items on the right hand side.

Library Tree

The tree structure on the left-hand side consists of the following nodes, most of which can be expanded to access additional sub-nodes or filters:

  • Folders: Expand to see and manage the virtual folders and the items assigned to them. See below for more information on virtual folders.
  • Artists: When you expand this, you see an auto-generated list of all artists of which there are items in the database. Clicking an artist will show all items of that artist in the item list.
  • Types: Expand to see a list of available item types (e.g. music, jingles, etc.), and click a type to filter the items by that type.
  • Attributes: This contains a list of all attributes (keys) assigned to any item. Further expanding an attribute will show all values that are used in any item, and clicking a value will filter the item list by this key and value.
  • Storages: Expand to see a list of all storages set up in the configuration, and click a storage to filter all items by that storage.
  • Advertising: This provides quick filters to access all items of type “advertising”, optionally filtered by campaign.
  • Everything: As the name suggests, this will just load the entire list of items into the item list on the right-hand side.

The current view can be refreshed at any time by hitting the F5 key. This also refreshes the cached database settings (storages, folder list, etc.), which mAirList keeps in memory in order to minimize loading times.

In the lower left corner, there is a search box where you can search the library for specific terms.

Clicking the magnifier glass icon in the search box will open a popup menu where you can choose between two modes:

  • Search entire database: Enter one or more search terms and press Return to search the entire library. The results are shown in the item list.
  • Filter current view: The item list currently displayed (e.g. the folder you navigated to in the tree) is filtered as you type, no need to press Return.

The popup menu also gives access to the Advanced Search dialog.

Press Escape to clear the search box.

Search Terms

When searching the entire database, mAirList will look for the search terms in the artist, title and external ID fields, and also accept a database ID. Multiple search terms separated by spaces are combined, i.e. an item must match all of them, but the terms may be found in different fields. For example, searching for Yesterday Man Chris Andrews will find the song “Yesterday Man” by Chris Andrews.

Use double quotes to search for a phrase, e.g. "Chris Andrews".

How exactly the search terms are matched depends on the Full Text Search mode that is selected on the Options page of the database connection properties in the configuration app:

  • Fast: The search terms are matched against the beginning of the fields (or words that follow each other in a field). This is the fastest option, as it can make use of SQL indexes.
  • Full: The search terms may appear anywhere in the fields. This also finds partial words, but can be slow in large libraries.
  • SQL native: Uses the full-text search function of the SQL server. This is currently only available for PostgreSQL databases, and must be set up with the Set up FTS Tables button next to the mode selection first.

The Advanced Search dialog allows you to search the library by a combination of criteria. Open it by clicking the magnifier glass icon in the search box, and select Advanced Search… from the popup menu. The Advanced Search is also available in the Database Search browser of the playout window.

The dialog provides the following criteria:

  • Keywords: The same kind of search terms you can enter in the search box (see above).
  • Title, Artist, Comment, End Type, Database ID, External ID: Choose a condition from the drop-down list (equals, starts with, contains, does not equal, does not start with, does not contain), and enter the value to compare the field with.
  • Item Types: Click the … button to select one or more item types (e.g. Music, Jingle), and choose whether the item type must be one of or none of the selected types.
  • Duration, Ramp: Enter a minimum and/or maximum value in order to find items with a duration or ramp (intro) in this range. You may leave either field empty, e.g. only enter a maximum value to find all items shorter than that.
  • Attributes: Below the fixed criteria, there is one row for each Standard Attribute defined in your configuration. In addition to the text conditions listed above, you can choose:
    • is between / is not between, then enter a minimum and/or maximum value,
    • is one of / is none of, then enter a list of values separated by semicolons, e.g. Rock;Pop;Jazz.

Criteria left empty are ignored. All other criteria are combined, i.e. an item must match all of them in order to be included in the result. If you leave the Keywords field empty, the search is performed on the entire library, using the other criteria only.

Click Search (or press Return) to perform the search; the results are shown in the item list. The dialog stays open, so you can easily refine your criteria and search again. Click Reset to clear all criteria, and press Escape to close the dialog.

Adding Items

This section covers the process of adding audio files to your library, by defining storages and then using either synchronization or file import, as well as adding other kinds of items such as streams or containers.

Manage Storages

Before audio files can be added to the library, one or more storages must be defined in the database settings. This is done in the Database app: Go to Administration -> Configuration and switch to the Storages tab.

A storage is basically a Windows folder, which can either be a folder on your local hard drive, or on a network share.

Future versions of mAirList may offer additional storage options besides Windows folders, this is why the more general term “storage” is being used.

As soon as a Windows folder is registered as a storage, all audio files in that folder, including all subfolders, will become part of the database library.

Audio files in the storage folders can be added to the library in one of two ways:

  • Synchronization: mAirList will scan the storage folder for new files, and create items in the library for them. The original audio files will remain untouched. This is perfect when migrating from another software (you can add your existing audio folder as a storage, and have mAirList synchronize/scan it), or if you plan to manage the audio files in a clean file system structure on your own (something we actually encourage you to do).

  • File Import: Alternatively, mAirList can copy new files into the storage folder, and create the item in the library at the same time. This is what happens when you e.g. drag files into the database app with the mouse.

More details about these two methods can be found in the sections below.

Generally, we recommend that you use separate storages for your different types of audio. A common structure for new libraries would be using three separate storages for music, jingles and advertising:

  • C:\Audio\Music
  • C:\Audio\Jingles
  • C:\Audio\Advertising

The advantage is that mAirList remembers some preferences (e.g. the last item type set in the Synchronize dialog) on a per-storage basis.

Add Storage

To add a storage, click the Add button, and the Edit Storage dialog appears. The required fields are:

  • Name: Enter a name for the storage. This will be used in menus etc.
  • Default location: This is the Windows folder that will be used for the storage.

Hint: The Name field is populated automatically with the folder name when you select the default location, and no name has been entered yet.

The three other settings - Redirect to, Backup location and Cache location refer to Storage Redirection. They cannot be edited from here, but only from the database connection properties in the configuration app or Control Panel. See the section on Storage Redirection below.

Edit Storage

Clicking the Edit button will bring up the Edit Storage dialog again, where you can change the name and/or default location for an existing storage.

It is easily possible to move a (Windows) storage folder to a new location, e.g. from a local hard disk to a network share, and then edit the storage location here (and restart all mAirList instances).

This works because mAirList does not store the absolute path for the audio items, but only the numeric ID of the storage, plus the relative path within the storage folder. Just make sure that you move the storage folder as a whole.

Remove Storage

Before a storage can be removed, all of its items must be deleted from the library first. Then click Remove in order to remove the storage from the configuration. Again, you must restart all mAirList processes to reflect the change.

Storage Redirection

In a typical SQL-based multi-computer setup, audio files usually reside on network shares, and each mAirList computer in the LAN has direct access to the files, either via a UNC path (\\server\share) or a mapped drive letter, using the Default Location set up in the storage configuration.

There are situations, however, where a particular computer must use a different path to access the file, for example when the UNC path used for the default location is not available on that part of the network, or a different drive letter is used for the mapped network drive.

Another common situation is that there are particular computers that maintain a synchronized copy of all audio files on their local hard disk, so they can keep on playing even if the file server should have a temporary failure.

This is where Storage Redirection comes into play. It allows you to modify the path used to access a particular storage, as well as setting up alternative paths where mAirList should look for the audio files.

As this is a per-computer setting, these settings must be accessed over the configuration app (or live configuration) on the particular computer. You can find them on the Storage Redirection tab of the database connection properties dialog.

To adjust storage redirection, you must first click the button to retrieve a list of available storages. Then double-click a storage to edit it.

The dialog that appears is the same as the one from the storage configuration in the database app (see above); but this time, you can only edit the following settings:

  • Redirect to: If a path is entered here, mAirList will always use this path to access files on this storage. Leave empty to use the default location set in the storage configuration.
  • Backup location: If a path is entered here, and a file cannot be found in the default location (or the default location is not available, e.g. because of a server outage), mAirList will look in this folder instead. Use this when you have a synchronized copy of the storage folder on your local hard disk, and you want to use this as a backup for the default location.
  • Cache location: This is pretty much like backup location, however, mAirList will first try to access the file in the local “cache” directory, and only use the one from the default location if the file doesn’t exist in the cache (or the file size or modification date differs).

Note that, when making changes through the live configuration (Control Panel), they will only become active after you restart mAirList or reconnect the database.

You can verify that backup and/or cache location has been configured correctly by looking at the values on the Audio File tab in the item properties dialog - the backup and cache filename fields should be populated with the correct values.

Synchronizing Storages

Synchronization is one of two ways to add new audio files to (and remove obsolete files from) the database. It involves the following steps:

  1. Retrieve a list of audio files currently known to the database.
  2. Scan the storage folder recursively, make a list of audio files found in the folder.
  3. Compare these two lists, to find out which files are “new” and which are “missing” (obsolete).
  4. Create items in the database for all “new” files.
  5. Remove items from the database for all “missing” files.

Synchronization is a suitable approach when you intend to manage the audio files in your Windows folders manually (first copy to Windows folder, then add to database), or when you want to add an existing audio library to the mAirList database library.

To perform synchronization, go to the database app, Library tab, then click Synchronize and select the storage you want to synchronize from the dropdown menu.

mAirList will now retrieve the list of files currently known to the database, and scan the Windows folder for audio files (steps 1 and 2 from the list above). When finished, the Synchronize Storage dialog appears.

On the left hand side, you see the list of new audio files that have been discovered in the storage folder, not yet known to the database. On the right hand side, there is a list of missing files - those that are registered in the database, but that cannot be found in the storage folder anymore.

Add New Files

When the dialog appears, all new files on the left hand side are selected by default. You can hold Shift or Control and use the left mouse button to (de-)select ranges or individual files that you are going to add in this run.

Before you start with the import, adjust the Import Options according to your requirements:

  • Disable Auto Cue: This will disable the Auto Cue feature, not setting any cue markers (Cue In, Fade Out, Cue Out) automatically. Useful when reporting advertising etc.
  • Add to folder: Select the (virtual library) folder to which the new items should be added (see Managing Folders below).
  • Preserve folder structure: If checked, mAirList will create subfolders in the selected (virtual) folder, and add items automatically to these subfolders, replicating the folder structure of the (Windows) storage folder.
  • Set type to: Select the desired type for the newly added items, e.g. Music or Jingle.

When ready, click Import Selected Files, and mAirList will create library items for all selected files, removing them from the left-hand list.

Remove Items for Missing Files

The right-hand list in the Synchronize Storage dialog shows a list of “missing” files, i.e. those that have been imported into the database earlier, but are no longer (physically) present in the storage folder. This is typically the case when you have (deliberately) deleted some audio files in your storage, and now want to remove the items from the database as well.

By clicking the Delete Selected Items button, you can remove the library items (datasets) associated with these missing files.

Again, all items are selected by default, and you can use Ctrl or Shift and the mouse to select individual files or ranges of files.

Fix Renamed Files

As said earlier, you should never rename (or move) any files once they have been synchronized into the database. If you do, the renamed file will appear twice in the Synchronize Storage dialog: Once under its old name (as missing, on the right hand side), and once under its new name (as new, on the left hand side).

If it ever happens that you renamed a file, and want to fix the filename in the database library, select the new and the old filename (exactly one item from each list, left and right), then click Join Selected Entries. This will update the existing library item with the new filename.

If you batch renamed multiple files, you can use the Auto Repair function. It will look for files with similar names (you can adjust the “fuzziness” with the slider at the bottom of the dialog).

File Import

Alternatively, you can import files into the library by using the New Item button in the toolbar and selecting Import Files… from the drop-down menu. You can also drag files from Windows Explorer and drop them onto the library window.

In both cases, mAirList will copy the files into the selected storage folder and register the corresponding items in the library at the same time.

When the Import Files dialog opens, it shows the list of files that will be imported. In the Destination section, choose the target folder inside the selected storage. You can either type the folder name directly or click the … button to pick it from the folder tree.

Use Advanced Settings… to configure the import options for the selected destination. In particular, this is where you can adjust the target storage. Otherwise, the default storage (from the database settings, or folder properties) will be used.

Click Import to start the import process, or Cancel to close the dialog without making any changes.

Adding Other Items

The database does not only manage audio file items, but also any other kind of playlist item available in mAirList, including streams, containers, dummy items, etc.

To add such an item to the library, navigate to the library folder that you want to store this item in, then click New Item in the toolbar, and select the appropriate item type. The item properties dialog will appear, where you can adjust the properties of the item, and as soon as you click OK, it will be added to the library and the folder you navigated to.

Managing Folders

Folders are used to organize the items in your library. They can be found under the Folders node in the library tree.

Folders can be nested, i.e. each folder can have any number of subfolders.

The Unsorted Folder

At the end of the folder list, there is a special folder named Unsorted. It always exists and cannot be renamed or deleted. It contains all items that are not assigned to any other folder.

Creating, Renaming and Deleting Folders

To create a new folder, click the New Folder button in the toolbar. The folder is created as a subfolder of the currently selected folder, or at the top level if no folder is selected. You can enter the name of the new folder right away.

To rename a folder, select it in the tree and press F2, or click its name once more, then enter the new name.

To move a folder (along with all its subfolders) to a different place, drag it with the mouse and drop it onto the new parent folder, or onto the Folders node to move it to the top level.

To delete a folder, select it and click Delete Folder in the toolbar. This will also delete all of its subfolders. The items are not deleted from the library; they are only removed from the deleted folder(s). Items that are no longer assigned to any folder will then appear in the Unsorted folder.

Assigning Items to Folders

There are several ways to assign items to folders:

  • Drag one or more items from the item list and drop them onto a folder in the tree. This will move the items, i.e. remove them from the folder you are currently viewing. When you view something other than a folder (e.g. an artist or a search result), the items are removed from all other folders.
  • Hold down the Ctrl key while dropping the items in order to copy them, i.e. add them to the target folder while keeping their existing folder assignments.
  • Drop items onto the Unsorted folder in order to remove them from all folders.
  • In the Item Properties dialog, the Folder Assignment section on the Scheduling tab lets you check or uncheck all folders the item should be assigned to.

When you import new files, you can also select the destination folder right away; see Adding Items above.

Show Items from Subfolders

By default, only the items assigned directly to a folder are shown when you click it. Enable Show items from subfolders in the View menu in order to also include the items from all subfolders.

Folder Properties

Right-click a folder and select Folder Properties to open a dialog with additional settings for that folder:

  • General tab:
    • Opener and Closer: Select a library item that will be inserted by the Mini Scheduler before (Opener) or after (Closer) any item it picks from this folder or its subfolders, e.g. a jingle announcing a particular music category. An opener or closer set in the item’s own attributes takes precedence.
    • File Import: Check Override import settings for this folder and click Edit… in order to use different file import settings when importing files into this folder, e.g. a different storage.
  • Standard Attributes tab: Define additional Standard Attributes that only apply to items in this folder. They will only appear in the Item Properties dialog when the dialog is opened from this folder’s view in the Database app.
  • Smart Folder tab: Turn the folder into a Smart Folder, see Smart Folders below.
  • Scheduler tab: Check Override default Mini Scheduler settings for this folder in order to use different scheduling settings (e.g. separation rules or selection strategy) when the Mini Scheduler picks items from this folder.

The settings on the General and Scheduler tabs are stored separately for each station. Standard Attributes and the Smart Folder configuration apply to all stations.

Smart Folders

A Smart Folder is a folder whose content is determined automatically by a search query, rather than by assigning items manually. Whenever you open a Smart Folder, it will contain all items currently matching the query. For example, you can create a Smart Folder “Short Songs” that contains all music items shorter than 3 minutes, and it will always be up to date as you add or edit items.

To create a Smart Folder, first create a regular folder (see above), then open the Folder Properties dialog and switch to the Smart Folder tab. Click Turn this folder into a Smart Folder, then click Edit… in order to set up the search query. The query uses the same criteria as the Advanced Search (keywords, title, artist, item types, duration, attributes, etc.). A summary of the query is displayed on the tab.

Smart Folders are displayed with a different icon in the library tree. As their content is controlled by the search query, items cannot be dragged into or out of a Smart Folder, nor can they be assigned to it in the Item Properties dialog.

Other than that, Smart Folders behave like regular folders. In particular, they can be used in scheduling just like any other folder.

To turn a Smart Folder back into a regular folder, click Disable Smart Folder on the Smart Folder tab. This removes the search query, and the folder will contain the items that were assigned to it manually before it was turned into a Smart Folder (if any). Items can be assigned to it manually again.

Managing Items

This section describes how to edit the properties and cue markers of library items, either one at a time or several at once.

Item Properties

To view and edit the properties of a library item, right-click it and select Properties, or double-click it while the Edit click mode is selected in the toolbar.

The Item Properties dialog consists of a number of tabs, some of which only appear for particular kinds of items (see below). At the bottom of the dialog, you will find:

  • Playback controls (play/pause, END MON and a position slider) to preview the item.
  • The Export… button, which lets you save the item’s metadata to the file tag, an MMD file or the database, or re-read the metadata from any of these sources.
  • Two arrow buttons to save the current item and move on to the previous or next item in the list, without closing the dialog.

Click OK to save your changes, or Cancel to discard them. If mAirList detects inconsistencies in the item’s data (e.g. an empty filename), a warning is displayed, and you can choose to ignore it or go back to the dialog.

General

This tab contains the basic metadata of the item:

  • Title and Artist.
  • Type: The item type, e.g. Music, Jingle, Advertising, etc.
  • Comment/Description: Free text, e.g. notes for the presenter.
  • Ending: A short description of how the item ends, e.g. “fade” or “cold”.
  • Duration: The total duration of the item. For audio files, it is determined automatically, and there is usually no reason to change it. One exception is a file that is downloaded and overwritten regularly from an external source, e.g. hourly news: Here you can enter a fixed “imaginary” duration, which is then used for scheduling and backtiming.
  • Color: An optional color for the item in the playlist, overriding the color defined for its item type.
  • Icon: An optional picture displayed with the item in the playlist.
  • Internal ID: The database ID of the item (read-only).
  • External ID: An optional ID, e.g. from an external music scheduler, used when importing playlists from external sources.

Audio File

This tab is shown for audio file items:

  • Filename/URL: The location of the audio file.
  • Backup Filename and Cache Filename: These fields are managed automatically by the database, based on the Storage Redirection settings.
  • Maximum Age: If set, the player will refuse to load or play the file when it is older than the specified number of minutes. This is useful for files that are updated regularly, e.g. weather or news. Enter an Alternative Filename in order to check the age of a different file than the audio file itself.
  • Audio Levels: The peak, true peak and R128 loudness of the file. Click Analyze to (re-)determine these values.

Attributes

The Attributes tab shows the Standard Attributes as input fields on the left-hand side. Folder-specific Standard Attributes are included when the dialog is opened from the respective folder (see Folder Properties).

On the right-hand side, the list of Other Attributes shows all attributes of the item that are not Standard Attributes, as key/value pairs. You can add, edit and remove attributes freely in this list. Press the cursor-down key in the last row in order to add another row.

Playback

This tab contains settings that affect how the item is played:

  • Options: A list of checkboxes that control the playback behavior of the item, e.g. Exclude from logging, Skip in automation mode, Avoid overlap with previous item or Don’t fade out in automation.
  • Settings:
    • Fade duration (ms): The duration of the fade when the item is stopped prematurely, e.g. manually, or by a fixed time item in automation. If empty, the fade duration set on the Settings tab of the Miscellaneous section in the configuration is used.
    • Amplification (dB): The gain applied to the item during playback. Click Normalize to calculate the amplification automatically from the loudness of the audio file, using the target levels set in the Normalization configuration.
    • Tempo (%) and Pitch (%): Change the playback speed and pitch of the item.
  • Timing: Select how the item is handled by the playlist timing, e.g. Normal, Hard fixed time, Soft fixed time or Backtimed. For fixed times, enter the Fixed time, optionally check hourly in order to repeat the fixed time every hour, and set the Time frame in seconds.
  • Actions on Start and Actions on Stop: Actions that are executed automatically when the item is started or stopped, e.g. switching the ON AIR mode or running a script.

Scheduling

This tab contains settings related to the database and scheduling:

  • Folder Assignment: Check all folders the item should be assigned to. Smart Folders cannot be selected here.
  • Don’t schedule before and Don’t schedule after: Restrict the period in which the Mini Scheduler may pick the item, e.g. for seasonal content.
  • Hour Restrictions: A grid with one row for each hour and one column for each weekday. Click a cell to toggle whether the item may be scheduled in that hour. Click an hour or a column header in order to toggle the entire row or column, respectively; Shift+click an hour to allow only that hour on all days.
  • Apply date and hour restrictions to all stations: By default, the date and hour restrictions are stored separately for each station; check this box in order to use the same restrictions for all stations.

Editing these settings requires the Manager user level.

History

This tab lists all times the item was played, with date and time, duration, the studio it was played from, and the number of listeners at its start and stop (if available). Click Export… to export the list.

Item Type Specific Tabs

Depending on the kind of item, additional tabs are available:

  • Stream: The stream URL, the reconnect timeout after a lost connection, and the fade-in and silence detection durations.
  • Live Feed: The record device, an optional delay, and the fade-in and silence detection durations.
  • Content (containers): The list of items in the container. Use Load… to fill the container, or open the Mix Editor to arrange the items.
  • News Container: The content and imaging items of the news container.
  • Container (auto file containers): The source folder and filename pattern of the files to include, a limit for the number of items, and the sort order.
  • Region Content (region containers): One tab for each region with its content, plus the auto fill option and filler item.
  • Hook Container: The number of songs to include.

Cue Editor

The Cue Editor tab of the Item Properties dialog lets you set the cue markers of an item, which control how it is played and mixed with other items. It shows the waveform of the audio file at the top, and the list of cue markers below.

Options for the Cue Editor, including the waveform appearance and the selection of favorite markers, are found in the configuration.

Cue Markers

The following cue markers are available:

  • Cue In: The position where playback starts.
  • Fade In: The end of the fade-in, starting at Cue In.
  • Ramp 1, Ramp 2, Ramp 3: The end of the instrumental intro of a song, i.e. the point where the vocals begin. Multiple ramps can be used for songs with more than one intro section.
  • Hook In, Hook Fade, Hook Out: A short excerpt of the song (“hook”), used e.g. for teasers and hook containers.
  • Loop In, Loop Out: A section of the file that is played repeatedly if the Loop function is enabled in the player.
  • Outro: The beginning of the instrumental outro of a song.
  • Start Next: The position where the next item in the playlist is started.
  • Fade Out: The position where the item starts to fade out. If no Start Next marker is set, the next item is started at Fade Out as well.
  • Fade End: The end of the fade-out, i.e. together with Fade Out, this determines the length of the fade.
  • Cue Out: The position where playback stops.
  • Preroll: Marks the end of a lead-in at the beginning of the item. In automation, the item is started early, so that the Preroll position (rather than Cue In, or the beginning of the file) coincides with the end of the previous item. The effect is the same as moving the Start Next marker of the previous item forward by the length of the lead-in, but it is defined with the item itself, so it works regardless of which item is played before it.
  • Anchor: The point of the item that is aligned to a fixed time, instead of its beginning.

If favorite markers have been selected in the configuration, the list is split into the tabs Favorites and All.

Each marker row provides a set of buttons:

  • - and +: Move the marker backward or forward by 10 ms (100 ms with Shift, 1 second with Ctrl). You can also use the mouse wheel over these buttons.
  • Reverse: Toggle between a position relative to the beginning and one relative to the end of the file. The latter is displayed with a minus sign, and remains correct if the length of the file changes.
  • AUTO: Determine the position automatically using Auto Cue (available for some markers only).
  • SET: Set the marker to the current playback position.
  • Clear: Remove the marker.
  • TEST: Start playback from the marker. For Cue Out, playback starts two seconds earlier; for Loop In and Loop Out, the loop is played.
  • Zoom: Zoom the waveform to the position of the marker.

Double-click a marker row in order to test it. Shift+double-click it in order to enter the position manually.

Waveform

You can interact with the waveform using the mouse:

  • Click anywhere on the waveform in order to jump to that position, or click a marker in order to jump to the marker position.
  • Drag a marker in order to move it.
  • Double-click the waveform in order to start playback.
  • Use the mouse wheel in order to zoom in and out, and drag the waveform in order to scroll. The buttons next to the waveform allow you to zoom in, zoom out, show the entire file, and reload the waveform.
  • If the volume envelope is displayed, drag the envelope line in order to add a new point, drag existing points to move them, or drag a point out of the waveform area in order to remove it.

The controls above the marker list allow you to start, pause and restart playback, switch between elapsed and remaining time, and run END MON.

Other

The Other tab lists additional cue data of the item (e.g. track markers), with its time, type and parameter. Click Import… in order to import the data from a cue sheet file.

Export

Use the File Tag, MMD and Database buttons at the bottom of the Cue Editor in order to save the cue markers right away, without closing the dialog.

Mass Edit

The Mass Edit dialog allows you to change several items at once. Select the items in the item list, right-click and select Mass Edit (this menu item is only available when more than one item is selected).

The dialog shows the list of selected items on the left-hand side. On the right-hand side, there is a list of fields and functions, each with its own button. When you click one of these buttons, the change is applied to all selected items:

  • Title, Artist, Ending, Type, Comment: Enter the new value and click Apply. When all selected items have the same value, it is displayed in the field.
  • Set Attribute: Select or enter the attribute name and value, then click Apply. The dropdown lists show all attributes used by the selected items, plus the Standard Attributes, and the values used for the selected attribute.
  • Color: Click the color field to select a color, or Reset to remove the color, then click Apply.
  • Amplification (dB): Enter the amplification and click Apply, or click Normalize to calculate it from the loudness of each audio file, using the target levels set in the Normalization configuration.
  • Duration: Click Determine in order to re-read the duration from the audio files.
  • Auto Cue: Run Auto Cue for Cue In, Fade Out, Cue Out, or All of them.
  • Loudness: Analyze the loudness of the audio files.
  • Re-read: Re-read the metadata from the File Tag, MMD file or Database.
  • Export: Save the metadata to the File Tag, MMD file or Database.

If an error occurs for a particular item, you can choose to retry, ignore it, ignore all further errors, or cancel the operation.

Click OK to save the changes to the database, or Cancel to discard them. Note that exporting to the file tag or an MMD file writes these files immediately.

Import and Export

The Database menu of the Database app provides functions to export library items to files, e.g. in order to transfer them to an external music scheduler, and to import or update items from files.

Export

The Database -> Export submenu contains three commands, which differ only in the items being exported:

  • Export Entire Library… exports all items in the library.
  • Export Current View… exports all items currently shown in the item list, e.g. the content of a folder or a search result.
  • Export Selection… exports only the items selected in the item list.

The same commands are also available from the dropdown menu of the Export button in the library toolbar.

After choosing one of the commands, select the export format, and then the destination file. mAirList remembers the last format and filename used. The following formats are available:

  • CSV file: A CSV file with one line per item, which can be edited e.g. in Excel and imported back into the database (see Import below). The columns include the database ID, External ID, filename, title, artist, comment, ending, duration, all cue markers, amplification, audio levels, the Standard Attributes, and all other attributes used by the exported items.
  • CSV file (without IDs): The same, but without database IDs, e.g. in order to import the items into a different database.
  • CSV file (zero-padded IDs): The same, but with database IDs padded to 8 digits with leading zeros, for external software that requires this.
  • Text file (custom format): A text file with one line per item. You will be asked for the format of each line, which can contain any of the Logging Variables, e.g. %a - %b.
  • Playlist file: Exports the items as a playlist. You can choose any of the playlist formats supported by mAirList.
  • Import files for external music schedulers: Several formats for transferring the library to external scheduling software, e.g. Powergold Import File, MusicGen Import File, MusicMaster Nexus, and Raduga Album/Rotation.

The CSV export uses a comma as delimiter by default; this can be adjusted with the Delimiter and QuoteChar settings in the [CSVDBExport] section of mAirList.ini (use \t for a tab).

Clone Database

The Database -> Export -> Clone database… command copies the contents of the current database into a new database. This is useful e.g. for migrating from a local database to an SQL server, or for creating a test copy of your production database.

In the Target section, choose whether to create a local database file (SQLite), or to copy the data into an SQL database. For the latter, enter the server type, hostname, database name, username and password. The SQL database must already exist and be empty.

In the Options section, choose which data to include in addition to the library:

  • Include playlists, optionally only those not older than a particular date.
  • Include playback history, again optionally limited by date.
  • Include icons of the playlist items.
  • Change Database ID to: Assign a new Database ID to the copy, so that it can be used alongside the original database (see Settings).

Import

The Database -> Import… command updates existing library items, or adds new items, based on the contents of a file. Select the file and its format in the file dialog. The following formats are available:

  • CSV file: A CSV file as created by the CSV export (see above).
  • CSV file (exact match): The same, but without matching by artist and title (see below).
  • Files from other software: SAM4 CSV, SAM4 CSV New, DRS2006 v3 HRDat, Carmen digital.mdb, Carmen jingles.mdb, GSelector Song XML and GSelector Link XML.

CSV Import

A typical workflow is to export items as CSV, edit the file (e.g. in Excel), and import it again.

The file must be UTF-8 encoded. Both comma and tab are accepted as delimiters, and values may be enclosed in double quotes. The first line must contain the column names, as written by the CSV export:

  • ID, ExternalID, Filename, Title, Artist, Comment, EndType
  • Duration and the cue markers (CueIn, FadeIn, Ramp1, Ramp2, Ramp3, HookIn, HookFade, HookOut, LoopIn, LoopOut, Outro, StartNext, FadeOut, FadeEnd, CueOut, Preroll, Anchor), in seconds with decimals, e.g. 12.345
  • Amplification (in dB), LevelPeak (dBFS), LevelTruePeak (dBTP) and LevelLoudness (LUFS)
  • All other columns are imported as attributes, using the column name as the attribute name.

The EffectiveDuration column written by the export is ignored on import.

Columns may be omitted, so you can e.g. import a file with just an ID and a Comment column in order to update the comments of a number of items. A value of - (dash) leaves the respective field of the item unchanged.

Folder assignments, playback options and cue data (see Other) cannot be exported or imported through CSV files.

For each line, mAirList tries to identify the existing library item as follows:

  1. If an ID column is present, the item with this database ID is updated. If no such item exists, the line is skipped.
  2. Otherwise, if a Filename column is present, the item with this audio file is updated.
  3. Otherwise, if an ExternalID column is present, the item with this External ID is updated.
  4. Otherwise, if Artist and Title columns are present, the item with the same artist and title (ignoring case) is updated. This step is skipped by the CSV file (exact match) format.

If no existing item can be identified, a new item is created: an audio file item if a filename is given, or a dummy item otherwise. So in order to add new items, leave the ID column empty, and make sure that the filename and External ID do not exist in the library yet. Audio files must be located inside one of the configured storages.

Import Preview

Before any changes are made to the database, the Import Preview dialog is shown. It has two tabs:

  • Modified Items: Existing items that will be updated. Items whose data is unchanged are not listed.
  • Unidentified Items: Items that could not be matched to an existing item.

Check Add unidentified item as new items to Library in order to add the unidentified items to the library as well. In this case, you can also select the folder to add them to (Add to folder), and an item type to assign to them (Set type).

Click OK to save the changes to the database, or Cancel to abort the import without making any changes.

3 - Playlist

The Playlist tab of the database app is used to view and edit the playlists that are stored in the database. Typically, these playlists are generated by the music scheduler and then loaded into the playout, e.g. through an event with the Append database playlist action. Before they go on air, you can review them here and make manual changes: replace songs, add jingles or spots, move items around, record voice tracks, or fine-tune the transitions.

Database playlists are organized by hour: there is one playlist for each hour of each day, for each station and sub-playlist.

The library tree and item list are displayed on the left hand side of the Playlist tab, so you can drag items from the library into the playlist (see Library). The playlist itself is displayed on the right.

Use the following controls to select the playlist to be edited:

  • Station tabs: If the database contains more than one station, select the station from the tabs at the top of the window.
  • Date and hour: Select the date and hour from the controls in the playlist toolbar.
  • Previous and Next: Go to the previous or next hour.
  • Hour navigation buttons: A row of buttons (one per hour of the day) lets you jump to any hour of the selected day with a single click. Now jumps to the current hour. The buttons can be shown or hidden through View → Hour Navigation Buttons.
  • Go To…: Opens a dialog that lists all existing playlists, along with their duration and the result of the error check. Select a playlist and click OK to open it. The context menu of the list lets you check the selected playlists for errors, update their advertising, or delete them.
  • Sub-playlist tabs: If more than one sub-playlist is set up, select it from the tabs above the playlist.

If you leave a playlist that has unsaved changes, mAirList asks whether you want to save it.

Editing the Playlist

Adding Items

  • Drag items from the library item list to the desired position in the playlist.
  • Use the Insert menu of the toolbar to insert other kinds of items, e.g. a stream, a live feed, a container, a command, silence, or a dummy item. The item’s Properties dialog opens, and the item is inserted at the current position after you click OK.
  • Set the click mode in the library toolbar to Insert into playlist, and double-click an item in the library to insert it at the current position.
  • Use Paste in the context menu to insert items from the clipboard, e.g. items copied from another hour.

Rearranging and Deleting Items

Items can be moved by dragging them with the mouse. To delete items, select them and click Delete in the toolbar, or use Delete from the context menu. Cut, Copy and Paste are available in the context menu as well.

Customizing Items

To change the properties of an item in the playlist, right-click it and select Customize Properties…, or double-click it while the Edit click mode is selected. To change several items at once, select them and choose Mass Edit.

Changing an item in the playlist does not affect the item in the library. Instead, the playlist item is marked as customized. When the playlist is saved, a full copy of each customized item is stored in the playlist, rather than a link to the library item. Customized items are also created when you edit the transitions in the Mix Editor.

To undo the customization, right-click the item and select Reset. The item is then replaced with the current version from the library.

The state of each item is indicated by a colored dot in the number column of the playlist:

  • Green: The item is linked to the library and has not been customized.
  • Orange: The item has been customized, either manually or by Auto Mix. A full copy of the item is stored in the playlist.
  • Blue: The item is not part of this database’s library, e.g. an item that was imported from a playlist file and could not be found in the library, or an item from another database.

Items inside containers do not have a dot; their state is indicated by the container.

Context Menu

Besides the commands described above, the context menu of the playlist contains:

  • Mix Editor: Opens the Mix Editor with the selected items, or with the item and its neighbors.
  • Auto Mix: Commands for the Auto Mix feature, which places sweepers or voice tracks on the ramps of music items automatically:
    • Update when playlist changes: Run Auto Mix automatically every time the playlist is changed.
    • Mix Selection and Mix Entire Playlist: Run Auto Mix on the selected items, or on the whole playlist.
    • Reset Selection and Reset Entire Playlist: Undo the changes made by Auto Mix.
    • Lock Selection and Unlock Selection: Locked items are left untouched by Auto Mix.
  • Mixdown selection: Mixes the selected items down into a single audio file.
  • Create Container and Create Hook Container: Combine the selected items into a container or a hook container.
  • Skip and Recycle: Mark items as skipped, so that they are not played, or restore skipped or played items.
  • Auto Float: Moves floating items (items without a fixed position) to fill underruns and to resolve overflows in front of fixed-time items.
  • Check playlist for errors: Runs an error check on the playlist, e.g. to find missing files.

Playlist Attributes

Playlist attributes are values that apply to the whole hour, e.g. the name of the show or the presenter (see Playlist Attributes). They are displayed in the attribute bar of the Playlist tab. Click Edit Attributes… to change them. The attribute bar can be shown or hidden through View → Playlist Attributes.

Saving

Click Save in the toolbar to save the playlist to the database. Enable Auto Save Playlist to save all changes automatically, every two seconds.

If the playlist was changed by another user since you opened it, mAirList tries to merge the two versions automatically. If both of you have changed the same items, a dialog shows who made the other changes and when, and lets you choose how to proceed:

  • Save anyway: Keep your version, and discard the changes of the other person.
  • Discard my changes: Keep the other person’s version.
  • Keep both changes: Include both versions of the conflicting items.
  • View changes and resolve manually: Opens a dialog in which you can decide for each item.
  • Cancel: Do not save.

The playback state of the items (played, skipped) is always taken from the database version, so that changes made by the playout are not lost.

Other Functions

The playlist toolbar provides access to the following functions:

  • Mix Editor: Opens the Mix Editor with the selected items.
  • VT: Opens the voice tracking recorder for the selected position in the playlist.
  • Generate:
    • Scheduler: Opens the music scheduler to generate playlists for several hours or days.
    • This Playlist…: Generates the current hour only. Select the hour, music and transition templates to use. The result replaces the contents of the playlist; it is not saved until you click Save.
    • Insert Advertising: Inserts the advertising blocks for this hour.
    • Update Advertising: Fills the advertising containers of the playlist with the current content from the advertising schedule.
  • Import:
    • Single Playlist…: Replaces the current playlist with the contents of a playlist file.
    • Multiple Playlists…: Imports several playlist files, and distributes them across consecutive hours, starting at a specified day and hour. The playlists can be split into hours, and saved into a particular sub-playlist.
    • Playlist Contents…: Imports playlist files from a third-party scheduler. The date and hour are determined from the filenames, and a preview is shown before the playlists are saved.
  • Export:
    • This Playlist…: Saves the current playlist to a file.
    • Multiple Playlists…: Exports the playlists of a range of days and hours into a folder, using a configurable file name and file format.

The columns displayed in the playlist can be selected through View → Select Playlist Columns….

Permissions

Users with a user level below DJ can view playlists, but cannot edit them (see User Management).

4 - Scheduling

mAirListDB includes a scheduler (the Mini Scheduler) that generates the hourly playlists automatically from templates. The generated playlists are stored in the database, where they can be reviewed and edited on the Playlist tab, and are then loaded into the playout, e.g. by an event.

Concepts

The scheduler uses three kinds of templates, each describing a different aspect of the playlist:

  • Hour templates describe the structure of an hour (also known as a clock): which elements are played in which order. For example: the station ID at the top of the hour, then the news, then a music block, an advertising break, another music block, and so on.
  • Music templates describe which music is played. Within the hour template, the music is only referenced by block numbers (Music block 1, Music block 2 etc.). The music template defines, for each block number, the folders or items the songs are picked from.
  • Transition templates describe which transition elements (e.g. jingles or sweepers) are inserted between the items of the generated playlist, based on rules such as “insert a slow-to-fast jingle when a slow song is followed by a fast one”.

Each hour of the week is assigned one template of each kind. Because the three kinds are defined separately, they can be combined freely. For example, you can use the same hour template (structure) all day long, but assign a “morning” music template in the morning and an “evening” music template in the evening. Or you can use the same music template throughout the week, but switch to a different hour template on weekends, when there is no news. This keeps the number of templates small, and a change to one aspect (e.g. the music rotation) only has to be made in one place.

Managing Templates

Templates are managed in the Manage Templates dialog, which you open through Administration → Manage Templates… in the menu of the database app. The dialog refers to the station that is currently selected in the database app.

Select the template kind (Hour, Music or Transitions) from the tabs at the top of the dialog.

Available Templates

The list on the left hand side contains the available templates of the selected kind. Use the toolbar to:

  • New: Create a new, empty template.
  • Copy: Create a copy of the selected template, e.g. as a starting point for a variation.
  • Delete: Delete the selected template. Any assignments of this template are removed as well. This cannot be undone.
  • Edit: Open the template editor (see below). You can also double-click a template.

Assignment

The grid on the right hand side shows the assignment of templates to the hours of the week, with one column per weekday and one row per hour. Each template is displayed in its own color.

To change the assignment, select one or more cells in the grid with the mouse, right-click the selection, and choose a template from the menu, or Select Template… to pick one from a list. Clear removes the assignment from the selected cells. Hours without an hour template are skipped by the scheduler.

If more than one sub-playlist is set up, there is a separate assignment for each sub-playlist; select it from the tabs above the grid.

The assignment can be saved to a file and loaded again through Export to file… and Import from file… in the context menu.

Conditional Assignments

In addition to the default assignment, you can define assignments that only apply under certain conditions, e.g. during the summer or in every other week. Click Conditions… to show the list of conditions, and select a condition to view and edit its assignment. An hour that is left empty in a conditional assignment falls back to the next applicable assignment.

The following conditions are available:

  • Seasons (Season 1 to Season 8): A season is a set of date periods, e.g. “Christmas” from December 1 to December 26. Select a season and click Edit Season… to give it a name and define its periods. For each period, enter the first and last day, and specify whether it repeats every year.
  • Calendar Weeks: Even week and Odd week, according to the ISO week number.
  • Weekday in Month: 1st in month to 5th in month, e.g. to schedule a different show on the first Sunday of each month.
  • 2-Week Cycle to 6-Week Cycle: Week 1 of 2, Week 2 of 2, and so on, to rotate between several assignments in a fixed cycle. The cycles are counted from the reference date set in the scheduler settings.
  • Special: An assignment that is only used when explicitly requested in the scheduler (see Generating Playlists), e.g. for a holiday programme.

If more than one condition applies to an hour, the most specific one is used, in the following order of precedence: Special, then the week cycles (6-week cycle first), then Weekday in Month, Calendar Weeks, the seasons (Season 8 first), and finally the default assignment.

Hour Templates

The hour template editor has two tabs.

On the General tab, you can enter the Name and Description of the template, and set the following options:

  • Perform auto float after scheduling: After the playlist has been generated, floating items are moved to fill underruns and resolve overflows in front of fixed-time items.
  • Perform Auto Mix after scheduling: Run Auto Mix on the generated playlist.
  • Postprocessing Script: An optional script that is run on the generated playlist, e.g. to make modifications that cannot be expressed through the template.

On the Items tab, you define the elements of the hour. Click Add… to add an item, select the item type from the menu, and configure it. Drag the items to change their order. Use Import and Export to transfer the items to another template or database.

How the Scheduler Processes an Hour Template

The scheduler processes the template in several passes:

  1. All items are processed in order, and the corresponding playlist items are selected.
  2. Items with the Infinite/fill setting (e.g. Fill with music) are processed. Each of them is filled with as many items as needed to reach the next fixed-time item, or the end of the hour.
  3. Items in replacement mode (see below) replace the dummy items with the same title.
  4. The transitions of the transition template are inserted, and Auto Mix and auto float are performed if enabled.

Common Settings of Template Items

Each template item has the following settings, in addition to its type-specific settings.

General tab:

  • Duration: The Estimated duration of the item, used to calculate the timing of the hour while scheduling, e.g. for items whose actual duration is not known yet. Overflow by allows a fill item to exceed the end of the time to fill by the specified duration. Check Infinite/fill to fill the remaining time up to the next fixed-time item or the end of the hour (only available for item types that support filling).
  • Timing: The timing type of the generated item, e.g. Hard Fixed Time for the news at the top of the hour, and the Fixed time within the hour. Check before top of the hour to count the fixed time backwards from the end of the hour, e.g. 2:00 before the top of the hour. The Time frame specifies a window (in seconds) for the fixed time.
  • Opener and Closer: Items that are inserted before and after the generated item(s), e.g. an intro and outro jingle for the news.
  • Options:
    • Create a container if more than one item: If the template item generates several playlist items, they are combined into a container.
    • Always create a container: Always put the generated items into a container.
    • Prevent auto float around this item: Auto float does not move items across this item.
    • Reset timing to Normal after scheduling: The timing is only used while scheduling, and reset to Normal in the generated playlist.
    • Ignore errors (do not generate error dummy item): By default, if an item cannot be generated (e.g. an empty folder), a dummy item describing the error is inserted into the playlist. Check this option to omit it.
    • Expand variables in URL/filename: Replace logging variables in the URL or filename of the generated item.
  • Set/Replace Region Container Filler Items: For region containers, set the filler to a Specific item, or to a Random item from a folder.

Restrictions tab:

  • Hour Restrictions: Only use this template item on the selected days and hours. This way, a single template can be used for several hours with small variations, e.g. a station ID that is only played in the morning hours.

Replacement tab:

  • Replacement mode: Instead of adding its content at its own position, the item looks for a dummy item with the specified Title that was generated by other parts of the template (e.g. by an included template, or imported from an external scheduler), and replaces it with its content.

Music Items

These items insert music from the music template assigned to the hour. Each refers to a Block number (1–16) of the music template.

  • Music (one song): Inserts the next song from the block. If all entries of the block have been used, the block starts over.
  • Music block: Inserts one song for each remaining entry of the block, in the order of the list. Transitions defined in the music template are inserted between the songs. This item cannot be used with blocks in the Randomly pick mode.
  • Fill with music: Fills the remaining time (up to the next fixed-time item or the end of the hour) with songs from the block, or a specified duration if Infinite/fill is not checked. Transitions defined in the music template are inserted between the songs.

Library Items

  • Specific item: Inserts a particular item from the library, e.g. the station ID.
  • Random item from folder: Picks one item from a library folder, using the selection strategy of the folder. Check Include subfolders to also consider the items in subfolders. On the Filters tab, you can restrict the selection to an item type, or to items with particular attribute values.
  • Fill with random items: Same as Random item from folder, but fills the remaining time with as many items as needed.
  • Most recently added item: Inserts the item that was added to the folder most recently, e.g. the latest news bulletin or weather report.

Sub-Playlist Items

These items insert content from another sub-playlist of the same hour, e.g. a sub-playlist that contains the ads or the news, scheduled separately. Common settings:

  • Station (empty=current): Take the content from a different station.
  • Sub-Playlist: The sub-playlist to take the content from.
  • Hour offset: Take the content from an earlier or later hour.
  • Region mapping: For regionalized content, maps the sub-playlist to regions.
  • Restart from beginning of sub-playlist: Start from the first item of the sub-playlist again, instead of continuing where the previous item of this kind left off.

The item types are:

  • Next from sub-playlist: Inserts the next item from the sub-playlist. Use several of these items to distribute the content of the sub-playlist across the hour.
  • All from sub-playlist: Inserts all items of the sub-playlist.
  • Sub-playlist as container: Inserts all items of the sub-playlist, combined into a container. Enter the Title, Artist and Type of the container.
  • Region Container: Creates a region container, with the content for each region taken from a separate sub-playlist. Set the container properties, the Auto fill method and the Filler item used to compensate for different durations.

Structure and Other Items

  • Include hour template: Inserts the items of another hour template at this position. Use this to share common parts (e.g. the top of the hour) between several templates.
  • Advertising: Inserts the specified advertising Block of the hour, as scheduled in the advertising scheduling.
  • Dummy: Inserts a dummy item with the specified Title, Artist, Type and Color, e.g. as a placeholder for a live segment, or as a target for replacement mode.
  • Start of hour marker and End of hour marker: Insert dummy items that mark the beginning and end of the hour in the playlist.
  • External items: Inserts a fixed list of items, e.g. a stream or a command item, that are not part of the library.

Music Templates

The music template editor has three tabs.

On the General tab, enter the Name and Description of the template.

On the Block Definition tab, you define the content of the music blocks. Select the block (Block 1 to Block 16) from the tabs. For each block, set:

  • Source:
    • Internal scheduler (use Folder Selection): The songs are picked from the library by the scheduler, using the folder list below.
    • External scheduler (import from file or external source): The songs are imported from the playlist of an external music scheduler. Click Configure… to set up the import.
    • Hybrid (try import first, fallback to internal scheduler): Try to import the songs, and use the internal scheduler if that fails.
  • Mode: How the entries of the folder list are used. Each entry is used once, until all entries of the block are used up:
    • Randomly pick from the list of folders/items: Each song comes from a randomly chosen entry of the list, and the list starts over when it is used up. Not compatible with the Music block template item; use Fill with music instead.
    • Use exact order: Use the entries in the order of the list. When the list is used up, no further songs are scheduled from the block.
    • Use exact order, repeat if necessary: Same, but start again from the top of the list when it is used up (for Fill with music and Music (one song)).
    • Maintain order, allow random selection: With Fill with music, the entries are picked in random order, but the resulting songs are arranged in the order of the list. With the other template items, this works like Use exact order.
    • Maintain order, allow random selection, repeat if necessary: Same, but start again when the list is used up.
  • Folder list: The entries the songs are picked from. Double-click a folder in the Available Folders list to add it, or use the toolbar. Each entry can be configured:
    • Source: A random item from the following folder (optionally including subfolders), or a Specific item.
    • Opener and Closer: Items inserted before and after the song.
    • Prevent overrun: Only pick a song that fits into the remaining time to fill.
    • Filters: Restrict the selection by item type (Type Filter) or attribute values (Attribute Filters). Soft Attribute Filters do not exclude non-matching songs, but add a penalty to them, so that matching songs are preferred.

A typical music block alternates between categories, e.g. “Current hits”, “Recurrent”, “Current hits”, “Gold”, using Use exact order, repeat if necessary.

On the Transitions tab, you can define transition rules that apply within the music blocks, i.e. between the songs that are added by Music block or Fill with music. The rules work the same way as in transition templates (see below).

Transition Templates

A transition template contains a list of transition rules. After the playlist has been generated, the scheduler walks through the playlist and checks, for each pair of consecutive music items, whether a rule matches. The first matching rule determines the transition item, which is inserted between the two songs.

On the General tab of the editor, enter the Name and Description of the template. On the Transitions tab, add, configure, remove and reorder the rules. Each rule has the following settings:

  • Number of music items: The rule is applied after the specified number of songs were scheduled in a row. Use this e.g. to insert a jingle after every third song.
  • Minimum number of subsequent music items: The rule is only applied if at least this number of songs follow the transition, e.g. to avoid a jingle right before the news.
  • Item 1 Condition: An attribute and value that the song before the transition must have. Leave the attribute empty to disable the condition, or the value empty to match any value.
  • Item 2 Condition: The same, for the song after the transition.
  • Folder: The folder the transition item is picked from (optionally including subfolders).
  • Artist of transition item and item 2 must match: Only use a transition item with the same artist as the following song, e.g. for artist-specific liners.

Example: With a “Tempo” attribute, a rule with Item 1 = Tempo “Slow” and Item 2 = Tempo “Fast” can insert a jingle from a “Ramp-up jingles” folder whenever a slow song is followed by a fast one. A last rule without conditions can serve as the default transition.

Generating Playlists

Manually

To run the scheduler manually, go to the Playlist tab and select Generate → Scheduler in the playlist toolbar. In the Mini Scheduler dialog, set:

  • Period: The first and last day to generate playlists for. The dropdown list offers presets such as Today, Tomorrow, One week, from today, One week, from tomorrow and Next week.
  • Hours: The hours to generate. By default, all hours (0–23) are generated; click Change… to select particular hours.
  • Stations: The stations to generate playlists for.
  • Options:
    • Preview playlists before saving: Show the generated playlists in a preview window, in which you can review them before saving them to the database.
    • Prompt before overwriting existing playlists: Ask before an existing playlist is replaced.
    • Use “Special” template assignment for all days: Use the Special assignment where defined.
    • Adjust template assignment before scheduling: Show the resulting template assignment for the selected period, and allow you to change it for this run only.
    • Jump to first scheduled hour when finished: Open the first generated playlist on the Playlist tab.
    • Generate debug log file and Open debug log file after scheduling: Write a detailed log of every decision of the scheduler, which helps to understand why a particular song was (or was not) picked.

To generate only the playlist that is currently open on the Playlist tab, select Generate → This Playlist…. You can then choose the hour, music and transition templates to use, overriding the assignment. The result is not saved until you click Save.

Automatically

To generate the playlists automatically, e.g. every night for the upcoming days, use the Generate playlists action, typically in an event of the playout. Its settings are the number of hours to generate in advance, whether to include the current hour, and whether existing playlists (or only those containing errors) should be overwritten.

Settings

The settings of the scheduler are found on the Scheduler tab of the administrative settings.

Selection Strategies

The selection strategy determines how the scheduler picks an item from a folder. It is set globally on the Settings sub-tab, and can be overridden for individual folders in the folder properties.

  • Smart: The default strategy. The scheduler prefers the items that have not been played for the longest time, and applies separation rules:

    • Track separation: The minimum number of hours before the same item is played again.
    • Artist separation: The minimum number of hours before an item by the same artist is played again.
    • Title separation: The minimum number of hours before an item with the same title (e.g. a different version of the same song) is played again.

    Separation rules are not strict. Instead, each violation adds a penalty that grows with the number of hours by which the separation is missed, multiplied by the penalty value of the rule. The scheduler then picks one of the items with the lowest overall penalty. Items whose penalty exceeds the Maximum overall penalty are never picked. The Rotation variance (0–99) controls how much randomness is added to the selection: with a low value, the item that was played least recently is almost always picked; with a higher value, the scheduler picks more randomly among the candidates.

  • Random: Picks a random item from the folder.

  • Rotation: Plays the items of the folder one after the other. The position of the rotation (Next index) is shown in the folder properties, where it can also be reset.

  • Advanced Rotation: Same as Rotation, but in a configurable Sort order (ID, External ID, Title, Filename, Filename without path, Last Use, or an Attribute).

Artist Groups

On the Artist Groups sub-tab, you can define groups of artists that are treated as the same artist for the artist separation, e.g. a band and its lead singer’s solo project. Click Separators… to define the strings that separate multiple artists in the artist field (e.g. “feat.” or “&”), so that each of the artists is considered for the separation.

Advanced

The Advanced sub-tab contains the following settings:

  • Reference date for week numbering: The start date for the week cycles.
  • Week starts on: The first day of the week.
  • Alternative artists attribute and Alternative titles attribute: Attributes that contain further artist names or titles of an item, which are considered for the separation rules as well.
  • Opener attribute and Closer attribute: Attributes that specify the opener and closer of an item. These can also be set per station.

On the Options sub-tab, you can enable Use opener and closer from subfolder when selecting recursively: when an item is picked from a subfolder, the opener and closer of that subfolder are used instead of those of the folder referenced in the template.

5 - Advertising Scheduling

In this chapter, you will learn how to use the advertising part of mAirListDB to schedule commercials (spots) into advertising blocks, and how these blocks get into your playlists.

The advertising part of mAirListDB can be found on the Advertising tab in the database application.

Overview

Advertising scheduling in mAirList is based on the following concepts:

  • Blocks: Each hour has a fixed number of advertising blocks (breaks), e.g. one at :15 and one at :45. The blocks are defined in the Advertising Settings, separately for each station.
  • Campaigns: A campaign assigns a spot (an item from the library) to a set of blocks, e.g. “block 1 on weekdays from 6 to 10 AM”, within a particular period of time. Each spot can have any number of campaigns.
  • Containers: When a playlist is generated, each block is inserted into the playlist as an advertising container holding the spots scheduled for that block. The container remembers which block of which hour it represents, so its contents can be refreshed later on with Update Advertising, e.g. after a campaign has been changed.

Instead of using the internal scheduler, a block can also be filled with logs imported from an external traffic system.

Advertising Settings

Before you can schedule any campaigns, you must define the advertising blocks. In the database app, go to Administration -> Advertising Settings….

The settings apply to the station that is currently selected in the database app. Changing them requires administrator permissions.

Block Definition

Set the Number of available blocks per hour first. The list below then shows one entry for each block. Select a block in order to edit its settings on the right-hand side.

General

  • Name: A name for the block, e.g. “Break :15”. If left empty, the block is named “Block 1”, “Block 2”, etc.
  • Source: Internal to schedule the block with the campaigns from the database, or one of the Import Sources to fill it from an external scheduler (see External Sources). Click Configure… to set up the selected import source.
  • Region count: If you use regionalization, enter the number of regions this block is split into. Leave at 0 for a block without regional content.

Imaging

Select library items that are automatically added to the block:

  • Opener: Inserted at the beginning of the block.
  • Closer: Inserted at the end of the block.
  • Inliner: Inserted between each two spots.

Imaging is only added when the block contains at least one spot. Click a field to select the item, and click the button at the right-hand side of the field to remove it.

Advanced

  • Block number alias: The block number that is used when requesting the block from an import source. By default, this is the same as the block number. Change it if the numbering of your external scheduler differs from the one in mAirList.
  • Projected time: The time within the hour when the block is expected to start, e.g. 00:15:00. It is shown in the preview, and used by Insert Advertising to place the block at the right position in the playlist.

Container

  • Always create a container: If checked (the default), the block is always inserted into the playlist as an advertising container. If unchecked, the spots are inserted as individual items instead, unless the block has regional content. Note that only containers can be refreshed with Update Advertising, and Insert Advertising requires all blocks to be set up as containers.
  • Container Settings: The Artist, Title, Type and Color of the container item in the playlist. The title defaults to the block name, the artist to “Advertising”.
  • Region Container Settings: For blocks with regional content, the Auto fill method and Filler item used to compensate for different durations of the regions (None, Silence, Use filler (fade out at end), Use filler (fade in and play until end)).

Import and Export

Use the Export… and Import… buttons to save the advertising settings to a file and load them again, e.g. in order to copy them to another station.

External Sources

If your commercials are scheduled with an external traffic system, set the Source of the blocks to one of the eight available Import Sources, and click Configure… to set up the import. Here you select the file format of the external scheduler and the location of the log files.

The filename usually contains the date and hour, and optionally the block and region number, so that mAirList can find the right file for each block. See Playlist Import Filenames for the available variables.

Blocks with an external source are not shown in the campaign editor and the preview on the Advertising tab. They are filled from the import files whenever the block is inserted into a playlist or updated.

Advertising Tab

The Advertising tab consists of two parts:

  • The list of campaigns on the left-hand side. Use the tabs above the list to show only Current, Future or Expired campaigns of the current station, or All campaigns. Each entry shows the title and ID of the spot, the description, and the period of the campaign (or permanent if it has no start and end date).
  • The preview on the right-hand side. It shows the result of the scheduling for one week, with one column per day, and one row for each block of each hour. Each cell shows the number of spots and the total duration of the block. Expand a block to see the individual spots.

When you select a campaign in the list, all blocks and spots belonging to this campaign are highlighted in the preview. Vice versa, clicking a spot in the preview selects its campaign in the list, and double-clicking it opens the campaign for editing.

If any of the internal blocks has regional content, a row of tabs below the preview lets you switch between the regions.

The toolbar provides the following functions:

  • Reload: Reload all campaigns from the database.
  • Previous and Next: Show the previous or next week in the preview.
  • New: Create a new campaign.
  • Copy: Create a new campaign with the settings of the selected one.
  • Delete: Delete the selected campaign.
  • Edit: Edit the selected campaign.
  • Report: Show an On Air Log of the selected campaign’s spot for the run time of the campaign on the Reporting tab.

You can also create a campaign directly from the library: Right-click an item, and select Create Advertising Campaign… from the context menu. In the library tree, the Advertising node lists all items of type Advertising, optionally filtered by campaign.

Editing Campaigns

The Edit Campaign dialog has the following tabs.

General

  • Spot: The library item that is scheduled by this campaign. Click the field to select an item.
  • Reminder: Optionally, a second item that is played at the end of the same block, e.g. a short “tag” referring to the spot.
  • Description: An optional description, shown in the campaign list.
  • Start and End: The period in which the campaign is active. Uncheck either field to leave the period open on that side. The start and end are compared with the beginning of the hour: a block is included if its hour starts at or after the start time, and before the end time. The end time defaults to 23:59:59, so that the last day is included.
  • Priority and Placement: These determine the position of the spot within the block, see Order of Spots below.
  • Campaign is enabled: Uncheck to temporarily suspend the campaign without deleting it.

Stations

Check the stations the campaign is scheduled on. If you use station groups, there is one tab for each group. New campaigns are assigned to the current station by default.

Regions

If you use regionalization, check the regions the spot is scheduled in. New campaigns are assigned to all regions by default.

Blocks

This is where you assign the spot to the blocks of a regular week. The grid has one column for each day of the week, and one row for each block of each hour (e.g. 06 / 2 for the second block of the 6 AM hour). Blocks assigned to the campaign are highlighted in green.

  • Click a cell to assign or unassign a single block.
  • Click the first column of a row to toggle this block on all days.
  • Shift-click the first column of a row to toggle this block number in all hours on all days.
  • Click a column header to toggle all blocks of that day, or the top-left header to toggle all blocks of the week.

Below the grid, mAirList shows the number of blocks selected per week, and, if both a start and end date are set, the total number of plays during the campaign.

Use Save Assignment… and Load Assignment… to store a block assignment in a file and apply it to other campaigns.

Manual Blocks

In addition to the weekly assignment, you can assign the spot to individual blocks on particular dates. The grid shows one month at a time, use the < and > buttons to switch between months. It works the same as the Blocks grid.

Manual blocks are scheduled regardless of the Start and End date and the weekly assignment, as long as the campaign is enabled and assigned to the station.

Order of Spots

For each block, mAirList collects all campaigns that are active for that block, and sorts the spots as follows:

  1. Spots with the placement Towards beginning come first, spots with the placement Towards end come last, all others (Anywhere) in between.
  2. Within each of these groups, spots are sorted by Priority, lower numbers first.
  3. Spots with the same placement and priority are sorted in a random order, which changes from hour to hour, but stays the same when the block is scheduled again.

After all spots, the reminders of the campaigns are added in the same order. Finally, the opener, inliners and closer are added as configured for the block.

Regional Content

If none of the spots of a block is limited to particular regions, the block is created as a normal container. Otherwise, it is created as a region container, with separate content for each region: Each region then contains the spots whose campaigns have this region checked.

Getting Advertising into the Playlist

There are two ways to insert advertising blocks into a playlist:

  • Hour templates: Add an Advertising element to the hour template, and select the Block it represents (see Scheduling). When the playlist is generated, the element is replaced with the scheduled block.
  • Insert Advertising: In the playlist editor, select Generate -> Insert Advertising to add all blocks of the current hour to the playlist. Each block is placed at its projected time according to the backtiming. Blocks that are already present in the playlist are skipped.

Update Advertising

Playlists are often generated days or weeks in advance, while campaigns are booked and changed until the last minute. Update Advertising rebuilds all advertising containers of a playlist from the current advertising schedule (or the current import files, for blocks from an external source), and replaces their contents if they have changed. Items outside of advertising containers are not affected.

Update Advertising is available in the following places:

  • In the playlist editor of the database app, select Generate -> Update Advertising.
  • In the Go To… dialog of the playlist editor, right-click an hour, a day or the week, and select Update Advertising to update all playlists of that hour, day or week.
  • In the playout window, right-click the playlist, and select This Playlist… -> Update advertising.
  • When loading playlists from the database with an action, check Update advertising (and optionally If advertising was updated, save playlist to database) to always play the latest schedule. See Actions.
  • In scripts, use the UpdateAdvertising and UpdateAdvertisingEx procedures.

After the update, mAirList reports the number of containers that were inspected and changed, along with any errors.

Two options in the database connection properties affect the update: Refuse advertising update when new block has errors keeps the previous content of a block if the new one contains errors (e.g. because an import file is missing), and Use as default database for Update Advertising selects the database to use for blocks that were scheduled from a database this instance is not connected to.

6 - Reporting

In this chapter, you will learn how to use the reporting part of mAirListDB to create on air logs and playback statistics, and how to export them for royalty reporting to collecting societies.

The reporting part of mAirListDB can be found on the Reports tab in the database application.

How Logging Works

Whenever an item from the database is played in mAirList, the playback is recorded in the internal logging tables of the database. For each playback, mAirList stores:

  • the start time,
  • the station and the studio it was played in,
  • the item (database ID),
  • the actual playback duration (recorded when the item stops), and
  • the number of listeners at the start and at the end of the playback, as reported by the encoder (if configured).

All reports are generated from these tables. Only items that belong to the database are logged - files that were loaded directly from the hard disk are not included.

Logging can be controlled with the following options on the Options page of the database connection properties (see Database Setup):

  • Disable internal logging: Turns off logging completely. Do not enable this option if you plan to use reporting.
  • Disable internal logging when OFF AIR: Only log items while the instance is in ON AIR mode. This should be enabled for most installations, so that pre-listening or test playback in a production studio does not show up in the reports.

Old log data can be removed with the Clean up playback history task on the Maintenance page.

Generating a Report

The Reports tab consists of two parts: The Settings panel on the left-hand side, where you choose the report type, period and filters, and the Results list on the right-hand side.

To generate a report:

  1. Select the Report type (see Report Types below).
  2. Select the Reporting period, or adjust the First day and Last day manually (see Reporting Period below).
  3. Optionally, set one or more filters.
  4. Click Generate Report.

The results are displayed in the list on the right-hand side. Click a column header to sort the list by that column.

Report Types

The following report types are available:

  • On Air Log: A list of all individual playbacks in chronological order, with the following columns: Time, ID, Title, Artist, Type, Duration (the actual playback duration), Studio, Listeners (Start) and Listeners (Stop).
  • Item Statistics: One row per item, sorted by number of playbacks, with the columns ID, Title, Artist, Type, Item Duration (the duration of the item itself), Count (number of playbacks) and Duration (total playback duration of all playbacks).
  • Artist Statistics: One row per artist, with the columns Artist, Count (number of playbacks), Item Count (number of different items played), Duration (total playback duration) and %.
  • Item Type Statistics: The same as Artist Statistics, but with one row per item type (Music, Jingle, etc.).

The % column shows the share of the total playback duration relative to the length of the reporting period. For example, if items of type Music were played for a total of 18 hours on a single day, the column shows 75.00. The column is only populated when both a first and a last day are set.

Reporting Period

The Reporting period drop-down list provides a number of predefined periods: Today, Yesterday, This week, Last week, This month, Last month, This year, Last year and Overall.

Selecting a period fills in the First day and Last day fields accordingly. The weeks start with the first day of week configured for the database. You can adjust both dates manually after selecting a predefined period. Both days are included in the report.

Uncheck the checkbox in the First day or Last day field in order to leave the period open on that side. The Overall period unchecks both fields, i.e. the report covers the entire log.

Filters

You can narrow down the report with the following filters. Filters left empty are ignored; all other filters are combined, i.e. a playback must match all of them in order to be included.

  • Filter by item: Click the field to open the item selection dialog, and select a single item from the library. Click the button at the right-hand side of the field to remove the filter.
  • Filter by item type: Only include items of the selected type.
  • Filter by artist: Only include items by the specified artist. The artist name must match exactly.

Advertising Campaign Reports

You can also create a report for an advertising campaign directly from the Advertising tab: Select a campaign and click the Report button in the toolbar. mAirList switches to the Reports tab and generates an On Air Log for the campaign’s item, covering the run time of the campaign. See Advertising Scheduling for more information on campaigns.

Exporting a Report

To save the current report to a file, click the Save as… button below the results list. In the Save As dialog, choose the file format from the file type drop-down list. Only the formats suitable for the current report type are listed. mAirList remembers the last selected format for each report type.

Some formats require additional information, such as the name of your station or the attributes that hold additional metadata like composer or ISRC. In this case, a dialog appears after you selected the file name, where you can edit these export parameters:

  • Parameters ending in Attribute contain the name of an item attribute (see Library). The value of this attribute is read from each item and written into the respective field of the export file. The defaults are common attribute names; change them to match the attribute names you use in your library. If you do not maintain a particular attribute, the field is left empty in the export.
  • All other parameters contain a fixed value, e.g. your station ID or name as assigned by the collecting society.

The export parameters are saved in the database configuration of the current station, so you only need to enter them once, and they are shared by all computers connected to the database.

Export Formats

The following export formats are available:

FormatReport typeFile typePurpose
CSV fileall.csvGeneric export of all columns of the report
CREDIDAM/UCMR-ADAItem Statistics.csvCREDIDAM / UCMR-ADA (Romania)
GEMAGVLv4On Air Log.txtGEMA / GVL (Germany), format version 4
GramexOn Air Log.txtGramex (Denmark)
GramoOn Air Log.txtGramo (Norway)
SUISAOn Air Log.csvSUISA (Switzerland)
UPFROn Air Log.csvUPFR (Romania)
ZAiKS/ZPAVItem Statistics.csvZAiKS / ZPAV (Poland)
ZAMPItem Statistics.csvZAMP (North Macedonia)

The CSV file export writes one line per row of the report, using the columns shown for the selected report type, separated by commas.

The export parameters of the other formats are listed below.

CREDIDAM/UCMR-ADA

ComposerAttribute, NumArtistsAttribute, AlbumAttribute, LabelAttribute, PublisherAttribute, CountryAttribute, YearAttribute.

GEMAGVLv4

  • Reporter: The reporter ID assigned by GEMA (SNDMELD).
  • Station: The station ID assigned by GEMA (SENDER).
  • ComposerAttribute, LabelCodeAttribute, LabelAttribute, ISRCAttribute.
  • JingleTypes: The item types that should be reported as jingles (usage type “J”). Leave empty if you do not want to mark any items as jingles.

Gramex

  • StationID: The station ID assigned by Gramex.
  • ShowName, MiscInfo: Fixed values written into the respective fields.
  • CopyrightOwner1Attribute … CopyrightOwner5Attribute, ComposerCountryCodeAttribute, RecordCompanyAttribute, RecordCodeAttribute, CDNumberAttribute, TrackAttribute, CountryAttribute, StudioLiveTypeAttribute, YearAttribute, ISRCAttribute.

Gramo

CatalogAttribute, ISRCAttribute, LabelAttribute, CountryAttribute, YearAttribute.

SUISA

  • Sender: The name of your station.
  • One Attribute_... parameter for each additional field of the SUISA format, e.g. Attribute_Komponist, Attribute_ISRC, Attribute_Label or Attribute_Genre. By default, each parameter refers to an attribute named like the SUISA field.

UPFR

This format does not have any export parameters.

ZAiKS/ZPAV

ComposerAttribute, LyricistAttribute, AlbumAttribute, ReleaseDateAttribute, LabelAttribute, PublisherAttribute, ISRCAttribute.

ZAMP

ComposerAttribute, LyricistAttribute, ArrangerAttribute, ISRCAttribute, and Additional1Attribute … Additional3Attribute for up to three additional fields of your choice.

7 - Remote Access (DBServer)

In this chapter, you will learn how to make your database available to mAirList instances outside the local network, e.g. at a remote studio or the home of a voice tracking DJ, using mAirList DBServer.

Overview

In a typical LAN setup, each mAirList computer connects directly to the SQL server, and accesses the audio files through a network share. Neither is a good idea over the internet: SQL servers and Windows file shares should not be exposed to the public, and they are not designed for connections with high latency.

DBServer solves this by acting as a gateway: It runs on a computer in your LAN that has direct access to the database and the audio files, and provides both to remote clients through a single HTTP (or HTTPS) port:

  • All database requests (library, playlists, logging, etc.) are forwarded to the database.
  • Audio files are downloaded from the storages through the server, and voice tracks and other files can be uploaded into the storages.
  • Optionally, audio files can be transcoded to a lower quality on the fly, in order to save bandwidth.

On the remote computer, the database is set up as a mAirListDB (Internet Client) connection, see Client Setup below.

Server Setup

Starting DBServer

DBServer is part of the regular mAirList installation. Start it from the Windows Start Menu (Database Server), or by running mAirList.exe -mode dbserver.

DBServer works with any database connection configured in this mAirList installation (SQL server or local database). If there is more than one database connection, you are asked which one to serve. You can also specify the database on the command line using its Database ID: mAirList.exe -mode dbserver -db <ID>.

Only one DBServer can run per database. If you start it again for the same database, the existing window is brought to the front.

When you minimize the DBServer window, it is hidden into the notification area (system tray). Click the icon to restore it, or right-click it to exit DBServer. When you exit DBServer, you are asked for confirmation, and the shutdown password if one is set in the configuration.

Server Settings

The DBServer window has the following settings on the General tab:

  • Enable server: Starts or stops the server. The other settings can only be changed while the server is stopped.
  • Mode: HTTP only, HTTPS only, or HTTP and HTTPS.
  • HTTP Port: The TCP port for HTTP connections. Default is 8840.
  • HTTPS Port: The TCP port for HTTPS connections. Default is 9840.
  • SSL Certificate Files: For HTTPS, select the Certificate, the Key and the Root Certificate file (PEM format).

The settings are saved automatically, and DBServer starts serving the database right away when it is launched with Enable server checked.

In order to make the server reachable from the internet, you must forward the selected port(s) from your router or firewall to the DBServer computer.

Storages

DBServer serves the audio files from the storage folders, so the computer it runs on must have access to all storages. The location of each storage is taken from the storage configuration, and the Storage Redirection settings of the database connection on the DBServer computer, if any.

Files can only be served from storages located in a Windows folder (local or network share).

The storages are read when the server is started, so restart the server (or uncheck and check Enable server) after making changes to the storage configuration.

Transcoding

On the Transcoding tab, you can set up DBServer to convert audio files to a different format before sending them to the client. There is one tab for each of the quality levels Default, High, Medium and Low. For each level, you can set:

  • Enable transcoding for this quality level: If unchecked, the original file is sent for requests with this quality level.
  • File Format: Click the button to select the format and bitrate, e.g. MP3 with 128 kbps.
  • Cache Folder: Optionally, a folder where transcoded files are kept. When the same file is requested again, it is served from the cache, unless the original file has been modified in the meantime. Leave empty to transcode the file again on each request.

The client decides which quality level to request for which purpose (see Client Setup). By default, all requests use the Default level, so enabling transcoding for Default will affect all files downloaded by all clients.

Log

The Log tab shows the requests processed by the server, along with any errors. It holds the last 1,000 entries.

Users and Permissions

Remote clients must log in with a user account of the database. The permissions of that user (user level, permitted stations, etc.) apply to all requests made through DBServer, in the same way as for a direct connection. See User Management for information on how to create users and assign permissions.

Some functions require a particular user level, for example:

  • Uploading files (e.g. voice tracks) requires the VT DJ level or higher.
  • Deleting files from a storage requires the Manager level or higher, and the permission to delete files.

Note that the user management dialog itself is not available through a DBServer connection. Use a direct SQL connection to manage users.

Client Setup

On the remote computer, add a new database connection in the configuration app, and select mAirListDB (Internet Client) as the connection type.

On the Database Server tab, enter:

  • Host name or IP: The public host name or IP address of the DBServer computer (or your router).
  • Port: The HTTP or HTTPS port configured on the server.
  • Path: Leave empty, unless the server is behind a reverse proxy that uses a different path.
  • Use SSL/HTTPS: Check this if you use HTTPS, and make sure to enter the HTTPS port.

On the Connection tab, enter the username and password of the database user, or sign in to create a token, see Database Login. Click Test Login to verify the connection.

Audio Quality

On the Transcoding tab of the client connection, you can choose which quality level (Default, High, Medium, Low) is requested for each purpose, e.g. On Air Playback, PFL or Voice Tracking. For example, you could request Low quality for PFL, so that previewing a song starts faster, but keep Default for on air playback.

These settings only have an effect if transcoding is enabled for the respective quality level on the server.