Comments

MPM wrote on 1/16/2007, 9:39 AM
If you do a bit of Googling you'll get several hits on scripting random play -- this was one of the 1st: http://www.kenstone.net/fcp_homepage/alex_all_menus_dir/chapter3.html#P2

I'd imagine that you'd want to skip the intro (1st run video), go to a so-called Dummy menu to hold & activate your script,, then set the end action of all 3 PSAs to jump to a transitional video or directly to your desired menu.

It *Might* be easier to flesh out your script in the trial of DVDLab pro & import or copy it into DVDA.
GeorgeW wrote on 1/16/2007, 9:47 AM
In DVDA4 (Full version -- I'm not sure about the Studio Version), you can add an Introduction Media (make it a black picture, and change its duration to 1 second). Make the End-Action of the Intro-Media link to a PLAYLIST that contains your 3 PSA's. For the PLAYLIST, select the GENERAL button (on the right side), and set its PlayMode to Random (Infinite=No, Count=1). Also change the END-Action for the Playlist to be your Main Menu.

NOTE: it might appear to be random, but after a while, it might show the same order given the same hardware/software playing device...

ScottW wrote on 1/16/2007, 10:03 AM
With DVDA 4 and scripting, maybe - but for your application it may be more hassle than it's worth.

The problem is that very few DVD players implement a true random number generator - and more often then not, if they do, they usually start each DVD inserted with the same seed (which means you get the same sequence). What follows is the VM commands needed for a random number generator, provided by the folks over at the DLP forum. The code generates a random number in the range of 1 to the value in GPRM0, the random number is returned in GPRM0. GPRM5 contains the initial seed and should be maintained across calls. GPRM4 is a scratch register.

Getting a seed is also problematic - some DVD players do not implement counter registers or if they do are very restrictive in how you change the register mode, so you can't just set out a timer and get a seed based on user input. If this were DLP I'd have a menu with multiple cells and cell commands that increment a GPRM, then when the user selected something on the menu I'd capture the GPRM to use as a seed - however, DVDA4 isn't quite there with functionality, so I've no good suggestions on how to get a good seed with DVDA4 yet.

GPRM4 = GPRM0
GPRM5 &= 2047
if (GPRM5 > 2046) GPRM5 = 2046
if (GPRM5 < 1) GPRM5 = 1
GPRM0 = GPRM5
GPRM0 &= 17
if (GPRM0 == 1) GPRM5 += 2048
if (GPRM0 == 16) GPRM5 += 2048
GPRM5 /= 2
GPRM0 = GPRM5
GPRM0 %= GPRM4

--Scott
DGrob wrote on 1/16/2007, 2:09 PM
Wow. Fascinating info. Got my work cut out to play with this a bit. Thank you all very much.

Darryl