feat: add effect parameter automation and fix mode logic
Completed Phase 9.3 - Full Automation Playback:
- ✅ Effect parameter automation implementation
- ✅ Fixed automation mode logic (now applies in all modes)
- ✅ Automatic parameter range conversion (normalized to actual values)
Effect parameter automation:
- Parses effect parameter IDs (format: effect.{effectId}.{paramName})
- Finds corresponding effect nodes in audio graph
- Converts normalized 0-1 automation values to actual parameter ranges
- Applies parameters using updateEffectParameters during playback
- Works with all effect types (filters, dynamics, time-based, etc.)
Automation mode fix:
- Removed incorrect mode !== 'read' checks
- Automation now plays back in all modes (read/write/touch/latch)
- Mode will control recording behavior, not playback
Technical notes:
- Used type assertion (as any) for dynamic parameter updates
- Maintains parameter range from automation lane valueRange
- Integrated with existing effect update mechanism
Phase 9 Status:
✅ 9.1: Automation lanes UI complete
✅ 9.2: Automation points complete
✅ 9.3: Real-time playback (volume, pan, effects) complete
⏳ 9.3: Automation recording (next milestone)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>