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.