Manual
Everything you need to put live orienteering results on air with Split Control, from installing the app to the last runner at the finish.
1. Install
Download Split Control from the download page.
Windows
- Run the installer. You can choose where to install it.
- SmartScreen warns you because the app is not signed yet. Choose More info → Run anyway.
The portable version is a single .exe that runs without
installing.
macOS (Apple Silicon)
- Open the
.dmgand drag Split Control to Applications. - The first launch is blocked because the app is not signed yet. Right-click the app, choose Open, then Open again.
Firewall
Other devices (OBS on another computer, the director's phone, a Stream Deck) reach Split Control over the network on port 5657. Allow Split Control through the firewall when your computer asks.
2. How it works
Split Control is organised in events. An event is one race: its timing data, look, start list and outputs. Events can be grouped in folders, for example a multi-day event or a season.
Each event has two modes:
- Plan: prepare the event step by step, days or hours before the broadcast. A checklist shows what is ready.
- Live: the desk you run the broadcast from. Every graphic is triggered by hand; there is no fixed running order.
Settings that apply to every event (ports, resolution, data sources, club names) are in Settings.
3. Connect timing data
Add the timing service once in Settings → Data sources → Add data source. Each event then picks a data source and a competition.
| Type | Use it when | What to fill in |
|---|---|---|
| LiveResults | The race publishes to Liveresultat. The most common choice. | Base URL https://api.orienteering.services.
API: Automatic. Turn on Instant updates (push)
for results the moment Liveresultat has them. |
| MeOS (information server) | You have network access to the MeOS computer. No internet or database needed. | In MeOS, start Services → Information server. Enter its address,
e.g. http://localhost:2009, or the MeOS computer's address. |
| MySQL/MariaDB Database | Results are in a MeOS Online Protocol (MOP) database. | Host, database name, user name and password. Use a read-only database user: the password is stored in plain text. |
| IOF XML 3.0 file | Any other timing software (OE/OS, OLA, MeOS, Helga…). | The path of a ResultList or StartList file. Set your timing software to export it every few seconds; Split Control re-reads it when it changes. |
How often? Liveresultat is polled every 10 seconds at most
(15 for the legacy api.php); push updates arrive at once. MeOS and databases
can be read every second.
4. Create an event
- On Events, choose New event and give it a name you'll recognise on broadcast day.
- Optionally put it in a folder with New folder. Events in a folder can share its data source, event details, logos and look, or stay independent.
- The event opens in Plan.
To reuse a setup, Duplicate event, or export the settings from one event and import them in another (see Final check).
5. Plan the event
Plan has seven steps. The checklist on the left shows which are ready; you can do them in any order.
Data source & event info
- Choose the Event data source and pick the race under Select Competition.
- Choose Test connection.
- Use source details copies the name, date and organiser into the event info. Check them and add the location.
- Choose the Event type: national events show clubs, international events show flags.
- Choose the Event logo: Use template logo (the logo built into the look, e.g. the IOF logo; some looks have none), Upload custom logo (yours replaces the look's), or No logotype.
- Optionally add coordinates for Automatic weather.
Output
Choose the outputs this event uses: Web output and/or NDI. They turn on automatically when the event opens in Live. See Set up the outputs.
Theme
- Event theme: the look. All graphics of the event use it. Standard comes with the app; import others.
- Theme colors: three colours that every shade, gradient and divider follows. Apply colors, then Save event theme.
- Next to names: club, flag, both, or automatic (relays show club and flag).
- Seconds per page for tables with several pages (0 = page by hand).
- The broadcast language: English, Swedish, Norwegian or Czech.
- Club logos. The app ships with them; Open logo folder to add or replace
one as
<Club name>.png.
The preview on the right updates as you change the theme. Sample previews never go on air.
Templates
Drag graphics into the order you want in the Live list. Open a graphic for its settings:
- Defaults fill the operator's draft in Live; any field can still be changed there.
- Hidden in Live removes graphics you won't use.
- Live updates off keeps the graphic's data until you press Update.
Start lists
- Refresh from event source, or Import XML / CSV. A CSV needs a class column and a name column (or first and last name); club, bib, start time and country are optional. Headers can be in English or Swedish.
- Star favourite runners and favourite classes. Stars and notes are shared with Live and the director page.
- Assign virtual bibs when the race has no bibs. Virtual bibs (V105) stay inside Split Control and its PDFs.
- Club names on air: type a shorter name for any club whose name is too long. Names are saved for every event.
- Export PDF for a printed start list with favourites and notes.
Radio controls
Optional. Rename radio controls whose names from the timing data don't read well on air, for the whole competition or per class (a class name wins). Automatic names number the controls in the order each class passes them.
Final check
Run final check tests the data connection and the setup. When the required items are complete, Go live is enabled.
Export settings… saves the whole setup as one JSON file, to take to another event or computer. Import settings… brings it in.
6. Set up the outputs
Web output (browser source)
Add this address as a browser source. It has a transparent background and is 1920 × 1080 by default.
http://<computer>:5657/output
Use localhost instead of <computer> on the same computer.
Plan → Output shows the exact address and copies it for you.
| Software | How |
|---|---|
| OBS | Add a Browser source, paste the URL, set width 1920 and height 1080. |
| vMix | Add Input → Web Browser, paste the URL, 1920 × 1080. |
| CasparCG | Play the URL as an HTML producer: PLAY 1-20 [HTML] "http://…/output". |
NDI
Turn on NDI in Plan → Output. The source is called Split Control NDI Output and carries transparency (alpha). Pick it in vMix, OBS (with the NDI plugin), TriCaster or any NDI receiver.
The NDI name and frame rate are in Settings → Output defaults.
Check the signal
Put test pattern on air sends colour bars and safe-area guides through the real output. Use it to check keying and framing in your production, then Clear test pattern.
7. Run the broadcast
Choose Go live in Plan. The desk has three parts:
- The graphics list, in the order set in Plan → Templates, each with its number.
- The draft of the chosen graphic: class, runner, control, page and its text fields. Empty fields say what will go on air and where it comes from.
- Preview and Program monitors. Preview shows the draft and never affects the output; Program is what's on air.
Prepare, then send
- Choose a graphic (click it, or press its number).
- Fill in its fields, or recall a favourite.
- Check it in Preview.
- Space shows it. U sends changes to the graphic on air. Space again hides it.
Showing a graphic takes clashing graphics off air: a results table removes a lower third, but the clock stays.
Keyboard shortcuts
| Key | Action |
|---|---|
| Space | Show / hide the selected graphic |
| U | Update the graphic on air with the draft |
| H | Hide the last graphic shown |
| T | Freeze / resume the running time on air |
| Esc | Hide all (in a field: leave the field) |
| ← / → | Previous / next page on Program |
| 0–9 | Choose a graphic by its number |
| ↑ / ↓ | Choose a graphic in the list |
| F | Save the draft as a favourite |
| Ctrl/Cmd + K | Command palette (also from a field) |
Single keys never fire while you type in a field or in the palette.
Live data
Graphics on air follow new results as they arrive. Results tables and the podium hold their data until you press U, so a table doesn't jump while it is on screen. The data status on the desk shows when the source was last read.
Freeze the running time
When you see a runner pass a control on video, press T. Live split (with a runner) and Runner focus stop their clock at that moment. The official time replaces it as soon as the timing data has the runner. Press T again to let the clock run.
Favourites
Press F to save the current draft as a favourite (F1, F2…). Recalling a favourite only prepares it; Space sends it.
Monitors
Program and Preview can sit in the desk, in their own windows (Pop out), or together on another screen.
End Live
End Live returns to Plan. NDI turns off; the web output page stays available.
8. Command palette
Press Ctrl/Cmd + K and type a graphic number and its parameters, separated by spaces:
| Command | Means |
|---|---|
2 3 105 | Runner identity, class 3, bib 105 |
1 3 F | Live split, class 3, at the finish |
1 3 45 | Live split, class 3, radio control 45 |
2 F1 | Runner identity, favourite F1 |
- A hint line shows the whole command for the chosen graphic and what each part accepts.
- Enter loads the command into the draft; it never goes on air by itself. Press Space to show it.
- Recent commands are listed first; every graphic that went on air is added, however it was shown.
- Virtual bibs are found by their number alone:
105finds V105.
Command numbers are the same in every event and set in Settings → Controls.
9. The graphics and looks
| Graphic | What it shows |
|---|---|
| Race title | Series, race name, place and date, with the event logo. |
| Live split | The latest runners through a radio control or the finish, live. |
| Runner identity | Name, club or flag, and a line of detail. |
| Runner focus | One runner with a running clock, from the start or at a control. |
| Results table | Results of a class at the finish or a control, page by page, with position changes. |
| Runner split comparison | One runner's splits against the leader. |
| Start list | A class's start list, page by page. |
| Start group | The next starters; follows the start list automatically. |
| Position history | A chart of positions at each control. |
| Podium / flowers | The top three of a class. |
| Course parameters | Length, climb, controls, winning time. |
| Weather | Current conditions at the venue, refreshed while on air. |
| Identity plate | Free text with an optional title. |
| Commentators / speaker | Names of the commentators. |
| Elapsed timer | A running clock. |
The graphics are standard EBU OGraf packages, so third-party OGraf graphics load too.
Looks: import, export and share
A look is the style of every graphic: colours, fonts, layout and motion. Every look has the same graphics. Standard comes with the app. Svensk Orientering, IOF, IOF inspired, Contours, ČO, Bold, Brutal and Signal are on the Looks page.
A look is shared as one zip file. Everything is in Graphics library:
- Import look…: choose a look's zip (don't unzip it). Split Control shows what it will add or replace before it installs anything. A zip can also hold an OGraf graphic outside any look.
- Export… next to a look saves it as a zip, to use on another computer or send to someone. Built-in looks can be exported too.
- Remove deletes an imported look. Events that use it need another look before they go live.
- Get more looks opens the Looks page; Open folder shows where imported looks are kept.
Importing a look with the same name as one you have replaces it. An imported Standard is used instead of the built-in one until you remove it.
Choose the look of an event in Plan → Theme. If an event's look isn't installed on this computer (for example after moving events), Plan says so: import the look, or choose another one.
Make your own look: export a look, change its
theme.css and set.json (give it a new id), and import
it. Graphic ids must be unique, so a new look needs its own graphics; see
Template sets.
10. Director page
A page for the director on any phone, tablet or computer on the same network. Open it from Director page on the Live desk, or go to:
http://<computer>:5657/director
- Choose the classes to follow. The next starters are listed, favourites starred.
- Sounds for favourites, each on or off: a heads-up (45 s before the start by default), start imminent (10 s) and start beeps.
- Sound starts off, because browsers only play sound after a click. Choose Sound off to turn it on.
11. Stream Deck and remote control
Bitfocus Companion
Split Control comes with a module for Bitfocus Companion. It turns your favourites into Stream Deck buttons, next to Show, Update, Hide and Hide all, with on-air feedback.
- Open Settings → Controls (or the keyboard shortcuts list in Plan or Live) and choose Show Companion module. This shows the module file that comes with the app.
- Load the module into Companion (its developer-module import).
- Enter Live in Split Control, then add the connection in Companion with Split Control's host and port.
HTTP control
Any device that can send an HTTP request can drive the desk, e.g. Companion's Generic HTTP. All actions work with GET and POST:
/api/control/show · /update · /hide · /hide-all | Like the desk buttons |
/api/control/page/next · /page/previous | Page the table on air |
/api/control/favorites | The favourites, with links to prepare or show each |
/api/control/tally/<graphic> | Whether a graphic is on air |
/api/control/state | Everything on air and prepared |
Split Control also speaks the EBU OGraf Server API v1
at http://<computer>:5657/ograf/v1.
Trusted networks only. The director page and control APIs have no password. Use them on your production network, not on public Wi-Fi.
12. Settings
| General | App language, graphics resolution, log detail, network ports. |
| Output defaults | Web output and NDI defaults: source name, frame rate, colour format. |
| Controls | Command numbers for the palette and the key list. |
| Data sources | Timing connections used by events. |
| Club names | Short names on air, for every event. |
| Storage | Where events and logs are kept; diagnostics. |
Ports and resolution need an app restart.
Events and settings are stored in the app data folder:
%APPDATA%\OL-Grafik on Windows,
~/Library/Application Support/OL-Grafik on macOS. It keeps its old name so
existing events survive the rename.
13. Rehearse with a replay
Any finished race on Liveresultat can be replayed as if it were live, faster than real time: runners start, radio controls come in, results update. Use it to train operators or try a new look with real data.
The replay tool runs from the source code with Node.js. See Replay a race for the steps.
14. Race-day checklist
- Open the event and run Final check. Test the data connection.
- Refresh from event source in Start lists for late entries.
- Go live. Check that the outputs are on.
- Put the test pattern on air and check keying and framing in your production. Clear it.
- Show the Race title and a Start list to check the look and logos on Program.
- Open the director page on the director's device and choose the classes.
- Check the data status on the desk while the first radio controls come in.
Something not working? See the FAQ or report a problem.