-
fc3bbf894f
Apply go fix modernizations
main
Ian Gulliver
2026-03-05 11:39:13 -08:00
-
e1d8cefd22
WIP: iterative buildCells rewrite
wip-iterative-buildcells
Ian Gulliver
2026-02-24 11:05:38 -08:00
-
-
165b9d1c6c
Add trigger linking, block weight computation via DFS
Ian Gulliver
2026-02-23 22:54:48 -08:00
-
7c1b2a8e7e
Extract init methods and clean up sortedBlocks references
Ian Gulliver
2026-02-23 22:42:21 -08:00
-
88407f40c6
Replace generic constraint with sameRowConstraint
Ian Gulliver
2026-02-23 22:35:24 -08:00
-
49f0cdc290
Remove block sort algorithm and per-seed tests
Ian Gulliver
2026-02-23 22:32:46 -08:00
-
7dbc3e8088
Seed sort weights from cue order instead of input position
Ian Gulliver
2026-02-23 21:04:09 -08:00
-
389c204e27
Revert to simple trigger-edge weight sort (fix 450x perf regression)
Ian Gulliver
2026-02-23 21:01:01 -08:00
-
640038e74f
Extract crossTrackWeight helper, disable debug output in tests
Ian Gulliver
2026-02-23 20:22:50 -08:00
-
6879ab46c3
Track-deepest map to fix cross-track weight ordering in sort
Ian Gulliver
2026-02-23 20:19:56 -08:00
-
0d77d2d6a1
Add deterministic seeds, debug tracing for assignRows cycle detection
Ian Gulliver
2026-02-23 19:06:13 -08:00
-
6c3eb67fb3
Implement weight-based topological sort for timeline blocks
Ian Gulliver
2026-02-23 14:59:45 -08:00
-
8dcd695f84
Split exclusive group rows instead of inserting single gap
Ian Gulliver
2026-02-22 08:24:47 -08:00
-
0341b5e1d8
Propagate chain cells through gaps inserted at cue rows
Ian Gulliver
2026-02-21 23:15:33 -08:00
-
9ae5204733
Use random seed for mock show generation, revert show size to default
Ian Gulliver
2026-02-21 23:11:03 -08:00
-
4ec5cbe8e0
Precompute exclusive group member tracks to avoid hot-loop map allocations
Ian Gulliver
2026-02-21 23:01:07 -08:00
-
1178adba92
Use slices.Insert instead of double-append in insertGap
Ian Gulliver
2026-02-21 22:55:56 -08:00
-
22dbb48b4e
Split mock show generation into methods and clean up randBlock
Ian Gulliver
2026-02-21 22:37:48 -08:00
-
c830709976
Allow multiple time-limited blocks per track per cue
Ian Gulliver
2026-02-21 22:30:04 -08:00
-
7a125c0bc9
Simplify mock show state and allow same-track signal chaining in validator
Ian Gulliver
2026-02-21 22:13:12 -08:00
-
eaf59641fd
Restructure mock show generation with clearer state model
Ian Gulliver
2026-02-21 22:02:56 -08:00
-
f49f3dff14
Remove debug logging from timeline solver
Ian Gulliver
2026-02-21 19:15:53 -08:00
-
34747e3ff8
Investigate timeline solver cycle and add trigger conflict validation
Ian Gulliver
2026-02-21 19:14:14 -08:00
-
4e42b6ea60
Randomly trigger FADE_OUT instead of END for previous cue's blocks in mock show generator
Ian Gulliver
2026-02-21 17:04:54 -07:00
-
956bd5dd2e
Make constraint kind a typed enum, remove dead next_row handling, panic on invalid kinds
Ian Gulliver
2026-02-21 17:01:37 -07:00
-
a847c17596
Add cellTypeAt helper to simplify repeated type checks in timeline solver
Ian Gulliver
2026-02-21 16:56:55 -07:00
-
a504b3e34f
Replace boolean cell flags with CellType enum (event, title, continuation, gap, chain, signal)
Ian Gulliver
2026-02-21 16:52:10 -07:00
-
50d4b12299
Render chain cells as arrows in timeline UI
Ian Gulliver
2026-02-21 16:40:30 -07:00
-
13a4c41cc6
Replace breaks and next_row constraints with chains and gap separators
Ian Gulliver
2026-02-21 16:33:02 -07:00
-
b527b94b16
GenerateMockShow takes scenes/avgCuesPerScene/avgBlocksPerCue instead of fixed cue/block counts
Ian Gulliver
2026-02-20 22:39:29 -07:00
-
7d3a23dfc1
allowedTracks gating, constraint/exclusive helpers, duplicate trigger source validation, re-enable untimed block validation
Ian Gulliver
2026-02-20 22:31:04 -07:00
-
99f79e82f3
Place blocks on random tracks, chain via lastOnTrack
Ian Gulliver
2026-02-20 21:29:16 -07:00
-
ac259bb7a0
Use lastOnTrack for chaining triggers between blocks
Ian Gulliver
2026-02-20 21:22:25 -07:00
-
8b9d9b633a
Add scene end cues that trigger END on untimed blocks
Ian Gulliver
2026-02-20 21:18:32 -07:00
-
911121e463
Scene-based cue naming in mock show generator, stub validation for untimed blocks
Ian Gulliver
2026-02-20 21:14:50 -07:00
-
b282ab710f
Realistic mock show generator, validation for same-track chains and untimed signals, loop icon, assignRows convergence limit
Ian Gulliver
2026-02-20 21:02:18 -07:00
-
4e2135f483
Switch qrunproxy to generated mock show, remove show.json
Ian Gulliver
2026-02-20 20:23:34 -07:00
-
287ca83724
Add mock show generator and timeline benchmark
Ian Gulliver
2026-02-20 20:20:25 -07:00
-
2c31d9505c
Refactor show model/validation into show.go and simplify timeline internals
Ian Gulliver
2026-02-20 20:10:43 -07:00
-
7d398082dd
Simplify const syntax, remove redundant map lookups in buildCells
Ian Gulliver
2026-02-20 17:31:03 -07:00
-
0bfa11c640
Don't add trailing break gap after last block on a track
Ian Gulliver
2026-02-20 17:22:11 -07:00
-
fd0687f2af
Remove dead empty-members check, extract gapInsertionPoint from insertGap
Ian Gulliver
2026-02-20 17:12:50 -07:00
-
bd3dd1a43d
Extract enforceConstraints from assignRows
Ian Gulliver
2026-02-20 17:10:02 -07:00
-
69402ea2e4
Switch Show to pointer slices, share objects between Show and Timeline
Ian Gulliver
2026-02-20 17:06:43 -07:00
-
a7e831cfab
Pre-compute end-chains-same-track set, remove per-block trigger scan
Ian Gulliver
2026-02-20 16:58:42 -07:00
-
f12ef296aa
Switch to []*TimelineCell with embedded row/track, eliminating cellID and index maintenance
Ian Gulliver
2026-02-20 16:46:37 -07:00
-
6ff8675348
Switch to []*TimelineTrack and pointer-based cellID.track
Ian Gulliver
2026-02-20 16:40:27 -07:00
-
90ce4d93fa
Add --print-timeline-and-exit flag
Ian Gulliver
2026-02-20 16:36:18 -07:00
-
47ed09a848
Merge Timeline and timelineBuilder into single struct, remove cells()/setCells()
Ian Gulliver
2026-02-20 16:27:23 -07:00
-
4607e77ee7
Avoid empty rows in solver by pulling other tracks up instead of pushing down
Ian Gulliver
2026-02-20 16:16:23 -07:00
-
214bd91cb2
Inline setSignal, remove iteration limit from assignRows
Ian Gulliver
2026-02-20 15:58:43 -07:00
-
616f2cfb4e
Replace renderRows with per-track cells API, fill continuations in insertGap
Ian Gulliver
2026-02-20 09:04:14 -07:00
-
64e76445cf
Collapse empty rows in timeline, preserving intentional break gaps
Ian Gulliver
2026-02-20 08:57:41 -07:00
-
d0432a122f
Validate show START triggers and respect next_row constraints in insertGap
Ian Gulliver
2026-02-20 08:47:23 -07:00
-
3f1b12742c
Remove expandTargets and process START triggers directly
Ian Gulliver
2026-02-20 08:37:11 -07:00
-
dc2551542b
Remove reference validity checks, set cue track at load time, remove getTrack()
Ian Gulliver
2026-02-20 08:29:56 -07:00
-
2b5644419b
Add gap after block END when it doesn't chain to a same-track START
Ian Gulliver
2026-02-20 08:23:54 -07:00
-
17638ad18f
Simplify timeline types: merge video/audio to media, remove trackCell/blockCells indirection
Ian Gulliver
2026-02-20 08:19:08 -07:00
-
b15fe35a47
Clean up timeline builder: remove trackIDs field, unused error return, redundant map copy
Ian Gulliver
2026-02-20 08:00:32 -07:00
-
0893e5b8cb
Rewrite timeline builder to constraint-based layout with exclusive trigger rows
Ian Gulliver
2026-02-20 07:57:41 -07:00
-
7044b87b79
chore: normalize show ids and preserve json style
Ian Gulliver
2026-02-19 21:00:01 -07:00
-
0778ffa6f8
checkpoint: scaffold qrunproxy timeline API
Ian Gulliver
2026-02-19 20:55:28 -07:00
-
ea932d3225
Simplify qrunweb timeline rendering
Ian Gulliver
2026-02-19 00:07:32 -07:00
-
3e458bfce0
Simplify qrunweb renderer and update screenshot utility
Ian Gulliver
2026-02-19 00:00:17 -07:00
-
7a90916162
Merge adjacent event rows across tracks, batch independent chain triggers
Ian Gulliver
2026-02-18 23:48:08 -07:00
-
79509607ca
Add --run-and-exit flag to qrunweb and screenshot helper script
Ian Gulliver
2026-02-18 23:27:27 -07:00
-
728fff185a
Center block titles between open/close events with compacted title rows
Ian Gulliver
2026-02-18 23:23:08 -07:00
-
9bef8d634d
Remove yellow border from hook labels on signal rows
Ian Gulliver
2026-02-18 22:56:10 -07:00
-
28f58f48f8
Skip flush before chain triggers whose source was already ended
Ian Gulliver
2026-02-18 22:55:11 -07:00
-
4a7eb4aa2a
Fold START signal targets into the row that starts the block
Ian Gulliver
2026-02-18 22:33:16 -07:00
-
4935eb0150
Add chain triggers, fix overlay→light type, fix signal source segments
Ian Gulliver
2026-02-18 22:28:15 -07:00
-
f0db8aa5cd
Switch to typeids, struct triggers, block types, implicit cue track, ALL CAPS signals
Ian Gulliver
2026-02-18 22:00:30 -07:00
-
a32b13a3e2
Render timeline from JSON data, drop playhead highlight and alt signal rows
Ian Gulliver
2026-02-18 21:51:44 -07:00
-
090e91c030
Full-width cue rows, yellow-tinted signal rows with alternating shades
Ian Gulliver
2026-02-18 21:14:33 -07:00
-
31a622e0aa
Enforce no-titles-on-signal-rows rule, highlight signal-connected hooks, fix row splits
Ian Gulliver
2026-02-18 21:03:49 -07:00
-
39c797d114
Add signal/hook indicators, fix trigger consistency, tighten block margins
Ian Gulliver
2026-02-18 17:28:55 -07:00
-
7d0aa910fb
Add web timeline mockup, design doc, and show data model
Ian Gulliver
2026-02-18 13:48:29 -08:00
-
273437ff04
Add mock QLab server and tests, fix OSC typetag parsing off-by-one
Ian Gulliver
2026-02-14 08:20:59 -08:00
-
2f77c727ef
Add 8-channel color mixer with intensity, page buttons, and fill bars
Ian Gulliver
2026-02-14 07:58:00 -08:00
-
7a7d6369e2
RGB color mixer with per-nibble hex control and touch strip display
Ian Gulliver
2026-02-11 22:29:43 -08:00
-
f268d519b8
Fix image headers, add Stream Deck+ color mixer with coarse/fine encoders
Ian Gulliver
2026-02-11 22:16:20 -08:00
-
12e02e680d
Add Stream Deck+ support with encoders, touch strip, and LCD output
Ian Gulliver
2026-02-11 22:07:17 -08:00
-
366f1714a0
Add QLab OSC client library with TCP/SLIP transport
Ian Gulliver
2026-02-11 21:58:30 -08:00
-
dd54bb9797
Switch to 72pt Medium Mono Atkinson Hyperlegible font
Ian Gulliver
2026-02-11 19:38:18 -08:00
-
b4d147b07e
Add text rendering for Stream Deck buttons with toggle demo
Ian Gulliver
2026-02-11 19:23:25 -08:00
-
c9bed33c75
Move libraries to lib/ and PDF to docs/
Ian Gulliver
2026-02-11 19:19:07 -08:00
-
b547334dbe
Add Stream Deck XL library and test command
Ian Gulliver
2026-02-11 19:16:22 -08:00
-
e4bfa80c64
Move xtouchtest to cmd/xtouchtest
Ian Gulliver
2026-02-10 21:40:29 -08:00
-
fa7b310308
Add output control and interactive demo with paired faders, encoder rings, meters, and LCDs
Ian Gulliver
2026-02-10 21:38:04 -08:00
-
14a361e7a0
Add xtouch library for reading X-Touch Extender input events
Ian Gulliver
2026-02-10 21:24:15 -08:00
-
130bab4bc8
Initial commit: MIDI port discovery tool
Ian Gulliver
2026-02-10 21:07:47 -08:00