https://github.com/MrExplode/ShowManager
ArtNet and LTC timecode generator.
https://github.com/MrExplode/ShowManager
artnet ltc smpte timecode timecode-generator
Last synced: 3 months ago
JSON representation
ArtNet and LTC timecode generator.
- Host: GitHub
- URL: https://github.com/MrExplode/ShowManager
- Owner: MrExplode
- License: gpl-3.0
- Created: 2020-01-18T14:58:06.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-11-15T02:16:41.000Z (3 months ago)
- Last Synced: 2025-11-15T04:11:57.641Z (3 months ago)
- Topics: artnet, ltc, smpte, timecode, timecode-generator
- Language: Java
- Size: 2.45 MB
- Stars: 53
- Watchers: 4
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-audiovisual - Timecode - ArtNet and LTC timecode generator, made with Java. `✓ open-source`. (Tools / Timecode)
README
# ShowManager [](https://github.com/MrExplode/ShowManager/actions) [](https://www.codacy.com/gh/MrExplode/ShowManager/dashboard?utm_source=github.com&utm_medium=referral&utm_content=MrExplode/ShowManager&utm_campaign=Badge_Grade) [](https://app.codecov.io/gh/MrExplode/ShowManager)
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.

## About
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
- [x] Art-Net timecode generator
- [ ] LTC timecode generator
- [ ] MIDI timecode generator
- [x] Timecode triggered OSC message sending
- [x] Timecode triggered audio track player
- [x] 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:
```shell
./gradlew build
```
the artifact will be in `build/libs`
### UI
ShowManager uses a [web UI](webapp). In order to use you have to build it first, using standard [web tooling](https://pnpm.io).
```bash
# First setup
pnpm install
```
```bash
pnpm run build
```
After setting up the project with `pnpm install`, you can use the `build-webapp` gradle task for building. It runs the pnpm
build command internally.
```bash
# example full clean build, without tests
./gradlew clean build build-webapp -x test
```
Set the `build` folder's path to the environment value `showmanager.dist`
# Usage
Run the java artifact with:
```shell
java -jar ShowManager-.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:
```json
"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": []
},
]
}
```
Run again, and open the web UI on the host+port that's specified in the project settings. It defaults to `http://127.0.0.1:7000`.