Repository navigation
Add effect chain support - #104
Conversation
Includes: - First pass at effects chain system (effect_chain.cpp/h) - Fix display issue - Make DFU reflashing easier - Add examples to Makefile and loaded_effects.h - Fix WAVE parameter name conflict in harmonic tremolo - Update guitar_pedal.cpp integration Co-Authored-By: Claude Code <noreply@anthropic.com>
| } // namespace soundmath | ||
|
|
||
| #define WAVE | ||
| #define STFT_WAVE_H |
There was a problem hiding this comment.
Just to explain this change - it should have no effect, but the #define WAVE was causing a conflict with the WAVE parameter sentinel for TremoloModule.
|
|
||
| # Override libDaisy's `program-dfu` to wait for a DFU-capable device instead | ||
| # of failing immediately if one isn't already enumerated. Without -w, you | ||
| # have to win a race against the bootloader's DFU window (reset the pedal, |
There was a problem hiding this comment.
I have been performing this race for toooooo long without this 😆
|
This is sweet! |
|
Did you see the In the delay module, if you press and hold the alternate foot switch for 1 second, it switches the knobs over to a 2nd set of parameters and puts a UI element on the screen That could potentially be useful as well with a feature like this effect chain |
Yes - good idea. Let me play with it a bit. |
|
I've added parameter bank shift now. I also realised that whilst there are many effect you can only instantiate once, you can actually reuse instances across different chains (but they share parameters so if you turn a knob in one that affects the other). There was an edge case bug about this, which is fixed, and I've updated the docs. |
…effect doesn't lose saved settings (see comment)
This PR adds the ability to create an
EffectChainthat links two or more effects into a single slot. You can configure how the knobs are mapped and what happens with the second foot switch.There are some limitations - documented in the README. The main one is that a number of effects can only be loaded once, so if you have, say, a
ReverbModulein the global list, you can't also have it in anEffectChain.A nice way to use this is to have a delay + reverb or tremolo + reverb on a single slot, where you can have useful mappings of all six knobs.
One other improvement: The
make program-dfutarget now waits for a DFU-capable device if none is connected. This means you can run that command and then reboot the pedal, rather than have to time the former in the 2-3s window when the boot loader accepts the request.