# Mutable Instruments Stages multi-mode firmware

This is a unofficial firmware for Mutable Instruments Stages. It started as a modification to let you enter and exit the "Ouroboros" mode (the harmonic oscillator easter egg) at runtime, while the module is powered on. Then, it evolved adding the ability to sequence harmonic ratios, enable slower free-running LFOs and providing a completely alternative mode that transforms the module into six identical DAHDSR envelope generators.

> Warning: This firmware has NOT been tested on multiple chained modules. It could behave strangely if chained. Obviously I'm not responsible for any issue you might encounter.

> If you're looking for even more features, check out qiemem's fork!

=> https://mutable-instruments.net/modules/stages/manual/#chaining-modules Chaining Modules info
=> https://github.com/qiemem/eurorack/blob/bipolar/stages/README.md#readme Qiemem's fork of Stages alternative firmware

## Download and installation

=> https://github.com/joeSeggiola/eurorack/releases/latest Latest wav file
=> https://mutable-instruments.net/modules/stages/manual/#firmware Latest firmware update
=> https://github.com/joeSeggiola/eurorack/tree/stages-multi/stages Source code


## Usage

Hold one of the six buttons for 5 seconds to change mode. This setting is persisted when the module reboots. From left to right:

1. Segment generator
2. Segment generator
3. Segment generator with slower free-running LFOs
4. Six DAHDSR envelope generators
5. Harmonic oscillator aka Ouroboros mode
6. Harmonic oscillator with alternate controls


### Segment generator

This is the standard mode of the module, refer to the official Stages manual. This firmware is built on top of official Stages 1.1 and latest changes, therefore it includes color-blind mode, S&H gate delay and LFO phase preservation.

=> https://mutable-instruments.net/modules/stages/manual/ Stages manual
=> https://mutable-instruments.net/modules/stages/firmware/ Official Stages 1.1
=> https://github.com/pichenettes/eurorack/commits/master Stages Latest changes

### Slower free-running LFOs

In this mode, Stages behaves exactly like the standard segment generator mode, except free-running LFOs (i.e. single green looping segments) are eight time slower.

=> https://forum.mutable-instruments.net/t/stages/13643/54 Slower LFO info on MI forum

### Six DAHDSR envelope generators

The module transforms into a generator of six identical envelopes. Sliders controls the duration (or level) of each stage of all envelopes. From left to right:

1. Duration of the delay phase
2. Duration of the attack phase
3. Duration of the hold phase
4. Duration of the decay phase
5. Level of the sustain phase
6. Duration of the release phase

Each duration goes from 0 to 10 seconds. Each value can be modulated using TIME/LEVEL inputs. The hold phase is always at maximum level (8V). Each stage can be "disabled" by setting the slider to the bottom; the LED on the slider will turn off to indicate that. For example, set sliders 1 and 3 to zero to get six standard ADSR envelopes.

SHAPE/TIME pots 2, 4 and 6 control the shape of the corresponding ramp stages, from accelerating through linear, to decelerating. Pots 1, 3 and 5 are unused.

GATE inputs are used to activate each of the six envelopes, which can be taken from the corresponding outputs on the bottom of the module. LEDs below pots show the current phase of each envelope: green for delay/attack/hold/decay, orange for sustain, red for release, off when idle. Pressing a button will trigger the corresponding envelope manually, like it's a gate signal.

### Harmonic oscillator

This mode was normally accessible on the non-modified firmware by chaining the module with itself (hence the name "Ouroboros" mode). This firmware simply adds the ability to switch at runtime, without using the cable on the back of the module. All credits goes to Stages author, obviously.

=> https://github.com/pichenettes Pichenettes on Github

The left-most column of the module acts a little different from the others:

* Slider is for coarse tuning of the main oscillator
* Pot is for fine tuning
* CV is a 1V/oct input for the root pitch
* Output is an audio mix of all the harmonics

Each one of the next five columns controls a partial:

* Pot selects the harmonic ratio in relation to the root pitch
* Slider and CV input control its volume in the mix
* Gate is for strumming, i.e. temporarily increase the volume with a fast decay envelope

The buttons cycle through different waveform for each harmonic, including the root one. Selected waveform is shown using LEDs colors:

* Green: sine
* Orange: triangle
* Red: square
* Flashing green (long-press): sawtooth
* Flashing orange: square with small pulse width
* Flashing red: square with smaller pulse width

### Harmonic oscillator with alternate controls

Same as harmonic oscillator, but controls for each partial (columns 2 to 6) are swapped:

* Pot controls the volume in the mix
* Slider and CV input sets the harmonic ratio in relation to the root pitch

This way is possibile to modulate (and therefore sequence) the harmonics with external CV.

### Changelog

* v3: Fixed multi-mode switch to avoid unwanted segment loop toggle, independent permanent storage for segments configuration and harmonic oscillator waveform selection.
* v2: Alternate controls mode for harmonic oscillator.
* v1: Initial release, merging slower LFOs and Ouroboros toggle into a single firmware, together with a new 6xDAHDSR mode.

=> https://github.com/joeSeggiola/eurorack/releases/tag/stages-multi-v1
=> https://github.com/joeSeggiola/eurorack/releases/tag/stages-multi-v2
=> https://github.com/joeSeggiola/eurorack/releases/tag/stages-multi-v3


### Feedback

Please let me know if you encounter issues with my firmware modifications, or if you have ideas for additional modes.

=> https://github.com/joeSeggiola/eurorack/issues/new File an issue 
=> https://github.com/joeSeggiola/eurorack/issues Issues tracker
