Well, at least I can confirm that there’s absolutely no issue merging the S&H delay modification with other changes! It only affects a few lines of the S&H code and nothing else!

@Mother-Misty @Ohkeelay I updated my firmware modification for “ouroboros” mode toggle at run time, bringing S&H gate delay and LFO phase preservation from upstream.

Just ouroboros toggle: download / browse code
Ouroboros toggle plus slow LFO: download / browse code

@pichenettes I’m trying to write a completely different firmware for Stages, and I have a quick question. If I only edit and recompile files in stages/, without touching parent folders and subfolders, could I break the firmware flashing/updating procedure? I’ve started removing things to get a blank canvas, but I’m afraid removing too much. For example, I removed all “factory test” stuff, which I’m not sure if it has something to to with firmware flashing. My guess is that it should all be in stages/bootloader/, and a completely different build target than make -f stages/makefile, am I right? Thanks a lot for your help.


The firmware update code is in stages/bootloader/ and is independent from the main firmware (besides using the same peripherals initialization code in drivers).

The factory_test stuff is for communicating with the test fixture, you can remove it if you want.

1 Like

Thanks for the quick reply. That’s great. Another thing that I’m wondering about is if there’s a compiler warning or hardware protection for firmware size. Is there a strict limit? I see original firmware is ~5MB in WAV form, should I worry about making it bigger?

make -f stages/makefile size should show a size lower than 224kb. You should get a linker warning if you reach this limit though!

1 Like

Thank you for this! Might seem small, but these three things together sure are awesome.

@joeSeggiola thank you so much for this! I really appreciate it!

I worked further on my modified firmware for Stages. Now both slower LFOs and harmonic oscillator are togglable at runtime. Also, there are two new “modes”, one that enables harmonic ratios sequencing via external CV, and one that transforms the module into six identical DAHDSR envelope generators, useful in polyphonic setups. I don’t know if I should have started a new thread, so I’m leaving it here for now.

You can download it from GitHub. I also wrote a README file with usage instructions and more info.


Thank you very much for this.

This is really great. Thank you

The six identical DAHDSR is fantastic, very useful for me. How hard would it be to turn extended that code to optionally have six IAHDSR instead ?

What do mean exactly with the “I”? An initial value? If yes, with or without an initial delay? Should it affect also the “idle”/“rest” value after release?

Yes an initial value, à la Prophet VS. I meant without the initial delay, but I don’t see why not have it all?!

Re the “idle”/“rest” value, that’s an implementation choice, both have use cases. Ladik provides a “release to zero” jumper at the back of the module to chose one or the other, but I’m guessing this can fairly easily be controlled with one of the buttons? If not, returning to 0V is the best option to have at hand as offtettig the whole enveloppe is easily done by adding DC to the CV.

Got it. Ok, as you can see, right now pots for delay and hold phases are unused. My original idea was to have level control for both on the sliders, with pots controlling the duration, but I discarded it for simplicity and more “linearity” (i.e. all the sliders are lengths, except for the sustain obviously). I could easily implement both initial attack level and hold level on the two unused pot, but I’m worried about UX.

Buttons are currently used for manual gates triggering. It’s a feature I personally like a lot, for which I already received very positive feedback, so I’m not going to change their functionality.

Anyway, I’m now collecting various suggestions and I’ll add yours. I will implement the ones I like the most as soon as I take some time to work on it again. Thanks for the feedback!

you’re welcome, thanks for listening!

This is an amazing update. I’m still getting to grips with Stages - I was impressed with this module before any of these changes and now it’s absolutely essential in my limited rack space.
Once again MI and it’s community push the envelope.


3 posts were split to a new topic: Stages - issue with channel 2

6 posts were split to a new topic: Using Stages as a 6x VCA?

Hey, Thank you for this awesome mod!
here are two suggestions for one of the alternate mode:

  • same as factory mode, but the cv in would modulate the knob value instead of the fader value, usefull for:
    • cv control over lfo shape
    • cv control over decay shape
  • A cool trick is to set a looping green segment with fader at highest position, it then becomes a good sounding VCO with perfect V/oct tracking over 6 octaves. but the gate input is not really usefull in this setting. It would be cool that the gate input acts as the orobouros mode, strumming vca enveloppe… so it becomes 6 mini synth voice :D, maybe it could be done with a kind of rule “IF: segment green looped + fader maximum + gate in connected, THEN: gate set as vca with fast decay as orobouros”

love this firmware, been meaning to try Ourobouros mode but couldn’t be bothered to open up my case. great stuff! thanks