121 lines
2.8 KiB
Markdown
121 lines
2.8 KiB
Markdown
# gig.py
|
|
|
|
./gig.py [-w] show.yaml
|
|
|
|
Use the -w flag to run in regular windows rather than full screen.
|
|
|
|
## YAML
|
|
|
|
Define your set with:
|
|
|
|
set:
|
|
- item1
|
|
- item2
|
|
- item3
|
|
|
|
Define your preshow with:
|
|
|
|
preshow:
|
|
- item4
|
|
|
|
Define your items:
|
|
|
|
items:
|
|
item1:
|
|
title: Title
|
|
events:
|
|
- Display:
|
|
media: File.jpg
|
|
at: select
|
|
- Lyrics:
|
|
text: Text
|
|
at: start
|
|
|
|
## Time markers
|
|
|
|
Events are scheduled to happen at times. Times can be specified in terms of markers, and modified by bars, beats and hours/minutes/seconds.
|
|
|
|
There are two predefined markers:
|
|
|
|
* select - defined as the time the item is selected. This is typically used for an introduction to a piece.
|
|
* start - defined as the time the item is started. This is typically when backing tracks are played.
|
|
|
|
Other markers can be defined for convenience.
|
|
|
|
Every time specification must include at least one marker. The marker may be modified using addition or subtraction.
|
|
|
|
The following expressions can be combined:
|
|
|
|
* `<number> bars` - number of bars at the current tempo. The keywords `bar` and `bars` are both accepted.
|
|
* `<number> beats` - number of beats at the current tempo. The keywords `beat` and `beats` are both accepted.
|
|
* `<number>` - number of seconds
|
|
* `<number>:<number>` - number of minutes and seconds
|
|
* `<number>:<number>:<number>` - number of hours, minutes and seconds
|
|
|
|
Examples:
|
|
|
|
at: start + 4 bars - 1 beat
|
|
at: select + 1:23
|
|
|
|
## Event types
|
|
|
|
### Display
|
|
|
|
Displays image for the audience
|
|
|
|
* at - time to display the image
|
|
* media - filename of the image
|
|
* background - `[r, g, b]` (optional)
|
|
|
|
### Lyrics
|
|
|
|
Display lyrics for the audience
|
|
|
|
* at - time to display the text
|
|
* text - text to display
|
|
* duration - (not yet implemented)
|
|
|
|
### Playback
|
|
|
|
Play audio
|
|
|
|
* at - time to display the text
|
|
* media - filename to play
|
|
* device - output device to use (optional)
|
|
* channels - output channel map (optional)
|
|
* tempo - initial tempo (bpm) (optional)
|
|
* beats - initials beats in a bar (optional)
|
|
* leadin - time in seconds before the first beat (optional) (not yet implemented)
|
|
* loop - (True/False) loop at end of playback (optional) (not yet implemented)
|
|
* gain - gain to apply to audio in dB (optional)
|
|
|
|
### FadeOut
|
|
|
|
Trigger a fade out of the currently playing audio
|
|
|
|
* at - time to start fading
|
|
* db - dB of attenuation to reach before stopping (optional, defaults to 30dB)
|
|
* duration - number of seconds to reach the required attenuation (optional, defaults to 10 seconds)
|
|
|
|
### SetTempo
|
|
|
|
Set the tempo at a given time
|
|
|
|
* at - time at which to set the tempo
|
|
* tempo - new tempo (bpm) (optional)
|
|
* beats - new beats in a bar (optional)
|
|
|
|
### SetMark
|
|
|
|
Set time marker
|
|
|
|
* at - time to set the marker to
|
|
* name - name of marker
|
|
|
|
### ButtonMark
|
|
|
|
Set time marker based on external keypress
|
|
|
|
* name - name of marker
|
|
|