Page 1 of 1

TryEnsureExactLength - Script Line Option

Posted: 16 Aug 2014 09:15
by inl_inc
Hi Bernd,

First off the current TryEnsureExactLength option is fantastic.

Wondering if it is possible/feasible to also implement on a script line basis to allow more control in structuring a program. For example, a basic 1 hour program might look something like:

Station ID
Track
Track
Track
Track
Sweeper
Track
Track
Track
Track
Sweeper
Track
Track
Track
Track
Track** overscheduled

I would love to get a bit more control over timing the individual segments i.e. try to get each segment to be roughly 20minutes long. Something like adding a script line option to Sweeper position such as TryEnsureExactStart (input preferred start time [as a function of script start, i.e. scriptStartedTime + 20 minutes]). For Sweeper 2 [40].

Re: TryEnsureExactLength - Script Line Option

Posted: 16 Aug 2014 20:05
by radio42
Can you explain what the effective value would be?

Re: TryEnsureExactLength - Script Line Option

Posted: 20 Aug 2014 03:07
by inl_inc
If i understand your question correctly ... the "effective value" is controlling the length of the last segment ... 50% of the time i end up re-queing my "overscheduled" tack 3-4 times when the first two segements end up picking 4 3 minute tracks ...

the value would be that the last segment would be very close to
Sweeper
Track 1
Track 2
Track 3
Track 4

vs somethimes having
Sweeper
Track 1
Track 2
Track 3
Track 4
Track 5 (overscheduled)
Track 6 (overscheduled)
Track 7 (overscheduled)
Track 8 (overscheduled)

vs having 4 to 8 tracks in the last segment ...

just wanted to mention that this is purely "a nice to have" and if its not something that can be added easily then don't feel obligated ;-) ....

Re: TryEnsureExactLength - Script Line Option

Posted: 20 Aug 2014 08:52
by radio42
The background of my question is simply, that I just want to understand something before I start implementing resp. thinking about how to implement it ;-)
So what I still do not fully understand is the following:
- in your initial post you said, that you want to control the 'length' of EACH 'segment'
- now in the latest post you say, that the value is effectively controlling the length of the LAST 'segment'
But doesn't the existing feature already offer exactly that?

Re: TryEnsureExactLength - Script Line Option

Posted: 23 Aug 2014 09:21
by inl_inc
sorry for taking a while to reply ... here's a better example/explanation

let's say i'm working with a clockwheel made up of 1hour programs consisting of three segments of 4 songs each separated by a sweepers.
Top Of The Hour ID
4 songs
Sweeper 1
4 songs
Sweeper 2
4 songs + 1 looped track

to fill an hour using those 12 songs --> each track on average has to be 5 minutes long ... because currently when tracks are picked within a script, duration is not being considered i sometimes end up with cases where the first two segments end up containing 3 minute songs ... third segment starts to play at 24minutes past the hour (vs expected 40) ... as a result i end up stretching the last segment from 4 tracks to 8 tracks ...

if there was an option to try to better control the duration of the first two segments, the last segment will contain 4 tracks most of the time (and maybe 1 overschduled) ... let's say that I want Sweeper 1 to start at approximately T+20minutes ... first song selected is 3min, then 5min, then 3min (now we're 11 minutes in with 1 song to go --> the script should try to pick a track that is closest to 9 minutes long)

hopefully my explanation makes sense ...

Re: TryEnsureExactLength - Script Line Option

Posted: 23 Aug 2014 20:06
by radio42
Yes now I understand you.
I'll see what I can do!
Probably not in the next 2 weeks but right after :-)

Re: TryEnsureExactLength - Script Line Option

Posted: 30 Sep 2014 12:23
by radio42
You might now try the new v3.0.14.16.

When using the script-line mode 'Execute' you might now specify an optional Duration. If specified, the related script will execute using the TryEnsureExactLength option and return a list of tracks matching (almost) that given duration. Note, that the count parameter is still used and specifies the minimum number of elements to return!

As such, you might now create a script with the following lines to achieve the '20 min. grouping' as explained above.
Note, that you need a 'master' and 'child' script. In the master script you reference the child script using the 'Execute' mode and specify a duration to leverage the 'TryEnsureExactLength' option.

Master-Script:
1. LoadTrack; C:\Music\Toth.mp3; Count=1
2. Execute, ChildScript1|00:20:00; Count=1
3. Cartwall; JingleLib; Count=1
4. Execute, ChildScript2|00:20:00; Count=1
...

The script-lines 2. and 4. will then result in a number of tracks trying to match the given 20 minutes duration!