Considering the past, a new approach to iRaccoonShow is needed.

At least, these goals should be achieved:

  • There should be single graphical application.

  • After opening the PDF document with the slides, the new iRacoonShow should record the sound and the slide transitions and generate the final presentation.

It’s left for the future the generation of the whole presentation as a PDF document.

Dependencies

wxPython integrates PyMuPDF from version 4.0 (https://docs.wxpython.org/wx.lib.pdfviewer.html). MuPDF seems to be faster than Poppler and not designed with Linux in mind. This imposes limitations when availability in other platforms is one of the main requirements.

PyAudio1 (the Python bindings for PortAudio) seems to be a better option than GStreamer. It is only the impression of a person that doesn’t program, but I’m afraid that GStreamer might be too Linux–centric. Of course, I’m comparing the libraries, not the bindings themselves.

As long as there no other output format than Flash, SWFTools and its Python module are a requirement. In the future, final presentations as PDF documents should be an option, at least.

Functionality

I would like to keep the new program as simple as possible. Key features would be:

  • There has to be single graphical program.

  • Only the slides in a PDF document should be required to start the program.

  • After having recorded sound and slide transitions, the user should have the final presentation with its loader, both in Flash format.

Usage

The requirement of the PDF document containing the slides leaves the choice to the user on how to generate the slides. There are many ways of doing it. It is up to the user how the PDF document is created. Conversion to Flash format is fully automatic, but it has a drawback: you cannot include movies in the presentation.2 After all, the whole presentation is a movie.

  1. The main window should have an button to load the PDF document.

    Dropping the PDF file should have the same effect.

  2. Once mouse is clicked (or the spacebar is pressed), the main window displays the PDF document in full screen and starts recording audio and slide transitions.

  3. Each time the mouse is clicked (or the space bar is pressed), a slide will be advanced and the time will be recorded.3

  4. When last slide is reached, mouse–clicking or pressing the space bar will stop voice recording.

  5. Without no extra user intervention, the Flash presentation should be generated.

Notes

  1. Since audio should be recorded as .mp3 file, another dependecy is needed: python-wavefile. The MP3 format has to be added to libsndfile

  2. Even if PDF documents may contain movies, keeping them in the resulting Flash file is impossible with a direct conversion in pdf2swf (the tool that rewrites PDF slides into the Flash document). 

  3. If possible, I would like to have a keystroke to pause recording (and also to pause time counting in slide transitions).