In this tutorial, you will learn how to set up the MusicMaster Nexus Database connection in mAirList.
Using this method, the mAirList playout application can be attached directly to the MusicMaster database through the MusicMaster Nexus API, with no mAirList database (mAirListDB) database in between, and thus without the need for any synchronization between the MusicMaster and the automation database. This is visualized in the picture below:
The Nexus Database Connection is not part of the regular buyout licenses of mAirList. Please contact sales for licensing options and pricing.
We assume that the following is available:
Please check with MusicMaster support if you are unsure whether your MusicMaster installation provides the above requirements.
Before you can configure the database connection, you must set up the Nexus API in the mAirList configuration. In particular, the following fields must be mapped correctly between MusicMaster and mAirList:
Please follow the instructions found here: MusicMaster Nexus API Setup
Once the Nexus API has been set up, go to the Database page in the mAirList configuration app, click Add and then MusicMaster Nexus Server. A new configuration dialog will appear.
On the first page, select the Nexus API (host, port and database name) to be used; we assume that it has been set up in the mAirList configuration correctly.
You can also enable reconciliation here. If turned on, mAirList will report all song start/stop events to MusicMaster in realtime.
On the Library tab, specify where mAirList-specific metadata will be retrieved from and stored at.
“Other database” requires another database attached to your mAirList instance (e.g. a mAirListDB, or a third-party database implemented through a script), you can also use that database as metadata store; only the schedule is fetched from MusicMaster then, all song metadata is fetched from the third-party database.
In the Other databases box, you can define the pattern to use for the ID, using the following variables:
$SONGID
: The MusicMaster song ID$DBID
: The value of the field defined as Database ID in the System Field Mapping on the Databases tab.$VERSION
: The version tag; see Versioning below.
In case the ID must be extracted from the Database ID field, you can specify a regular expression to do so (Perl format, first match will be the $DBID
).
Versioning is a feature used with third-party databases where multiple versions of a particular song exist; the version to play is included as an XML attribute in the schedule returned from Nexus, e.g. transition
. You can adjust that name on the General tab in the configuration. You can also specify the default version in case the attribute is not present for a particular schedule entry. The version string is then available as the $VERSION
variable in the ID pattern.
When loading schedules from MusicMaster, mAirList can replace lognotes (identified by a particular title) with other content loaded from external files, e.g. logs from a third party scheduling system. This feature is configured on the Content tab.
For advertising import, specify an “import source” (file location and filename pattern), similar to the configuration of traffic logs in the mAirListDB advertising scheduling. Any number following the prefix will be treated as the ad block number, e.g. “Traffic 15” will trigger import of advertising block 15.
For other external content, specify a prefix (e.g. “EXTERNAL”) which must be followed by the name of a playlist file in the lognote title (e.g. “EXTERNAL news.m3u”). You can set a default folder where mAirList will look for the files unless an absolute filename is specified in the lognote.
For the configuration of region suffixes, see section on Regionalization below.
If a MusicMaster field was mapped as “Color” in the API setup, you can enable automatic coloring of items in the playlist based on its values. Just enter the desired mapping as <field value>=<HTML color code
in the input box. For example, you can use the “Category” field for colors, and map the categories (e.g. A1, A2, B1) to colors like this:
A1=#FF0000 A2=#00FF00 B1=#FFFF00
On the Advanced tab, specify an optional name for this database unter which is is displayed in the mAirList GUI. The default is just “Database”.
New audio files can be added to the MusicMaster library in two ways:
Beginning with mAirList 6.3.8, the Nexus Importer can also be integrated into the MusicMaster GUI by the means of a User Button by adding the following to MusicMaster.ini:
[UserButton1] Tooltip=Look for New Files in mAirList Image=C:\mAirList\Icons\nexusimporter.ico App=C:\Program Files (x86)\mAirList 6.3\mAirList.exe CommandScript="-mode nexusimporter -songid " & mm.GetField(1)
If you are working with more than one MusicMaster database, you must additionally pass the name of the database on the command line:
CommandScript="-mode nexusimporter -database """ & mm.DatasetLogo & """ -songid " & mm.GetField(1)
In that case, all databases must be registered in the Nexus API configuration of mAirList. In order to identify the database, mAirList will first compare the value to the Nexus ID, then to the alias set in the Nexus API configuration.
Generally, all library maintenance should be performed from inside MusicMaster.
There are a few things however that cannot be edited easily from MusicMaster. In particular the cue markers, as MusicMaster does not have any built-in editing tool.
If you need to edit any fields that are not easily accessible from MusicMaster, you have the option to use mAirList's File Tagger tool, found in the mAirList Start Menu Group. The File Tagger is basically a browser (as found in the main playout window) and an item properties dialog (the same that you get when you double-click an item in the playout).
In the browser part, click Add and add a new Database pane. This will give you access to all MusicMaster categories and the songs inside them. Double-click a song to edit its properties. When you are finished, don't forget to click Export → Export to Database in order to store your changes permanently inside the MusicMaster library.
Starting with mAirList 6.3.8, another way to edit items has been established: The Nexus Editor, integrated into MusicMaster via a User Button:
[UserButton2] Tooltip=Edit song in mAirList Image=C:\mAirList\Icons\nexuseditor.ico App=C:\Program Files (x86)\mAirList 6.3\mAirList-tmp.exe CommandScript="-mode nexuseditor -songid " & mm.GetField(1)
When working with more than one database, you must pass the database name on the commandline, and it must match the Nexus database ID or alias set in the config (see comments above):
CommandScript="-mode nexuseditor -database """ & mm.DatasetLogo & """ -songid " & mm.GetField(1)
Regionalization (region splitting) is a feature in mAirList which provides special “Region Container” playlist items that have different content for multiple regions, routed to separate audio outputs or streams.
mAirList can create region containers from items found in a Nexus Schedule. This requires a little bit of preparation:
First, we need to define a filename suffix for each region to be used. Imagine you are broadcasting to three regions “A-Town”, “B-Town” and “C-Town”. We will use the following filename suffixes: -ATOWN
, -BTOWN
, -CTOWN
. We enter these suffixes on the Content tab in the database connection properties:
So for example, a regionalized jingle “jingle1” must exist in three versions:
jingle1-ATOWN.mp3 jingle1-BTOWN.mp3 jingle1-CTOWN.mp3
These should all have the same duration obviously. But most importantly, they must all reside in the same Windows folder.
In the MusicMaster library, set up a new YesNo field (e.g. “Regionalized”) and tick it for the above items. Don't forget to map it to “Regionalized” in the mAirList Nexus API setup.
Then create a category+clock that will schedule one of the regionalized versions, e.g. jingle1-ATOWN.mp3
- which one doesn't really matter.
Now when mAirList encounters the jingle1-ATOWN.mp3
file in the schedule and notices that it's a regionalized item, it will gather the matching items for the other regions (based on the filename suffixes) and create a Region Container from all of them.
(work in progress)
Similar to mAirListDB automation setup, see here: Music Scheduling with mAirListDB