Skip to content
stagesoftPublic

About

Open-source software for the synchronization and control of multimedia installations.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FormitGo

Open-source software for the synchronization and control of multimedia installations.

Modular architecture, precise synchronization, and centralized management.

Website: stagelab.coop/formitgo

What is FormitGo

FormitGo plays back video, audio and DMX lighting cues in sync across several networked machines. It is built on the cuems suite (Cue Management System), developed by Stagelab for theater and live-entertainment technicians.

  • Modular system. One machine acts as the main controller, while the others function as client nodes. The power needed to manage multimedia content is distributed across multiple devices, instead of relying on a single centralized machine.
  • Precise synchronization. Network-transmitted timecode with a resolution of up to a quarter of a frame keeps every element of your installation in sync. If any slight mismatch occurs, the system automatically and continuously readjusts.
  • Optimized installation. You only need one network cable to connect each node, so devices can be placed exactly where they are needed: next to the projector, screen, or sound equipment.
  • Centralized management. FormitGo is managed through a web interface, from any device connected to your local network, whether via cable or WiFi.
  • Simple installation. FormitGo is a plug-and-play system: a documented power-up and self-configuration protocol makes it adjust itself automatically just by being turned on in a specific way.
  • International. The interface is available in Catalan, Spanish, and English.

How it works

Browser (any device on the local network)
   |  HTTP + WebSocket
   v
Controller   cuems-frontend · cuems-editor · cuems-engine
   |  network timecode (MTC over RTP-MIDI) + cluster bus
   v
Nodes        cuems-engine ─┬─ video  → cuems-videocomposer
                           ├─ audio  → cuems-audioplayer (JACK)
                           ├─ DMX    → cuems-dmxplayer → OLA
                           └─ fades  → gradient-motion-engine

The controller also works as a node, so a single machine can run a whole show.

Components

Core

Repository What it does
cuems-engine Loads projects, generates the timecode and runs the cues on the controller and on every node.
cuems-editor Back end of the web interface: multi-user project editing and media library.
cuems-frontend Web interface for programming and running shows.
cuems-videocomposer Multi-layer video compositor with hardware decoding.
cuems-audioplayer Audio player for JACK.
cuems-dmxplayer DMX lighting player with fades, output through OLA.
gradient-motion-engine Timecode-driven fades and motion.
cuems-utils Shared Python library: cue model, XML schemas, configuration.
cuems-common System configuration, services, controller and node roles, WiFi access point.
cuems-midi-connector Wires the MIDI timecode on every machine automatically.
cuems-nodeconf Discovers and adopts nodes on the local network.
rtpmidid Sends the timecode between machines over RTP-MIDI (fork).

Libraries

Repository What it does
libmtcmaster MIDI Time Code generator.
mtcreceiver MIDI Time Code receiver used by the players.
oscreceiver OSC receiver used by the players.
cuems-mediadecoder Shared FFmpeg decoding library.
cuemslogger System log wrapper for the C++ components.

Third-party software we maintain forks of

Repository What it does
ola DMX output (Open Lighting Architecture), with support for the Eurolite USB-DMX512 PRO MK2 interface.
jack-volume Audio volume control on JACK, used by cuems-audioplayer.

We also keep builds of jackd2 and libossia adapted to our systems, with no functional changes.

Installation

FormitGo is already functional and in use in live shows and installations, and it is under active development towards its first release (Release 1). There is no standard installation method yet. It will be documented here when Release 1 is published.

FormitGo runs on Debian 12 (bookworm), amd64. In the meantime, you are free to install it from the source code on GitHub and experiment with it: each component's README explains how to build it. Questions are welcome on Discord and in GitHub Discussions. For a ready-to-use installation, contact Stagelab at info@stagelab.coop.

Documentation

Each repository documents itself in its README. Some also publish technical documentation on GitHub Pages: cuems-engine, cuems-editor, cuems-utils, cuems-videocomposer, cuems-nodeconf and gradient-motion-engine.

Community

  • Chat with users and developers on Discord.
  • Ask questions and share ideas in GitHub Discussions.
  • Report bugs in the issues of the repository concerned.

License

This project is licensed under the terms of the GNU General Public License v3.0 or later (GPL-3.0-or-later).

Being open-source software, FormitGo and the cuems suite do not depend on a single company: any group of developers can continue the project. Your infrastructure will never become obsolete or unsupported, and your equipment remains functional and versatile.

See the LICENSE file for the full license text.

Funding

This project is promoted by:

promoted_by_gencat

promoted_by_ess

This project is funded by:

funded_by_ministerio

Acknowledgements

  • The first versions of FormitGo were developed in collaboration with bTactic.
  • cuems-videocomposer is inspired by and partially based on xjadeo by Robin Gareus and on mpv.

About

Open-source software for the synchronization and control of multimedia installations.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors