Frequently Asked Questions

Everything you need to know about BPTimecode

Getting Started

Is BPTimecode free?

Yes! BPTimecode is completely free and open source under the MIT license. You can use it for personal or commercial projects without any cost, forever. There are no premium tiers, no feature locks, and no usage limits.

What platforms does BPTimecode support?

BPTimecode runs on Windows (x64), macOS (Intel and Apple Silicon), and Linux (x64 and ARM64). The ARM64 Linux build makes it ideal for Raspberry Pi 4 and newer devices.

Do I need to install any dependencies?

No! BPTimecode is distributed as a self-contained executable. Just download, extract, and run. No .NET runtime, no installers, no system dependencies required.

Does it require an internet connection?

No. Once downloaded, BPTimecode runs entirely on your local machine. It's designed for production environments where network reliability is critical.

Protocols

What timecode protocols are supported?

BPTimecode supports LTC (Linear Timecode) audio output, Art-Net timecode, MTC (MIDI Time Code), sACN (E1.31), and OSC (Open Sound Control). Each protocol can be configured independently for generation or reception.

Can I convert between different timecode formats?

Absolutely! One of BPTimecode's core features is protocol bridging. You can receive timecode via one protocol (e.g., Art-Net from a lighting console) and re-broadcast it via another (e.g., LTC audio to a recorder). The routing matrix handles all conversions automatically.

What frame rates are supported?

BPTimecode supports all standard SMPTE frame rates: 23.976 fps (film), 24 fps (cinema), 25 fps (PAL), 29.97 fps drop-frame and non-drop, and 30 fps. Each timecode slot can have its own independent frame rate.

Can I send timecode to multiple destinations at once?

Yes! Each timecode slot can output to multiple protocols simultaneously. For example, a single master clock can feed LTC to your recorder, Art-Net to your lighting console, and MTC to your DAW—all in perfect sync.

Features

How many timecode sources can I run simultaneously?

BPTimecode supports up to 32 independent timecode slots. Each slot has its own playback state, frame rate, routing configuration, and can be controlled independently via the UI, CLI, or API.

What are presets and how do I use them?

Presets let you save complete system configurations including all slot settings, routing tables, and playback states. Load them via the web UI, CLI, or API to instantly switch between show configurations. Great for multi-show venues or touring setups.

Can I trigger cues at specific timecodes?

Yes! The cue system lets you define actions that fire at specific timecode values. Cues can trigger OSC messages, HTTP requests, or internal commands. Perfect for automated show control integration.

Is there a web interface?

Yes! BPTimecode includes a built-in web UI accessible at http://localhost:5050 (default port). The interface provides full control over all slots, presets, routing, and monitoring—no additional software needed.

Integration

How do I control BPTimecode from other software?

BPTimecode offers three integration methods: a comprehensive REST API for HTTP-based control, OSC support for show control systems like QLab or Companion, and a full-featured CLI for scripting and automation.

Does it work with Bitfocus Companion?

Yes! You can control BPTimecode from StreamDeck or other controllers via Companion using either HTTP requests (REST API) or OSC commands. Our tutorials section has step-by-step setup instructions.

Can I integrate it with QLab?

Absolutely! QLab can send OSC commands to control BPTimecode playback, or receive timecode from BPTimecode to trigger cues. This is ideal for theater productions needing tight audio/lighting sync.

Does it work with lighting consoles?

Yes! BPTimecode speaks Art-Net natively, making it compatible with MA Lighting, High End Hog, ETC Eos, Chamsys, and other professional lighting consoles. It can both send timecode to consoles and receive timecode from them.

Technical

What network ports does BPTimecode use?

By default: TCP 5050 for the web UI and REST API, UDP 6454 for Art-Net, UDP 5568 for sACN, and configurable ports for OSC (default 8000). All ports are configurable via the config file or CLI flags.

Can I run it as a system service?

Yes! BPTimecode can be installed as a Windows Service, macOS Launch Agent, or Linux systemd service. This ensures it starts automatically on boot—essential for always-on production environments.

Is there a headless/CLI-only mode?

Yes! Running 'bptimecode serve' starts the server without opening a browser. Combined with the REST API and CLI commands, you can operate BPTimecode entirely headlessly—perfect for embedded systems and servers.

How accurate is the timecode sync?

BPTimecode maintains sub-frame accuracy across all protocols. The internal clock uses high-resolution timers, and network protocols are optimized for minimal jitter. In practice, sync accuracy is well within professional broadcast tolerances.

Troubleshooting

Why can't my device see the Art-Net timecode?

Check that: (1) BPTimecode and your device are on the same network/subnet, (2) your firewall allows UDP port 6454, (3) the correct network interface is selected in BPTimecode settings, and (4) Art-Net output is enabled for the slot.

The web UI won't load—what should I check?

Verify the server is running (check terminal output), ensure port 5050 isn't blocked or in use, and try accessing http://127.0.0.1:5050 directly. If running on a different machine, use its IP address instead of localhost.

LTC audio output sounds distorted

LTC requires a clean audio path. Check that: (1) your audio interface sample rate matches the system (48kHz recommended), (2) no audio effects or processing are applied, (3) levels aren't clipping—LTC should peak around -12dB to -6dB.

Where can I get help if I'm stuck?

Open a GitHub issue for bugs or feature requests, or start a GitHub Discussion for questions and community help. The documentation covers most use cases, and the community is active and helpful.