Skip to content

Stages bipolar multi-mode firmware v1.1.0

Compare
Choose a tag to compare
@qiemem qiemem released this 23 Dec 22:13
· 101 commits to bipolar since this release

This is an unofficial firmware for Mutable Instruments Stages. It was originally created by joeSeggiola and 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.

This fork adds the following to segment generator mode:

  • Bipolar LFOs, steps, and holds: Toggle a segment's polarity by holding its button and wiggling its pot
  • Very-slow and audio-rate LFOs: Change an LFO's frequency range by holding its button and moving its slider to top, middle, or bottom
  • Re-trigger control: hold a ramp segment's button and wiggle its pot to toggle re-trigger behavior; this allows for DUSG/Maths-style clock dividers, subharmonic generators, and more!
  • Fast and slow envelopes: Change the range of a ramp's slider by holding its button and move the slider to top, middle, or bottom
  • Arbitrarily slow clocked LFOs and improved audio-rate clocked LFOs
  • Hold and step segment quantization: Hold button and move slider to select scale; slider transposes within key, allowing selection of mode
  • Start and end value tracking for ramp segments: This can be used as a kind of VCA or crossfader

See segment generator mode's usage instructions for details. None of these features interfere with the normal workflow of Stages.

This fork also adds a new mode, advanced segment generator, which adds

  • Random segment type: A fourth type of segment, which gives access to four different random/chaotic algorithms:
    • Uniform random CV (single, non-looping, non-gated)
    • Double-scroll attractor, a smooth chaotic system similar to the Lorenz system (single, looping, non-gated)
    • Emulation of Tom Whitwell's Turing Machine (non-looping, gated)
    • Logistic map, a discrete chaotic system (single, looping, gated)
  • Slew with independent rise and fall times: Single, non-gated, non-looping ramp (green) segments slew with independent rise and fall: CV is target value, pot is rise, and slider is fall; this can be used as an AR envelope or an envelope follower as well
    • Unipolar and bipolar mode: applies full-wave rectification to incoming signal in unipolar mode for optimal use as an envelope follower
  • Probabilistic gates: A single, looping, gated red segment's pot now controls its probability of firing, giving you a mini-branches (the pot used to do nothing in this case)
  • Attenuverter segments: Single, looping step (yellow) segments attenuate instead of slew. Non-looping still slew, so no functionality is lost.

Finally, this fork allows you to control the frequency range of the harmonic oscillator mode (aka ouroboros mode; the Stages easter egg), giving access to 6 harmonically related LFOs.

See the cheatsheet for a list of all module controls, including built-in ones.

This fork includes the changes in official firmware 1.1 as well as the extended sequencer official firmware.

This firmware should fully support chained modules! See multi-mode usage.

Check out this great video overview of the fork as well as of the extended sequencer by Peakae (does not include v1.1.0 updates):

Download and installation

📦 Download the latest WAV file here and follow the firmware update procedure here. Source code is available here. joeSeggiola's original source code is available here.

IMPORTANT: Installation will clear the module settings if coming from a different firmware. Right after updating from an earlier version of this fork, the stock Stages firmware or joeSeggiola's version, Stages may continuously cycle between green, orange, and red LEDs. Turning the module off and on again should restore functionality. This happens because this fork expands the amount of data stored for each segment, so will be incompatible with the settings stored from a different firmware. If you encounter problems, please let me know, either in a GitHub issue or otherwise.

Changelog

  • v1.1.0

    • Merge second version of extended sequencer mode from latest official firmware.
    • Add support for chained modules! See #13, #14, and #18. Thanks to pyerbass and others for being brave enough to test for me, to 0netwo0netwo for selling me their Stages, and to Samet for lending me their Stages!
    • Add support for turing machine segments in the extended sequencer. See #20.
    • Make the pot on single gated looping red segments control probability of firing. Suggested by pyerbass.
    • Make single ungated looping random segments produce a smooth chaotic attractor. See #24. Suggested by pyerbass.
    • Add slider range control for ramp segments. See #26 and #30. Implemented by @w-winter.
    • Add full-wave rectification for unipolar rise and fall segments (single, non-gated, non-looping green) to improve use as envelope followers. See #27 and #32. Implemented by @w-winter.
    • Significant optimization to the clocked LFO and UI code, allowing five clocked LFOs to be run simultaneously. See #9.
    • Minor fix when using multiple quantized segments. See #19.
    • UI improvement to rise and fall segments. See #17 (though done in a different way than described).
  • v1.0.2

    • Fixed groups of segments splitting correctly when new gates are patched. See #12. Thanks to pyerbass on the MI forum for catching this!
  • v1.0.1

    • Merge in extended sequencer from latest official firmware!
    • Ensure that 16 steps is reachable with the pot in TM mode. See #10.
    • Add support for voltage below 0v and above 8v to alt. harmonic oscillator mode. Previously the given segment would just output a constant voltage.
    • Significantly improve performance enabling more simultaneous clocked LFOs. See #9. Work in progress.
  • v1.0.0

    • Add harmonic oscillator frequency range control. Suggested by MW user thetechnobear.
    • Add optional quantization to step and hold segments. Suggested by @jb0000. See #1.
    • Make single looping step segments attenuate (removes T&H). Suggested by MW users Carrousel and SavageMessiah.
    • Make single ngnl ramp segments slew with independent rise and fall. Implementation suggested by @jb0000. See #4.
    • Improve clocked LFO audio rate and reset behavior
    • Improve audio rate cap
    • Make ramp segments track start value
    • Lock pot/slider values when holding button and then be gradually restored. Suggested by @jb0000. See #6.
    • Add cheat sheets to README. Having a quick reference suggested by MW user baleen.
    • Expand range of fast and slow clocked LFOs for with musically useful values (1/16 and 1/32 for slow; 12 and 16 for fast).
    • Fix random segments crashing the module when switching to normal segment generator mode
    • Fix Stages' LFO range messing up harmonic oscillator control.
  • v1.0.0-beta4

    • Add advanced mode with random segments (uniform random, Turing Machine, and logistic map) and T&H (T&H moved from segment generator mode)
    • Change polarity/re-trigger control to toggle so that you can change polarity/re-trigger behavior without affecting shape/time. Suggested by MW user jube.
    • Fix an issue where LFO range selection LED brightness would override Ouroboros LED brightness. Reported by MW user gelabs.
    • Fix an issue where segments set to bipolar step or hold in normal mode would could contribute negative CV in other modes
  • v1.0.0-beta3

  • v1.0.0-beta2

    • New hold-button-move-pot control scheme
    • Add LFO frequency range control
    • Allow for arbitrarily slow clocked LFOs
    • Add track & hold support
    • Signify bipolarity with dim red blink 1/sec
    • Revert slow LFO mode to joeSeggiola's original (works with LFO frequency range selection)
  • v1.0.0-beta

    • Add bipolar mode for each segment type
    • Add re-trigger control for ramps
    • Change slow LFO mode to expand slider range