WebLab
Web-based show control at webcue.duckers.dev
Quick Start
- Open webcue.duckers.dev in your browser
- Click NEW to create a new show
- Click + or Import Media to add cues
- Select your audio or video file
- Press Space or click GO to fire
Your First Show
- Click NEW in the header
- Click + to add your first cue
- Enter a name (e.g., "Opening Music")
- Select your audio file
- Add more cues with +
- Drag cues to reorder them
- 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
| Key | Action |
|---|---|
| Space | GO - Fire selected cue |
| Ctrl+Space | PREVIEW - Preview selected cue |
| Esc | STOP |
| F | FADE - Fade out audio |
| Shift+Esc | PANIC - All stop + DMX blackout |
| Ctrl+Z | UNDO |
| Ctrl+Y | REDO |
| ↑ / ↓ | Select cue |
| Enter | Fire selected cue |
| Delete | Delete selected cue (with confirmation) |
GO Behavior
When you press GO:
- Fires the currently selected cue
- Automatically selects the next cue
- 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
- A AUDIO - Plays an audio file
- V VIDEO - Plays video fullscreen
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+
- In QLC+, enable Settings > Network > Enable HTTP Server
- In WebLab Settings, enter QLC+ URL
- 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:
- Add media cues with audio/video files
- Click LOAD — loaded cues show a green checkmark ✓
- Cues will not play unless loaded
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:
- Desktop: Open webcue.duckers.dev in Chrome/Edge, click the install icon in the address bar
- Mobile: Open in Chrome/Safari, tap "Add to Home Screen" from the share menu
- Local server:
python -m http.server 8000in the project directory, then visithttp://localhost:8000
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.
Cue Search
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:
- Configure MIDI note numbers for GO and STOP in Settings
- Default: MIDI note 36 = GO, note 44 = STOP
- Works with any Web MIDI-compatible browser (Chrome, Edge)
Remote Control
Enable WebSocket remote in Settings to control WebLab from another device:
- Configure a WebSocket port (default: 8080)
- Send JSON commands:
{"action":"go"},{"action":"stop"},{"action":"panic"},{"action":"fade"},{"action":"fire","index":0}
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
- Space = GO - Spacebar fires next cue
- Auto-advance - Automatically fire next cue when current ends
- Auto-save - Save show to localStorage on every change
- Theme - Choose accent color (Green, Blue, Amber, Purple)
- Compact mode - Tighter spacing for more cues visible at once
- Crossfade default - Enable crossfade on new cues by default
- QLC+ URL - For DMX control
- OSC Host/Port - For external integration
- MIDI notes - Configure MIDI note numbers for GO and STOP
- WebSocket remote - Enable/disable remote control
- Mobile View - Toggle mobile layout
License
MIT License - Open source, free to use.