MTC (MIDI Time Code)
Sync with DAWs, audio systems, and MIDI-based show control. Full MTC quarter-frame and full-frame support.
Overview
MIDI Time Code (MTC) embeds SMPTE timecode in MIDI messages. Use cases:
- DAW sync — Pro Tools, Logic, Ableton, Reaper, etc.
- Show control — QLab (MIDI input), hardware sequencers
- Video sync — Software that accepts MTC
BPTimecode outputs standard MTC quarter-frame messages during playback and full-frame messages on seek/jump.
Web UI
Configure MTC Output
- Go to Settings → Protocols → MIDI
- Select your MIDI Output Port
- Enable MTC Output
- Route a slot to
mtc:defaultin the routing matrix
Virtual MIDI Ports
On macOS, use IAC Driver. On Windows, use loopMIDI or similar virtual MIDI software to route MTC to your DAW.
CLI
List MIDI Ports
bptimecode midi listConfigure MTC Output
bptimecode midi set-output --port "IAC Driver Bus 1"
bptimecode config set mtc.enabled trueRoute to MTC
bptimecode route create --source slot:1 --dest mtc:defaultSend Full-Frame Message
# Useful for cueing to a position
bptimecode mtc send-fullframe --position 01:30:00:00HTTP API
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/midi/ports | List MIDI ports |
| GET | /api/v1/mtc/status | MTC status |
| PUT | /api/v1/mtc/config | Configure MTC |
| POST | /api/v1/mtc/fullframe | Send full-frame |
Configure MTC
curl -X PUT http://localhost:5050/api/v1/mtc/config \
-H "Content-Type: application/json" \
-d {"enabled": true, "port": "IAC Driver Bus 1"}Send Full-Frame
curl -X POST http://localhost:5050/api/v1/mtc/fullframe \
-H "Content-Type: application/json" \
-d {"position": "01:30:00:00"}OSC
Addresses
| Address | Args | Description |
|---|---|---|
/bptimecode/mtc/enable | int (0/1) | Enable/disable MTC |
/bptimecode/mtc/fullframe | string | Send full-frame message |
Examples
# Enable MTC output
oscsend localhost 5051 /bptimecode/mtc/enable i 1
# Send full-frame to cue position
oscsend localhost 5051 /bptimecode/mtc/fullframe s "01:30:00:00"