View Full Version : Making Slide Show Select Play or Play All?
BassPig
26th February 2004, 03:13
I'm working on an "audio archive" DVD. The client tells me to expect about 180~ music pieces to be included.
He has begun experimenting with small-scale demos of the project to get a feel for the form and function of the DVD and to see what works and what needs to be changed from original plans.
So we're starting with a sampler to get the format and menu structure decided. The sampler contains only four music selections.
He wants the intro to be the usual copyright warning. That times out to an intro page telling about the disc contents. That times out to the top menu, which has two options:
1. Go to Selection Menu
2. Play All Tracks
I've got #1 figured out, as that was a no-brainer. But #2 I think gets into higher programming functions.
I have a screen shot of the layout below. We want to keep things lined up in this one-sequential-PGC layout to keep timecode intact and allow searching via the remote keypad.
My question is, is it possible to link these last four slides together in such a way that, depending which menu entry point started them, they will play sequentially, one after the other, or play the one selected slide, then return to the menu?
I set up the actual slides as slide show with audio. They have subpictures with BACK and MENU buttons, per client's request.
Here's the layout. Informed opinions on best way to provide alternate play behavior are greatly appreciated.
http://home.earthlink.net/~basspig/images/LA%20Layout.gif
Clown shoes
26th February 2004, 12:48
BassPig, do you mind me asking if you are using a version of Scenarist limited to one VTS? Also is there a reason for having the menus as part of the sequential PGC? I think if you put another title containing non sequential PGCs within the VTS you should maintain timecode within your play all but each individual track in the selection title will have it's own timecode. This will also reuse the assets without using any extra disc space. I hope I have understood correctly what you are trying to acheive.
Clown Shoes
BassPig
26th February 2004, 18:16
I put everything in one VTS because I discovered quite by accident recently that this produces a disc that displays timecode.
I had pondered the idea of doing a parallel VTS with the assets linked differently, however, there are going to be over 180 selections on this disc eventually, and what I've show above is for just four selections. The complexity will grow enormously and if I have to double it, it's likely to become a nightmare to author.
I was hoping there was some technique using the higher end functions of Scenarist to define different behavior depending on entry point origin. Is that not possible?
Dimmer
27th February 2004, 01:19
@BassPig
That's very simple to achieve using Cell commands to check whether to play the next program or return to the menu. You'll have to use a GPRM as a flag and set it to a different value in the Main menu and Track menu. Then check the GPRM in a Cell command, and if you came from the Track menu then go back. By default, it'll continue playing all cells. The Cell command will always be the same, so you can re-use one command in every cell.
BassPig
27th February 2004, 01:36
Thanks Dimmer, that's along the lines of what I was hoping I could do. I just need to figure out the actual programming commands to make that happen. I haven't made use of GPRMs before, but this is a good opportunity to learn. :)
I had an e-mail exchange with the client this morning and now he's talking about there being 250-300 music tracks in all for this project. Most of them are the same piece of music, performed in different years, so we'll have a disc grouped such that a title select menu with letters A-Z will take the viewer to the music titles beginning with that letter. Each letter links to a menu listing all songs starting with that letter. (This was a fairly prolific and well-known American author who peaked in popularity in the 1950s, so from 1939 to 1975, he's written quite a lot of music and many versions of performances evolved with recording technology.) So we are dealing with several recordings of the same piece in a given sub-menu, linking to as many text slides with 100 words or less about the piece, the recording and so on.
The conflaguration of links you see in the screen shot is just FOUR music selections. I'm somewhat concerned about keeping this project tidy as it expands to 300 selections!
But first thing's first, and that's to figure out how to use GPRMs to determine behavior. I'm going to crack open LaBarge's nice reference book and see what, if any, discussion is devoted to accomplishing this. I may come back to ask specific questions about getting started, if I don't figure it out from the book.
Thanks for defining the possibilities of this method.
BassPig
27th February 2004, 03:06
I think I have a clue as to employing GPRMs, after reading Chapt 6 of LaBarge's book on DVD authoring, but it doesn't get very specific, so I'm doing a lot of experimentation.
Here's what I assumed to be one approach to accomplishing the continuous vs stop after each track based upon which menu entry the command originated from:
On the menu that has "Play All" and "Select Track", I made the Select Track button include the following commands:
{MOV GPRM0, GPRM1 : LinkPTT <pgc name and button #>}
The intent here is to allow the Play All command to leave the cell links to behave in their default manner (to link to next cell and play until all cells have played).
My intent with the second command is to set a GPRM up for a later comparison at the cell level within the target program cells.
This is where I hit a roadblock.
Although there are two buttons (Back and Main Menu) on each slide/cell, the decision to play the next cell via default link or to compare GPRMs is not going to be associated with a button, as no button will need to be pressed for this decision to take place. The problem is, without button commands, there doesn't seem to be any way to compare GPRM values and make a decision.
The intent is to do the following:
GPRM0==GPRM1 link to selection menu
GPRM0==GPRM0 link to next cell
At the cell level of the slide show to be played, there is only a cell command drop down, but no compare options.
I thought I was onto something, but apparently I must be doing it all wrong. Assembly code was never my strength! :)
Dimmer
27th February 2004, 07:47
You're on the right track, but it's even less complicated. Let's use your scenario image as an example and GPRM0 as a flag. Here's what you do.
On the main menu (program 2) set button commands like this:
1. Go to Select Track: {MOV GRPM0, 1; LinkPGN <program 3>, button=#}
2. Play All : {MOV GRPM0, 0; LinkPGN <program 4>, button=#}
Program 3 here is Select Track menu and Program 4 is the first song.
Then double-click on a Cell box on any cell within the PGC and in the Simulation window/PGC Commands tab create a cell command:
1. if (GPRM0==1) LinkPGN <program 3>, button=0
Click on every cell with a song except the last one and in the properties window set Cell command to 1.
That's it. GPRM0 is set to 0 for Play all and to 1 for Select Track. Once each cell/song has been played, the cell command checks GPRM0. If GPRM0==1 then it returns to the Track menu, otherwise performs the default action, i.e. plays the next cell/song.
BassPig
27th February 2004, 08:26
Yes, while I was experimenting, I realized that I was only shifting the contents of GPRM0 to GPRM1 (duh!), so I figured out that I needed to check the Immediate box and enter the value there. That solved one problem.
I have a crude version of it working and the other half of the equation was editing the characteristics of the entry PGC. The cell commands weren't found directly on the cells--I discovered they're all found in the cell command menu off the PGC itself. That solved the other half of the equation.
I have it working such that if I play the track select button, GPRM0 gets set to 1 and then I navigate to the menu to play the track and when the track finishes, it returns to the entry PGC.
The only issue left now is that entry PGC plays a 15-second introductory screen, then links to the top menu or root menu. I want to skip this screen and link directly to the root menu without having the Title menu skip the 15-second intro screen. A cheap & dirty fix might be to move the 15-second intro into the Title PGC, and link the warning screen via cell command to it and leave it at that.
Thanks for pointing out the shortcut of setting cell properties from the dropdown menu. I never realized I could do that. Given the sheer quantity of tracks (up to 300 possibly), I need to keep manual entry for each track to the bare minimum.
[edit] I solved this next paragraph. Didn't realize I could select something other than the post command of entry PGC. Funny how mind sets limit our ability to look outside at alternatives when we get stuck in a rut the first time! I have it working the way I want now! I can make each track play then go to the menu of my choice, rather than the entry PGC. I'm using Type 3 commands to accomplish this comparison and return behavior. I think this opens the possibility to have different GPRMs (up to 99?) setup to take me back to different menus depending on which letter of the alphabet was entered from. The possibilities are amazing. Now the old paragraph (for historical purposes--disregard now):
To solve the entry PGC problem, I tried something unsuccessfully so far, which is to add a second Post command, simply linking to the Root menu. The first Post command links to the 15-second intro. But in actual testing, it ignores the second post command all the time. Why have the ability to stack post commands? Obviously, there's a whole 'nother range of functionality there that I'm unfamiliar with.
I'm also reading in LaBarge's book about compatibility and that having more than 75 cells in a PGC can present problems for some DVD players. Keeping in mind the desire to keep timecode working, I've been stubborn about keeping it all in one sequential PGC. But I wonder if there's a way to break the project up into 4 VTS and have each one of them have one sequential PGC with the intent of keeping time code intact. Make sense?
Dimmer
27th February 2004, 10:37
Okay, good to see you're making a progress. Few more pointers:
- Entry PGC refers to the entire PGC that's first in a title, not just a first program or a cell within PGC.
- There are only 16 GPRMs.
- Don't use Cell commands unless you're positive that there is no other way.
- If you want to split you project in parts, create additional title(s) within the same VTS instead of creating a new VTS.
- Put your Intro screen in a Title menu or a separate menu within the VTS. In fact, it's much more common to keep all menus within a language domain (i.e. under a folder that says English) rather than in a title domain. Otherwise in your example you would be able to jump from the main menu to track menu and back with the Next/Prev. buttons on the remote.
Good luck.
BassPig
28th February 2004, 06:30
I've learned a significant amount about these higher level program functions to create 'smart' DVDs in the past two days, so I am pleased with the progress and results. The project seems doable now.
From what I discovered about cell commands, it does indeed seem that the PGC is sort of a 'master shell' that wraps command syntax around all the video streams under its hierarchy. It wasn't immediately apparent as to what the scope of this supervision over the sub-linked items was, but I'm getting a clearer picture now.
At the moment, the LinkCN function is allowing me to achieve the program flow that I need to realize the client's goals. I am not yet aware of any pitfalls to using them, but if you know of any prominent ones, would you share them?
I may need to split the project, but I do not want to lose time code. I've done a few 'dumb' DVD titles (those where the functions were simple links between cells and menus) and in many of those I thought it sensible from an organizational standpoint to put different programs in separate titles, but all of those projects lacked timecode, so the search function was not available to end users.
If I could put the project into four VTS sections and use dummy PGCs to navigate across domains, would this retain the timecode on the player? I'm wondering if it might be worth building a version of this test disc using a split between two VTS?
This is powerful stuff. I'm starting to feel the rush of pleasure at taming the 'beast' to get it to do nifty tricks. Clients have no idea what we go through to realize their 'simple' requests. :)
Dimmer
28th February 2004, 09:02
You only lose timecode if you put more than one PGC in one title. Always use one PGC per title. Of course, the timer will restart from zero for each title.
In any case, you don't need to have more than one VTS. If you feel the need to split the projects in parts, create additional titles within the same VTS.
BassPig
28th February 2004, 20:44
I did not know that. I think that eliminates the concern over how to navigate across VTS domains.
And actually it is preferred for the timecode to start at zero for each program title, so that's good.
Should I be concerned about compatibility with DVD players when the project exceeds 75 cells per PGC? LaBarge seems to indicate on page 226 of his book, DVD Authoring & Production, that using more than 511 PTT in a VTS, or more than 75 cells in a PGC could cause playback failure on some players. Should I be concerned about this?
It is for this reason that I'm considering splitting the project (maximum 300 track titles) into four Titles, each with their one PGC.
Of course, I have to experiment with this and make sure doing so doesn't cause other problems.
Dimmer
29th February 2004, 12:48
Not sure about maximum number of cells and PTTs you can have, maybe someone around here could help with that. I suppose, most people don't get to author a DVD with such an extensive number of cells/PTTs.
BassPig
29th February 2004, 21:11
Okay, I think I have that part of the project under control.
Now I have a different question to solve before I submit the conceptual demo disc to the client: I'd like to have the DVD player 'remember' which menu button it entered from, so that when it's done playing and returns to that menu, that button is highlighted and not the first button, as is default.
Page 206-207 of LaBarge's book gives some examples, which I used as a foundation for implementing this, but I suspect there is another half to the equation.
Since I am already using GPRM0 and GPRM1 (I found that to do a jump between titles by linking, the 'immediate' option is not available, but I found I could compare GPRM0 to GPRM1 which is 0, and that works, so I'm leaving it alone) so I chose to set GPRM2=SPRM7 then I added another pre command: Mul GPRM2, 1024 and finally, Set HL_BTNN = GPRM2.
This did not work for me however. When cell finishes play and returns to the menu, it always goes back to button 1, not the button that was last pressed.
I may have a related problem with the default configuration of the Title and Entry menus, because when I press "Top Menu" on the DVD remote, the playback returns to the warning screen (first PGC in VMG) and the "Menu" button takes it to the entry PGC in VTS_1. I haven't figured out where the command is to make the Return function happen either. In the simulator, that returns a 'no group PGC' error.
There have been minor changes to the structure since I posted the screen shot, but the layout in the first two columns has remained basically unchanged. Perhaps there's something about that sequence that's incorrect if I want a menu to appear when the user presses 'Top Menu', and so on. Perhaps it's related to why the player doesn't remember which button was last used?
DaRat
29th February 2004, 23:06
In the Simulation Window go to Subpicture and Highlight > Highlight > set Forced Selected Button to None and you're done. BTW, set your PRE commands to highlight a button in all cases or else some players wont highlight any buttons.. :D
BassPig
1st March 2004, 08:52
Thanks for the forced hilight button tip.
Curiously, instead of button 1 being highlighted when program returns to menu, button 2 is now highlighted.
I investigated further by watching the Gen Params screen while the DVD was in simulation. I noticed that the GPRM2 that I assigned to follow the state of SPRM7 set to 1024 and stayed there, regardless of menu selection choices.
I can't help but to suspect I have only half the equation here.
Just as with the earlier bit of programming I needed in order to make two playback behaviours with the same assets reused--in that example, there were MOV commands on the menu, and Cell commands on the Entry PGC needed to make it all work.
In the case of the menu highlight that 'remembers' where user left off, I only have the pre commands that I mentioned earlier in this thread. I have three menus in that string (referring to my screen shot), each one leading to the next in a multi-level hierarchy.
How does the system know which menu has to have the 'remember' button highlight? I think something's missing on the menu programming side of this equation. Am I mistaken? Is the problem elsewhere?
Dimmer
1st March 2004, 22:39
Your plan to have the menus as programs within a title just backfired - when you jump to a menu, it changes SPRM7 since in fact you're apparently jumping to PTT2. To minimize the amount of manual work, you'll have to save SPRM7 in a GPRM within a Cell command. Use Type 3 command Set - Compare - Link like this:
{ Mov GPRM2, SPRM7 ; if ( GPRM0 == 1 ) LinkTopPGC, button=0 }
BassPig
2nd March 2004, 08:26
I suspected my whole layout was flawed foundationally, so I rethought the whole project and started out from scratch with an eye toward making the Title and Root menu remote buttons work consistent with industry standards.
That created new challenges, and I had to reinvent the wheel and solve each one by one, but it was a rewarding educational experience.
Here's the result: [discussion follows after screen shot]
http://home.earthlink.net/~basspig/images/LA%20Layout%20new.gif
Due to the change of layout, I had to discover new ways to 'get there from here'. It started with adding a CallSS RSM=1, TitleMenu cell command in the intro page. That linked over to the blocks at the left of screen.
Once there at the Title Menu, I needed a post command to get me to Title_1 down in VTS_2 (Program) domain.
Title Menu's buttons had to manipulate GPRMs to affect the playback sequence, depending on which button was selected, but it wasn't as simple to get to the Title_1 section when a Set GPRM command was issues. I ended up using the LinkTailPGC, Button=1 (using Post command of current PGC and adding a command their to link over to Title_1. (The order of these Post commands became important!) Of course I had the Mov GPRM0, 0 for button 1 and Mov GPRM0, 1 for button 2, so that the player would be able to alter the playback behaviour according to whether Play All or Select Composition was the entry point.
In the actual program cells, I used a cell command, IF (GPRM0!=GPRM1 CallSS RSM=1, RootMenu (the Immediate option was not available in this situation, so I used an unused GPRM, which defaults and stays at 0 value and did the comparison, which is same result as comparing GPRM0 to a value of 0). So the flow is, if the menu play all executes, GPRM0 is 0 and the entry point goes to the first cell in the program area, cells follow their default behaviour, progressing to next sequ cell. If GPRM=1, then cell plays and returns to track select menu.
Then I needed to attack the highlight button issue. I wanted the last used button to be highlighted when user returns to menu. Again, some interesting challenges. The LaBarge book described a method, using SPRM7, but that quickly became unusable because I wasn't coming directly from a menu one level up. The menus are nested a couple levels deep.
The solution was to have the menu button command assign the button's value to GPRM2 and then link over to the next menu.
Things got interesting at the Root PGC level now: I had the Mul GPRM2, 1024 and the Set HL_BTNN HLBTNN=GPRM2 commands in there. And that worked. When I entered from letter J on the menu (button 10), and later returned to that menu, Button 10 was highlighted. Nice!
Then I decided, why not have it increment to the next button, since the logical progression would be to watch the next set of slides. So I added another Pre command, Add GPRM2, 1, to increment the button value.
All was well and good until I got into multiple cycles of testing... it turned out that after two iterations of back and forth to the track select menu, the GPRM would overflow and the highlight would always go to the last button. I realized I needed to reset GPRM2 when going to the Title menu. So I added a post command in the title PGC, If (GPRM2 > 36864) Mov GPRM2, 0. This resets the register each time a call to the Title menu occurs, preventing GPRM2 from endlessly being multiplied by 1024 and overflowing.
I now have a test disc (with only one group of four selections, out of some 2500-300 to be added) that does everything I wanted. The Title button actually calls the Title menu and the Menu button actually calls the root menu.
One tiny problem occured when I pressed Menu while in the first play's second still--it jumped somewhere unexpected. But I UserOp restricted the Menu button and search buttons on that PGC, so the problem can't happen now.
The Track select menu remembers the last button user pressed and increments by one when it is called up or returns after play of selection.
The play sequence works as intended, with the GPRM0 being used to alter the play sequence of cells dependant on which menu button got the user there.
In all, it's a pretty darned good rebuild, and I think I have a more lucid understanding of better ways to set up my DVD projects now.
Once I finish this archival music project, going back to doing regular video program DVDs will seem simple by comparison, with only a handful of video programs to put on the typical DVD.
Dimmer
3rd March 2004, 04:01
Goo job BassPig. Naturally, you could have achieved the same in a less complicated way. For example, there is positively no need for Intro VTS; these elements clearly belong to VMG. The Menu button of course won't work while playing intro since the root menu in that VTS is not linked to anything. As for your button number overflow issues, the standard practice here is to assign your counter (GPRM2) to another temporary register and multiply the latter by 1024 without changing GPRM2. Anyway, it's great as long it works for you.
BassPig
3rd March 2004, 08:13
It was a lot of work and trial & error to find out what worked and what didn't and when one thing worked, it often created another problem elsewhere, so this project quickly became complicated.
I chose to place the Intro VTS as a separate domain, as I adapted the concept from LaBarge's book on pg 112. It's very difficult to clearly make out the diagram, as it's printed very tiny to fit the whole scenario on a paperback page, but I think that's what he did with the StarGaze DVD example.
I'm not certain how I would integrate FirstPlay into the VMG though.
Thanks for the hint about shifting the contents of GPRM2 to another GPRM. I'll have to work out the permutations of that and figure out if it's possible to protect the contents of GPRM2 without preventing it from incrementing when valid.
I was a little rusty, from not doing any sophisticated titles in almost 2 years, but now I'm getting 'into' it and back up to speed gradually.
The more I dig, the more I discover better, simpler ways to accomplish the same thing. Thanks to this forum, and the talented people on it, working stiffs like myself can find clues to get us out of ruts from time to time.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.