Please enable JavaScript to view this site.

XStudio 3

Navigation: Reference > Programming XStudio

Satellite Automation Programming Example

Scroll Prev Top Next More

This example shows how to "program" XStudio for satellite-delivered programming. It is a simple example that assumes the station will use a single satellite-delivered programming service all hours of the day, seven days a week and that the XStudio default operating mode is Satellite. You may wish to review the Program Start Options for XStudio, paying particular attention to the property settings for Mode at Startup and Load Today's Log at Startup.

We'll also describe how you can suspend automated programming to run a live air shift.

To program satellite automation for XStudio, there are three jobs to do:

Tell XStudio how and when to play ad hoc audio items when signaled by the programming service. These items include audio generally described by most programming services as liners, jingles and station ID's. They can occur at almost any time during a given hour.

Tell XStudio how to handle local commercial breaks. The breaks will be signaled by the programming service and unlike the ad hoc items, will generally occur within a relatively small window of time 3 - 4 times per hour.

Create a broadcast log for XStudio that contains the needed instructions (Log Directives) regarding local breaks, length of the break and the audio items to be played for each break. If a station is using satellite programming exclusively, the broadcast log is typically created with a traffic system and exported directly for use with XStudio as the only content the station needs to put on the log is the local insert material - commercials, promo announcements, PSA's and the like. The majority of the program content, whether it is music or talk programming, is supplied by the service provider in real time.

The Program Service Clock

Each satellite programming service will generally provide one or more format clocks that visually outline in a general way what program elements occur and when, including information about specific signals sent (closures) by the service for commercial breaks, playback of liners, etc. The example clock shown is taken from a well-known service, paired down to just the essentials and marked up for this example.

Example Satellite Programming Format Clock

Example Satellite Programming Format Clock

By examining the clock, you can see that there are four (4) sets of functionality that we have to handle. Three (3) of them require the local station to play a single audio item (cart) in response to a signal - the Legal ID, Return Liner and Image Liner. The fourth is a commercial break which occurs four (4) times an hour and requires local playback of audio for varying amounts of time.

Assign an Audio Switcher

In order for XStudio to execute this format successfully, an audio switcher must be used so XStudio can receive the programming service signals and control the audio that appears on the air. If you have not created an audio switcher record in the automation setup area and assigned the switcher to XStudio, review the topics on adding a switcher resource and assigning a switcher to XStudio.

You must have an audio switcher defined before continuing on with this example, as it will be needed when we are creating Tasks to control which audio appears on the air.

For this example, we will assume that you have an audio switcher installed and configured and that the satellite programming service audio is connected to the switcher on input channel 1. We'll also assume that the primary XStudio playback channel is connected to the switcher on input channel 7.

The Legal ID

In our example format, the Legal ID is called once per hour, near the top of the hour. The programming service sends a unique closure, so we know that whenever this closure comes, we need to play the Legal ID. Here are the steps needed:

1.Create an Update Switcher task that will be used to make sure the switcher audio input channel to which XStudio playback audio is connected gets on the air. In the update switcher dialog, select the correct audio switcher and make sure row 1, channel 7 is set to the "On" position. Change the Valid Modes option to be Satellite mode only (uncheck all others). Name the task anything you wish that's meaningful to you (we'll use "Ch 7 On") and save the new task.

2.Create a Start Play task that will play a specific cart number. For our example, we'll use cart number "ID01". In the Start Play task dialog, uncheck the "Play from Log" property and use the [Add Cart] button to add the cart number "ID01". Change the Valid Modes option to be Satellite mode only (uncheck all others). Name the task "Legal ID" and save the new task.

3.Create a new Action. Name the action "CRM Legal ID". Select the task "Ch 7 On" in the available tasks table and drag it into the Action Task List. Then select the task "Legal ID" and drag it into the Action Task List. There should be two items in the list and they should be in the order "Ch 7 On", "Legal ID". XStudio executes tasks in an Action in the list order and we want to be sure that the XStudio audio playback channel on the switcher is on the air before beginning playback of the cart ID01.

4.Assign the new "CRM Legal ID" Action to the corresponding Relay Input on the audio switcher. This in effect "connects" the Action to the satellite service's closure.

The effect of these steps is that every time the satellite programming service sends their legal ID closure, so long as XStudio is in Satellite mode, here's what happens:

XStudio locates the Action assigned for the legal ID closure, in this case the Action named "CRM Legal ID".

The first task in the Action, "Ch 7 On", causes XStudio to make sure that the switcher's input channel 7 is turned on. No other open or closed input channels are affected.

The next (and last) task in the Action, "Legal ID", causes XStudio to play back the cart numbered "ID01".

None of these steps taken by XStudio involve the log, affect anything else that might be on the air at the time or any other audio XStudio is playing.

The Return Liner

The Return Liner in our example is very similar to the Legal ID. Differences are that the Return Liner may occur several times an hour, and the particular audio item (cart) we want to play is different. In fact, we're going to reuse one of the Tasks we created from the Legal ID. The steps required:

1.Create a new Start Play task just like step two in the Legal ID. Use a different cart number, "RL01". Name the Task "Return Liner" and save the task.

2.Create a new Action. Name the action "CRM Return Liner". Select the task "Ch 7 On" in the available tasks table and drag it into the Action Task List. Then select the task "Return Liner" and drag it into the Action Task List. There should be two items in the list and they should be in the order "Ch 7 On", "Return Liner". XStudio executes tasks in an Action in the list order and we want to be sure that the audio channel on the switcher is on before beginning playback of the cart RL01. Notice we've simply reused the Update Switcher task we created for the Legal ID, since we needed to achieve the same thing.

3.Assign the new "CRM Return Liner" Action to the corresponding Relay Input on the audio switcher. This in effect "connects" the Action to the satellite service's closure.

Like the Legal ID, the effect of these steps is that every time the satellite programming service sends their Return Liner closure, so long as XStudio is in Satellite mode, XStudio makes sure the correct audio input channel is "On" and plays the cart RL01.

Again, none of these steps taken by XStudio involve the log, affect anything else that might be on the air at the time or any other audio XStudio is playing.

The Image Liner

By now, you probably know what you need to do since the Image Liner is similar to the Legal ID and Return Liner, save with the exception of the cart number. Here are the steps:

1.Create a new Start Play task just like step two in the Legal ID. Use a different cart number, "IL01". Name the Task "Image Liner" and save the task.

2.Create a new Action. Name the action "CRM Image Liner". Select the task "Ch 7 On" in the available tasks table and drag it into the Action Task List. Then select the task "Image Liner" and drag it into the Action Task List. There should be two items in the list and they should be in the order "Ch 7 On", "Image Liner". XStudio executes tasks in an Action in the list order and we want to be sure that the audio channel on the switcher is on before beginning playback of the cart IL01. Notice we've simply reused the Update Switcher task we created for the Legal ID, since we needed to achieve the same thing.

3.Assign the new "CRM Image Liner" Action to the corresponding Relay Input on the audio switcher. This in effect "connects" the Action to the satellite service's closure.

Like the Legal ID and Return Liner, the effect of these steps is that every time the satellite programming service sends their Image Liner closure, so long as XStudio is in Satellite mode, XStudio makes sure the correct audio input channel is "On" and plays the cart IL01.

As with the Legal ID and Return Liner, none of these steps taken by XStudio involve the log, affect anything else that might be on the air at the time or any other audio XStudio is playing.

The Commercial Break

Handling the example format's commercial break is quite different from the other functionality we've programmed for XStudio so far. For one thing, it involves the log. Handling a break also requires we take the program service audio off the air while playing the break, then restore it to air following completion of the local break. For the commercial break to work correctly, we need to create an Action that handles the audio switching and starts audio playback of the break, plus we need to ensure the correct commercial break is played from the log.

Create the Commercial Break Action

Follow these steps to create the Action for the local commercial break:

1.Create a new Update Switcher Task. Name the task "CRM Local Breakaway". In the Updated Switcher dialog, select the correct audio switcher. Turn row 1, channel 7 "On". Turn all other channels on row 1 "Off". Change the Valid Modes option to be Satellite mode only (uncheck all others). Save ([Apply]) the task. This task will be used to take the satellite programming service off the air and ensure that the primary playback channel for XStudio is on the air. Further, it ensures that no matter what, the only audio that will go to air is coming from XStudio.

2.Create a new Start Play task. Name the task "Play Local Break". Make sure the Play from Log property is checked (the default). Change the Valid Modes option to be Satellite mode only (uncheck all others). Save ([Apply]) the task. This task will be used to signal XStudio to play the audio items on the log that correspond to the break.

3.Create a new Update Switcher Task. Name the task "CRM Return to Sat". In the Updated Switcher dialog, select the correct audio switcher. Turn row 1, channel 1 "On" (the programming service channel). Change the Valid Modes option to be Satellite mode only (uncheck all others). Save ([Apply]) the task. This task will be used to put the satellite programming service audio back on the air after completion of the local commercial break. Notice that for our example we didn't change the status of any other switcher input channels.

4.Create a new Action. Name the action "CRM Commercial Break". Drag the tasks "CRM Local Breakaway", "Play Local Break" and "CRM Return to Sat" into the Action Task List from the available tasks table, in order. XStudio executes tasks in an Action in the list order, so we want to be sure that only the XStudio playback channel is on the air, play the commercial break audio and finally, switch the satellite programming service back on the air.

5.Assign the new "CRM Commercial Break" Action to the corresponding Relay Input on the audio switcher. This in effect "connects" the Action to the satellite service's closure.

You've probably figured out by now that when XStudio executes an Action, it performs the Tasks in the list in order, one right after the other, until all Tasks in the list have been performed. You might be wondering how we get XStudio to wait long enough for all the commercials to play before switching back to the satellite programming service in this example.

The answer lies in the broadcast log construction and how XStudio handles a Start Play task when the task calls for playing audio from the log and the current operating mode is Satellite. Essentially, XStudio uses the log to communicate to the running Action the length of the commercial break and the Action automatically waits that long before performing the final Task in our example.

Commercial Break Log Format

The broadcast log (program schedule) has to be structured in such a way that at the time the satellite program service sends a signal for the local commercial break, XStudio knows which set of commercials (audio items) to play and the required length of the break. Additionally, the log determines whether or not XStudio actually plays a break or, because there are no commercials to play, in effect skips the break altogether, keeping the satellite program service on the air.

The key log element in all of this is the Log Directive. Specifically in our example, a Load Required directive is used. In our sample clock, there are a number of local breaks. We will focus on the break that the format clock indicates will occur at 20 minutes past the hour. Here's what needs to be done for 20-past local commercial break:

1.Position the Load Required directive on the log. Most satellite programming services do not signal all local breaks at the specific time listed on the format clock. Instead, they are taken within a "window" of time, typically within plus or minus 5 minutes of the target time. In our example, this means the earliest the service will signal the break is 15 minutes past the hour, the latest would be 25 minutes past the hour. So, our Load Required directive needs to be placed at 14 minutes past the hour, one minute in advance of the earliest time the break will be signaled. When the PC clock hits 14-past, XStudio will mark the directive as "active", meaning that from that time forward (until another log directive becomes active), when the program service signals a break, it is the content associated with this directive that will be played.

2.Set the break length. The Load Required directive has a field for entry for the length of the break. In our example, the 20-past break is 3 minutes (3:00).

3.Fill the break with audio content. Basically, this means that you need to have items on the log immediately following the Load Required directive that add up to 3 minutes worth of playback time. All audio items on the log, beginning with the Load Required directive and continuing until the next log directive is found, are considered to be a part of the break. In our example, this means the audio items are associated with the 20-past break.

XStudio treats Load Required and Load Optional directives in exactly the same way.

If there are no audio items associated with the directive (meaning no carts between the directive and the next directive), XStudio will skip the break entirely in Satellite mode regardless of the directive type.

If there is at least one audio item associated with the directive, XStudio will play the break in Satellite mode. You must ensure that you have enough audio elements to "fill" the break - if the scheduled break length is 3 minutes, you must have 3 minutes of content scheduled on the log. There is no automatic backfill of audio to meet the required length.

For our example, the XStudio log would look similar to the screen capture shown.

Example Satellite break, as it appears in XStudio

Example Satellite break, as it appears in XStudio

Commercial Break Execution

Now that everything is set up, here's what happens when the satellite programming service signals a commercial break sometime between 3:15 PM and 3:25 PM using our example Action and log:

XStudio locates the Action assigned to the commercial break closure, in this case the Action named "CRM Commercial Break".

The first task in the Action's task list turns all channels on the "to-air" audio switcher row off except the XStudio playback channel, which is turned on.

When XStudio receives notice from the running Action that we are to play from the log, it locates the active directive (3:14 PM in our example) and checks to see if there are any audio items associated with the directive. If so, the length of the break is communicated to the running Action, which then waits for the length of the break before continuing to execute the next task in the list. Meanwhile, XStudio starts audio playback of the first log item following the directive (the Chevron spot in our example). As each audio item ends and signals EOM, the next item is played, until all items in the break have played. In Satellite mode, XStudio will not cross over a log directive to continue playing, so only the audio items on the log between the active directive and the next one on the log are played. During this time, the Action is waiting until the break length time expires.

At 3 minutes since the audio playback started (based on our example break length), the last task in the Action task list is executed, updating the audio switcher to restore the satellite programming service channel back on the air.

If a break on the log is empty (contains no audio items), no wait time for the break is communicated to the running Action and the next task in the list is executed immediately. In our example, this would mean that the satellite programming service audio channel on the switcher would be turned off, then back on within just a few milliseconds. The effect from a listener point of view is that the programming service stayed on the air.

Because the local break length is controlled by the log, only one Action needed to be defined for our example, even though example format clock we used had different lengths for each break. As long as the log directive for each break had the correct length, we can use the same Action for all breaks in all hours, which simplifies programming for satellite automation.

Getting Things Started

When you are running satellite automation exclusively (as in our example), once you have produced a working daily log and set up the needed Actions, there's nothing to do to get the ball rolling as all activity is controlled by the satellite programming service.

In our example, XStudio starts up in Satellite mode and loads the daily log. So, when XStudio has completed its startup process, the correct log is loaded and the operating mode is correct. From there, it's a matter of waiting for the programming service to signal what it wants done.

Suspending Satellite Automation Manually

In our example, the radio station is running satellite automation 24 hours a day, 7 days a week. But what if we want to prevent XStudio from handling the Actions we have programmed for a period of time, say to run a 4-hour live show? In our example - and in many other cases - it's a simple process.

You can suspend automatic response to the program service signals by simply changing the XStudio operating mode to something other than Satellite. Use the main menu item Options | Operation Mode and select a different mode, like Live mode.

As soon as the mode is changed to something other than Satellite, the Actions we created will behave differently. For instance, if the Return Liner signal arrives from the programming service, XStudio will locate the Action named "CRM Return Liner" and begin executing its list of tasks, as before. However, since every Task in the list is valid only during Satellite mode, each task is ignored. Thus, no switcher update occurs and XStudio does not play the cart RL01 (the two tasks in the Action).

XStudio does make note of receipt of the signal from the programming service in the application event log and adds a record to the daily audit report data file.

When the live show is done, use the main menu Options | Operation Mode to select Satellite mode. XStudio will again process signals from the program service as normal.

 

Satellite Programming - Special Events

Local Automation Programming