Commit Graph

  • 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