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.
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
- 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)
You can build the Java artifact with:
./gradlew build
the artifact will be in build/libs
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
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": []
},
]
}