The Two Windows

Every rustjay-engine app opens two windows on startup.

The Output window

The output window is your GPU canvas. It renders your effect full-resolution every frame, with no UI chrome — just pixels.

Keyboard shortcuts (focus on the output window):

KeyAction
Shift+FToggle fullscreen
Shift+TTap tempo
Shift+F1Shift+F8Recall preset quick-slot
EscapeQuit

When you go fullscreen, the control window stays open on whichever screen it's on — send it to your laptop display while the output window fills a projector.

The Control window

The control window is an ImGui panel with a row of tabs. The built-in tabs are:

Input tab

Select the video source for @group(0) @binding(0):

  • Webcam — any connected capture device; pick by name or index
  • NDI — receive from any NDI source on the LAN (requires ndi feature)
  • Syphon (macOS) — receive from any Syphon server (VDMX, Resolume, other effects)
  • Spout (Windows) — same idea, DirectX-based
  • V4L2 (Linux) — virtual or physical video device

If no source is selected, the input texture is solid black.

Audio tab

Shows the live audio input waveform and 8-band FFT spectrum, current BPM estimate, beat phase progress bar, and the Tempo & Sync section for tempo source selection.

LFO tab

Three LFO banks (A, B, C), each with:

  • Waveform selector (Sine, Triangle, Saw, Square, Noise)
  • Rate — Hz or beat division
  • Depth — modulation amount
  • Target — which declared parameter to modulate

See LFOs for details.

MIDI tab

Shows connected MIDI devices. Click Learn on any parameter to arm CC learn mode — move a knob on your controller to assign it. Shows the current CC mapping for each parameter.

OSC tab

Displays the OSC server address and port (default 0.0.0.0:7770). Parameters are addressable as /rustjay/<param-id>.

Presets tab

Save and load snapshots of the full engine state + your effect state. Eight quick-slots correspond to Shift+F1Shift+F8 on the output window.

Output tab

Configure where your rendered frames go beyond the output window:

  • NDI — publish to the LAN as an NDI source
  • Syphon / Spout — share with other VJ apps
  • V4L2 — write to a loopback device

Sync tab (optional)

Only visible when the link or prodj feature is enabled. Lets you choose the active tempo source (Audio / Ableton Link / ProDJ Link) and shows the current Link session or ProDJ deck list.

Custom tabs

Your effect can add its own tab to the control window, or replace a built-in tab. See Custom Tabs.