This old wiki is now closed for editing. Articles which are still useful and up-to-date will be transfered to the new Wiki shortly.

For the official documentation, please look at the download page.


From mAirListWiki

Jump to: navigation, search

Torben is currently working on a next-generation audio database for mAirList. It's meant as a replacement for eldoDB, other databases (RadioDB, ...) will still be supported. This page gives a brief overview of the aims and features of this project.


Status (as of June 13, 2007)

As a first step, a "limited" version of mAirListDB will be prepared, as a 1:1 replacement for eldoDB. It shall have the same functionality as eldoDB: Basic item and playlist management.

Once ready for release, the mAirListDB management software will be included in the ordinary distribution of mAirList 2.1, integrated into mAirList.exe.

At a later point, the advanced features (see below) will be implemented.

General Aims

The project aims at meeting the following requirements:

  • You should be able to access the database from multiple computers (mAirListDB clients + mAirList clients) at the same time.
  • There should be a "lite" version which works on a single machine without installing a database server, but perhaps lacks certain functionality.
  • Files can be distributed among multiple "storage locations" (file servers, directories, HTTP servers, ...).
  • The database should include a scheduler that generates "random" playlists according to custom rules.
  • There should be a web interface etc.
  • ...


Lite and Pro version

If your station has several computers, and you want to access the audio database from any computer, even at the same time, you need a database server. mAirListDB will rely on PostgreSQL, which is available for both Windows and Unix. If you run mAirListDB with a PostgreSQL server, we will call this setup "mAirListDB Pro".

However, many people don't have such a distributed environment but want to run mAirList and the database on the same. single computer. Installing and running a full-featured database server would mean a significant overhead then. mAirListDB will therefore also support SQLite. SQLite is a small (300k) DLL which acts as an SQL server to mAirList/mAirListDB, so the same code can be used as for the PostgreSQL interface. However, SQLite stores all data in a single file on your local hard disk. We will refer to this setup as "mAirListDB Lite". You will be able to use most of mAirListDB's features also in the Lite version.

Playlist Schedulers

The Windows client of mAirListDB will include a basic rotation/folder-based scheduler, as found in e.g. eldoDB.

mAirListDB will also allow for "plug-in" schedulers implemented as PostgreSQL stored procedures and stored inside the database server. This will only work with the Pro version. The advantage is that these schedulers can be called from any mAirListDB client. For example, when you write your own web interface to mAirListDB, you would not need to implement the scheduler again, but just call the one stored in the PostgreSQL server.

Concepts and Terminology


mAirList will be able to connect to multiple mAirListDB instances at the same time.

Lite and Pro

A mAirListDB instance is either "Lite" or "Pro". "Lite" instances are based on SQLite and reside in a single file on the local playout PC. "Pro" instances need a PostgreSQL server located anywhere in the network or on the local machine. There will be some features which will not be available in Lite databases, in particular multiple user management.


In the most simple case, a storage is nothing but a folder in which you keep your audio files. You can have multiple storages per database, in case your files are spread among multiple folders, hard disks or servers. The list of available storages is stored inside the database, while the folder assignment must be configured inside the mAirList configuration of each client. For example, a storage named "music" can be set up to point to "d:\music" on your playout pc, and to "\\playlist\music" on your mAirList planning clients in your network. This is very much like the "BaseDir" concept found in eldoDB.


An item is the same kind of object as known from mAirList's playlist. It can be a file, a stream, a dummy (break note), etc. Items are arranged in (virtual) folders (which replace the notion of "rotations" found in eldoDB), and you can assign arbitrary attributes to them, which might later be used by the scheduler.

Playlist Templates

A playlist templates defines the folders to pick the items from in order to establish the playlist of one hour of broadcast. For example, you can specify to start with one item from the "opener" folder, then one from the "80s" folder, two from the "90s" folder, etc.

There can be more than one playlist template. For each hour of each weekday, you can specify which playlist template to use. This is for people who want a different selection of music in the morning and in the evening.


The playlist for one particular date and hour is generated by the scheduler according to the corresponding playlist template. Later, there will be more sophisticated schedulers which will be able to use further criteria for the playlist creation (based on the attributes assigned to the items).

Playlists are meant for music only. They will be merged with a clock in order to establish a schedule (see below).


A clock is the abstract running order of a show. It's very much like a playlist template, however, you only specify abstract items like "song" or "break" here.


A schedule is the running order for a particular date and hour. It is established by merging the playlist for that hour into the corresponding clock.

Personal tools