WebLab

Web-based show control at webcue.duckers.dev

Quick Start

  1. Open webcue.duckers.dev in your browser
  2. Click NEW to create a new show
  3. Click + or Import Media to add cues
  4. Select your audio or video file
  5. Press Space or click GO to fire
Required: Before your show, click LOAD to prepare all audio/video files. Media cues will not play until loaded.

Your First Show

  1. Click NEW in the header
  2. Click + to add your first cue
  3. Enter a name (e.g., "Opening Music")
  4. Select your audio file
  5. Add more cues with +
  6. Drag cues to reorder them
  7. Click SAVE to download your show file

Interface Layout

Header (left): Show name, GO button (big, accent-colored), selected cue name + notes

Header (right): Color-coded transport buttons (PREVIEW=orange, LOAD=teal, STOP=red, FADE=yellow, PANIC=dark red), then undo/redo and action buttons

Resizable Panels: Drag the divider between cue list and editor to resize

Cue List: Your cues - shows cue #, type (A/V/W/C/D/G), name, duration, loop indicator, color coding

Search: Filter cues by name, notes, or number

Editor: Edit selected cue - name, type, file, timing, volume, notes, color, loop, crossfade

Footer: Status (running cue), notes, auto-save indicator, load status, elapsed time, countdown, keyboard hints

Keyboard Shortcuts

KeyAction
SpaceGO - Fire selected cue
Ctrl+SpacePREVIEW - Preview selected cue
EscSTOP
FFADE - Fade out audio
Shift+EscPANIC - All stop + DMX blackout
Ctrl+ZUNDO
Ctrl+YREDO
/ Select cue
EnterFire selected cue
DeleteDelete selected cue (with confirmation)

GO Behavior

When you press GO:

  1. Fires the currently selected cue
  2. Automatically selects the next cue
  3. Next GO fires that next cue

Audio from previous cues continues playing layered underneath new cues. Use STOP or FADE to silence. Enable Crossfade on a cue to fade out previous audio when it fires.

Audio & Video Cues

Volume: Set 0-100% per cue

Fade In/Out: Duration in seconds

Loop: Check "Loop" in editor to repeat audio/video until stopped

Crossfade: Check "Crossfade" to smoothly fade out previous audio when this cue fires

LOAD first: Click LOAD before your show to pre-load all media for instant playback

Wait Cue

W WAIT - Pauses for specified duration

Duration in seconds - the show waits before auto-advancing (if enabled)

Command Cue

C COMMAND - Sends an HTTP request

Useful for triggering other software, APIs, or home automation.

http://192.168.1.100:8080/trigger

QLC+ DMX Cue

D QLC+ - Controls DMX lights via QLC+

  1. In QLC+, enable Settings > Network > Enable HTTP Server
  2. In WebLab Settings, enter QLC+ URL
  3. Cue settings: Universe (0-15), Channel (1-512), Values (0-255 comma-separated)
Universe: 0
Channel: 1
Values: 255, 128, 64

Group Cues

G GROUP - Fires multiple child cues simultaneously

Enter cue numbers (1-indexed, e.g. 3,4,5) in the "Group Children" field. When the GROUP cue fires, all children fire at once. Set a Duration to auto-advance to the next cue after that many seconds. If duration is 0, auto-advance (if enabled) fires immediately.

Loading Media

Media must be loaded before playback. Click LOAD in the transport bar to prepare all audio/video files:

  1. Add media cues with audio/video files
  2. Click LOAD — loaded cues show a green checkmark ✓
  3. Cues will not play unless loaded
Important: Browser security requires a user gesture (click/tap) before media can load. If LOAD doesn't work, interact with the page first.

Loop & Crossfade

Loop: Enable on audio/video cues to repeat playback until manually stopped or the next cue fires.

Crossfade: When enabled on an audio cue, the previously playing audio will fade out while the new one fades in. Configure the fade-out duration on the previous cue.

Preview

Click PREVIEW or press Ctrl+Space to play a selected cue without firing the GO chain (doesn't auto-advance or trigger next cues). Useful for sound checks and testing.

Install / PWA

WebLab is a Progressive Web App. Install it for offline access and a native-like experience:

Once installed, the app works offline with cached assets. Show data is stored in your browser's localStorage.

Undo / Redo

WebLab tracks up to 50 history states. Use Ctrl+Z to undo and Ctrl+Y to redo changes. The undo/redo buttons in the header show available states.

Drag & Drop Reordering

Drag any cue item up or down in the cue list to reorder. A green border shows the drop target.

Cue Number

Each cue has a number shown in the editor header. Edit this number to move the cue to a different position in the list. For example, changing cue #5 to #3 shifts it between the current #2 and #3.

Use the search bar above the cue list to filter cues by name, notes, type, or number. Non-matching cues are hidden.

MIDI Input

Connect a MIDI controller (foot pedal, keyboard, etc.) to trigger cues:

Remote Control

Enable WebSocket remote in Settings to control WebLab from another device:

OSC Output

Sends cue data as HTTP POST to a configured host/port on every GO. This is not true OSC — it sends JSON over HTTP (useful for triggering other apps like OBS, Resolume, or custom middleware).

Configure in Settings: Host (e.g. 127.0.0.1) and Port (e.g. 8000).

Payload sent on each GO:

{
  "cue": 1,
  "name": "Opening Music",
  "type": "audio"
}

This is separate from Command cues — Command cues send a configurable URL when fired, while OSC Output is a blanket setting that fires on every GO.

Settings

License

MIT License - Open source, free to use.

webcue.duckers.dev
GitHub