From a32b13a3e2176a5c9ea674e8813492f50464e6e1 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 18 Feb 2026 21:51:44 -0700 Subject: [PATCH] Render timeline from JSON data, drop playhead highlight and alt signal rows --- cmd/qrunweb/static/index.html | 504 ++++++++++++++++++---------------- cmd/qrunweb/static/show.json | 50 ++++ 2 files changed, 323 insertions(+), 231 deletions(-) create mode 100644 cmd/qrunweb/static/show.json diff --git a/cmd/qrunweb/static/index.html b/cmd/qrunweb/static/index.html index 0c2355c..ab842df 100644 --- a/cmd/qrunweb/static/index.html +++ b/cmd/qrunweb/static/index.html @@ -25,7 +25,6 @@ --audio-bg: rgba(10, 10, 42, 0.55); --delay-color: #999; --delay-bg: rgba(26, 26, 26, 0.55); - --current-row: #304a20; --infinity-color: #666; } @@ -54,7 +53,6 @@ header h1 { font-size: 16px; font-weight: 600; letter-spacing: 0.05em; } .timeline { display: grid; - grid-template-columns: repeat(6, 140px); grid-auto-rows: 24px; } @@ -73,11 +71,6 @@ header h1 { font-size: 16px; font-weight: 600; letter-spacing: 0.05em; } display: flex; flex-direction: column; justify-content: center; } -.cell.row-current { - background: var(--current-row); - border-top: 1px solid rgba(80, 200, 80, 0.5); - border-bottom: 1px solid rgba(80, 200, 80, 0.5); -} .block { margin: 0 3px; position: relative; z-index: 1; flex: 1; @@ -114,11 +107,6 @@ header h1 { font-size: 16px; font-weight: 600; letter-spacing: 0.05em; } border-top: 1px solid rgba(255, 204, 0, 0.3); border-bottom: 1px solid rgba(255, 204, 0, 0.3); } -.cell.sig-row-alt { - background: rgba(255, 204, 0, 0.14); - border-top: none; - border-bottom: 1px solid rgba(255, 204, 0, 0.3); -} .block.light { color: var(--light-color); border-color: var(--light-color); background: var(--light-bg); } .block.video { color: var(--video-color); border-color: var(--video-color); background: var(--video-bg); } .block.overlay { color: var(--overlay-color); border-color: var(--overlay-color); background: var(--overlay-bg); } @@ -167,228 +155,282 @@ header h1 { font-size: 16px; font-weight: 600; letter-spacing: 0.05em; }

QRUN

-
- QLab Connected - Show: The Tempest - Cue: 12 / 47 -
+
-
- -
Cue
-
Lighting A
-
Lighting B
-
Video
-
Video OVL
-
Audio
- - -
Q10 Preshow
-
start
-
start
-
start
-
-
start
- -
-
Preshow Wash
-
Warm 70%
-
Preshow Loop
-
-
Preshow Music
- -
Q11 House Open
-
-
fade out
-
-
-
- -
-
-
end
-
-
-
- -
-
-
start
-
-
-
- -
Q12 Top of Show
-
fade out
-
-
fade out
-
-
fade out
- -
-
end
-
-
end
-
-
end
- -
-
-
-
start
-
-
- -
-
-
Cool 50%
-
3s Delay
-
-
- -
-
-
-
end
-
-
- -
-
start
-
end
-
start
-
-
start
- -
-
-
start
-
-
start
-
- -
-
-
-
-
-
fade in
- -
-
SC1 Focus
-
SC1 Blue 80%
-
Sc1 Projection
-
Lightning Flash
-
Storm Ambience
- -
-
-
-
fade out
-
end
-
- -
-
-
-
end
-
start
-
- -
Q13 Sc1 Dialog
-
fade out
-
fade out
-
-
-
fade out
- -
-
end
-
-
-
-
- -
-
-
-
-
-
end
- -
-
-
end
-
-
-
- -
-
start
-
-
-
-
start
- -
-
-
start
-
-
-
- -
-
Dialog Spots
-
Warm 90%
-
-
Wave Overlay
-
Dialog Underscore
- -
Q14 Sc2 Trans
-
fade out
-
fade out
-
start
-
fade out
-
end
- -
-
end
-
end
-
-
-
- -
-
start
-
start
-
-
-
- -
-
-
-
-
end
-
start
- -
-
SC2 Focus
-
SC2 Amber 60%
-
Sc2 Background
-
-
SC2 Atmos
- -
-
∿∿∿
-
∿∿∿
-
∿∿∿
-
-
∿∿∿
- -
+
+ diff --git a/cmd/qrunweb/static/show.json b/cmd/qrunweb/static/show.json new file mode 100644 index 0000000..264502b --- /dev/null +++ b/cmd/qrunweb/static/show.json @@ -0,0 +1,50 @@ +{ + "show": "The Tempest", + "currentCue": "q12", + "tracks": [ + {"id": "cue", "name": "Cue", "type": "cue"}, + {"id": "light-a", "name": "Lighting A", "type": "light"}, + {"id": "light-b", "name": "Lighting B", "type": "light"}, + {"id": "video", "name": "Video", "type": "video"}, + {"id": "video-ovl", "name": "Video OVL", "type": "overlay"}, + {"id": "audio", "name": "Audio", "type": "audio"} + ], + "blocks": [ + {"id": "q10", "track": "cue", "name": "Q10 Preshow"}, + {"id": "preshow-wash", "track": "light-a", "name": "Preshow Wash"}, + {"id": "warm-70", "track": "light-b", "name": "Warm 70%"}, + {"id": "preshow-loop", "track": "video", "name": "Preshow Loop"}, + {"id": "preshow-music", "track": "audio", "name": "Preshow Music"}, + {"id": "q11", "track": "cue", "name": "Q11 House Open"}, + {"id": "q12", "track": "cue", "name": "Q12 Top of Show"}, + {"id": "cool-50", "track": "light-b", "name": "Cool 50%"}, + {"id": "delay-3s", "track": "video", "name": "3s Delay", "type": "delay"}, + {"id": "sc1-focus", "track": "light-a", "name": "SC1 Focus"}, + {"id": "sc1-blue", "track": "light-b", "name": "SC1 Blue 80%"}, + {"id": "sc1-projection", "track": "video", "name": "Sc1 Projection"}, + {"id": "lightning-flash", "track": "video-ovl", "name": "Lightning Flash"}, + {"id": "storm-ambience", "track": "audio", "name": "Storm Ambience"}, + {"id": "q13", "track": "cue", "name": "Q13 Sc1 Dialog"}, + {"id": "wave-overlay", "track": "video-ovl", "name": "Wave Overlay"}, + {"id": "dialog-spots", "track": "light-a", "name": "Dialog Spots"}, + {"id": "warm-90", "track": "light-b", "name": "Warm 90%"}, + {"id": "dialog-underscore", "track": "audio", "name": "Dialog Underscore"}, + {"id": "q14", "track": "cue", "name": "Q14 Sc2 Trans"}, + {"id": "sc2-focus", "track": "light-a", "name": "SC2 Focus", "infinity": true}, + {"id": "sc2-amber", "track": "light-b", "name": "SC2 Amber 60%", "infinity": true}, + {"id": "sc2-background", "track": "video", "name": "Sc2 Background", "infinity": true}, + {"id": "sc2-atmos", "track": "audio", "name": "SC2 Atmos", "infinity": true} + ], + "triggers": [ + {"source": "q10", "targets": ["preshow-wash:start", "warm-70:start", "preshow-loop:start", "preshow-music:start"]}, + {"source": "q11", "targets": ["warm-70:fade_out"]}, + {"source": "q12", "targets": ["preshow-wash:fade_out", "preshow-loop:fade_out", "preshow-music:fade_out"]}, + {"source": "sc1-projection:start", "targets": ["sc1-focus:start", "cool-50:end", "storm-ambience:start"]}, + {"source": "sc1-blue:start", "targets": ["lightning-flash:start"]}, + {"source": "sc1-projection:fade_out", "targets": ["lightning-flash:end"]}, + {"source": "q13", "targets": ["sc1-focus:fade_out", "sc1-blue:fade_out", "storm-ambience:fade_out", "wave-overlay:start"]}, + {"source": "dialog-underscore:start", "targets": ["dialog-spots:start"]}, + {"source": "q14", "targets": ["dialog-spots:fade_out", "warm-90:fade_out", "sc2-background:start", "wave-overlay:fade_out", "dialog-underscore:end"]}, + {"source": "wave-overlay:end", "targets": ["sc2-atmos:start"]} + ] +}