Managing Scheduler Rules
From Rivendell Wiki
The scheduler selects *exactly one* cart per event from the given group. So you are able to set up different categories using different groups like ROT_A, ROT_B, RECURRENT, GOLD and make different events based on these categories.
You can control the selection process with these options:
- Title Separation (in event dialog): Minimum number of Songs to be
scheduled before a Cart can be scheduled again Please Note: For fast rotating groups with only a few songs you need a short Title Separation or it will have no effect because the rule will be broken to often.
- Artist Separation (in Clocks->Scheduler Rules): Minimum Number of
songs before a artist can be scheduled again.
- "Scheduler Codes" make things available like tempo control, gender
control, genre separation or daypart restrictions.
I will try to explain this concept with some screenshots.
In rdadmin there is a button "Scheduler Codes". Here you can define Codes like "Tempo-Low", Tempo-Mid", Tempo-High", or "Rock" and "Country", or whatever you need.
Alway remember :
for a song, the SCHEDULER CODE depends of the song, for example, Tempo-Mid will never be Tempo-High
a GROUP is HOW you PLAY the song, for example, a ROT-A can be a ROT-B, etc.
In rdlibrary you can assign codes to each cart.
In rdlogmanager/clocks you can define rules how to handle carts that have assigned certain codes. For example you can say: Play max. two carts with "Tempo-Low" in a row or wait at least three songs between two carts with "Rock". Also, you can say: Do not schedule a song with "Tempo-High" after one with "Tempo-Low".
When you set "Max. in a row" to 0, a cart with that code is not selected. When "Max. in a row" is at least 1 and "Min. wait" is 0, carts with that code can be scheduled in a row unlimited times. This makes something like dayparting possible. Let's say you have a code "no_mornings": Then you set "Max. in a row" for "no_mornings" to 0 in the clocks you use in the morning hours and "Max. in a row" to 1 and "Min. wait" to 0 in all other clocks.
You can copy rulesets from one clock to another using the import button in the "Scheduler Rules" dialog.
In RDLogmanager/Events you can select, from with Group a song should be taken. Also you can define a code, a cart must have to be selectable. One example: You have a code called "opener". You create an event for the "Opener"-positions in your clocks. Only carts with an "opener" code assigned should be selectable for this event.
The scheduler will select a cart when there is at least one in the group - even if he had to break one or more rules. When he has to break a rule, the scheduler will print a note to the report displayed after log generation in rdlogmanager.
Integration with Rivendells concept or Services: There is a scheduling history (virtual stack of carts) for each service
Still on my ToDo-List is a related artist feature and horizontal separation (to make sure a song is not played at the same time the next day).
However, you could use scheduler codes for related artists separation: Make a code "related" and set them to "max in a row" 1 and "min. wait" e.g. 5, so all carts with this label will be separated. If you use the "related" label for Rolling Stones, Mick Jagger, Beatles and Paul McCartney, Stones and Beatles or Jagger and McCartney will also be separated. "To avoid this you would have to use different codes "rel_beatles" and "rel_stones", but could be much work).