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 programmers full power over their station 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- Next, once you have the ad triggers in your desired hard drive folder, create a new playlist in SAM called "advert-60" and add the ad trigger files to the newly created playlist. It is important to use the name "advert-60" for the playlist because this syntax is currently coded in the .pal script which we are going to provide.
- 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 that you just created to 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['advert-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 triggered and playing on your station at :00, :15, :30, :45 each hour.
If you have further questions, please contact our Support Operations team by submitting a ticket here or by emailing us: email@example.com.