Disguise (d3) Integration
Feed timecode to Disguise media servers for frame-accurate video playback sync.
What You'll Learn
- Configure BPTimecode to output Art-Net timecode for Disguise
- Set up Disguise to receive and chase timecode
- Alternative setup using LTC audio input
- Tips for reliable live production workflows
⏱️ Time: ~20 minutes
Prerequisites
- BPTimecode installed and running
- Disguise Designer or a d3 media server
- Both systems on the same network (for Art-Net method)
- Audio interface with LTC output capability (for LTC method)
📡 Which Method Should I Use?
Art-Net is preferred for most setups—it's all-digital, requires no additional hardware, and is extremely reliable over Ethernet.
LTC may be required if you need to integrate with existing LTC infrastructure or if your show control system expects LTC.
Method 1: Art-Net Timecode
Art-Net timecode is transmitted over your show network alongside DMX data. This is the cleanest integration method.
Step 1: Configure BPTimecode Output
- Open BPTimecode web UI (default:
http://localhost:5050) - Navigate to Routing
- Create or select an Art-Net output:
- Name: Disguise TC
- Protocol: Art-Net
- Destination: Broadcast (
255.255.255.255) or Disguise server IP
- Assign your timecode slot to this output
# CLI alternative: create Art-Net output
bptimecode output create "Disguise TC" --protocol artnet --destination 192.168.1.100
# Route slot 1 to this output
bptimecode route set 1 "Disguise TC" Step 2: Configure Disguise to Receive Art-Net TC
- In Disguise, open Project Settings
- Go to Timecode tab
- Set Timecode Source:
Art-Net Timecode - If using unicast, ensure Disguise is listening on the correct network interface
- Set Frame Rate to match your BPTimecode slot (e.g., 24, 25, 29.97, 30)
💡 Frame Rate Matching
Disguise and BPTimecode must use the same frame rate. Mismatched rates cause drift and playback issues. Common rates:
- 24 fps - Film/cinema
- 25 fps - PAL broadcast
- 29.97 fps - NTSC (drop-frame or non-drop)
- 30 fps - Common for live production
Step 3: Set Up Timeline Chase
- In Disguise, open your Track or Section
- Enable Timecode Chase mode
- Set the Chase Offset if your timeline doesn't start at 00:00:00:00
- Test by playing timecode from BPTimecode—Disguise should follow
Method 2: LTC Audio Input
If you need LTC, BPTimecode can output timecode as audio that Disguise receives via an audio interface.
Step 1: Configure LTC Output
- In BPTimecode, go to Routing
- Create an LTC output:
- Name: Disguise LTC
- Protocol: LTC
- Audio Device: Select your audio interface output
- Route your timecode slot to this output
# List available audio devices
bptimecode device list
# Create LTC output on device
bptimecode output create "Disguise LTC" --protocol ltc --device "MOTU UltraLite" Step 2: Physical Audio Connection
- Connect an audio cable from your BPTimecode machine's audio output to the Disguise server's audio input
- Use a balanced line-level connection if possible (XLR or TRS)
- LTC is a robust signal but keeping levels healthy (-12 to 0 dBFS) improves reliability
Step 3: Configure Disguise LTC Input
- In Disguise Project Settings → Timecode
- Set Timecode Source:
LTC - Select the correct Audio Input device/channel
- Monitor the timecode display to verify signal is being received
Show Control Integration
For complex shows, you'll often want to trigger BPTimecode from a show controller (QLab, Companion, etc.):
# OSC commands for show control integration
/bptimecode/slot/1/play # Start playback
/bptimecode/slot/1/stop # Stop playback
/bptimecode/slot/1/timecode "01:00:00:00" # Jump to time
/bptimecode/preset/recall "Act2Start" # Recall named preset This allows your show controller to:
- Start timecode at the beginning of each act/section
- Jump to specific cue points
- Stop timecode during breaks
Troubleshooting
Disguise isn't receiving timecode
- Art-Net: Check that both machines are on the same subnet. Try using broadcast address.
- LTC: Verify audio signal is reaching Disguise (check input meters). Ensure correct audio input is selected.
- Confirm BPTimecode slot is actually playing (not paused/stopped)
- Check firewall isn't blocking Art-Net ports (6454 UDP)
Timecode is drifting or jumping
- Ensure frame rates match exactly between BPTimecode and Disguise
- For Art-Net: Check for network congestion or packet loss
- For LTC: Check audio cable quality and signal levels
- If using WiFi, switch to wired Ethernet
Drop-frame vs non-drop-frame issues
29.97 fps can be drop-frame (DF) or non-drop-frame (NDF). These are different:
- DF: Timecode matches wall-clock time (used for broadcast)
- NDF: Timecode runs slightly slow (used for film)
Both BPTimecode and Disguise must use the same DF/NDF setting. BPTimecode displays DF with semicolons (01:00:00;00) and NDF with colons (01:00:00:00).
Best Practices for Live Production
🔄 Test Before the Show
Run through your entire show file with timecode chase enabled. Verify all cue points trigger correctly.
📊 Monitor Status
Keep BPTimecode's web UI visible on a monitoring station during the show. Use the health indicators to spot issues early.
🎯 Use Presets
Create presets in BPTimecode for key show points (Act starts, scene changes). This allows quick recovery if something goes wrong.
🔌 Redundancy
For critical shows, consider running a backup BPTimecode instance. Use Art-Net broadcast so both can feed the same destination if needed.