Commit Graph

17 Commits

Author SHA1 Message Date
Paul Lipscomb 22e4fa770e Multi-select, context menu, section strikethrough, rename/duplicate presets
- Multi-select strips with click, Ctrl+click (toggle), Shift+click (range, same zone)
- Right-click selected strip: context menu with Cascade CC, Assign Channel, Deselect All
- Right-click unselected strip: clears all selections
- Selection status label shows count and type (faders/toggles/transport toggles)
- Rename preset button added to preset row
- Duplicate preset button auto-generates new UUID
- Layout panel section buttons show strikethrough when hidden, normal when visible
- Renamed Preset Browser to Instrument Browser in UI
- Transport strips wired for multi-select and context menu

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 21:53:45 -04:00
Paul Lipscomb 327ca7e00a Layout panel wired, section visibility, preset management improvements
- Wire all 5 Layout panel section toggles (Preset Browser, Big Title, Fader Row, Toggle Row, Transport Row)
- Replace checkboxes with clickable title buttons (highlighted=visible, dimmed=hidden)
- Move Big Title inside fader container, between Hide Params button and fader strips
- Wrap transport/fader/toggle rows in container widgets for setVisible support
- Reposition separator between preset browser and mixer row
- Open Layout panel by default on launch
- Add Duplicate preset button (auto-generates new UUID)
- Add Rename preset button
- Swap preset browser label and show-hide button order
- Persist section visibility state per preset under new 'sections' key

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 21:18:28 -04:00
Paul Lipscomb d8f4cbcdd4 add Mom/Tog to ToggleWidget, Big Title, Layout panel scaffold
- ToggleWidget: add Momentary/Toggle mode selector (mirrors TransportWidget
  minus OSC); HW routing respects trigger_mode; fix invisible button on init
  by removing explicit empty stylesheet; saves/loads trigger_mode per preset
- Big Title: full-width 28px bold QLineEdit above fader row, saves per-preset
  as big_title; green underline on focus; single bottom border, no separator
- Layout panel: floating 220px window to the left of main window, toggled by
  new Layout button next to Messages; shows Sections checkboxes (Preset
  Browser, Big Title, Fader Row, Toggle Row, Transport Row); tracks window
  move/resize; checkboxes not yet wired to functionality

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 18:49:50 -04:00
Paul Lipscomb b68e5e3ac2 major session: transport lasso layout, MIDI learn wiring, note passthrough, log windows, lock preset, CC blocking
- transport widget restructured to two-group lasso layout (grp_learn + grp_cc) matching fader/toggle pattern
- fixed MIDI learn for transport (bind_hw_cc channel param) and preset browser (wired to check_and_start_midi_learn)
- transport HW routing now respects output_mode and trigger_mode; OSC mode fires on any value, MIDI momentary fires on any value
- preset browser on_hw_trigger fires on any value (0 or 127 both send 127 out)
- unbound CCs are dropped, no passthrough; notes (0x80/0x90) pass through freely to midi_out
- four MIDI/OSC log windows: OSC In, OSC Out, MIDI In, MIDI Out with formatted note/CC display
- midi_out_signal now carries message list for logging
- lock preset checkbox: always defaults to True on launch, not persisted
- transport cc_output_lbl always visible, content adapts to MIDI/OSC mode
- preset browser show/hide saves and restores correctly per preset
- CLAUDE.md added with full project architecture, conventions, and planned features

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 17:56:45 -04:00
Paul Lipscomb 23bfc88f13 global note pass through but cc filtering unless assigned 2026-06-29 05:40:02 -04:00
Paul Lipscomb 3861a8f508 more momentary fixes 2026-06-29 04:27:39 -04:00
Paul Lipscomb fc9da58d7c added midi messages log windows 2026-06-29 04:14:09 -04:00
Paul Lipscomb 16fa8395c7 momentary fix 2026-06-29 03:56:16 -04:00
Paul Lipscomb e5e0a9df96 momentary osc 1.0 added - lock preset default on start up 2026-06-29 03:50:35 -04:00
Paul Lipscomb 452a72d3ce learn implemented on preset - transport widget - ui layout transport widget 2026-06-29 03:41:25 -04:00
Paul Lipscomb 6f6637eec8 add requirements.txt 2026-06-29 02:05:19 -04:00
Paul Lipscomb 0aad488db5 preset browser widget / lock preset 2026-06-29 01:49:39 -04:00
Paul Lipscomb 0a5cfa88f1 feat: per-strip CC/CH translation, layout groups, show/hide improvements 2026-06-27 02:26:24 -04:00
Paul Lipscomb 460515ba0d Refactor: Move all UI widget construction to module level
- Extract all QWidget/QLayout instances and property configuration to module level
- Group by element: constructor → properties for each widget
- Keep __init__ assembly-only: addWidget, addLayout, addStretch, signals
- Explicit naming for clarity: separator_vertical_fader_zone_left, etc
- Applies to: IO columns (MIDI IN/OUT, Transport, OSC), Preset Browser, Transport/Fader/Toggle rows, OSC feedback containers
- Pattern: Module = what it is; __init__ = where it goes
2026-06-18 18:57:27 -04:00
Paul Lipscomb a382c521a8 Refactor: Module-level UI construction (MIDI IN column) 2026-06-18 02:17:45 -04:00
Paul Lipscomb a347b7bcb6 refactor before main_maindow tear down 2026-06-17 01:31:09 -04:00
Paul Lipscomb 3e2147fa02 initial commit 2026-06-16 22:37:38 -04:00