Pi Presents Version 1.3 [gapless] is Released

I am pleased to announce that the next version of Pi Presents is released as a beta for you to try.

[pipresents-gapless] incorporates 5 major enhancements and a large number of smaller enhancements and bug fixes. The major enhancements are:

– Gapless transitions between tracks. The transitions are not seamless but give a much improved feel to shows.

– Multi-window, many shows can be run concurrently sharing the screen.

– A much improved time of day scheduler which will work for any type of show and can vary the schedule by day of the week, day of the month, or special days.

– Remote control system using the Open Sound Control protocol so Pi Presents units can be networked together or Pi Presents can control or be controlled by any other computers supporting OSC, including IOS and Android.

– Many improvements to the triggering and sequencing of mediashows.

All the enhancements are in changelog.txt.

You can download the new version here and a set of examples in the [pipresents-gapless-examples] companion repository.

The first two features necessitated a rewrite of the code for all the shows and players; I took the opportunity to extract common code and to streamline the functionality where it was unnecessarily different. Even after extensive testing I am sure a few bugs remain. Please try the new version and report anything that does not feel right or could be enhanced here (registering for Github is free and there is no requirment to upload your own code). For how do I, why can’t I, questions please use the comments on this blog article.

The other effect of the rewrite is that the profile data has changed significantly and there has been changes to the structure of profiles. The editor will add new fields to the profile but there is a significant amount of manual change to be made if upgrading your profiles from version 1.2. You must read the releasenotes.txt which will refer you to the last Section of the manual where necessary modifications to profiles are described.

I’m very excited about this version. I have just been running the multi-window example which has 4 mediashows and a menu all running concurrently on the screen, showing 2 videos in parallel, and controlled by remote control. I struggles a bit on the original B but sails along on the B2.

I will be developing this beta further in the coming months. The core shows and tracks are now quite mature, but I am sure you will have ideas for further improvements. I will be concentrating on the remote control, an input/output plugin system to make it easy for people to add their own peripherals, and new peripherals such as RFID and LIRC. If Pi Juice turns out to be as good as advertised I will also be making it work with Pi Presents to produce a free standing, power glitch/switch off tolerant system.

Anyway enough waffle for now, I hope you enjoy the new version.


This entry was posted in Uncategorized. Bookmark the permalink.

20 Responses to Pi Presents Version 1.3 [gapless] is Released

  1. Ben says:

    I am trying to overlay different audio for each sub show or slide/video. Is this possible and if so how.

    • KenT says:

      use a mediashow containing the audio track for each overlay track. Then use show control commands to open the mediashow at the start of each slide track and close it at the end.

  2. Keith says:

    I love the software. I’m using it for a picture frame/home automation system. I have a collage setup that plays 7 liveshows simultaneously. I’m rotating the directories that feed the shows using a cron job. So every 15 minutes the shows switch directories.

    What I’d like to do is rotate the directories when one of the shows (specific show) finishes. I looked in the manual but I didn’t see a way of triggering a shell script when a show finishes. Is this possible?

  3. Rogier says:

    @KenT, amazing project, thanks for sharing!

    Anyone managed to make OSC running?
    And available to help me a little?
    I have an arduino sending osc message.
    With Qlab i can receive the output so it is working.

    But now…
    I can open the example, but how can i control the example?
    Which OSC commands do i need to send to start / stop for example?


  4. David Guest says:

    Here is what I would like to construct:

    A main presentation which includes a liveshow half way through the main presentation…

    If the liveshow has data in the directory, then I would like the screen to be split into two equal sized windows, with the main show continuing in one window and the live show being shown in the second window. when the live show data has been displayed, it would stop and the screen would be full sized, with the main show continuing.

    If no live show data exists, then the screen would not be split.

    Is this possible? If so could you show me an example?

    I lost your email address, because my email system crashed and I lost all my contact information…

    Please send me a note at dpguest@aol.com and I will update you as to our progress with your wonderful product.

    • KenT says:

      Hi David
      Sorry I cannot think of a way to do this with the current software. There is code to start one or more shows from a track but not from a show and its not conditional. It might work for the start and stop code to be called in liveshow when the list is empty or not but I suspect its not as simple as it sounds on first glance . I can provide a few pointers to the pertinent code if you want to have a go at the mods.

  5. Zinc says:

    Does this require X? I’m looking for something better than “fbi” that works with the frame buffer device. “fbi” is almost good enough, but what I want to see is transitions like fade, dissolve, wipe, etc.

  6. For our community theatre I want to use PiPresents to trigger specific videos using DMX. I’m thinking this can be done with GPIO. The Pi cannot receive DMX signals natively so I either get a Pi add-on board or use an extenral board. I have some experience with reading and consuming dmx signals with the Teensy board (that is easy). The teensy also has a number of its own GPIO pins and this would make it easy for me.

    The problem is how to communicate from GPIO to GPIO as both are in a HIGH state waiting for the pulldown.

    Any ideas how to approach this?

    • DrFunn1 says:

      Experiment with OSC instead of DMX for controlling PiPresents. Its easy to create a custom control interface with buttons and feedback about the state of PP on your smartphone or tablet with TouchOSC app.

  7. vmolico says:

    Hi Ken,

    can you please upload a tutorial showing how can you start synchronised play on 2 different RPIs?
    Everything else in your manual is explained extremely clear except section 14. Well, at least for me 🙂
    I can make the RPIs communicate, I can send messages to one another, but can’t start playing the devices in the same time. I intend to use PiPresents in my final degree show (2 weeks from now) and the RPIs need to start automatically in sync. Is that even possible?

    Bear in mind that I’m a total newbie (I’m an artist, not a programmer) and probably most of the people using this feature will be more on the artistic side of things.

    Would you also be available for hire as a freelance helping me on this project?



    • Antonio says:

      I’d like some example or tutorial for synchronised play on 2 devices. Do you plan to support more than one slave for master eventually?

      • KenT says:

        Yes a tutorial would be useful. OSC development and documentation got interrupted by the summer and gardening arriving. I will try and improve the documentation in this area. Another user said he would try multi-client development.

        Meanwhile there are a couple of examples that have OSC. From the manual SEction 14.4

        pp_multiwindow_1p3 has an osc.cfg file which allows it to be controlled by
        oscremote.py; just remove all the shows from the Start Show and control them from
        pp_showcontrol_1p3.py has an osc.cfg file which allows it to send output commands from
        the show control field of the two image tracks to mirror control of the audio show.
        These can be monitored by oscremote.py (remove shows from Start Show).

  8. rocatravel says:

    Hi Ken,
    first, thank you for putting the effort in writing this piece of software.
    Just one thing, the manual.pdf can’t be read by pdf viewers on a Rapsberry Pi 🙂 I’ve tried the default one an evince.

    I can’t wait to test the network synchronised play and let you know how it goes. Fingers crossed.


    • KenT says:

      Works OK with Xpdf on the latest version of Raspbian. I had a report the other day that the manual was not readable if you right-clicked>save as on the github page.
      Very interested to hear your OSC experiences.

  9. toozie21 says:

    Just so I am clear, pi presents gapless is a different program from pi presents next?

    • KenT says:

      No. [pipresents-gapless] is version 1.3 of Pi Presents. It has a number of enhanced features compared with [pipresents-next]. The profiles you used for [pipresents-next] can be upgraded to work with gapless.

      I have made the two versions available in separate repositories so that people can choose which to use.

      The names [pipresents] and [pipresents-next] are a bit confusing. The original plan was the when [pipresents-next] had finished its beta phase the code would be moved to the [pipresents] repository. On reflection I decided that this was a bad idea as it would cause great confusion. Now the aim is that every new version will have a new repository; the name will just what I choose, just like Debian has wheezy and jessie, and I chose [pipresents-gapless] for Version 1.3.

      So the major versions are:
      [pipresents] is version 1.1 (now not supported)
      [pipresents-next] is version 1.2 (now the stable version which will not change except for bug fixes.)
      [pipresents-gapless] is version 1.3 (now the bleeding edge beta version)

      The set of profile fields will change between major versions and using the editor will do an automatic update of the fields. You will then have to do manual updating of field contents.

      Within a major version there are minor versions e.g. 1.2.1, 1.2.2 etc.
      A change of minor version usually means that the set of profile fields has changed. Updates by the editor are not automatic and you will need to use the –forceupdate command line option. Changes to the minor version should not happen for anything other than the current beta (gapless).

      Within minor versions there will be updates signified by 1.2.2a, 1.2.2b etc.

      I have just completed an update of the pages of the blog so hopefully all is clearer and self consistent.

      • toozie21 says:

        Thank you, that makes a lot more sense. So if someone is starting fresh (like I am), I should probably go straight to pipresents-gapless, right (unless I am worried about beta bugs creeping in)?

        • KenT says:

          Difficult for me to judge for you but if you are comfortable with Linux and computing in general and have the time then, yes. If you are a computer user rather than a do’er, want something stable, and do not need the rather nice enhancements in [gapless] then no.

          My experience with [pipresents-next] was that although beta and constantly changing it was always pretty stable through its 10 iterations.

  10. doce73 says:

    Reblogged this on ledtolight and commented:
    Ken is amazing

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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