Commit Graph

47 Commits

Author SHA1 Message Date
Ian Gulliver a7e831cfab Pre-compute end-chains-same-track set, remove per-block trigger scan 2026-02-20 16:58:42 -07:00
Ian Gulliver f12ef296aa Switch to []*TimelineCell with embedded row/track, eliminating cellID and index maintenance 2026-02-20 16:46:37 -07:00
Ian Gulliver 6ff8675348 Switch to []*TimelineTrack and pointer-based cellID.track 2026-02-20 16:40:27 -07:00
Ian Gulliver 90ce4d93fa Add --print-timeline-and-exit flag 2026-02-20 16:36:18 -07:00
Ian Gulliver 47ed09a848 Merge Timeline and timelineBuilder into single struct, remove cells()/setCells() 2026-02-20 16:27:23 -07:00
Ian Gulliver 4607e77ee7 Avoid empty rows in solver by pulling other tracks up instead of pushing down 2026-02-20 16:16:23 -07:00
Ian Gulliver 214bd91cb2 Inline setSignal, remove iteration limit from assignRows 2026-02-20 15:58:43 -07:00
Ian Gulliver 616f2cfb4e Replace renderRows with per-track cells API, fill continuations in insertGap 2026-02-20 09:04:14 -07:00
Ian Gulliver 64e76445cf Collapse empty rows in timeline, preserving intentional break gaps 2026-02-20 08:57:41 -07:00
Ian Gulliver d0432a122f Validate show START triggers and respect next_row constraints in insertGap 2026-02-20 08:47:23 -07:00
Ian Gulliver 3f1b12742c Remove expandTargets and process START triggers directly 2026-02-20 08:37:11 -07:00
Ian Gulliver dc2551542b Remove reference validity checks, set cue track at load time, remove getTrack() 2026-02-20 08:29:56 -07:00
Ian Gulliver 2b5644419b Add gap after block END when it doesn't chain to a same-track START 2026-02-20 08:23:54 -07:00
Ian Gulliver 17638ad18f Simplify timeline types: merge video/audio to media, remove trackCell/blockCells indirection 2026-02-20 08:19:08 -07:00
Ian Gulliver b15fe35a47 Clean up timeline builder: remove trackIDs field, unused error return, redundant map copy 2026-02-20 08:00:32 -07:00
Ian Gulliver 0893e5b8cb Rewrite timeline builder to constraint-based layout with exclusive trigger rows 2026-02-20 07:57:41 -07:00
Ian Gulliver 7044b87b79 chore: normalize show ids and preserve json style 2026-02-19 21:00:01 -07:00
Ian Gulliver 0778ffa6f8 checkpoint: scaffold qrunproxy timeline API 2026-02-19 20:55:28 -07:00
Ian Gulliver ea932d3225 Simplify qrunweb timeline rendering 2026-02-19 00:07:32 -07:00
Ian Gulliver 3e458bfce0 Simplify qrunweb renderer and update screenshot utility 2026-02-19 00:00:17 -07:00
Ian Gulliver 7a90916162 Merge adjacent event rows across tracks, batch independent chain triggers 2026-02-18 23:48:08 -07:00
Ian Gulliver 79509607ca Add --run-and-exit flag to qrunweb and screenshot helper script 2026-02-18 23:27:27 -07:00
Ian Gulliver 728fff185a Center block titles between open/close events with compacted title rows 2026-02-18 23:23:08 -07:00
Ian Gulliver 9bef8d634d Remove yellow border from hook labels on signal rows 2026-02-18 22:56:10 -07:00
Ian Gulliver 28f58f48f8 Skip flush before chain triggers whose source was already ended 2026-02-18 22:55:11 -07:00
Ian Gulliver 4a7eb4aa2a Fold START signal targets into the row that starts the block 2026-02-18 22:33:16 -07:00
Ian Gulliver 4935eb0150 Add chain triggers, fix overlay→light type, fix signal source segments 2026-02-18 22:28:15 -07:00
Ian Gulliver f0db8aa5cd Switch to typeids, struct triggers, block types, implicit cue track, ALL CAPS signals 2026-02-18 22:00:30 -07:00
Ian Gulliver a32b13a3e2 Render timeline from JSON data, drop playhead highlight and alt signal rows 2026-02-18 21:51:44 -07:00
Ian Gulliver 090e91c030 Full-width cue rows, yellow-tinted signal rows with alternating shades 2026-02-18 21:14:33 -07:00
Ian Gulliver 31a622e0aa Enforce no-titles-on-signal-rows rule, highlight signal-connected hooks, fix row splits 2026-02-18 21:03:49 -07:00
Ian Gulliver 39c797d114 Add signal/hook indicators, fix trigger consistency, tighten block margins 2026-02-18 17:28:55 -07:00
Ian Gulliver 7d0aa910fb Add web timeline mockup, design doc, and show data model 2026-02-18 13:48:29 -08:00
Ian Gulliver 273437ff04 Add mock QLab server and tests, fix OSC typetag parsing off-by-one 2026-02-14 08:20:59 -08:00
Ian Gulliver 2f77c727ef Add 8-channel color mixer with intensity, page buttons, and fill bars 2026-02-14 07:58:00 -08:00
Ian Gulliver 7a7d6369e2 RGB color mixer with per-nibble hex control and touch strip display 2026-02-11 22:29:43 -08:00
Ian Gulliver f268d519b8 Fix image headers, add Stream Deck+ color mixer with coarse/fine encoders 2026-02-11 22:16:20 -08:00
Ian Gulliver 12e02e680d Add Stream Deck+ support with encoders, touch strip, and LCD output 2026-02-11 22:07:17 -08:00
Ian Gulliver 366f1714a0 Add QLab OSC client library with TCP/SLIP transport 2026-02-11 21:58:30 -08:00
Ian Gulliver dd54bb9797 Switch to 72pt Medium Mono Atkinson Hyperlegible font 2026-02-11 19:38:18 -08:00
Ian Gulliver b4d147b07e Add text rendering for Stream Deck buttons with toggle demo 2026-02-11 19:23:25 -08:00
Ian Gulliver c9bed33c75 Move libraries to lib/ and PDF to docs/ 2026-02-11 19:19:07 -08:00
Ian Gulliver b547334dbe Add Stream Deck XL library and test command 2026-02-11 19:16:22 -08:00
Ian Gulliver e4bfa80c64 Move xtouchtest to cmd/xtouchtest 2026-02-10 21:40:29 -08:00
Ian Gulliver fa7b310308 Add output control and interactive demo with paired faders, encoder rings, meters, and LCDs 2026-02-10 21:38:04 -08:00
Ian Gulliver 14a361e7a0 Add xtouch library for reading X-Touch Extender input events 2026-02-10 21:24:15 -08:00
Ian Gulliver 130bab4bc8 Initial commit: MIDI port discovery tool 2026-02-10 21:07:47 -08:00