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.
Warning
Local databases are only suitable for single-PC mAirList installation, i.e.
where the playout and database/scheduling is done from a single PC.
Database files (*.mldb) must not be placed or shared over a network share,
as this can easily lead to data corruption.
If you intend to access the database from multiple computers inside your LAN,
use an SQL server backend instead.
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.
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.
Warning
Once upgraded, the database will not work with the old software version anymore,
and a downgrade is not possible either.
Please always make a backup of your database, so you can go back to the old
version if required.
A good practice is to make a copy (via dump/restore, for SQL) of the database first,
and then upgrade that copy and use it with the new version.
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.
Hint
When you have a lot of stations, you can use a backslash (\) in station names
to create categories of stations, which will be represented by an additional
row of tabs.
Example: Setting up two stations “80s\Pop” and “80s\Rock” will result in a category
“80s” with two stations “Pop” and “Rock”.
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.
Search
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.
Advanced Search
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.
Note
When using a remote database through mAirList DB Server, the server must run
version 8.1 or newer in order to support the Advanced Search. With an older server,
only the Keywords criterion is taken into account.
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.
Warning
Once an audio file is added to the library (i.e. its dataset is created), you
must never rename or move the file within the storage folder, because
mAirList will be unable to find it afterwards.
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\MusicC:\Audio\JinglesC:\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.
Warning
Do not register both a parent folder - e.g. C:\Audio - and any of its
subfolders - e.g. C:\Audio\Music - as storages at the same time! This is not only
redundant (remember that all subfolders of a storage will be included automatically),
but the ambiguity will also lead to unexpected behavior when importing files
into the database.
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.
Note
For maximum performance, mAirList caches the storage configuration at startup.
Consequently, any changes to the storages (adding, removing or editing storages)
requires a restart of all mAirList processes connected to the database.
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:
- Retrieve a list of audio files currently known to the database.
- Scan the storage folder recursively, make a list of audio files found in the folder.
- Compare these two lists, to find out which files are “new” and which are “missing”
(obsolete).
- Create items in the database for all “new” files.
- 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.
Important
Folders in mAirListDB are entirely virtual. They are not related to the Windows folders
in which your audio files are stored (see Storages), and creating,
moving or deleting a library folder will never touch any files on disk.
It is best to think of folders as categories: An item can be assigned to any number
of folders, e.g. a song can be in both “Rock” and “80s” at the same time.
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.
Note
Creating, renaming and moving folders, and assigning items to them, requires at least
the Folder Manager user level. The Folder Properties dialog (see below) requires the
Manager level.
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.
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, EndTypeDuration 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.345Amplification (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:
- If an
ID column is present, the item with this database ID is updated. If no such
item exists, the line is skipped. - Otherwise, if a
Filename column is present, the item with this audio file is
updated. - Otherwise, if an
ExternalID column is present, the item with this External ID is
updated. - 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.
Navigating Playlists
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.
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:
- All items are processed in order, and the corresponding playlist items are selected.
- 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.
- Items in replacement mode (see below) replace the dummy items with the same title.
- 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:
- Spots with the placement Towards beginning come first, spots with the placement
Towards end come last, all others (Anywhere) in between.
- Within each of these groups, spots are sorted by Priority, lower numbers first.
- 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.
Note
In a block with regional content, a spot is only included in the regions checked on
the Regions tab of its campaign. If you uncheck all regions, the spot is
not played in any region of such a block.
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.
Note
Reports always refer to the station that is currently selected in the database
application. When you switch to a different station, generate the report again.
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:
- Select the Report type (see Report Types below).
- Select the Reporting period, or adjust the First day and Last day
manually (see Reporting Period below).
- Optionally, set one or more filters.
- 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.
The following export formats are available:
| Format | Report type | File type | Purpose |
|---|
| CSV file | all | .csv | Generic export of all columns of the report |
| CREDIDAM/UCMR-ADA | Item Statistics | .csv | CREDIDAM / UCMR-ADA (Romania) |
| GEMAGVLv4 | On Air Log | .txt | GEMA / GVL (Germany), format version 4 |
| Gramex | On Air Log | .txt | Gramex (Denmark) |
| Gramo | On Air Log | .txt | Gramo (Norway) |
| SUISA | On Air Log | .csv | SUISA (Switzerland) |
| UPFR | On Air Log | .csv | UPFR (Romania) |
| ZAiKS/ZPAV | Item Statistics | .csv | ZAiKS / ZPAV (Poland) |
| ZAMP | Item Statistics | .csv | ZAMP (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.
Note
The requirements of the collecting societies change from time to time. Please check
with your collecting society whether the exported file meets their current
requirements before submitting it.
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.
Note
When the server is reachable from the internet, we strongly recommend using HTTPS,
as usernames, passwords and audio files are otherwise transferred unencrypted.
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.
Warning
The built-in admin user cannot log in through DBServer. Create a separate user
account for each remote client.
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.