Releases: function-store/TD_ParHoverMIDI_VSN1
Release 1.9.0
.tox:
- performance improvement
- improved zoom mechansim
- fixed device state after init
- future: TDMap support via python interface
VSN1 package/profile:
- avoid error messages from other devices
- fixed jogwheel led feedback
other:
- fixed/enhanced grid software detection/launch
- updated docs
Release 1.8.8
- Added option to disable script change popup when hovering parameters (settable in TD preferences normally)
- Fixed StrMenu undo
- Changed video link from placeholder to actual demo video
- Udated documentation
Release 1.8.6
🐛 Bug Fixes
- Fixed undoing pargroups - Corrected undo/redo behavior for ParGroup operations
- Fixing default/reset modes - Fixed issues with resetting parameters in EXPRESSION, BIND, and EXPORT modes
- Bugfixes for edge cases - Improved robustness and fixed edge cases in undo operations
🔧 Code Quality & Refactoring
Undo Manager Overhaul
- Refactoring and fixing re/setting defaults - Major refactoring of undo manager:
- Eliminated code repetition and bloat
- Added helper methods for parameter path formatting and group name extraction
- Improved parameter iteration and filtering logic
- Better handling of ParGroup parameters by iterating over their parameters
- Enhanced support for EXPRESSION, BIND, and EXPORT parameter modes
- Fixed reset functionality for parameters in EXPORT mode
- Added checks to skip readOnly or disabled parameters during reset operations
✨ Enhancements
- Minor UX improvement when dragging the component - Improved drag interaction behavior
📚 Documentation
- Documentation updates and improvements
Release 1.8.5
Release Notes
Performance & Display Improvements
Throttled Display Updates
- New throttled display system for VSN1 screen updates
- Batches rapid parameter adjustments and displays the latest state at regular intervals (30fps)
- Prevents display lag during rapid knob movements while ensuring updates occur consistently
- Optional
is_routineparameter inupdate_parameter_display()to control throttling behavior - Immediate updates still available for important feedback (slot learning, errors, etc.)
Frame Loss Optimization
- Improved robustness when dropping frames during parameter adjustments
- Better handling of rapid MIDI input sequences
- Enhanced interaction timing to prevent accidental shortcuts
Parameter Handling Improvements
Disabled & Read-Only Parameters
- Parameters with
enable = Falseare now completely ignored during hover detection - Read-only parameters (
readOnly = True) are treated the same as disabled parameters - Prevents attempting to control parameters that cannot be modified
- Applies to both single parameters and ParGroups
ParGroupUnit Support
- Improved handling of parameter groups containing ParGroupUnit (e.g., RGB with
tunit,runit,sunit) - Unit parameters are automatically excluded from validation and manipulation
- ParGroups with unit parameters can now be properly learned and assigned to slots
Expression Parameter Improvements
- Fixed issue where expression parameters could not be unlearned from slots
- Improved error handling when accessing expression parameter properties
- Expression parameters can now be safely cleared/unlearned without errors
Slot Management Fixes
Invalidation Check Improvements
- Fixed race condition where invalid slots were cleared without recovery prompts
- Invalidations are now deferred by 2 frames to allow system state to stabilize
- Active slot is excluded from immediate invalidation checks to prevent false positives
- Invalid parameters in other banks are properly detected when switching banks
- Recovery dialogs now appear correctly for all invalid parameter scenarios
Slot Learning Behavior
- Fixed issue where trying to learn the same parameter in an active slot would unlearn it
- Active slots are now protected from accidental unlearning
- Only inactive slots can be unlearned by hovering over the same parameter
Bug Fixes
- Fixed error caused by invalidation process interfering with slot operations
- Improved error handling in UI manager when displaying invalid parameters
- Better exception handling for edge cases with expression parameters
- Fixed display initialization timing issues
- Fixed undoing ParGroups
Release 1.8.4
Optimization Release
🎯 Performance & Defaults
Disabled TD UI and UI Hover Coloring by Default
- Enable UI parameter now defaults to
Offfor best out-of-the-box performance - Color Hovered UI parameter now defaults to
Offfor best out-of-the-box performance - Users can still enable these features via parameters or by middle-clicking the top-right UI button (toggles UI hover coloring)
- Documentation updated to reflect new defaults and include performance notes
⚡ Frame Loss Optimization
Dynamic Interaction Timing Adjustment
- Separated step message handling into dedicated callback (
onReceiveStep) for improved reliability - Step button presses are now captured reliably even when the main frame loop is struggling
- Prevents accidental shortcuts and interactions when MIDI messages arrive out of order or are delayed due to frame loss
- Improved robustness when losing frames during operation - component now handles timing inconsistencies gracefully
🐛 Bug Fixes & Improvements
VSN1 Hardware
- Knob LEDs now clear on disconnect - LED states properly reset when TouchDesigner disconnects from the Grid Editor package
Documentation
- Added note about TouchDesigner 2025.X requirement for ParGroup hover detection
- Updated error messages for better clarity
- Added note about middle-click toggle for UI hover coloring in cheatsheet
Release 1.8.3
Changes Since 1.8.2
🛠️ Updater Improvements
- Enhanced robustness: Added comprehensive error handling to prevent flags from getting stuck in error scenarios
- New
CheckAndPromptmethod: Variant ofCheckthat always prompts the update dialog after checking, regardless of update availability - Improved
Checkbehavior: Now shows a simple notification message when an update is available, directing users to click the Update button - New
CheckSilentmethod: Silent check that doesn't prompt (renamed from previousCheckbehavior)
📝 Documentation Updates
- Reorganized controls reference: Step Modes section now appears before Slot Operations and Bank Switching for better logical flow
- Enhanced push + twist documentation: Added detailed explanations of how push + twist works in each Push Step Mode (Fixed/Finer/Coarser)
- Improved Step Mode clarity: Added explanations of Fixed vs Adaptive modes with examples
- Added limitation note: Documented that component's own parameters cannot be hovered (prevents recursive control loops)
- Formatting improvements: Removed backticks from parameter names in reference tables for better readability
- Updated cheatsheet: Enhanced search functionality and improved visual consistency
🎛️ New Parameters
- Is External (read-only): Shows if component is externalized or not
- Reload External: Reloads external component
⚙️ Parameter Changes
- Hover Timeout Length: Default changed from
0.33to0.15seconds
🐛 Bug Fixes
- Svelte reactive statement: Fixed syntax error in
Preferences.sveltethat was causing build failures - Grid Editor timeout: Changed default inactivity timeout from 5 minutes to 0 (disabled) for new installations
- Settings persistence: Improved boolean setting persistence to correctly handle
falsevalues
📦 Grid Editor Package (VSN1)
- Default timeout: Screen inactivity timeout now defaults to disabled (0 minutes) instead of 5 minutes
- UI improvements: Fixed reactive statement syntax for better reliability
Release 1.8.2
Release Notes
What's New
🎯 Multi-Operator Editing
Adjust the same parameter across multiple selected operators simultaneously! When hovering over a parameter with multiple operators selected, all matching parameters are adjusted together. Works with:
- Knob adjustments - Value changes applied to all matching parameters
- Push button actions - Toggle, pulse, and momentary actions applied to all matching parameters
- ParGroups - Entire parameter groups (RGB, XYZ) adjusted simultaneously across operators
- All parameter operations - Reset, set default, set min/max, and clamp operations
- Works in both Snap (native how TD works usually in this case) and Relative modes
- Controlled by the new
Multi Adjust Modeparameter
🔄 Enhanced Undo/Redo System
Full undo support for multi-operator editing operations:
- Value adjustments - Undo restores all affected parameters to their previous values
- Reset operations - Undo restores all reset parameters, even if operators are no longer selected
- Set default/min/max/clamp - All operations properly tracked and reversible
- ParGroup operations - Undo handles entire parameter groups across multiple operators
⚙️ Grid Editor Package Enhancements (VSN1)
New power management and screen control features:
- Inactivity Timeout - Automatically dim screen after configurable inactivity period (default: 5 minutes)
- Screen Dim Level - Configure how dim the screen gets during inactivity (default: 30%)
- Screen Active Level - Configure screen brightness when active/connected (default: 100%)
- Persistent Settings - All preferences saved and restored across sessions
Access these settings via Grid Editor → TouchDesigner Par Hover Control
🔍 Searchable Cheatsheet
The quick reference cheatsheet now includes:
- Real-time search - Filter commands and parameters instantly
- Keyboard shortcut - Press
Ctrl+F(orCmd+Fon Mac) to focus search - Result highlighting - Search terms highlighted in results
- Result counter - See how many matches found
- Dark theme - Updated to match main documentation theme
📚 Documentation Updates
- Multi-Operator Editing guide - Complete usage instructions and examples
- Grid Editor settings documentation - Configuration guide for VSN1 users
- Visual feedback section - Added screenshot of TouchDesigner UI mirroring
- Theme update - Documentation now uses consistent dark blue theme
Improvements
- Code refactoring - Improved code organization and reduced duplication
- Undo consistency - Fixed issues where multi-adjust undo operations didn't restore all parameters correctly
- Initial value capture - Improved handling of initial parameter states for accurate undo operations
- ParGroup support - Extended multi-operator editing to work with parameter groups
Grid Config
It is recommended to update to the latest Grid VSN1 profile, just search for TouchDesigner Par Hover Control in the editor cloud and import on your device.
Credits
Thanks to all users who provided feedback and testing during development!
Release 1.8.1
Release Notes
New Features
Network Zoom Navigation
- Smooth network editor zoom control when no parameter is active
- Two zoom modes:
- Seek Mode (default): Camera follows cursor position dynamically
- Target Mode: Camera locks to initial cursor position
- Push for fast zoom: Hold knob push button while rotating for 5× faster zoom
- Double-click home: Double-click knob push button to home the network editor (fit all to view)
- Configurable settings: Adjust zoom speed, interpolation smoothness, and zoom limit
- Smart activation: Only available after hover timeout expires (configurable)
Slot Learning & Management Improvements
- Fixed critical slot learning bug: Can now reliably learn multiple parameters to different slots without needing to unhover between each assignment
- Improved hover state management:
hoveredParnow properly tracks current hover state even when slots are active - Better slot deactivation: Clicking empty slots now correctly returns to hover mode without clearing hover state prematurely
VSN1 Grid Editor Package Enhancements
- LCD control on disconnect: Toggle to turn off VSN1 LCD backlight when TouchDesigner disconnects
- LED control on disconnect: Toggle to set all slot LEDs to red when TouchDesigner disconnects
- Persistent preferences: Settings saved and restored between sessions
- Runtime control: Change preferences on-the-fly without restarting
Documentation Improvements
- Comprehensive parameter help: All custom parameters now have detailed help text (hover with Alt/Option)
- Quick reference page: Complete tables for all parameters, controls, shortcuts, and MIDI mappings
- Printable cheatsheet: Standalone HTML cheatsheet with custom dark purple styling
- Contributors section: Credits to all contributors including TheTouchLab, danim1130, Greg Orca, and Intech Studio
- Just-the-docs theme: Modern documentation site with dark purple aesthetic, improved navigation, and search
- Hardware glossary: Clear definitions of VSN1 terminology (slot buttons, step buttons, etc.)
Bug Fixes
Parameter Handling
- Disabled/read-only parameters: Now properly ignored - won't show as hovered or allow control attempts
- Sticky mode consistency: Fixed issue where hovering unsupported parameter types in sticky mode could break parameter control
- ParGroup validation: Improved handling of invalid parameters within parameter groups
Slot System
- Slot learning reliability: Fixed race condition where normal slot handler would clear
hoveredParbefore learn handler executed - Hover state persistence:
hoveredParnow correctly maintained when needed for learning operations - Empty slot behavior: Clicking empty slots now properly deactivates without breaking subsequent hover detection
Zoom Navigation
- Initialization guard: Zoom operations blocked during component initialization to prevent unwanted zoom on startup
- State management: Zoom target properly cleared when toggling Active parameter or switching modes
- Safety checks: Added guards for invalid pane references and disabled zoom states
UI & Display
- Grid Editor preference toggles: Fixed reactive loop issue causing checkboxes to toggle unexpectedly
- Screen backlight control: Corrected logic for conditional LCD control based on user preferences
- LED state updates: Ensured LED feedback respects user-configured disconnect behavior
Documentation Updates
User Guide
- Network Zoom Navigation: Complete section covering all zoom features, modes, and configuration
- Step mode switching: Clarified that step mode toggle uses first + last slot buttons (long-press), not step buttons
- Parameter help tip: Added prominent tip about Alt/Option+Hover for parameter documentation
- Hover timeout relationship: Documented relationship between hover timeout and zoom availability
Quick Reference
- Controls & Shortcuts table: Comprehensive table of all button combinations and their actions
- All Parameters table: Complete reference organized by TouchDesigner parameter page
- VSN1 MIDI Mappings: Detailed CC mapping table with hardware notes
- Grid Editor Preferences: Documentation for package-level settings
- Hardware glossary: Clear definitions for VSN1-specific terminology
Cheatsheet
- Standalone HTML: Printable reference with custom styling
- Organized tables: All controls, parameters, and mappings in one place
- Dark theme: Matches GitHub Pages aesthetic with purple accents
Installation
Download the latest release and follow the Getting Started Guide for installation instructions.
Full Documentation
Visit https://function-store.github.io/TD_ParHoverMIDI_VSN1/ for complete documentation.
Release 1.7.3
🔧 Component Improvements
StrMenu Parameter Support (Enhanced)
- Improved detection using both
isMenu/isStringand style attributes - Refactored menu parameter stepping and display logic for robustness
- Updated validators for consistent StrMenu parameter type checks
- Better error handling for StrMenu parameters
Auto-Create Repo
- Automatically create external repo for slots/banks for data persistence between updates
"Externalize Component" Feature
- Button now also externalizes the repo tables (in addition to .tox)
- One-click setup for update compatibility and data preservation
Initialization Improvements
- Grid Editor autostart moved earlier in initialization sequence
- Starts before VSN1 screen initialization for better reliability
Error Handling
- Improved MIDI error logic
- Added new parameter event handlers for better stability
⚠️ Important Documentation
Component Limitations (Clarified)
- Only one instance allowed per TouchDesigner project
- Only one project should be open at a time
- Recommended placement: project root
/ - Limitations due to communication/architecture constraints
Release 1.7.2
v1.7.2 Release Notes
🎯 Major Features
In-Component Auto-Update System
- One-click updates from GitHub releases with changelog viewing
- Automatic custom parameter state preservation (modes, expressions, values)
Parameter Recovery System
- Dialog-based recovery for invalid/missing slot parameters
- Fix/Clear/Clear All options with batch operator path updates
- Automatic updates when components are moved/renamed (including child paths)
StrMenu Parameter Support (New)
- Optional control of StrMenu parameters (both
isMenuandisString) - Toggle via
Control StrMenuscustom parameter - StrMenus assigned to slots remain controllable even when flag disabled
🏗️ Architecture Improvements
- Table-Based Storage: Migrated to repo table system as single source of truth
- Display Manager Consolidation: Merged VSN1 hardware logic for cleaner architecture
- Code Quality: Added decorators and comprehensive exception handling
🔧 Enhancements
- Enhanced Undo/Redo: Now captures parameter mode, expressions, and bind expressions
- ParGroup Filtering: Auto-skip unit suffix parameters (
tunit,runit,sunit) while allowing "unit" - Grid Editor Auto-Launch: Automatically opens Grid Editor on startup (Windows/macOS)
- Error Handling: Graceful recovery from deleted/moved operators with visual feedback
📝 Documentation
- Added production setup guide (external Repo + external .tox workflows)
- Parameter Recovery System documentation
- Manual table editing instructions
🐛 Key Bug Fixes
- Fixed ParGroup type not saving correctly to repo tables
- Fixed cleared slots being restored by batch operations
- Fixed slot LED updates when changing banks
- Fixed invalidation system lockup with multiple component moves
- Fixed duplicate recovery popups for already-fixed slots
Upgrade Notes:
- Consider setting up external Repo for data persistence
- Review new
Control StrMenusoption in custom parameters - Moved operators now trigger recovery dialogs automatically