Timecoded and Controllable Buffer (VJ.Tools)
Daydream Scope node for VJSync beat-grid timecoding. Stamps barcode timecodes using Ableton Link beat clock, preserves them through AI video generation via VACE masking, and provides buffered playback with MIDI/OSC feedback.
Nodes
VJSync Timecode (Preprocessor)
Stamps a 16px VJSync v2 TMR barcode at the bottom of input frames and generates VACE masks to preserve it through AI generation.
- Timecode toggle — enable/disable barcode stamping at runtime
- VACE masking — binary mask tells AI to preserve barcode pixels
- Configurable feathering — soft transition at barcode boundary
VJSync Post (Postprocessor)
Buffers AI output with playback speed and latency controls, decodes surviving timecodes, and sends feedback to external controllers.
- Playback speed — 0.1x to 4x, outputs multiple frames per call at higher speeds
- Buffer delay — 0-5000ms latency buffer
- Barcode decode — measures timecode survival rate through AI
- MIDI CC feedback — buffer fill level and decode rate sent as CC values for LED ring visualization
- OSC feedback — full buffer stats at 20Hz to TouchOSC, Lemur, etc.
All runtime parameters are automatically available for MIDI mapping in Scope's controller interface.
Installation
In Daydream Scope:
- Settings → Nodes → paste the GitHub URL:
https://github.com/OpticMystic/scope-timecoded-buffer-vj_tools
For local development:
uv pip install -e /path/to/scope-vjsync-node
Preprocessor Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| timecode_enabled | bool | true | Enable/disable barcode stamping |
| control_mode | string | "none" | "none", "canny", "depth", or "scribble" |
| canny_low | int | 50 | Canny lower threshold |
| canny_high | int | 150 | Canny upper threshold |
| mask_feather | int | 2 | Soft transition pixels at barcode boundary |
Postprocessor Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| playback_speed | float | 1.0 | Playback speed (0.1-4.0) |
| buffer_delay_ms | float | 0.0 | Latency delay in ms (0-5000) |
| strip_barcode | bool | true | Remove barcode strip from output |
| decode_tc | bool | true | Decode timecode and report survival |
| osc_feedback | bool | false | Send buffer stats via OSC |
| midi_feedback | bool | false | Send buffer fill as MIDI CC |
MIDI/OSC config (port, channel, CC numbers) is in Settings panel.
Dependencies
opencv-python-headless(required)mido+python-rtmidi(optional, for MIDI feedback)python-osc(optional, for OSC feedback)
License
MIT

