What it does
Radiologik Scheduler chooses tracks from playlists in
iTunes with a little bit of extra logic to figure out times and artist
separation. It builds these segments in 30 or 60 minute blocks anywhere
inside of a week schedule. The resolution of the script statements are
in seconds.
Playlists, and particularly smart playlists in iTunes, give programming
tracks enormous power. Because Radilogik DJ tells iTunes when it plays
a track, you can use smart playlists to be sure you are not
playing certain songs again for a specified period of time. This can
give you a reservoir of tracks that have not played recently but enough
tracks to still pick at random, effectively giving a random rotation.
You can use many smart playlists for the same segment, giving you the
ability to set when to play fast, medium, or slow songs or how often to
play tired songs versus new songs that you may want to play more often.
Radiologik Scheduler runs the appropriate script 20 minutes
before the start time and sends that set of tracks and directions to
Radiologik DJ's program queue.
The Segment
Use the + button to add a segment. When you have a segment selected
and you press the + button, you'll get a new copy of that segment. You
can create segments of 30 or 60 minutes and assign that to any 30
minute interval of any day of the week. You can name it anything you
want. The name is for your organizational purposes. You can reorder
your segments by
dragging them around in the list. This has no bearing on how it
schedules and is also for your own organization. Then you can choose
the
artist separation desired and the preference set that should be set for
the DJ for each segment. For instance, my Rock segment I like 15 track
artist separation with 1.8 second overlaps but for my softer classical
which has a lot of Bach, I need the artist separation lower at about 10
since it's hard to avoid Bach and I like the overlaps at just under a
second since most of these tracks have a long buffer but I like all of
the other pieces used elsewhere in the station to sound less rushed.
The Script
You can add and remove script lines using the + and - buttons
below the script list. If you have an item selected, pressing the +
button makes a copy of that line. You can remove multiple lines by
selecting them and pressing the - button. You can also copy and paste
lines.
Times in the script are relative to the start time of the
segment so if
your start time is 8:30 PM, 05:02 would be 8:35:02 PM.
There are two commands for Basic:
- Pick will select one
track. Most times you won't need minimum or maximum time values but
they do work for pick.
- Fill will select tracks
attempting to fill to the minumum time without filling past the maximum
time. It requires a minimum time or else it will assume the minimum to
be and outside value of 15 minutes past the length of the segment.
The next field is for single letters representing the attributes
This script line only runs if the
previous line failed. This is a good choice when you need to change not
just the playlist but the command. eg. from date matching to pick.
Scheduler chooses tracks at random from
the playlists
Checks to make sure the track has not
been
programmed in the segment being scheduled nor currently in queue in the
DJ
Checks to make sure the same artist is
not
chosen within a certain number of tracks regardless of whether other
script lines had this attribute
Tell the DJ to tick the Station ID
button when
this track is played
The last column is where you specify the playlists and fallback
playlists. The scheduler will use the
fallback playlist if too many errors are encountered or if there aren't
enough items in the playlist.
An interface is provided to help build script lines at the bottom right
of the window which also serves as a reference particularly if you need
to remember an attribute or exact spelling of a playlist. You can use
the script field to type, cut, copy paste to reorganize and edit the
scripts.
Interrupts
If you want to fade down the last segment or start from silence at the
start time of the segment, then use 00:00 in the interrupt field along
with the other parts of the script for that selected track or first of
many tracks to play at that time.
If you want to fade down a segment to silence and not play anything at
a specified time, you can make your last script with a 30:00 or
60:00 interrupt time (respective of the segment length) and have it
pick a silent track from a playlist containing a short 5 second
silent file. Make sure your minimum fill before the interrupt is enough
to cover us to the interrupt. The scheduler makes a really good attempt
to get all the times figured correctly but to be safe make your minimum
something like 3 minutes extra past the overlap to make-up for any
differences in the reality of playing. So you would fill to a minimum
of 33:00 or 63:00 depending on the lenght of the segment.
Minimum,
Maximum
and exact time searching
If
you put your maximum and minimum times too close together,
you'll make it difficult for the scheduler to find a fit. I like to use
about 3 minutes between these but your use may depend on your purpose.
However, if you set the minimum and maximum to the exact same time,
you'll invoke the exact time searching feature. It will run through all
the possibilities from that playlist for times that fall within 1
second after the time. If nothing is found or the tracks are excluded
for other reasons such as artist separation, it will try again with 2
seconds, then 3 and so on until it at last tries 20 seconds. If that
fails then it only uses the minimum time.
Top of
the Hour figuring
Use "TOTH" in the minimum time field with a fill command if your
segment starts at the top of the hour and you want to continue the same
music format without interrupting at the exact top of the hour. This
will find the best place to put a Station ID.
For the previous segment,
make sure you have not completely filled the segment since each new
segment can fill the short in the previous segment in figuring the best
placement of the station ID. Consider where most of your song times
are. To consider all songs between 5 mins and 3:30 length fill minimum
to 55:00 and maximum to 56:30 for the last script line.
This function uses a search to find the best time fit to the top of the
hour searching either side of the top of the hour in incrementally
larger widths up to 10 seconds on either side of the hour. Failing that
it falls back to looking at the track
that crosses over the top of the hour to determine what the best
position is either before or after the hour depending on how much the
track crosses over the hour. If it determines before the actual top of
the hour, it will place the next script line, say a pick from a station
ID playlist and continue with the script. If it places the TOTH before
the actual top of the hour, it is possible that the next
script line will program a song that would have put the top of the hour
postion closer on the over side but in most cases
this will still be the best position of the top of the hour.
TOTH only works for the top of hour at the beginning of the segment for
a segment starting at the top of the hour or for the first top of the
hour encountered when a segment starts at the bottom of the hour.
Script Example
#1

This script above for 9:30 PM starts with an interrupt at the
bottom of the hour. It is a 30 minute segment. The Station ID plays at
exactly the bottom of hour (not legally required but still nice since
in my case I'm changing formats) and is
followed by a single file I have in the ModMixIntro playlist. After
that it fills from between 9:38 and 9:41 with engergizing songs from
the ModernStarter smart playlist in iTunes. I put in a sweep to let
people know what they are listening to and continue with the music and
another sweep. I stop short of filling to the top of the hour at 10:00
PM since I want that segment to figure when to put the ID.
Script Example #2

Here is a script above from 12:00 AM. This format ends at 1:00
AM. First we fill with Tired old songs as we approach the top of the
hour at 12:00 AM, then ID and kick back into engergizing songs from
ModernStarters. In this particular example I've included the fallback
playlists which do not limit the number of songs by last played in case
the original playlist runs dry because it only contains songs not
played in the last 5 days. I've chosen to make sure my sweeps are
different tracks using the "i" attribute but since my sweeps are all
the same artist (the station) I
don't want to use the artist separation attribute "a" on them. My
sweeps
generally run in a strict rotation since I didn't set the random
attribute for them. I put some cross-promotions in for other segments
(Old-time Radio and Sacred segements). At the end of the segment I
put an interrupt time of 60:00 which is 1:00 AM to a silent 5 second
track I have in the Silent playlist. The fade in the DJ is halfway over
the interrupt time so if I have a fade down time of 6 seconds, it will
start the fade at 12:59:57 AM and finish the fade at 1:00:03 AM,
blending nicely with whatever is being played next by other software
perhaps. If you want to fade to silence by 1:00:00 AM then make the
interrupt short by half the overlap time, in this case use 59:57 as
your value for a 6 second fade. If my next segment were in Radiologik,
I would instead fill to a minimum of 63:00 and a maximum of say 65:00
or no value for maximum. This extra amount of track time scheduled for
minimum will makeup for most any variance the reality of the playing
time of the segment. The next segment's interrupt will do the
interrupting.
Fallback
procedures
If qualifying tracks cannot be found, Radiologik Scheduler runs
through several fallbacks to help ensure it is programming something.
For each fallback, up to 20 failures are allowed before proceding to
the next fallback. The first fallback is to the fallback playlist if it
exists and has items. If that fails then it tries turning artist
separation off it is is on.. If that fails then it turns off unique
tracks. If that fails, then that line fails. It will then start fresh
on the next line.
If you make your minimum and maximum times too close together such as
30:00 minimum and 30:05 maximum, there's a really good chance the
scheduler will not find a track to match.
You can have a specific line that runs on in the case a script line
fails. Add a script line after the potentially failing script line and
use the failover attribute to indicate this line should only run if the
previous line failed.
Week View
This is a useful reference to see if you've filled all of the
week you expect to and also to check for conflicts of segments. If
there's a conflict, it will show on that block in this view.
Advanced features
Advanced features are
available when Radiologik Scheduler is running in Advanced mode. Either
Advanced or Basic will show in the title of the scheduler window to
indicate which mode it is running in. You are asked which mode you want
to run on the first launch but you can bring this dialog back up by
holding option when launching Radiologik Scheduler.
The advanced features currently implemented are Time Annoucements and
Date Matching. Voiceovers will be implemented before Radiologik
Scheduler is made final 1.0.
Time
Announcements
Use the 'time' command to place a time announce marker in the
script like you would a pick or fill. Time Announce will only work if
the AIFF files ranging from 0000.aif for 12 o'clock to 1159.aif for
11:59 are in
~/Documents/Radiologik/Time
Announce/. You can create these files yourself in your own voice or
download them in my voice from
http://macinmind.com/Radiologik/Download/.
Time annoucment files are dynamically selected by Radiologik DJ to
always be the correct time. Radiologik DJ will announce 5 seconds or so
before the next minute as the next minute. Time announce tracks will
always have their overlap set to zero seconds to make sure they are
never overlapped by other content.
Date
matching