With SAM Broadcaster PRO, the Ad Trigger files can be programmed to air at certain times of each hour using PAL Scripts. PAL is short for Playlist Automation Language and was developed to give station owners full power over their tracks rotation.


  • Step 1- Firstly, you would need to download the 1 minute ad triggers archive and extract the .zip file somewhere on your computer. The ad triggers are available here.

  • Step 2- Create a new playlist in SAM called "Live365-60" and add the ad trigger files to the newly created playlist. It is important to use the name "Live365-60" for the playlist because this syntax is currently coded in the .pal script which we are going to provide. If you wish to name the playlist something else, you will need to make sure to update the pal script as well.



  • Step 3- Right-click on each ad trigger file, then select Song Info and make sure the Type is set to A-Advertisement.
  • Step 4- Navigate to “C:\Users\[Your User]\AppData\Local\SpacialAudio\SAMBC\PAL\” and create a new text file. Give it a name of your preference that would distinguish it from other .pal scripts.
    Please make sure the extension is set to .pal, not to .pal.txt.
  • Step 5- Add the .pal file you just created in the SAM Broadcaster PAL Scripts window by navigating to the specified path. Once it's in the list, double click to edit it and copy/paste the following code:


PAL.Loop := True;                              // Loop the PAL Script

// Variable Declarations
var Player1 : TPlayer;                         // Declare an instance of TPlayer for the Active Player
var Player2 : TPlayer = DeckB;                 // Declare an instance of TPlayer for the Idle Player

var CountRep : integer;
var AdBreakTotal : integer;
var AdCount : integer;                         // Used to count the number of adverts
var P1Track, P2Track, P3Track : TSongInfo;     // Declare the TSongInfo Containers
// End Of Variable Declarations

// Declare Adjustable Variables
CountRep := 1;
var AdTotal : integer = 1;                     // Set the number of adverts to play
// End Of Declare Adjustable Variables

While Countrep <5 do
  begin
    case CountRep of
      1 : PAL.WaitForTime ('XX:00:00');
      2 : PAL.WaitForTime ('XX:15:00');
      3 : PAL.WaitForTime ('XX:30:00');
      4 : PAL.WaitForTime ('XX:45:00');
      end;
    CountRep := CountRep + 1;

    PAL.LockExecution;                         // Speed up the Script processing

    // Check for the Active Player
    Player1 := ActivePlayer;                   // Assign the Active Player to Player1
    If Player1 = DeckB Then Player2 := DeckA;  // Assign the Idle Player to Player 2

    // Add the required number of adverts to the top of the queue
    for AdCount := 1 to AdTotal do
      begin
      CAT['Live365-60'].QueueTop(smLRP,NoRules);
      writeln(AdCount);
    end;

    // Capture the Track Information from the Active Player
    P3Track := ActivePlayer.GetSongInfo;

    // Count the Adverts before reducing the Player Volume
    while (AdCount < AdTotal) AND (P3Track['songtype'] <> 'S') do
      begin
      PAL.WaitForPlayCount(1);                 // Wait for the Advert to Play
      P3Track := ActivePlayer.GetSongInfo;     // Capture the next Track Information
      end;                                     // end for the While loop

    PAL.UnLockExecution;                       // Return PAL Script processing to normal speed
    end;

// Housekeeping
Player1.Free;
Player2.Free;
P1Track.Free;
P2Track.Free;
P3Track.Free;

Step 6- Lastly, run the .pal script you've just created by clicking on the play button within the PAL scripts window.


If all the steps have been followed, you should start seeing a timer until the next advert trigger file will be queued. A 1-minute ad break will be playing on your station at :00, :15, :30, :45 each hour.