Skip to content

Conversation

@bhurlow
Copy link
Contributor

@bhurlow bhurlow commented Jul 7, 2025

Add optional chorus effect to the final stage output with toggle and effect amount controls in the debug-ui.

Implementation includes:

  • Chorus effect algorithm with delay line and LFO modulation
  • Integration into Stage audio processing pipeline
  • WASM bindings for web interface
  • UI controls (toggle + mix amount slider) in debug-ui

Resolves ##57

Generated with Claude Code

- Implement Chorus struct with delay line and LFO modulation
- Add chorus to Stage struct audio processing pipeline
- Add WASM bindings for chorus effect controls
- Add UI toggle and mix amount slider in debug-ui
- Wire chorus effect to final stage output before limiter

Co-authored-by: Brian Hurlow <[email protected]>
@bhurlow
Copy link
Contributor Author

bhurlow commented Jul 7, 2025

@claude I would like the chorus implementation to be in an effects directory as I plan to add others

@bhurlow
Copy link
Contributor Author

bhurlow commented Jul 7, 2025

Claude finished @bhurlow's task —— View job


Todo List:

  • Read current chorus implementation and understand the structure
  • Create new effects directory and module structure
  • Move chorus implementation from filters to effects
  • Update all import statements and references
  • Remove old chorus.rs file from filters directory
  • Test that changes work properly

✅ Complete

Successfully reorganized the chorus effect into an effects directory as requested. The changes include:

  • Created new effects directory with proper module structure
  • Moved chorus.rs from lib/src/filters/ to lib/src/effects/
  • Updated imports in stage.rs and lib.rs to use the new location
  • Removed chorus references from the filters module
  • Maintained all existing functionality - all WASM bindings and UI controls remain unchanged

The chorus effect is now properly organized in the effects directory, making it easier to add additional effects in the future as planned. All existing functionality has been preserved and the API remains the same.

Move chorus implementation from filters to effects directory as requested.
This provides better organization for future effect additions.

Co-authored-by: Brian Hurlow <[email protected]>
- Create new effects directory structure
- Move chorus implementation from filters to effects
- Update imports in stage.rs and lib.rs
- Remove chorus references from filters module

This provides better organization for future effect additions.

Co-authored-by: Brian Hurlow <[email protected]>
@bhurlow
Copy link
Contributor Author

bhurlow commented Jul 7, 2025

@claude this doesn't sound particularly chorusy or good. Add an intensity slider along with the % mix, and increase the modulation amount

@bhurlow
Copy link
Contributor Author

bhurlow commented Jul 7, 2025

Claude finished @bhurlow's task —— View job


✅ Complete

Successfully enhanced the chorus effect with an intensity parameter and improved modulation characteristics. The chorus should now sound much more chorusy and dynamic!

Todo List:

  • Read current chorus implementation to understand algorithm
  • Read UI code to see current control structure
  • Enhance chorus algorithm with intensity parameter and improved modulation
  • Add intensity slider to debug UI
  • Update WASM bindings for new parameter
  • Update stage integration for intensity parameter
  • Test changes and commit improvements

Improvements Made:

🎛️ New Intensity Parameter:

  • Added intensity control (0.0-1.0) that scales both modulation depth and LFO frequency
  • Default intensity is 0.7 (70%) for a good balance
  • Intensity slider added to UI alongside existing mix control

🎵 Enhanced Chorus Algorithm:

  • Increased modulation depth from ±5ms to ±10ms (2x stronger)
  • Improved LFO frequency from 0.5 Hz to 1.2 Hz (more classic chorus speed)
  • Dynamic scaling - intensity affects both depth and frequency for more realistic effect
  • Better chorusing - should sound much more pronounced and musical

🔧 Technical Implementation:

  • Added intensity parameter to Chorus struct
  • Updated Stage integration with intensity methods
  • Added WASM bindings for web interface
  • Added intensity slider to debug UI following existing patterns

The chorus effect should now sound much more chorusy and provide better control over the effect intensity. The combination of increased modulation depth, faster LFO, and the new intensity parameter should address the original feedback about the effect being too subtle.


…ulation

- Add intensity parameter to Chorus struct (0.0-1.0 range)
- Increase default modulation depth from ±5ms to ±10ms for more chorusing
- Improve LFO frequency from 0.5 Hz to 1.2 Hz for more classic sound
- Intensity scales both modulation depth and LFO frequency dynamically
- Add intensity slider to UI alongside existing mix control
- Update WASM bindings with intensity parameter
- Default intensity is 0.7 (70%) for a good balance

Co-authored-by: Brian Hurlow <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants