There is an event scheduler already, although I must admit that it’s hidden quite well
Activate the automation, and a new rectangle will occur in the tool bar next to the playlist length/duration fields. Click that rectangle, and there you are.
The basic event types include at the moment:
- Insert a file.
- Insert a file and it play immediately.
- Execute a command.
- Run a script.
The latter refers to “mAirListScript”, a scripting language I’m currently working on (when not implementing other feature requests all day long g). It will offer an interface to all of mAirList internals, playlist manipulation and so on. Some of the interfaces are ready to use by now. For example, you can create a script like this (the file extension should be .mls):
begin
CurrentPlaylist.Clear;
CurrentPlaylist.Load('c:\temp\test.mlp');
CurrentPlaylist.AutomationNext;
end.
This will clear the current playlist (except for any item playing at the moment), load a different one and fire an automation-next event.
The syntax is Pascal-like (it’s implemented with Pascal Script from RemObjects Software, www.remobjects.com). Many Delphi built-in functions can be used from within the scripts. For example, if your scheduler generates playlist files with a certain name scheme (e.g., yyy-mm-dd-hh.m3u), you can use Pascal functions to determine the current time and thus the current playlist file to be loaded.
Some examples can already be found in this thread.
I will add a whole lot more functions and interfaces soon. For example, the ability to run external programs. So just create an “unmute-linein.exe” and a “mute-linein.exe”, and you’re done
(I once had a mixer application which could save and restore Windows mixer settings, maybe I will recall its name.)
I think these scripts will be a powerful addition to mAirList’s feature set. Of course, it takes a little programming skills and also some time to get familiar with the script language, but you can implement all of the custom functions you ever wished for.
By the way, scripts can also be run manually by the faderstart command "RUNSCRIPT " for testing.
Concerning your other suggestions: All of them would be nice. Over time, mAirList will grow and eventually become a full featured package. As mentioned earlier, the next application of the “mAirList family” will be a database/scheduler software which I will start to work on as soon as mAirList 2.0 is released.
However, I consider mAirList, i.e. the playout component as available today, as a purely passive component. For example, I think that music scheduling should take place in external scheduling software, and mAirList should only process the ready-made playlist files, but not care about rotations itself (unless the user decides to create a mAirListScript which does so). This scheduling software might be mAirList’s own one day, but for now, we depend on third-party tools.
Torben