ShowTimeCoda manual
How to install ShowTimeCoda, build a show, and send or follow timecode.
For ShowTimeCoda 0.8 beta and later, on Windows. For a summary of what ShowTimeCoda does, see the spec sheet; for complete rigs, see the example setups.
1. Install and first run
What you need
- A PC with Windows 10 or 11, 64-bit.
- For MIDI Time Code or MIDI triggers: a MIDI output, either a hardware interface or a virtual port such as loopMIDI (free) to reach software on the same PC.
- For LTC: a spare audio output (or input, to follow LTC). A USB audio interface is ideal.
- For NDI video into Capture or other NDI software: the free NDI Tools from NDI. ShowTimeCoda uses the NDI runtime they install and doesn't bundle its own.
- For Art-Net timecode and OSC: a network connection to the other system, or nothing at all if it runs on the same PC.
Install
- Download the installer from the download page and run it.
- Windows may warn that the publisher is unknown. Choose More info, then Run anyway.
- Start ShowTimeCoda. The 30-day Pro trial starts on first launch with nothing disabled. The amber Trial button in the top bar shows how many days are left.
The first time you switch on something that listens on the network (Chase from Art-Net, OSC remote control), Windows Firewall asks whether to allow ShowTimeCoda. Allow it on private networks, or ShowTimeCoda won't hear anything.
2. The main window
- Top bar
- The show's name (click to rename), New, Open, Recent, Save and Save As…; the mode switch (Master TC Out, Chase TC In); the Cue sheet; the Trial / Licence button; ? (this manual); Add media; and All stop, which cuts everything at once: the cue, every sound pad and the generator (while chasing, the media goes silent and black and timecode runs on). Auto-offset is in Setup > Show timing.
- Page tabs
- Under the top bar: cue list pages (☰) and Cue Cart pages (▦). The live cue list has a dot. See Pages.
- Cue list
- One row per cue: number, title, Start TC, length and BPM, with its sub-cues (2a, 2b) indented beneath. The line that is playing now is filled green: the cue, or the sub-cue the playhead is in. A sub-cue you have picked (click it here, in the side panel, or on the Timeline window) is a grey line. The list scrolls to a picked or playing line by itself, so on a long show it never hides under the column headings; if you scroll away by hand it stays where you put it until the playing line next changes. The BPM column shows "…" while ShowTimeCoda is listening for a tempo (see Tempo). An empty list says add media: click it to pick files.
- GO button
- The green GO button, left of the timecode readout, takes the next step down the list and names it underneath ("Chorus song", "2a Verse"). See GO and sub-cues. It is off while chasing timecode.
- Cue Cart
- A row of big buttons (pads) under the cue list, and whole pages of them, that start cues or play sound effects. See The Cue Cart.
- Thumbnails
- Cues and pads show a small picture of their video, or the waveform of their sound. ShowTimeCoda makes these once, in the background, and keeps them on this PC (not in the show). Very long files other than WAV (over 30 minutes) get no waveform. Waveforms are coloured by what is in the sound, as on a DJ player: red for bass, green for the middle and blue for treble, mixed where there is more than one. A drop with a kick and bass looks red or orange; a breakdown without bass looks green or blue. It makes the structure of a track easy to see at a glance and to place markers on. After updating from version 0.8.29, every waveform is drawn once more, in colour, as it is next needed.
- Player strip
- The timecode readout, the big remaining-time countdown, transport buttons and the scrub bar. It stays
in view however long the cue list gets. While chasing, the chase bar sits on top of it. The scrub bar shows the
whole media file with its waveform, so you can see the beats. The cue's start and end points are thin green and red
lines with a tab at the top: drag them to trim, double-click one to go back to the file's start or end. The parts the
cue doesn't play are shaded, and the line in the middle of the readout says which part plays. Drags snap to whole
frames and change the cue when you let go. On a Cue Cart page, the strip shows the selected sound pad instead (see The Cue
Cart).
Zoom and height (for a single screen, where there is no room for the Timeline window): four small buttons sit at the top right of the scrub bar. + and − zoom in and out around the playhead and ↔ shows the whole file again. The mouse wheel over the bar also zooms, around the pointer, and Shift + wheel moves along the file. You can zoom in to about two seconds across the bar. While it is zoomed and playing, the bar follows the playhead, including a jump to a sub-cue (it waits three seconds after you zoom or move it, so you can look elsewhere in the file). Markers and handles off the bar are hidden until you move to them. ↕ steps the bar through three heights (slim, taller, tallest) and remembers the choice; the cue list gives up the room. The ⤢ button still opens the Timeline window.
- Side panel
- The video preview, Open output window, and the Inspector, where you edit the selected cue.
- Status bar
- The timecode going out (OUT) and coming in (IN), a light for every input and output, the Timeline window, Generator and timecode window buttons and the Setup cog.
Setup (the cog, bottom right) holds every input, output, trigger and remote-control setting as panels you open and close: everything going out first (tinted amber), then everything coming in (blue), then the timecode log and the show's own timing. ShowTimeCoda remembers which panels you left open.
Connections belong to this PC, not to the show, as in BEYOND: ports, sound cards, network addresses, the chase source and the output offsets stay as they are whatever show you open, and changing them doesn't need a Save. The show keeps its own mode, frame rate, show offset, pre-roll, crossfade and panic fade (Setup > Show timing), and its pages, cues and pads. A show file still records the connections it was saved with: a PC with nothing set up yet takes them over from the first show it opens.
3. Shows and cues
A show is a cue list plus its settings, saved as a .timecoda file. Media files stay where
they are; the show stores their paths (cues and sound pads alike), so keep media on the same drive
and folders when you move a show to another PC, or use File > Collect Media…, which copies it all into one folder
beside the show. When a show is opened somewhere else, ShowTimeCoda looks for the files beside the show and says which are missing.
Adding media
Click Add media, or drag files or whole folders from Explorer onto the cue list. A folder adds the audio and video directly inside it, in name order (2 before 10); anything else is skipped and reported. Drop onto a cue to put the new cues before it, or anywhere else to add them at the end. Drag cues to reorder them. ShowTimeCoda plays WAV, MP3, FLAC, Ogg, M4A/AAC and Opus audio, MP4, M4V, MOV and WebM video, and PNG, JPEG and WebP still images. An image cue (marked IMG) shows its picture for its Show for time (10 s unless you change it; blank: until the next GO), with timecode running over it like any cue; fades and crossfades work as for video. For video, H.264 in an MP4 file is the safest choice. Some video formats won't show their picture (MPEG-4 Part 2, ProRes, HAP, DXV, Motion JPEG; HEVC only on PCs whose graphics card decodes it): ShowTimeCoda checks each video as you add it or open a show, marks it with ⚠ and says so, because only its sound would play. Convert those to H.264 first (for example HandBrake's "Fast 1080p30").
Files you add that carry no tempo in their tags are listened to in the background for their BPM, one at a time and never while a cue is playing. Cues already in a saved show are not scanned again: use Detect on those.
Pages
A show is a set of pages, shown as tabs under the top bar, like BEYOND's Grid and Timeline. A new show has two:
- Show (☰), a cue list page: the cue list, its Inspector and a row of pads.
- Cue Cart (▦), a Cue Cart page: big pads, 4 to 8 per row (Columns).
Add more of either with +. Double-click a tab to rename it, drag tabs to reorder them, and right-click one for
Make live, Undock, Rename and Delete. F1–F12 open the pages in tab order and
Page Up / Page Down step through them. OSC /timecoda/page/2, /timecoda/page/next
and /timecoda/page/prev do the same, and Next page / Previous page can be learned as MIDI buttons.
The live cue list (marked ●) is the one that drives timecode: the transport, Chase, the cue sheet and remote
cue numbers (/timecoda/cue/3) all use it. Playing a cue on another cue list page (double-click it, or a pad)
switches over to that page and makes it live. In Chase mode, right-click a tab and choose Make live to choose
which list the incoming timecode follows. Switching the page on screen never stops anything.
A pad's key and MIDI note work only while its page is on screen, so the same key can do different things on each page. Older shows open with their cue list as "Show" and an empty "Pads" page (the page type is now called a Cue Cart page; rename the tab if you like).
Undocking a page
To use a cue list and a Cue Cart page at the same time, for example on two screens, right-click a tab and choose Undock. The page opens in its own window, which you can move to another screen; its tab shows ⧉. Keys pressed in that window play its pads, and Space, Esc and the other shortcuts still work there. In the main window that tab shows Show its window and Dock back. Close the window, or press Dock back, to return the page. ShowTimeCoda remembers where each page's window was on this computer, and opens it there next time if that screen is still connected.
Cut, copy and paste
Edit > Cut, Copy and Paste (Ctrl+X / C / V) work as usual in a text box. Anywhere else they work on what is selected: the selected cues (pasted at the end of the list, one after another); otherwise the selected pad (pasted on its page, with no key). The clipboard is inside ShowTimeCoda and lasts until you close it. Edit > Add Selected Cues to Cart makes a pad for each selected cue on the Cue Cart page you used last (or the first one with room), and skips a cue that already has a pad there.
Timecode-only cues
A cue doesn't need media. + Timecode cue (under the cue list) adds one with a Start TC and a Length
(leave it blank to run until stopped). Playing it sends timecode, MIDI and OSC triggers and MIDI Show Control like any
cue, with a black picture and no sound, and pre-roll and markers work too. Use it when ShowTimeCoda is the timecode hub:
for example Resolume sends /timecoda/cue/3 over OSC and ShowTimeCoda sends that cue's timecode on to a laser
timeline or a console.
Cue settings (Inspector)
| Title | The name shown in the cue list. |
|---|---|
| Start TC | The timecode at which this cue's start point plays. Each cue normally gets its own range, for example song 1 at 01:00:00:00 and song 2 at 02:00:00:00. |
| Start at / Stop at | Where playback begins and ends inside the file, so you can trim silence without editing the file. Type a time, or drag the green and red handles on the scrub bar. |
| Volume | 0–100%. |
| Show for | Image cues only, in place of the start and stop points and volume: how long the picture shows. Blank: until the next GO (it then has no set length on the timecode line, so Chase and Auto-offset skip it). |
| Fade in | Seconds to fade up from silence when the cue starts from the top. |
| Fade out | Seconds to fade down so the cue is silent (and black) at its end point. Stop fades it too; Stop again cuts. |
| Crossfade in | Playing this cue while another plays (Master): the old one fades out as this one fades in, over this long. Blank: the show's Crossfade (Setup > Show timing, 0 by default = cut). Timecode switches to this cue the moment the crossfade starts; the old one's tail plays without timecode, so the desk is already on the new song. |
| Then | Cue the next item and wait (stops at the end with the next cue loaded), Play the next item (plays straight on; with a crossfade, the next cue starts a crossfade-length before this one ends), or Loop this cue (plays again from its start point, seamlessly, with timecode jumping back each time round; ↻ in the cue list). Markers' triggers fire again on each loop; the cue's start triggers don't. |
| At the end | Video and image cues: what the screen (and NDI) shows when the cue ends without playing on, until the next GO: Next cue's first frame (the default, as before), Hold the last frame, or Black. Stop clears a held frame. |
| BPM, Beats / bar | The tempo, for the click track and for tempo messages (see Triggers). |
| Notes | Anything the operator needs to know. |
The Inspector also holds the cue's markers, BPM, MIDI note triggers and OSC triggers, described later. Click a heading to fold its section away; ShowTimeCoda remembers which are open. Remove cue is at the top, next to the file name (or press Delete).
Several cues at once
Ctrl-click cues in the list to add or take out one at a time, Shift-click to select everything from the cue clicked last to this one, or press Ctrl+A for the whole list. The Inspector then shows N cues selected with the settings that make sense for many cues: Then, Volume, Fade in, Fade out, Crossfade in and, for video and image cues, At the end. A field the cues disagree on shows mixed; changing it sets every selected cue. Remove N cues (or Delete) asks first. A plain click goes back to one cue, and double-click still plays.
Auto-offset
Auto-offset (Setup > Show timing) lays cues end to end on the timecode line from a start timecode, with a gap between them and optionally rounded to whole seconds. A cue's start and stop points set its length. Apply it to the whole list or from the selected cue on; each cue also has its own Auto button.
Show offset
Setup > Show timing has a show offset that is added to every cue's timecode. Use it to move a whole show to another hour without retyping every cue.
Cue sheet
Cue sheet in the top bar saves the cue list for the lighting designer: every cue with its title, start and end timecode (show offset included), length, BPM, notes and file, and every sub-cue on its own line at its own timecode. Choose PDF (A4 landscape, ready to print) or CSV (opens in Excel or Google Sheets) as the file type in the save dialog.
Saving and recent shows
Ctrl+S saves, Ctrl+Shift+S saves under a new name. A dot by the show's name means unsaved changes. Recent lists the last ten shows, and they also appear on the start screen. With unsaved changes, closing, New and Open ask first.
The example show
Recent > Example show (or Open the example show on the start screen) opens a show with a Start here page and then a cue list and a Cue Cart page for each system ShowTimeCoda is often used with: Pangolin BEYOND, Resolume, grandMA2/3, Chroma-Q Vista, DaVinci Resolve, Pioneer CDJ and Ableton Live. Each list starts with a Read me cue whose Notes say how to connect that system and which Setup panels to set; its other cues show the triggers that system takes (OSC to BEYOND and Resolume, MIDI Show Control to grandMA and Vista, MIDI notes to Ableton). Every cue is timecode only, so there is no media to find, and each system has its own hour on the timecode line. It opens as a new, untitled show and keeps this PC's connections; Save asks where to put your copy. Anything marked "check" hasn't been tested against that product yet.
4. Master, Chase and Generator
The switch in the top bar decides who owns the timecode:
| Master TC Out | ShowTimeCoda plays the cue list and sends timecode. Your laser software, lighting console or other gear follows ShowTimeCoda. |
|---|---|
| Chase TC In | Another system sends timecode and ShowTimeCoda follows it, playing the right cue at the right place. Use this when a laser timeline, a console or QLab is in charge. |
| Generator | ShowTimeCoda sends free-running timecode with no media, like a timecode generator box. It's a tool for programming and testing, so it's opened from the Generator button in the status bar rather than the switch. |
5. Sending timecode (Master)
Press Space or ▶ to play. ShowTimeCoda keeps its timecode locked to the sound actually coming out, and sends it on every output you have switched on in Setup. Each output has its own offset in milliseconds: positive sends the timecode earlier, negative later (up to ±2 s). Use offsets to make up for delays downstream, for example video passing through NDI and a visualiser.
Frame rate
Set in Setup > Show timing: 23.976, 24, 25, 29.97 drop-frame, 29.97 non-drop or 30 fps. Use what the receiving gear expects. If in doubt, 25 fps in PAL countries and 30 fps elsewhere are the safest. MIDI Time Code and Art-Net have no code for 23.976 or 29.97 non-drop, so they're sent as 24 and 30.
grandMA2 and grandMA3 (and some other consoles) only read 24, 25 and 30 fps and read 29.97 as 30, so the show slowly drifts by about 3.6 seconds an hour. ShowTimeCoda shows a warning in Setup when you pick 23.976 or 29.97. Check your console's manual before using those rates.
Pre-roll
Lighting consoles and laser timelines need a moment of running timecode before they lock. Set Pre-roll in Setup > Show timing (0 to 10 seconds; 2 to 5 is typical). When you start a cue from the top, timecode then starts that long before the cue's Start TC, and the music or video starts exactly when the timecode reaches it. The countdown shows Pre-roll 3, 2, 1 meanwhile.
- Pause during the pre-roll holds it; play carries on. Stop cancels it.
- No pre-roll for Play the next item (auto-advance), resuming a paused cue, jumping to a sub-cue, or Chase mode.
- Timecode never starts before 00:00:00:00: a cue starting at 00:00:02:00 gets two seconds at most.
- The cue's MIDI and OSC start triggers fire when the media starts, not when the pre-roll starts.
MIDI Time Code
Setup > MIDI Time Code: pick the MIDI output. ShowTimeCoda sends quarter-frame messages while playing and a full-frame message on play, seek and stop, so receivers locate straight away.
LTC (audio timecode)
Setup > LTC audio: pick the output device (click Detect once so Windows shows the device names), the channel (left, right or both) and the level. LTC is a loud square-ish signal: send it on its own output or channel, never mixed with programme audio. A line-level output into the console's LTC input is the usual setup.
Art-Net timecode
Setup > Art-Net timecode: the destination is a node's address or a broadcast address (for example
2.255.255.255 or your network's x.x.x.255). Send via picks the network adapter.
On a PC with several adapters, choose the one connected to your show network, or Windows may send the
packets somewhere else.
6. Video out: output window and NDI
Output window
Open output window (under the preview) shows the video full screen on a display you choose in Setup > Video output window. Double-click it to toggle full screen; Esc closes it. The display is remembered per PC.
NDI out
Setup > NDI out sends the picture, and optionally the sound, as an NDI source that Capture, OBS, vMix and other NDI software can receive. Set the source name, the picture size (as decoded, or fitted into 1920×1080 or 1280×720), sound on or off, and a timecode offset. Every frame carries the exact show timecode of the picture it shows.
NDI and the receiving software delay the picture a little. To line the picture up with lasers or lighting, set a negative Art-Net or MTC offset in Master mode (or a positive chase offset in Chase mode), then trim by eye with the −1f / +1f buttons.
Receivers on the same PC cost the network nothing. Each receiver on another computer pulls a full-rate stream (typically 100 Mbit/s or more at HD), so use the 1280×720 size for remote receivers.
7. Following timecode (Chase)
Switch to Chase TC In. ShowTimeCoda works out which cue covers the incoming timecode and plays it from the matching place. When the timecode stops, ShowTimeCoda pauses at once; when it jumps, ShowTimeCoda jumps too. The transport buttons are locked, because the timecode is in charge.
From one song to the next
While a cue plays, the next cue in timecode order waits ready on ShowTimeCoda's second player. When the timecode jumps to another cue (BEYOND going on to the next song), the new cue starts on that player, locked to the timecode, and the old one stops with no silence between them. With a Crossfade set (Setup > Show timing, or Crossfade in on the new cue), the old one fades out over that time instead of stopping dead.
When the timecode runs into a gap between cues, the cue fades out over the show's crossfade, then waits silent and black until the timecode reaches a cue again (crossfade 0: it pauses at once, as before). A timecode that stops is never faded: ShowTimeCoda pauses at once.
Sources
Choose the source in Setup > Chase timecode in – Art-Net, LTC, MIDI:
| Art-Net | Timecode over the network, for example from a Pangolin BEYOND timeline. Only from IP limits it to one sender. |
|---|---|
| LTC | Audio timecode from a sound-card input, for example a feed from QLab or a sound desk. Pick the input and the channel that carries it. ShowTimeCoda reads 24, 25, 29.97 drop-frame and 30 fps, either polarity, from line level down to mic level. |
| MIDI Time Code | From a MIDI input. Use a different port from the MIDI remote-control input, and keep the timeout at 0.25 s or more. ShowTimeCoda finds the chosen port again by its name, so adding or removing other ports (loopMIDI, MIDICoda, a USB interface) doesn't move it to a different one. Save the show after choosing it. |
Up to two backup sources can be set. All of them listen at once: if the one in use stops, the first backup that's running takes over immediately, and the main source takes back over once it has been running again for a second. The chase bar shows BACKUP while a backup is in use.
Settings
| Offset | Plays ShowTimeCoda ahead of (positive) or behind (negative) the incoming timecode. The −1f / +1f buttons on the chase bar step it a frame at a time while you watch. |
|---|---|
| Freewheel | When the timecode stops arriving, keep playing at normal speed instead of pausing, then lock back on when it returns. Useful when a timecode cable gets knocked. …for up to limits it (5 s unless you change it): past that, ShowTimeCoda pauses as if freewheel were off, so a show that really stopped stops too. Blank or 0: keep running until the timecode comes back. |
| Timeout | How long without timecode before the source counts as stopped (0.1–10 s, default 0.25 s). |
| Smoothing | On by default: removes network jitter from Art-Net. Turn it off to follow every packet exactly as it arrives. |
LTC through an audio input arrives slightly late (input buffering, around 60 ms through a virtual cable). Trim it out with the chase offset.
Passing timecode on (converter)
While chasing, ShowTimeCoda's MIDI Time Code, LTC and Art-Net outputs re-send the incoming timecode, each with its own offset, even with no cue loaded. So ShowTimeCoda also works as a timecode converter: for example LTC in from QLab and Art-Net out to a laser system. Art-Net in with Art-Net out is blocked, because it would echo the source back onto the network. Don't point an output back at the input it came from.
Chase follows forward play only. Reverse play and varispeed are not followed.
8. Generator mode
Click Generator in the status bar (bottom right). The player strip becomes a timecode generator: free-running timecode with no media, with start, pause, stop (back to the start time), a Start at time and a Go to box. Close (or the Generator button again, or Master TC Out) goes back to the cue list. MIDI Time Code, LTC and Art-Net carry it. Handy for programming a console or laser timeline without playing the show, or for testing a timecode chain.
9. Markers and sub-cues
Markers are named places in a cue's media, such as "Chorus" or "Drop". Each shows in the cue list as a sub-cue (2a, 2b…) with its own Start TC, which moves with the cue.
- Press M to drop a marker at the playhead of the loaded cue, or use + Marker at playhead in the Inspector, where you can also name and move markers.
- Letters follow the order in the file, so adding an earlier marker re-letters the later ones. Pads and triggers store the marker itself, so they follow it.
- To move a marker, drag its tick along the scrub bar (it snaps to whole frames), or type its time in the Inspector.
- In Master mode, double-click a sub-cue, click its tick on the scrub bar, or press ▶ beside it in the Inspector to play from it. Timecode out jumps with the media, and the sound is ramped over a few milliseconds so the jump doesn't click.
- In Chase mode, markers are labels: the sub-cue last passed is highlighted.
GO and sub-cues
For a stage show the next line may be wanted earlier than it was typed, so GO never waits for the playhead. It walks down the list one line at a time, sub-cues included:
- With a cue playing, GO jumps to its next sub-cue at once (the sound is ramped, as for a double-click). After the last sub-cue it starts the next cue.
- The button names the line it will take next, so you can see before you press.
- Click a cue or a sub-cue in the list, the side panel or the Timeline window and it goes on standby: GO starts that line, even in the cue that is playing and even if it is earlier than the playhead. The sub-cue the playhead is already in is not offered again: GO moves on from it.
- When a cue ends or is stopped, GO stays on and names the cue after it. It only goes off after the last line of the list has gone.
- In Chase mode GO is off: the timecode decides.
The remote controls differ here: OSC /timecoda/play and the MIDI remote's Play play the loaded cue, and
the web remote's GO ▶ button is play / pause (all keep their old behaviour); none of them steps through sub-cues. Use
/timecoda/cue/2b or a pad to start a particular sub-cue from a remote.
Looping a sub-cue (a vamp)
Click the ↻ button at the end of a sub-cue's row and its section repeats until you press GO: from its marker to the next marker, or, on the last sub-cue, to the end of the cue (or its end point). The row shows loops until GO. Click ↻ again to play it once. Useful for a band that repeats a vamp until the singer is ready, or a DJ track whose drop runs on.
- It leaves the loop when you press GO (to the next line), press Stop, or jump or seek out of the section. Switching the loop off while it plays lets it run on.
- Timecode out jumps back with the media each time round, so receiving desks see the timecode jump back, as for a loop of the whole cue.
- It is not seamless: there is a very short dip in the sound at the repeat point to hide the cut. A cue's own Loop this cue is seamless. On music with a strong beat, place the markers on the beat (see the beat grid in the Timeline window) and listen to the join.
- Master mode only; ignored while chasing. A section shorter than a quarter of a second is not looped. The button is on the cue list row.
10. The Cue Cart: pads and sound
The Cue Cart is the set of pads: big buttons under the cue list and on Cue Cart pages. Click Edit pads to add, name and delete them. (Older versions called a pad a "scene pad".)
- Cue pads start a cue from the top, or jump to a sub-cue. In Edit pads, pick the Page and
Cue from the lists, or type
2b. A pad can start a cue on any cue list page; that page then becomes the live one. Cue pads work in Master mode; in Chase mode they're greyed, because the timecode decides what plays. A clip that needs timecode goes in a cue list (where it has a Start TC) and is fired by a cue pad: sound, video and image pads send no timecode. A separate list page (for example "Pad clips") keeps such clips out of the main show. - Sound pads (Plays: Sound) play a sound file over everything else, at their own level, in Master and Chase. Pressing the pad again fades the sound out (see Press again); Stop sounds silences them all. Tick Loop in Edit pads to have it play again from its start point until stopped (↻ on the pad).
- Image pads (a still image on a pad, marked ▣ Image) work like video pads (below): the picture takes the screen and stays until the pad is pressed again, stopped or replaced.
- Video pads (a video file on a pad, marked ▶ Video) show their picture. There is one picture at a time: pressing one takes the screen and the sound from whatever is on it (a playing cue, or another video pad), on ShowTimeCoda's second player, so there's no gap. With Fade to on the page it fades over the page's fade; otherwise it cuts. A video pad sends no timecode and no cue triggers. When it ends, or is stopped, the cue list is back on its cue, at the start. Play or GO on a cue takes the screen back. Sound pads still play over a video pad. A looping video pad loops seamlessly. In Chase mode a video pad keeps the screen while the timecode stays in the same cue; once the timecode moves into another cue, that cue's video and sound take over. A timecode dropout leaves a video pad playing.
- Press again: in Edit pads, Again sets what a second press does while the pad's sound or cue is playing: Stop it (the default for new pads) or Restart it. A sound fades out over the page's fade, a cue over the panic fade; press once more during the fade to cut it.
- The pad panel: while a Cue Cart page is on screen, the side panel is about its pads (an undocked Cue Cart page
has it beside the grid):
- Stop all fades every sound on the page out (press again to cut); Pause all holds them and Resume all carries on.
- When a pad starts: Play over plays on top of the others, up to four at once (a fifth stops the oldest); Cut to stops the others at once; Fade to fades them out. Cut and Fade play one at a time.
- Fade (seconds) for Fade to, Stop all and a pad pressed again; Volume for every sound pad on the page (it also turns down sounds already playing); Pressed again sets Fade out or Start again for every pad.
- Playing now lists what is sounding, each with its own stop (or restart) button.
- The pad strip: on a Cue Cart page, the strip at the bottom shows the last sound pad you pressed (or clicked in Edit pads): its name, time and time left, its waveform with a playhead, and its own green and red start and end lines. Drag them to play only part of the sound; it then stops at its end by itself. Its buttons work that pad: ⏮ from its start, ▶ / ❚❚ play and pause, ■ stop (fades; again: cut). The cue list keeps running, its timecode stays in the status bar, and Space still drives the cue list.
- Drag and drop: drop sound files or a folder on the pad strip to make a sound pad for each; drop one file on a pad to make that pad play it (it keeps its key and MIDI note). Drag a pad onto another to swap them.
- Each pad can have a key (A–Z, 0–9: click the key button and press the key) and a MIDI note (click learn and play the note). Pads listen on the input chosen in Setup > MIDI remote control.
Sound pads play on the PC's default audio output and are not part of the NDI audio.
11. Triggers: MIDI notes, OSC, tempo and click
MIDI note triggers
Each cue can send a MIDI note when it starts, pauses or stops (channel, note and velocity). The port is set in Setup > MIDI note triggers, or the MIDI Time Code port by default. learn beside a trigger fills in the channel and note from the next note you play on the MIDI remote input.
Panic
Esc fades everything out: the playing cue (sound and picture) and every sound pad, over the Panic
fade set in Setup > Show timing (1 second by default), then stops, so timecode stops too. Press Esc
again during the fade to cut at once. The countdown shows Fading out. OSC /timecoda/panic and the
MIDI remote's base note +6 do the same, so a button on a controller or Stream Deck can be the panic button.
In Chase mode the media fades to silent and black but keeps following the timecode (the countdown shows Muted (panic)); it comes back the next time the timecode stops and starts again. In Generator mode, Esc stops the generator. The Stop button (■) still stops at once.
The fade dims the picture on the output window; the NDI picture is not faded yet.
MIDI Show Control
Each cue can also send one MIDI Show Control message as it starts, to fire a lighting console's cue list: this is how a grandMA2 (which has no OSC), ETC Eos or ChamSys takes a GO from ShowTimeCoda. In the Inspector, tick MSC on start and choose:
- GO, STOP or RESUME, with a cue number (
5,12.5) and optionally a cue list (1). With no cue number, GO takes the console's next cue. - FIRE macro, with a macro number from 0 to 127.
Test sends it straight away. The console's device ID (127 reaches every console) and the command format (Lighting, or All types) are in Setup > MIDI note triggers, and the message goes out on that panel's port. It isn't sent again on resume. Set the console to receive MSC on the same device ID; see its manual.
OSC triggers
Each cue can send up to 16 OSC messages over the network, to fire Resolume, BEYOND, QLab, Bitfocus Companion or anything else that takes OSC:
- When: on start, resume, pause or stop; at a marker; or at a time into the cue.
- Address and arguments:
1is an integer,1.0a float,true/falsea boolean, other words text, and"quotes"for text with spaces. - Where: the show's default host:port (Setup > OSC triggers) or the message's own. Programs that announce themselves on the network (Resolume, Chataigne, QLab, another ShowTimeCoda) are offered as you fill these in: Setup > OSC triggers > On the network fills in the default receiver, and the message's own address field suggests them. Typing an address always works.
- Test sends it straight away.
Messages at a marker or time fire when playback passes that point, including in Chase mode, so a desk or timeline driving ShowTimeCoda by timecode can also fire OSC through it. A point skipped by a jump doesn't fire.
Tempo (BPM)
Each cue's BPM is read from the file's tags when you add it, listened to in the background when the file has no
tag (the BPM column shows "…" meanwhile), typed in, found with Detect, which listens to the cue (½ and
×2 fix half- or double-time readings), or imported from rekordbox (below). The listening is a guess on a steady
beat: check it, and fix it by hand if the track is not steady. In Setup > OSC triggers,
Send each cue's BPM when it starts sends it as OSC, by default to BEYOND's tempo, and {bpm}
in any OSC message becomes the cue's BPM.
Import from rekordbox
If you prepare tracks in rekordbox, ShowTimeCoda can take the tempo, beat grid and cue points from it. In rekordbox: File > Export Collection in xml format. In ShowTimeCoda: File > Import from rekordbox… and pick that xml file. Every cue in the show whose file is in the export gets:
- its BPM (shown in the BPM column),
- where beat 1 falls and the beats per bar, which the Timeline window's beat grid and snap-to-beat use,
- rekordbox's memory cues and hot cues as markers (sub-cues), with their names and colours; unnamed hot cues are called Hot cue A, B, C…. Loop points come in as plain markers (they do not loop); fade and load points are left out.
A cue is matched to a track by its full file path, or, if it has moved, by file name when only one track has that name. A message says how many cues were found and updated. Importing the same export again adds nothing twice. A track whose tempo changes uses its first tempo, and the message says so. ShowTimeCoda reads the export file, not the USB stick, and it does not follow CDJs live: that is planned (see Planned features). The first imports were tested against rekordbox's published file layout: check a few cue points against the music, especially on MP3 files, which different programs can place a few hundredths of a second apart.
Click track
A cue with a BPM can have a metronome click on its own audio output (Setup > Click track), for in-ear monitors. The first beat of each bar is higher and louder.
12. Remote control: MIDI, OSC and iPad
Remote transport commands work in Master mode; in Chase mode they're ignored (sound pads still play).
MIDI remote
Setup > MIDI remote control: pick the input and channel (or all channels) and switch it on.
Learned buttons: click learn beside Play / pause, Play, Pause, Stop, Next, Previous or Panic, then press the button on your controller. It can send a note or a control change (CC). Releasing a button does nothing. Reset to the note map forgets every learned button.
Without learning, ShowTimeCoda also answers a fixed note map, counting up from the base note (default 64):
| Base +0 | Play | +1 | Pause |
|---|---|---|---|
| +2 | Stop | +3 | Next |
| +4 | Previous | +5 | Play / pause |
| +6 | Panic | ||
| +8 to +23 | Play cue 1 to 16 | ||
OSC remote
Setup > OSC remote control: switch it on (UDP port 8000 by default) and, on a shared network, set Only from to the controlling computer's address, as there's no password.
/timecoda/play, /pause, /stop, /toggle | Transport |
|---|---|
/timecoda/next, /previous | Next or previous cue |
/timecoda/panic | Panic (see below) |
/timecoda/cue/3 or /timecoda/cue 3 | Play cue 3 |
/timecoda/cue/2b | Play from sub-cue 2b |
/timecoda/pad/4 | Press pad 4 of the page on screen |
/timecoda/page/3/pad/4 | Press pad 4 of page 3 (the third tab), whichever page is on screen |
/timecoda/goto "01:02:03:04" | Generator: jump to that time. Master: play the cue that covers it, from that point |
Found without typing: while OSC remote control is on, ShowTimeCoda announces itself on the network as ShowTimeCoda on your PC's name (Zeroconf) and lists all of these addresses, with your cue, sub-cue, pad and page names, for programs that read OSCQuery, such as Chataigne and TouchOSC. Add ShowTimeCoda there and pick commands from the list. The list follows your edits. Switch OSC remote control off and ShowTimeCoda disappears from the network again; Only from applies here too. Windows Firewall may ask once more, for the list (TCP, on the same port number as OSC when it is free).
A message whose first argument is 0 or false (a button release) is ignored, so buttons that send on press and release work as expected.
Pads on a controller
- Every pad has its own OSC address with its page's tab number, such as
/timecoda/page/2/pad/1, which fires that pad whichever page is on screen. Edit pads shows it; click it to copy. The short form/timecoda/pad/1fires pad 1 of the page on screen, like the pad's key and its note on the grid. Moving a tab changes its number. - Pads follow a note grid (Setup > MIDI remote control): pad 1 answers the first note (36 by default), pad 2 the next note, and so on, so a Launchpad, APC or drum-pad controller works without learning each pad. A pad's own learned note wins.
- Light the controller's pads sends each pad's state back to the controller as it changes: on the pad's note
(velocity 127 playing, 1 loaded, 0 empty, on the MIDI note triggers port) and as OSC with the same number to the default
OSC destination, for Companion or TouchOSC:
/timecoda/pad/Nfor the page on screen and/timecoda/page/P/pad/Nfor every page.
When one press could mean several things, ShowTimeCoda takes the first of: a learned button, a pad's own note, the pad note grid, the base-note map.
Web remote (iPad)
Control ShowTimeCoda from an iPad, a phone or any browser on the same network, with nothing to install. In Setup >
Web remote (iPad), tick the box. Setup shows the address to open (for example http://192.168.0.20:8090)
and a 4-digit PIN. Open that address in Safari and enter the PIN; each browser asks once. Tip: in Safari, Share >
Add to Home Screen opens it full screen next time.
- The page shows the timecode and the countdown, GO, Pause, Stop, Previous, Next and Panic, and every page of the show as a tab. On a cue list page, tap a cue to load it and double-tap to play it; the buttons under a cue play its sub-cues. Pads light up while they play. Choosing a tab on the iPad doesn't change the page on the PC.
- While chasing, play, pause and the cues belong to the incoming timecode, so those buttons are off; Panic still works.
- Safety: it is off until you switch it on, and only answers devices on the local network. New PIN signs every browser out. Only from limits it to one device. View only shows everything but allows no control (for a director or a second screen). Five wrong PINs lock that device out for a minute.
- These settings belong to this PC, not to the show, so opening a show never switches the remote on. Windows Firewall may ask the first time.
13. Watching what's happening
- Status bar lights: one per input and output. Grey: not set up. Amber: ready, nothing flowing. Green: data actually flowing. Red: error. Hover for details, such as packets per second and the sender.
- Countdown: time left in the cue, amber under 10 seconds and red under 5.
- Timecode window: a small always-on-top window with big IN and OUT timecode, opened from the status bar. OUT turns red while timecode is stopped. Double-click it or press F for full screen.
- Frames or milliseconds: Setup > Show timing > Display sets how every time reads on this PC: SMPTE frames (00:01:30:12 at the show's frame rate, the default) or milliseconds (1:30.480). Cue lengths, start and stop points, markers, the countdown, the status bar and the timecode window all follow it, and either form can be typed into any time field.
- Log window: Log in the status bar opens a window listing what came in, what went out and what went wrong, newest at the bottom. Each row has the time of day, the show timecode at that moment, the source and ▼ (in) or ▲ (out). It shows every MIDI button press and what it did (or not used, which helps when a controller seems dead), MIDI notes and MIDI Show Control sent, MIDI devices plugged in or out, OSC received (with its arguments and sender, even when it isn't a ShowTimeCoda command) and sent, timecode locking, dropping out and backups taking over, NDI, the licence, shows opened and saved, cues starting and stopping, and every error. Warnings lists just the problems; a red number on the Log button counts new ones while the window is closed. Pick sources to show only those. Scrolling up pauses Follow; tick it to jump back to the newest row. Copy and Save as text… take the rows shown, which is the easiest thing to send with a support question. The last 5,000 rows are kept; if something sends more than 50 messages a second, the rest are counted in one row. The window opens where you left it.
- Timecode log: Setup > Timecode log writes a CSV of the timecode out (and in, when chasing), one row a second or one per frame, with starts, stops, cue changes and source changes. Useful for checking a show afterwards.
14. Keyboard shortcuts
| Space | Play / pause | Esc | Panic: fade out, then stop (twice: stop at once) |
|---|---|---|---|
| ← → | Previous / next cue | M | Add a marker at the playhead |
| Del | Remove the selected cue | Ctrl+N | New show |
| Ctrl+O | Open a show | Ctrl+S | Save |
| Ctrl+Shift+S | Save as | Pad keys | As set on each pad (page on screen) |
| F1–F12 | Open page 1–12 | Page Up / Down | Previous / next page |
| Ctrl+X / C / V | Cut / copy / paste cues, an event or a pad | Ctrl+A | Select every cue of the list |
Shortcuts are ignored while you're typing in a field or a dialog is open. In Generator mode, Space starts and pauses the generator and Esc stops it.
15. Network notes
- Art-Net shares UDP port 6454. If another program on the same PC also listens for Art-Net (a laser
system, a visualiser), a packet sent to this PC's own address reaches only one of them. Have the sender use
the network's broadcast address (for example
192.168.0.255) so everyone hears it. - Art-Net timecode is tiny: about 25–30 packets a second, roughly 12 kbit/s.
- Keep show traffic on a wired network you control. Wi-Fi works for tests but adds jitter.
- OSC remote control has no password; use Only from on any network you share.
- The web remote has a PIN but runs over plain HTTP, like most show-control web pages. Use it on the show network, not on public Wi-Fi.
16. Before the show
- Rehearse with the real gear: run the whole show once with the console, laser system or visualiser that will follow ShowTimeCoda.
- Check that the receiver reads the same frame rate ShowTimeCoda sends.
- Watch the status bar: every output you use should go green while playing.
- Line up video and lights by eye with the offsets and the −1f / +1f buttons, then save the show.
- When chasing, set Freewheel and the timeout to suit the source, and set a backup source if you have one.
- Switch on the timecode log for the show, so you can check afterwards what was sent.
- Keep the media and the show file on a local drive, not a network share.
17. Troubleshooting
- The console or laser software doesn't see any timecode.
- Check the output's light in the status bar. Grey means it isn't set up; amber means it's set up but nothing is playing. For Art-Net, check the destination address and the Send via adapter. For MTC, check that both sides use the same MIDI port (a loopMIDI port on the same PC). For LTC, check the level and the channel.
- Chase doesn't follow Art-Net from software on the same PC.
- Another program is probably taking the packets. Have the sender use the broadcast address, not this PC's address (see Network notes). Also check Windows Firewall allowed ShowTimeCoda.
- The video is late compared with the lights.
- That's the delay in NDI and the receiver. In Master mode, set a negative offset on the timecode outputs; in Chase mode, a positive chase offset. Trim by eye.
- A video file won't play.
- Its video format probably isn't supported: ShowTimeCoda marks such a cue with ⚠ and says which format it is. Convert it to H.264 in an MP4 file.
- GO plays the same cue again, or does not start the cue I clicked.
- GO takes the line named under it. Click a cue or sub-cue to put it on standby. The remote's Play (OSC
/timecoda/play, MIDI) and the web remote's GO ▶ are not this GO: they play or pause the loaded cue. - A sub-cue keeps repeating.
- Its ↻ button is on (the row says "loops until GO"). Press GO to move on, or click ↻ to turn it off.
- The BPM column shows "…", or a tempo that is half or double.
- The tempo is being listened for, one file at a time and never while a cue plays. Fix a wrong reading with ½, ×2 or by typing it (Inspector).
- NDI out says the runtime is missing.
- Install NDI Tools from NDI, then restart ShowTimeCoda.
- The LTC device names are missing.
- Click Detect in Setup > LTC audio. Windows only shows device names after that.
- MIDI remote or pad notes do nothing.
- Check the input and channel in Setup > MIDI remote control, and that the MIDI input isn't the same port ShowTimeCoda is chasing MTC on.
Still stuck? Email showtimecoda@flyingpictures.com.au with your ShowTimeCoda version, what you expected and what happened. A timecode log helps.
18. Free, Pro and the licence
- For the first 30 days from first launch, every Pro feature works.
- After that ShowTimeCoda carries on as ShowTimeCoda Free, with no time limit: the first cue list and the first Cue Cart page of a show, Master and Generator modes, and Art-Net timecode out. Other pages, Chase, MIDI Time Code, LTC, NDI, the video output window, triggers, remote control, the cue sheet and the timecode log need Pro; they are tagged Pro. Their settings stay in the show and work again as soon as you enter a serial.
- When the trial ends, the licence dialog also offers an optional email box for ShowTimeCoda news and Pro offers. Only your address is sent, and every email has an unsubscribe link.
- After buying Pro, you get a serial number by email. Click Trial or Free (top bar), enter the serial, and ShowTimeCoda activates over the internet once. After that it works offline.
- One serial covers the 0.x beta, 1.0 and every 1.x release, on up to 3 PCs at once. To move it, open the licence dialog on the old PC and click Remove licence from this PC; if that PC died, email us and we'll free it.
- Lost your serial? Use the lost serial page. For a machine without internet, see Licence code.
19. Planned features
These are planned and not in the current version. There are no dates yet, and plans can change.
- Audio output choice for media and sound pads.
- Pioneer DJ CDJ support through TCNet and PRO DJ LINK Bridge: follow the decks and send each track's own timecode on. (Today you can import a rekordbox collection export for tempo, beat grids and cue points; see Import from rekordbox.)
- Outputs per cue: choose which screen or NDI feed a cue's picture goes to, for example for stage manager feeds. Under consideration for version 2.
- A macOS version.
Pangolin and BEYOND are trademarks of Pangolin Laser Systems. Capture is a product of Capture Sweden. NDI is a registered trademark of Vizrt Group. Art-Net is a trademark of Artistic Licence. Pioneer DJ, PRO DJ LINK and CDJ are trademarks of AlphaTheta Corporation. TCNet is a protocol of TC Supply. grandMA is a trademark of MA Lighting. QLab is a trademark of Figure 53. Other names belong to their owners. ShowTimeCoda is not affiliated with or endorsed by any of them.
