[Thread] mAirList v7.2-beta (public)

Hello community,

we know hope you are all eagerly awaiting version 7.2.

The beta version (build 5403) is now available.
If you test it, the existing v7.1.7 will be overwritten - or you can install it in a separate folder.

Here is the changelog to date:


Snapshot - Build 5403

[-] Control Panel: Possible "Argument out of range" error
[*] Screen objects in separate windows remember size and position
[*] Progress dialogs: More accurate
[+] DB: Ability to run "Synchronize storage" from scripts
[+] Scripting: Added function DBAccess(iIndex: integer): IDBAccess
[+] In addition to the screen object, the Encoder Status is now also available
    as a standalone window in the mAirList/About menu
[*] Updated SVG library to work around incorrectly displayed icons/images
[+] Ability to apply DSP effects only to selected channels of a stream.
    This can e.g. be used to to process only the main signal with an external
    plugin (e.g. Stereo Tool) in a regionalized encoder setup.

Version 7.2-beta Build 5400 (2023-03-10)

[+] Added Stream Deck remote control. For the required plugin, see here:
[+] Added Ember+ Provider
[+] DB: Hour template: Added "Most recently added item" (will pick the item
    from the specified folder that was most recently added to the library)
[+] DB: Hour templates: Ability to include other hour templates
[+] DB: Ability to export library contents as playlist file
[+] DB: Sync dialog: You can now adjust the import tasks to peform; the previous
    "Disable Auto Cue" button was removed in favor of the full list of options.
[+] DB: Scheduler: There are now three different selection strategies available
    (which can also be adjusted on a per-folder level): "Smart" (the previous
    default, rotates items according to separation settings), "Rotation"
    (strict rotation, least recently played first) and "Random" (no rotation
    at all, just pick a random item). For the "smart" strategy, the "rotation
    variance" can be adjusted (0-99). The higher the variance, the most likely
    it is that the scheduler deviates from a strict rotation.
[+] Database actions: New option "Skip hours that have already been loaded".
    Scheduler adds a $PLAYLISTSLOT attribute to the "start of hour" and
    "end of hour" markers, which are used to identify the hours that have
    already been loaded into the playout.
[+] New login/logout feature in playout application. Ability to restrict certain
    tasks to admin or manager users.
[+] VST: Ability to display the plugin GUI in a Screen Object in the playout
[+] Screen objects can now be set to be displayed in a separate window
    (accessible from the dropdown menu of the Tools button)
[+] Ability to set a custom caption for screen objects
[*] Cleaned up About menu, moved several items to "Windows" submenu
[*] Encoder status: Suppresses "Listeners: 0" display if counting of listeners
    is disabled for all connections
[*] Control Panel: Pages which are only available in the standalone config app
    are now included in the menu tree,
[*] Setup: Batch files not longer included in installer
[-] Layout Designer ignores "Tools Window" setting of screen objects, placing
    all screen objects in the main window

If you have questions and/or comments during the beta phase, please use this thread.

1 Like

Looks like some nice new features have been added.
This one caught my attention, but it does raise a few questions:

[+] DB: Scheduler: There are now three different selection strategies available
(which can also be adjusted on a per-folder level): “Smart” (the previous
default, rotates items according to separation settings), “Rotation”
(strict rotation, least recently played first) and “Random” (no rotation
at all, just pick a random item). For the “smart” strategy, the “rotation
variance” can be adjusted (0-99). The higher the variance, the most likely
it is that the scheduler deviates from a strict rotation.

The scheduler now seems to be a lot more extensive with the arrival of the 3 strategies and the planning function also seems to be able to be adjusted considerably.
As I understand the ‘Smart’ strategy is the “old” way of planning as we are used to. An extra variable has been added here. The ‘rotational variance’.
It is described here that the higher this variance is, the more likely it is that the planner deviates from a strict rotation. My questions about this new variable are:
The default setting is 50, does the scheduler keep the same plan properties with 50 as before?
As soon as this setting is set higher, does it make the demerits less important? And what consequences does this have for the track separation in particular? Is it possible that if you have your track separation set to 100, for example, that this will be ignored, so that a record can get a fairly fast rotation?
Would there be a more detailed explanation of the rotation variance and its behavior?

After this, the ‘rotation’ strategy also exists nowadays. It is stated that the least recent item is scheduled. but that there is a strict rotation. Does this function ignore the ‘track separation’ settings? For example, I have a very well-stocked virtual folder that is not planned so often that records easily do not have to be scheduled for more than a month. due to the maximum track separation of 168 hours, it is quite common for an item to appear more often than another as it meets the minimum number of penalty points. while it seems that records that were played much longer ago are still skipped.
How does the planner ‘think’ as soon as you choose the ‘rotation strategy’?

Finally, there is the ‘random strategy’ which logically ignores all separations and schedules purely randomly?
How does this behave in relation to the ‘artist and track separation’? is this somewhat taken into account, or can you just encounter a certain artist or item every hour?

As indicated, the ‘strategy’ function seems like a nice addition if you know how to use it.
Since there are regular questions about setting the separations, it is already quite difficult to set them up correctly. Fortunately, this can now be adjusted per folder, so that you can approach well-filled folders (eg 80s pop-up tempo) differently than folders with, for example, the current hits.

After all this time I’m still struggling a bit for the right settings per folder. something that should take time anyway, but what I think many users prefer is an easier to understand system given the many questions that are regularly asked about the scheduler.
And I fully understand that some things just couldn’t be programmed any simpler.
That’s why I’m asking all these questions here. The scheduler itself does not need to be adjusted, I want to try to clarify the method of use for myself and thus also for others.

1 Like

“Strict rotation” and “random” strategies ignore separation rules altogether. That’s the sole point here.

“Random” picks just any song from the folder.

“Strict rotation” always uses the next song in the folder, i.e. the one that hasn’t been scheduled for the longest time - please note that this may only be accurate for the hour it had been last scheduled in, so two songs from the same hour may be treated equally. That’s because the scheduler does not keep any “play count” or “next in rotation” info anywhere, but always reconstructs the info from the past scheduled playlists when you start scheduling the next time.

The “smart” strategy is what has been the default/only strategy until now. So with all the separation rules and so on.

To understand the “variance” setting, remember how the scheduler works when picking a song: It sorts all songs by the “last scheduled” timestamp, oldest to newest. Then walks through the list, filters out songs that don’t satisfy the attribute filters, and also calculates the penalty from the separation rules. Only the songs with the lowest penalty (ideally 0) are considered. And from that list of “perfectly matching songs”, it uses either the first one (with a probability of 50%), or the second one (with a probability of 25%), or the third one (12.5%) and so on (up to the 8th or so).

Until now, the 50% probability was hardcoded. Now you can adjust it with the “variance” setting. For example, 100 would mean 100% = always use the first song.


Thx for your fast and clear explanation.
Altough I am not really sure when you would use the ‘strict rotation’ for music, since, I assume, you want to have some sort of randomnes. But maybe I will find a folder were this fuction could be usefull.
Again thx for your clear explanation

next questions I have about the update is about the Streamdeck plugin

[+] Added Stream Deck remote control. For the required plugin, see here:
GitHub - mairlist/mairlist-streamdeck-plugin: Stream Deck plugin for the mAirList Radio Automation

I visited the gifthub page and downloaded the files, but could it be possible to have a manual how install the plugin? Searching on the internet didn’t give me the right answer. When you want to insert a plugin, you can read everywhere that the plugin should be visibile in the available plugins on the streamdeck software. Couldn’t find a way to insert a doenloaded plugin.
Or is the plugin still under construction?

Second question is more a request,. Could it be possible to have the login function not only available in the playout software but also in the databse application. When starting the database software without opening the main software this could be handy too to switch between user roles.

As far as I can remember, it was a customers request.
Please think about that there is not always only music in the rotation but also complete radio shows. And there are some shows that should rotate in a strict order without any kind of coincidence allowed.

The second thing I can think of is special elements in the rotation.
You don’t need to use this; it’s just another option.

I would like to come back to this later, but it works (tested in the internal pre-beta phase).

thx for your reply Uli.
I am sure the strict rotation can be handy for other sort fof items. It’s great to see that Torben is implementing new features quite often!

And for the streamdeck plugin: Don’t hurry abou that, I just had some time to do some short testing!

And again I have a question about a new feature in version 7.2.
It is possible to include an hour template into another hour template.
Now I wonder what the thinking behind this is and what gave rise to this feature.
What can this function add to building the templates?

[+] DB: Hour templates: Ability to include other hour templates

When creating a playlist, I get the following error:

[FireDAC][Phys][SQLite] ERROR: database disk image is malformed

A post was merged into an existing topic: [Sammelthread] mAirList v7.2-beta (öffentlich)

Hello all !

I’m currently interested with using the new function DBAccess. But it doesn’t seem to work.
I only have one local mairlistDB database.

I try a simple : DBAccess(0).GetDatabaseID and I get the right database ID.
I try then a : DBAccess(0).GetStorages and I get nothing (whereas I have 2 storages in my mairlistDB database).

How to use this new function ? I’m always trying to list a folder content in mairlist v7 (with no success at this point)…