Timecode Slots
Manage up to 32 independent timecode sources, each with its own playback state, frame rate, and routing.
🌐 Web UI ⌨️ CLI 🔌 HTTP API 📡 OSC
Web UI
The web dashboard shows all timecode slots in a grid view. Access it at http://localhost:5050 after starting the server.
Creating a Slot
- Click the + button in the top-right corner
- Enter a name for your slot
- Select the frame rate (23.976, 24, 25, 29.97DF, 29.97NDF, 30)
- Click Create
Slot Controls
Each slot card displays:
- Timecode display — Current position in HH:MM:SS:FF format
- Play/Pause button — Toggle playback
- Stop button — Stop and reset to 00:00:00:00
- Frame rate badge — Shows the slot's frame rate
- Settings gear — Access slot configuration
Editing a Slot
- Click the settings gear on the slot card
- Modify name, frame rate, or other settings
- Click Save
CLI
List Slots
bptimecode slot list Create a Slot
bptimecode slot create --name "Main TC" --framerate 29.97df Options
| Option | Description | Default |
|---|---|---|
--name | Display name for the slot | Slot N |
--framerate | Frame rate (23.976, 24, 25, 29.97df, 29.97ndf, 30) | 29.97df |
--start | Initial timecode position | 00:00:00:00 |
Delete a Slot
bptimecode slot delete --id 1 Get Slot Info
bptimecode slot get --id 1 --format json HTTP API
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/slots | List all slots |
| GET | /api/v1/slots/:id | Get slot by ID |
| POST | /api/v1/slots | Create a slot |
| PUT | /api/v1/slots/:id | Update a slot |
| DELETE | /api/v1/slots/:id | Delete a slot |
List All Slots
curl http://localhost:5050/api/v1/slots Response:
[
{
"id": 1,
"name": "Main TC",
"frameRate": "29.97df",
"position": "01:23:45:12",
"state": "playing"
}
] Create a Slot
curl -X POST http://localhost:5050/api/v1/slots \
-H "Content-Type: application/json" \
-d {"name": "Main TC", "frameRate": "29.97df"} Update a Slot
curl -X PUT http://localhost:5050/api/v1/slots/1 \
-H "Content-Type: application/json" \
-d {"name": "Renamed Slot"} OSC
OSC commands are received on port 5051 by default (configurable).
Addresses
| Address | Arguments | Description |
|---|---|---|
/bptimecode/slots | none | Query all slots (replies to sender) |
/bptimecode/slot/<id>/name | string | Set slot name |
/bptimecode/slot/<id>/framerate | string | Set frame rate |
Examples
Using oscsend (from liblo):
# Set slot 1 name
oscsend localhost 5051 /bptimecode/slot/1/name s "Main TC"
# Set slot 1 frame rate
oscsend localhost 5051 /bptimecode/slot/1/framerate s "29.97df" QLab Example
In QLab, create a Network cue with:
- Destination: Your BPTimecode machine IP
- Port: 5051
- Message:
/bptimecode/slot/1/name "Show TC"