MrExplode / ShowManager

ArtNet and LTC timecode generator.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

icon ShowManager Build Status Codacy Badge Codecov

This project aims to be the "brain" of a prerecorded show by playing Art-Net timecode, sending scheduled OSC messages and playing audio tracks synced to timecode.

GUI

About

You can see the planned project layout above.
Please note that this is a hobby project of mine and it is WIP. Only wav files are supported. Some options can be only changed from the configuration file, notably

  • Audio output
  • Audio tracks

Features

  • Art-Net timecode generator
  • LTC timecode generator
  • MIDI timecode generator
  • Timecode triggered OSC message sending
  • Timecode triggered audio track player
  • Web user interface
  • Selectable output destination (eg. client1 plays Art-Net, client2 plays audio, and so on)

Building

ShowManager

You can build the Java artifact with:

./gradlew build

the artifact will be in build/libs

ShowManager-Frontend

ShowManager uses a web UI. Currently you have to build it separately and tell it's location to ShowManager.
The frontend is built with npm, obviously you have to install it first.

Setting up the repo:

npm install

Building the project:

npm build

Set the dist folder's path to the environment value showmanager.dist

Usage

Run the java artifact with:

java -jar ShowManager-<version>.jar

On the first run, ShowManager will create an empty config file. You may close ShowManager, as you probably want to configure some settings. The project json file is located at %APPDATA%/ShowManager/projects. You have to set the audio output, and add your tracks. Example:

"audio-player": {
  "enabled": false,
    "mixer": "Speakers (Realtek(R) Audio)",
    "tracks": [
      {
        "startTime": {
          "hour": 0,
          "min": 1,
          "sec": 5,
          "frame": 0
        },
        "file": {
          "path": "path/to/file.wav"
        },
        "volume": 1.0,
        "markers": []
      },
      {
        "startTime": {
          "hour": 0,
          "min": 10,
          "sec": 0,
          "frame": 0
        },
        "file": {
          "path": "path/to/other_file.wav"
        },
        "volume": 1.0,
        "markers": []
      },
    ]
  }

About

ArtNet and LTC timecode generator.

License:GNU General Public License v3.0


Languages

Language:Java 75.3%Language:C 24.1%Language:C++ 0.6%