Advanced show scripting

You have a question or need an advice about how to do something? Ask it here!
Post Reply
guytrance
Posts: 5
Joined: 25 Dec 2012 18:43
Advanced show scripting

Post by guytrance »

Hello.

I am evaluating the Demo version to see if it meets our needs, ill explain what i am trying to achieve in the hopes that someone can elaborate on how to do so.

Our station have 1-2 hour shows that are scheduled daily in different hours and sometime 2'nd Monday of the month for example.

While i know that the scheduler support this i still didn't figure out how should i go about creating a script for the shows.

My method of loading the songs are with folders, i have a folder for each show and added them as libraries in the settings.

I am trying to achieve the following things using the script:

[*]I need the script to load 1 file from the designated folder but it has to be the file that is in ASC order..each week a user upload his show and call it "DJ a - Show A episode 001" 002, 003 etc'..so i need the latest episode to be selected..and not the first one..how can i achieve this?[/*]

[*]If its possible...how can i execute a command in the script that will rename the file from "Dj1-dj2" to "[Replay] Dj1-dj2" and move the file from folder a to folder b after finished playing..is this possible?[/*]

[*] i have a default 24/7 scheduled rotation and i am scheduling a different show on the same day for an hour..how can i make that 1 hour script to return back to the normal scheduled rotation after it finished playing the content? [/*]

Thank you or your help!
guytrance
Posts: 5
Joined: 25 Dec 2012 18:43
Re: Advanced show scripting

Post by guytrance »

Adding default rotation show every gap i have in the schedule is painstaking because of the diversity i have in the month...

No option to tell the schedule to have a 24/7 rotation? and a show just go back to it when reached end-time?
Anyone?
User avatar
radio42
Site Admin
Posts: 8295
Joined: 05 Apr 2012 16:26
Location: Hamburg, Germany
Contact:
Re: Advanced show scripting

Post by radio42 »

Sorry for the late reply, but I am currently on holiday.
Yes, I guess all that is easily possible.

In general: The program scheduler runs by default in 'Continuous Mode' (see general settings, section Scripts/Scheduler).
This mode ensures, that the scheduler will always run a program at any time. The end time of a program is therefore actually ignored and a program runs as long as a new program will be started.
So make sure the 'Continuous Mode' option is checked.

Each Program has a related 'Script' which is started with the program.
See here for details: viewtopic.php?f=9&t=10
So you first need to define e.g. your 'Regular' script.

You now have two options to define your regular program (script) and your DJ Shows:
1) Define none-overlapping programs:
Each program starts with the end of the previous program. This means when there is a DJ Show to be scheduled, you need to end the regular program, define the DJ Show program and define an additional program to again start your regular script again. This leads to quite a lot of program entries, but offers most flexilility, as each program is defined and starts by itself.
2) Define overlapping programs:
E.g. your regular program runs all day long and your 'overlap' your DJ Shows on top of it.
This is the most easiest setup and is descripbed below:

To schedule your 'DJ Shows' you might create a 'recurring' program entry within in the Program Scheduler - just make a right-click and select "New Recurring Program".
The recurring pattern allows you to define in what frequency the program should be repreated, e.g. daily, weekly, only on certain weekdays, every X days etc.

To 'overlay' your 'DJ Shows' with a regular 24/7 program, you might first create your daily recurring program with a Start-Time of e.g. 02:00 and a duration of 24h!
This would make this program a kind of all day program. Select a start time where no other program (DJ Show) is typically started (as such I selected 02:00 above).

When you now create your 'DJ Show' programs you might select the 'Overlay' option for these program entries:
If a program is defined as an Overlay it will not stop any previous program/script, but just suspend it. Any previous script will be resumed depending on the overlay type (either after one script cycle or at the defined end time of this program).
No Overlay: This script runs until a new program is started.
Overlay One Cycle: This script executes exactly one cycle (the script lines are not looped).
Overlay End Time: This script executes until the defines End Time is reached
in your case I guess you want to select the 'Overlay End Time' option.


To have a script (resp. script-line) load the most recent file from a folder in ascending order (by last modification date) do the following:
a) create a folder-based media lib and select the directory containing your DJ Shows (e.g. C:\Shows\DJ_A).
b) make sure to specify the 'LastWriteTime (Newest to Oldest)' option for Sorting!
This will ensure, that the folder is read in ascending order (newest files comes first).

Now define your script related to the DJ Show as followed:
a) Make sure to select the above Media Lib in the 'Reload' option of the script.
This option will ensure, that the resp. media lib will be reloaded with each start of the script.
b) Set the 'Loop Line' value of the script to 2.
This will ensure, that the 1st script-line is only executed once, in case the script loops.
c) Define the following script-lines:
1. Mode=Sequential, Entry=DJShowLib, Count=1
2. Mode=Random, Entry=anyOtherLib, Count=1

The 1st script-line will actually pick the next sequential entry of your defined DJShowLib. As this media lib is specified to be reloaded with each start of the script, this is effectively the most recent (youngest) entry. The 2nd script-line (and possibly others) are used in case the show is running short in time and addition tracks are scheduled from them accordingly.


To execute a command to rename and move the DJ file once played, you can click on the 'Control-Commands...' button when defining your DJ Show program entry.
With the 'On program Stopped' event you can specify a control-command which is triggered once the program ends.
You might for example use the "EXEC_SHELL_COMMAND" (see the user manual appendix for details).
The EXEC_SHELL_COMMAND command executes any shell command-line or external program. You might for example start a windows shell (.bat) or a power shell or visual basic script (.vbs).
These allow you to easily rename any file and move it to a different location.

I hope these hints sheed some light on your question. If not, don't hesitate to ask more ;-)
guytrance
Posts: 5
Joined: 25 Dec 2012 18:43
Re: Advanced show scripting

Post by guytrance »

Hey Buddy.

Thank you so much for your very thorough information!

I programed the shows as you suggested and indeed all is well, they run over the default rotation and in the order that i need.

There is however a couple more issues.

When the overlay show is played..if the show is set for 1 minuete and the file itself is 1:30 it wont cut it and go back at the set end time. it will wait till the file ends, and then go back to the default rotation. this is nice but what if a show is about to start right after that minuete? i need shows to start on time..
How can i tell proppfrexx to end a show exactly when the end time is reached? The overlay end time option is selected.


How can i insert a jingle at the start time of a show? i selected the jingles folder in the script and chose 0-1 count 1 random..

And a bit off topic..do you offer payments plan for a full license?

EDIT: almost forgot, is there a way to make a mount point alias in icecast broadcast? if the mount point is 'live' for example..it will show the word live on every player..is there a way to change that to my station title without changing the mount point name?

Thank you again my friend!
User avatar
radio42
Site Admin
Posts: 8295
Joined: 05 Apr 2012 16:26
Location: Hamburg, Germany
Contact:
Re: Advanced show scripting

Post by radio42 »

Start-Type of a Program:
The start type (see program editor) defines, if the program should start exactly at the given Start Time (fixed) or if it might be delayed (soft).
Fixed: When a 'Fixed' start is specified the program will start at exactly this time and any currently playing track will be stopped immediately.
Soft: In case of 'Soft' start, the remaining playtime of a currently playing track will be evaluated. If the remaining playtime is less than the given Maximum Delay the track will play til the end until this program is started. If the remaining time is bigger than the Maximum Delay the track is stopped immediately and the program starts on time.

Max. Delay: (Maximum Program Delay)
When a program is defined as soft start (so it doesn't have to start at exactly that time) it might be delayed by this maximum number of seconds.
When a new script is about to be started the remaining time of the current Track of the current script is checked. If the remaining time is less than this maximum delay time, the Track will be played til the end before the new script is started (which will then result in a delayed script start).
But if the remaining time is greater than this maximum delay time the current Track is faded-out immediately and the script start will not be delayed.
Note: Programs defined as fixed start will always start on time.

The above program entry settings/options however only determine how a new program (either a regular or overlayed) is started!
An overlayed program (defined as 'Overlay End Time') will currently in any case always end after the defined End-Time and after the currently playing track of the overleyed program has been played til its end.
Meaning the defined End-Time is only an approximation and will currently never cut a playing track before its end, but let the currently playing track play til its end until the suspended regular program is resumed.
This is actulally by design to prevent, that e.g. prerecorded DJ Shows will end early - however, yes, you are right it won't end at exactly the defined End-Time.
If you need to have a program end at exactly a given time, then you must use the alternative way as explained above and not use overlayed programs, but regular programs only.
As such you need to define multiple subsequent regular (none-overlapping) program entries, e.g. like this:
02:00:00 til 13:00:00 - Regular Program (StartType=Soft, MaxDelay=300)
13:00:00 til 14:00:00 - DJ Show A (StartType=Soft, MaxDelay=60)
14:00:00 til 02:00:00 - Regular Program (StartType=Soft, MaxDelay=300)


To start a program with a jingle, you might either use the 'Inital Track' (and select a fixed file) or define the following script-line as your 1st line:
1. Mode=Cardwall, Entry=JingleLib, Count=1
This would randomly select a track out of your JingleLib cardwall library.

Note: The automatic 'Jingles' inserts in the script settings is more intended as a general way to insert a jingle after every M to N regular tracks of the script-lines have been processed.
E.g. if you specify 4-7, this means, that after each 4 to 7 script tracks an additional entry is taken from the jingle lib and inserted during script execution.

For further options and help, just click on the '?' at the top right of the Program or Script Editor dialog window.


No, I do not accept payment plans. The license needs to be payed at once.


A MountPoint alias is defined on the ICEcast server side and not on ProppFrexx!
However, I guess you are looking for a way to 'format' the title updates issued by Proppfrexx and send to the ICEcast server?!
If yes, you can specify the title update format to use in your Streaming Server Configuration.
Format: (Title Update Format)
Specify the format to be used with song title updates (any regular track marcros might be used).
Leave empty to use the global default streaming server song title format (which is "${artist} - ${title}" by default).
E.g. you might specify something like "MyText: ${artist} - ${title}" (without the quotes).
djgait
Posts: 14
Joined: 13 Sep 2012 13:48
Re: Advanced show scripting

Post by djgait »

This is how we do it.
De DJ's who voicetrack shows also put their showfiles in their own folder. Only difference is that they have to put the actual show in the Current folder within their DJ folder.The other shows (or already played ones) are in the folder called OLD. So the show from last week is moved to that folder. You can autowatch the current folder so propfrexx is always aware of the right track.
This way, only the actual show is in the current folder and you can tell proppfrexx to load a track from the current folder. Since there is only one track in that folder the right one is played.

This puts some responsibility to the DJ, but it it the most easy way to maintain proper show playout.

The sceduler is a powerful tool. And Bern has explained things thoroughly. I really think tou are wanting to do things in a very difficult way.

If you load the shows with scripts like we do (see above), you can easily put the opener track in front of it (and maybe an ender). Even a random jingle is possible. But we try to do all program related things in the same script to prevent problems and to keep things easy to overview.

Post Reply