1.0.1 • Published 7 months ago

pptx-prompter v1.0.1

Weekly downloads
-
License
GPL-3.0-only
Repository
github
Last release
7 months ago

PPTX-Prompter

Prompter for PowerPoint

github (author stars) github (author followers) github (project stdver) npm (project license) npm (project release) npm (project downloads)

About

PPTX-Prompter is a client/server application for showing a prompter view for Microsoft PowerPoint ® presentations (under Windows or macOS), based on embedded, hidden, even numbered, pre-exported slides. It is intended as a replacement (or companion) for the standard slideshow view of PowerPoint and provides two killer features:

  1. Arbitrary Formatting: It allows a reasonable text formatting of the presenter content, including arbitrary graphical elements. Whatever you can put onto a PowerPoint slide can be used as the individual presenter content. You are no longer constrained by the extremely limited text rendering possibilities of the standard slideshow view.

  2. Analog Clock: It provides a nice Analog Clock, showing the done and remaining speaking time. The analog type of the clock is key, as it optically does not stress the speaker as much as a counting digital clock, does not require the speaker to perform any math calculations during his adrenalin spiced performance, and especially allows the speaker to get the current timing status with just a quick glance.

The application, written in TypeScript, consists of a central Node.js-based server component and a HTML5 Single-Page Application (SPA) as the client component. The prompter view can be opened in a fullscreen browser like Google Chrome or in a browser source of OBS Studio. In the latter case, one usually also projects the attendee content (on the beamer display) in realtime onto the left top corner of the prompter view with the help of NDI Tools to get an even better user experience.

Overview

The following is a screenshot of a prompter view corresponding to the title attendee slide of a presentation: On the top left is the preview of the current attendee content, below is the current (logical) slide number and the preview of the next attendee content and at the bottom left is an analog clock showing the done and remaining speaker time. On the right is the presenter content.

screenshot

Here is the corresponding setup overview: On the left is PowerPoint in its editing view, where the odd numbered slides carry the attendee content and the even numbered slides carry the presenter content. On the right top is the PowerPoint slideshow control view (usually visible on the notebook monitor), on the right middle is the PowerPoint attendee view (usually visible on the beamer) and on the right bottom is once again the presenter view (usually projected onto an external monitor, staying in front of the keynote speaker).

overview

Usage (Production)

Usage (Development)

  • Under Windows/macOS install Node.js for the server run-time and Google Chrome or OBS Studio for the client run-time, plus Visual Studio Code with its TypeScript, ESLint and VueJS extensions.

  • Clone the source code: git clone https://github.com/rse/pptx-prompter

  • Install all dependencies: npm install

  • Run the development build-process once: npm start build-dev

  • Run the development build-process and prompter server component continuously: npm start dev

  • Open the prompter client in Google Chrome: https://127.0.0.1:12345/

Workflow

The workflow is as following:

  1. Create a PowerPoint presentation with arbitrary attendee content on the non-hidden, odd numbered slides 1, 3, 5, etc. Create your presenter content on the hidden, even numbered slides 2, 4, 6, etc. -- by optionally using the Presenter Canvas background overlay, to know where PPTX-Prompter will insert its sidebar content on the left.

  2. Export the PowerPoint presentation as PNG files SlideN.png (N = 1, 2, ...) with resolution 1920x1090 pixels through the regular PowerPoint export functionality.

  3. Run PPTX-Prompter side-by-side to PowerPoint to let it create the prompter view. Use option -d to locate the pre-exported slides and option -u to control the analog clock.

Architecture

PPTX-Prompter consists of a server and client component. The server component reads the pre-exported slides of the PowerPoint presentation from a folder and continuously polls PowerPoint for its run-time state (viewing mode and current slide). The client component is served by the server component via HTTP, renders a read-only prompter view, and connects via WebSocket back to the server. On every PowerPoint status change (usually caused by a slideview change, triggered with a keyboard emulating remote control device), the server component pushes new information to the client component via WebSocket which in turn updates the read-only prompter view by loading the corresponding pre-exported slide image files from the server component via HTTP.

See Also

Copyright & License

Copyright © 2023 Dr. Ralf S. Engelschall Licensed under GPL 3.0