/ontime

Time keeping for live events

Primary LanguageTypeScriptOtherNOASSERTION

Ontime build v2 License: GPL v3 Documentation in Gitbook

Download the latest releases here

Download MacOS Download Windows Download Linux Get from Dockerhub

Ontime

Ontime is an application for creating and managing event running order and timers.

The user inputs a list of events along with scheduling and event information. This will then populate a series of screens which are available to be rendered by any device in the Network.

This makes for a simple and cheap way to distribute over a venue using a network infrastructure instead of video outputs.

App Window

Views

Using Ontime

Once installed and running, Ontime starts a background server that is the heart of all processes. From the app, you can add / edit your running order and control the timer playback.

Any device with a browser in the same network can choose one of the supported views to render the available data. This is done by reaching the ontime server at the default port 4001 eg: localhost:4001 or 192.168.1.3:4001
You can then use the menu in the top left corner to select the desired view. The menu will be initially hidden until there is mouse interaction.

In the case of unattended machines or automation, it is possible to use different URL to recall individual views and extend view settings using the URL aliases feature

For the presentation views
-------------------------------------------------------------
IP.ADDRESS:4001            > Web server default to presenter timer view
IP.ADDRESS:4001/timer      > Presenter / Stage timer view
IP.ADDRESS:4001/minimal    > Simple timer view
IP.ADDRESS:4001/clock      > Simple clock view
IP.ADDRESS:4001/sm         > Stage Manager / Backstage view
IP.ADDRESS:4001/public     > Public / Foyer view
IP.ADDRESS:4001/lower      > Lower Thirds
IP.ADDRESS:4001/studio     > Studio Clock
For management views
-------------------------------------------------------------
IP.ADDRESS:4001/editor    > the control interface, same as the app
IP.ADDRESS:4001/cuesheet  > realtime cuesheets for collaboration

More documentation is available in our docs

Feature List (in no specific order)

  • Distribute data over network and render it in the browser
  • Different screen types
    • Stage Timer
    • Minimal Timer
    • Clock
    • Backstage Info
    • Public Info
    • Studio Clock
    • Countdown
    • Make your own?
  • Configurable Lower Thirds
  • Collaborative editing with the cuesheet view
  • Send live messages to different screen types
  • Differentiate between backstage and public data
  • Workflow for managing delays
  • Rich protocol integrations for Control and Feedback
    • OSC (Open Sound Control)
    • HTTP
    • WebSockets
  • Roll mode: run standalone using the system clock
  • Headless run: run server in a separate machine, configure from a browser locally
  • Countdown to anything!: have a countdown to any scheduled event
  • Multi-platform (available on Windows, MacOS and Linux)
  • Companion integration

Unopinionated

We want Ontime to be unique by targeting freelancers instead of roles.

We believe most freelancers work in different fields and we want to give you a tool that you can leverage across your many environments and workflows.

We are not interested in forcing workflows and have made Ontime so, it is flexible to whichever way you would like to work.

Rich APIs for workflow integrations

The app is currently being developed for a broad user base, from broadcast to entertainment and conference halls.

Taking advantage of the integrations, we currently use Ontime with:

  • disguise: trigger Ontime from d3's timeline using the OSC API, and render views using d3's webmodule
  • OBS: render views using the Browser Module
  • QLab: trigger Ontime using OSC API
  • Companion: Ontime has a companion module. Issue report and feature requests should be done in the repository getontime/ontime

Make your own viewer

Ontime broadcasts its data over WebSockets. This allows you to consume its data outside the application.

Writing a new view for the browser can be done with basic knowledge of HTML + CSS + Javascript (or any other language that can run in the browser).
See this repository with a small template on how to get you started and read the docs about the Websocket API

Headless run️

You can self-host and run Ontime in a docker image.

The docker image along with documentation is available Docker Hub at getontime/ontime

If you want to run this image in a Raspberry Pi, please see the docs

Roadmap

Continued development

Several features are planned in the roadmap, and we continuously adjust this to match how users interact with the app.
Have an idea? Reach out via email or open an issue

Issues

We use Github's issue tracking for bug reporting and feature requests.
Found a bug? Open an issue.

Unsigned App

When installing the app you would see warning screens from the Operating System like:

Microsoft Defender SmartScreen prevented an unrecognised app from starting. Running this app might put your PC at risk.

or

Ontime can't be opened because it is from an unidentified developer

or in Linux

Could Not Display "ontime-linux.AppImage

You can circumvent this by allowing the execution of the app manually.

  • In Windows: click more and select "Run Anyway"
  • in macOS: the solution in macOS is different across versions, please refer to the apple documentation
  • In Linux: right-click the AppImage file -> Properties -> Permissions -> select Allow Executing File as a Program

Long story short: Ontime app is unsigned.
Purchasing the certificates for both Mac and Windows would mean a recurrent expense and is not a priority. This is unlikely to change in future. If you have tips on how to improve this or would like to sponsor the code signing, please open an issue

Safari

There are known issues with Safari versions lower than 13:

  • Spacing and text styles might have small inconsistencies
  • Table view does not work

There is no plan for any further work on this.

Contributing

Looking to contribute? All types of help are appreciated, from coding to testing and feature specification.

If you are a developer and would like to contribute with some code, please open an issue to discuss before opening a Pull Request.
Information about the project setup can be found in the development documentation

Help

Help is underway! ... and can be found here

License

This project is licensed under the terms of the GNU GPL v3