Building a large mediashow with sub-shows

I recently want to construct a mediashow contaning over 100 slides. It showed the history of a nature reserve from 150 million years ago until the present day.

Organizing the large number of slides was problematic until I used sub-shows. Each era of 10 or so slides was made into a separate mediashow each with its own medialist. I then made a top level mediashow which had all the individual shows as sub-shows.

Each of the sub-shows can have show-text to describe the era; this is displayed on all slides in the sub-show.

When preparing the show I found it annoying to skip through a large number of slides to check the order of the later slides. I solved this by using the medialist for the top level show in a menushow, then all the different sub-shows became items in a menu.

10 Responses to Building a large mediashow with sub-shows

  1. Sheutran says:

    Hello Ken,
    Thank you for the pipresent development. I am new to this, and the raspberry envirronment so I go slow and would appreciate your feedback as regarding to my setup. I am using the gapless version of pp:
    — I want my presentation to start playing fullscreen a video looped seamlessly. Moreover, I need 5 radiobuttons (i.e GPIO inputs) to jump between differents shows (show an image, show a video, no more) , and whenever we hit one dedicated button, we go back to the looped video.
    —- I understood I had to use an Artlive media show if I want my video loop to be seamless. But when I try to edit a radiobutton show, I can’t seem to make it run an artlive media show (or “subshow” if we speak the same language).
    To top it off, I read that initial radiobutton controls were deactivated when running subshows, so I got very much confused and I would need a roadmap, or advices as regarding my problems ! thank you again for all the work you’ve done so far. Pipresents is definitely a tool I needed for my project.
    Greetings from france

    • KenT says:

      You need a radiobuttonshow with your video as the first track. The video will repeat, you do not need to enclose it in a show. Provided Freeze at End is yes for the video track you will find that, with modern Pi’s, the repeat is all but seamless. You might improve the seamless experience by setting Seamless Loop to yes and Freeze at end to No.
      If you want more than one track per radio button then you will need the entry to be a mediashow. Provided you do not want to control the tracks in the mediashow you do not need to worry about deactivating controls as ‘stop’ will stop the mediashow and return to the video

      Its quite easy to try out the various options, that’s what I do because I am forgetting the detail of how PP works these days 😉

      • Sheutran says:

        Haha, allright, thank you very much indeed for your quick reply. I have done little progress since last time but I will go on investigating in the direction you gave. I’m still discovering some obvious features yes. Thank you for your hints and tips. And I hope pi present will have a great longlasting life as a software !

  2. Emma says:

    Hi KenT!

    Thank you so much for all you have done. I am hoping to make different sub-shows or child shows (whichever works for what I want) to trigger on various inputs.

    I want the sub-shows to be able to trigger on the following inputs:

    1) touch/click.
    2) time
    3) osc

    I understand how to map the trigger so that the show switches between different slides, but I’m hoping that you will be able to help me also map them so that the different shows can trigger from one to the next. Is this possible? How would I go about doing this? Or, is there somewhere that this is documented that I can look at?

    Thanks again!

    • KenT says:

      You should definitely download gapless. Gapless can run multiple top level shows concurrently which adds a lot of possibilities.

      Gapless and next has show control which enables one top level show to be started from another

      1) single touch/click

      Lots of trigger possibilities with gapless, more than next.

      2) time of day

      you can start top level shows with gapless and the time of day scheduler is much better than next.

      3) OSC signals

      You can start top level shows with gapless

  3. Victor says:


    I have problem with MenuShow.

    I set one MainShow and one SubShow, and both of these shows have backgroundImage (200KBytes).

    I want to switch page between MainShow and SubShow, but it always takes 2~3 seconds when switch page, it seems like menushow loading bakcgroundImage need 2~3 seconds.

    Please tell me how to solve this problem?

    Sorry for my poor English.

    • KenT says:

      Yes, its loading the background image. However 200K seems a small size image and I would not expect 2-3 seconds. It might help if the image is the same size as the screen and does not need manipulation. Otherwise there is not much you can do about it, it’s a consequence of the Raspberry Pi being low power and Pi Presents not being optimised. I’m working on a new version which hopefully will improve things by caching images and only loading them when they change.

  4. Roger Sheets says:

    Perfect; I’ll get that from GITHUB.

    I intend on using PI Presents at the Tampa Audubon resource center ( to highlight the wildlife the local photographers have captured on “film”. Beyond that, I can see using several kiosks with menus for the children, e.g. identifying turtles and snakes.

    I’m a retired software developer of 39 years mostly in the database area. Now, I photograph wildlife and give presentations.


  5. Roger Sheets says:

    Would you please provide an example of sub-shows?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s