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 (networked SQL).

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, 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.

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 wheren 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.
  • Internet Server requires login: If enabled, the DBServer application will present a login prompt when started. 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.
  • 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 Generate menu: 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: Enabled 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 enabled 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.
  • Disable Scheduling tab in Properties dialog: This will disable the Scheduling tab in the Item Properties dialog.
  • Disable History tab in Properties dialog: This will disable the History tab in the Item Properties dialog.
  • 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.
  • 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 7.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.

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.

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 playlist 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 if 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.
  • 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.

Mini Scheduler

This tab contains settings related to the scheduling part of mAirListDB (“Mini Scheduler”). 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 want to are going to edit and maintain for your library albums, 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.

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

The last tabs contains some

  • 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 (or station, respectively). Please see the Library chapter for more information.
  • Voice Track Import: Select the library folder where newly imported voice tracks should be placed into.

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 optios, 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 limited 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 sigining 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.

In the lower left corner, there is a search box where you can search the library for specific terms. Enter a search term and press Return to start the search.

Clicking the magnifier glass icon in the search box will open a popup menu with additional options:

  • You can choose whether to search the entire library, or just filter the current view (e.g. the folder you navigated to in the tree).
  • You can limit the search to specific fields, e.g. artist or title.
  • When Full Text Search is enabled, mAirList will return all items that contain the search term anywhere in the included fields. Turning this off will only include items which contain the term at the beginning of the fields, which can speed up the search significantly, due to the use of SQL indexes.
  • The Advanced Search option toggles how the search deals with multiple search terms (separated by spaces). With Advanced Search turned on, the search will return all items which contain all of the search terms, in any fields. With the option turned off, search will look for the exact term, as entered, in any included field.

Managing Folders

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.

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 (somewith we actually encourage you todo).

  • 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 an UCP path (\\server\share) or a mapped drive letter, using the Default Location set up in the storage configuration.

There are situation 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. Remote 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.
  • 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 what 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

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 Items

3 - Scheduling

4 - Advertising Scheduling

5 - Reporting

6 - Remote Access (DBServer)