[SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Cwejman, Livewire, TipTop Audio, Doepfer etc... Get your euro on!

Moderators: Kent, Joe., luketeaford, lisa

Post Reply
User avatar
lilskullymane
Learning to Wiggle
Posts: 50
Joined: Sat Jun 22, 2019 3:18 pm
Location: portland, or

Re: Mutable Instruments Stages

Post by lilskullymane » Thu Aug 06, 2020 5:28 pm

holy shit this is amazing :eek: just downloaded the newest after a few months with the factory firmware with no problems. really blown away at what was already my favorite module - thank you for all the work you all have put into this!

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: Mutable Instruments Stages

Post by qiemem » Thu Aug 06, 2020 5:45 pm

These are great everyone! Thank you! Now I just got to pick one...

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: Mutable Instruments Stages

Post by qiemem » Thu Aug 06, 2020 5:55 pm

Chopper wrote:
Thu Aug 06, 2020 5:23 pm
Quick question: what are the parameters for the new Turing Machine mode? And is the output quantised? Thanks!
A user kindly pointed out to me that links to the docs in the github release were dead. Sorry about that! They should be working now. Here are the full docs: https://github.com/qiemem/eurorack/blob ... -generator

To answer your question, slider = probability, knob = steps (1 to 16). Output is not quantized, as scale selection would be a UI nightmare and I thought beyond the scope of Stages anyway. However, you can get pseudo-quantization when using one of the segments as a voice: Set one segment to an audio-rate "LFO" (green, looping, ungated: hold button and move slider to the top to set slider to audio rate, and then move it to desired frequency). Then, clock another bipolar (hold button, wiggle knob) LFO segment with the first. Finally, feed a TM segment (or any other CV source for that matter) into the CV of the clocked, bipolar segment. That segment will then quantize to harmonies of the first segment.

Thanks for trying it out!

User avatar
Chopper
Veteran Wiggler
Posts: 687
Joined: Tue Oct 13, 2015 6:17 am
Location: London

Re: Mutable Instruments Stages

Post by Chopper » Thu Aug 06, 2020 5:56 pm

Noooo... Thank YOU😊

User avatar
wuff_miggler
Ultra Wiggler
Posts: 863
Joined: Wed Feb 19, 2020 11:11 pm
Location: Disney, Australia

Re: Mutable Instruments Stages

Post by wuff_miggler » Thu Aug 06, 2020 6:10 pm

name games are fun:

Theatrix
Stage Fright

User avatar
hawkfuzz
Super Deluxe Wiggler
Posts: 2074
Joined: Fri Feb 19, 2010 6:33 pm
Location: East Coast
Contact:

Re: Mutable Instruments Stages

Post by hawkfuzz » Thu Aug 06, 2020 7:26 pm

I feel like an alternate thread should be created at this point since this has become exclusively about the firmware.
THUMPR BC SC

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: Mutable Instruments Stages

Post by qiemem » Thu Aug 06, 2020 9:00 pm

hawkfuzz wrote:
Thu Aug 06, 2020 7:26 pm
I feel like an alternate thread should be created at this point since this has become exclusively about the firmware.
Good call. I'll make one for the next release.

User avatar
gelabs
Common Wiggler
Posts: 190
Joined: Mon May 09, 2016 2:27 pm
Location: Unifactor

Re: Mutable Instruments Stages

Post by gelabs » Fri Aug 07, 2020 1:09 am

qiemem wrote:
Thu Aug 06, 2020 5:45 pm
These are great everyone! Thank you! Now I just got to pick one...
Do I understand correctly that you do NOT have this module yet ?
The planet was, I realized, one of the spots before my eyes.
sc - bc - yt - mg

jube
Learning to Wiggle
Posts: 43
Joined: Sun Dec 01, 2019 5:43 am
Location: The Netherlands

Re: Mutable Instruments Stages

Post by jube » Fri Aug 07, 2020 1:58 am

gelabs wrote:
Fri Aug 07, 2020 1:09 am
qiemem wrote:
Thu Aug 06, 2020 5:45 pm
These are great everyone! Thank you! Now I just got to pick one...
Do I understand correctly that you do NOT have this module yet ?
I’m guessing they mean pick a name.

User avatar
Paranormal Patroler
Super Deluxe Wiggler
Posts: 11038
Joined: Tue Aug 30, 2011 3:40 pm
Location: the Terminal beach

Re: Alternative Firmware(s) for Mutable Instruments Stages

Post by Paranormal Patroler » Fri Aug 07, 2020 2:21 am

[MOD EDIT]

For clarity, and in order to keep things clean, this thread has been split. For original firmware discussion please check

Mutable Instruments Stages


PS: I honestly tried moving as many unrelated posts back to OG but this thread is 11 pages long and some questions about OG firmware get answers that are alt firmware so things are complicated. Post was split from the point where the first alt firmware is mentioned which keeps continuity here without ruining stuff too much. Hope this helps.
All rights reserved; all wrongs reversed.

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: Alternative Firmware(s) for Mutable Instruments Stages

Post by qiemem » Fri Aug 07, 2020 8:54 am

Paranormal Patroler wrote:
Fri Aug 07, 2020 2:21 am
[MOD EDIT]

For clarity, and in order to keep things clean, this thread has been split. For original firmware discussion please check

Mutable Instruments Stages


PS: I honestly tried moving as many unrelated posts back to OG but this thread is 11 pages long and some questions about OG firmware get answers that are alt firmware so things are complicated. Post was split from the point where the first alt firmware is mentioned which keeps continuity here without ruining stuff too much. Hope this helps.
Thank you for all the work!

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: Mutable Instruments Stages

Post by qiemem » Fri Aug 07, 2020 10:16 am

jube wrote:
Fri Aug 07, 2020 1:58 am
gelabs wrote:
Fri Aug 07, 2020 1:09 am
qiemem wrote:
Thu Aug 06, 2020 5:45 pm
These are great everyone! Thank you! Now I just got to pick one...
Do I understand correctly that you do NOT have this module yet ?
I’m guessing they mean pick a name.
I do indeed mean pick a name ;) I would not release anything without being able to test it, and certainly not without saying so!

That said, I would like to pick up a second Stages as well. I've been holding off from certain features since they mess around with some of the core intermodule communication code. For instance, I really like joeSeggiola's idea in the six env mode of being able to trigger multiple identical, but independent, envelopes. It would be really cool to generalize this to work with normal Stages' envelopes as well, so you could have, e.g., two identical AD envelopes. That way, more complex envelopes wouldn't have to eat up the number of available envelopes. (Don't worry; I'd leave the segment trigger outs intact; planned interaction is hold the button while you plug in the gate) But this really messes with the main chaining code, so I'm not super comfortable releasing something around that without making sure I don't completely breaking module chaining.

User avatar
gelabs
Common Wiggler
Posts: 190
Joined: Mon May 09, 2016 2:27 pm
Location: Unifactor

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by gelabs » Fri Aug 07, 2020 12:31 pm

Ha, I should not post anything in the morning :D
I have absolutely no idea for a name BUT ... I have an idea of a additional mode to MI Warps if you insist :hihi:
The planet was, I realized, one of the spots before my eyes.
sc - bc - yt - mg

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by qiemem » Fri Aug 07, 2020 12:59 pm

gelabs wrote:
Fri Aug 07, 2020 12:31 pm
Ha, I should not post anything in the morning :D
I have absolutely no idea for a name BUT ... I have an idea of a additional mode to MI Warps if you insist :hihi:
No worries :coffee-cheers:

Ha, we should probably keep this thread focused on Stages. That said, I do love Warps and think it's one of the most underrated MI modules, especially with Parasites. I would definitely be curious to dive into a bit. PM me?

User avatar
pieter
Super Deluxe Wiggler
Posts: 1696
Joined: Tue Dec 01, 2015 2:59 pm
Location: UK

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by pieter » Fri Aug 14, 2020 6:04 am

Not sure if this idea has been floated already, but last night, after reading this thread I had an idea for a new firmware:
Stages can be a Klee sequencer.

Let me explain a Klee sequencer for those not familiar with it: a normal 8-step sequencer is a shift register of 8 bits with 7 zeros and a single 1. The clock gate pushes the 1 through the 8 binary places, and the output of the sequencer is given by the voltage associated with the binary place that is currently set at 1. That's a complicated way to explain a step sequencer, but it helps understanding what a Klee sequencer is: instead of a single 1 in a string of zeros, a Klee sequencer allows for multiple 1's in the string, set by you the musician. The multiple voltages of the binary places with a 1 are summed to the output. This way you can get much more complex sequences. The Klee sequencer is a Turing Machine on steroids, with deterministic control over the bit string (whereas TM does a randomised bit flip with probability set by the central dial) and variable voltage output at each stage of the bit string.

Here is a detailed explanation of the Klee sequencer by its inventor, and this is nice demonstration of the Klee in action:



How I would implement a Klee sequencer on Stages
You set the bit string using the mode buttons (ON is 1 and OFF is 0), and the corresponding voltages are set by the sliders (ranging from 0 Volt to at most 1 Volt—remember we're adding multiple voltages into the output). You tap the output voltage from one of the output jacks, thus determining the length of your sequence, oriented right to left, i.e., the normal way you use Stages. The clock is provided at the gate-in above the output you are plugging into. That way you can use one Stages as multiple independent sequencers, e.g. 4-2 or 3-3. With multiple chained Stages you can go totally wild. You can also tap into outputs down the line from the gate input for additional outputs in the same sequence.

That's the basics, and then we can add some bells and whistles: I would assign glissando to the pots at the top, and the time/level CV input could be either the slider level or control over the mode button ON/OFF to change the sequence. I don't know if that last one is permitted by the hardware. To choose how to quantise the output voltage we can long-press the mode button above the gate input, which will allow you to select a quantisation mode from six different types (off/chromatic/major/minor/major pentatonic/minor pentatonic—or something like that). There are probably more tricks that can be implemented, but in practice I will never use anything that requires more than one simultaneous button press. ;)

I didn't want to start a separate thread because right now this is an embryonic idea. I have never written firmware before, so I don't really know how to start something like this. My question for you is therefore three-fold: does this sound implementable? is anybody interested in helping me pursue this? and where do I start learning about firmware writing?

Oh, and finally, how easy is it to brick a Stages? :zombie:

User avatar
aragorn23
Wiggling with Experience
Posts: 271
Joined: Wed Jul 26, 2017 6:02 am
Location: Johannesburg, South Africa
Contact:

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by aragorn23 » Fri Aug 14, 2020 6:51 am

As someone who has been looking into the Klee lately and who owns a Stages, this sounds like a brilliant idea! I don't have the firmware chops to pull it off, but if anyone does, it would be amazing!

thetechnobear
Wiggling with Experience
Posts: 382
Joined: Wed Feb 11, 2015 8:17 am
Contact:

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by thetechnobear » Sun Aug 16, 2020 5:57 am

wow, thank you this firmware is absolutely awesome :)

sometimes Id like just a set of simple LFOs (preferable with an output level control) ... and Ive been considering get an Ochd.
but it strikes me, if we could have a switch on the harmonic oscillator to move it into low frequency mode (perhaps hold 6 + slider, so like you LFO range?) - this would give us 5 lfo of various shapes that are harmonically related, are bipolar and have controllable output levels, which i think could be very interesting (also the 6th/mixed output would be an interesting lfo too)

pelang
Common Wiggler
Posts: 241
Joined: Tue Nov 22, 2016 7:30 pm
Location: switzerland
Contact:

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by pelang » Sun Aug 16, 2020 3:01 pm

thetechnobear wrote:
Sun Aug 16, 2020 5:57 am
if we could have a switch on the harmonic oscillator to move it into low frequency mode
excellent idea ! I would like that too. Stage is a very nice example of what open source and the people behind can create. :hail:

User avatar
Silentnotes
Common Wiggler
Posts: 176
Joined: Tue Dec 06, 2016 6:07 pm

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by Silentnotes » Sun Aug 16, 2020 3:13 pm

thetechnobear wrote:
Sun Aug 16, 2020 5:57 am
wow, thank you this firmware is absolutely awesome :)

sometimes Id like just a set of simple LFOs (preferable with an output level control) ... and Ive been considering get an Ochd.
but it strikes me, if we could have a switch on the harmonic oscillator to move it into low frequency mode (perhaps hold 6 + slider, so like you LFO range?) - this would give us 5 lfo of various shapes that are harmonically related, are bipolar and have controllable output levels, which i think could be very interesting (also the 6th/mixed output would be an interesting lfo too)
Great idea! LFHO

User avatar
djthopa
Super Deluxe Wiggler
Posts: 1846
Joined: Thu Mar 22, 2012 5:48 pm
Location: Somewhere between a nappy and a wire

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by djthopa » Sun Aug 16, 2020 8:30 pm

Klee on stages! Is this possible? I have two stages so could test :)

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by qiemem » Sun Aug 16, 2020 11:42 pm

thetechnobear wrote:
Sun Aug 16, 2020 5:57 am
wow, thank you this firmware is absolutely awesome :)

sometimes Id like just a set of simple LFOs (preferable with an output level control) ... and Ive been considering get an Ochd.
but it strikes me, if we could have a switch on the harmonic oscillator to move it into low frequency mode (perhaps hold 6 + slider, so like you LFO range?) - this would give us 5 lfo of various shapes that are harmonically related, are bipolar and have controllable output levels, which i think could be very interesting (also the 6th/mixed output would be an interesting lfo too)
This is a fantastic idea. I was already planning on making one of the modes a dedicated LFO mode, with a primary use being 0chd/just friends like interweaving LFOs, but this is so simple and might just be good enough I don't need to. (would leave that mode open for something else... Klee sequencer perhaps?)

Should be pretty easy to pull off, though I've noticed that the harmonic oscillator can behave pretty weird at low frequencies (accessed by CV). Anyway, I'll see what I can do and roll it into the next version if it works. :sb:

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by qiemem » Mon Aug 17, 2020 12:11 am

pieter wrote:
Fri Aug 14, 2020 6:04 am
Not sure if this idea has been floated already, but last night, after reading this thread I had an idea for a new firmware:
Stages can be a Klee sequencer.

Let me explain a Klee sequencer for those not familiar with it: a normal 8-step sequencer is a shift register of 8 bits with 7 zeros and a single 1. The clock gate pushes the 1 through the 8 binary places, and the output of the sequencer is given by the voltage associated with the binary place that is currently set at 1. That's a complicated way to explain a step sequencer, but it helps understanding what a Klee sequencer is: instead of a single 1 in a string of zeros, a Klee sequencer allows for multiple 1's in the string, set by you the musician. The multiple voltages of the binary places with a 1 are summed to the output. This way you can get much more complex sequences. The Klee sequencer is a Turing Machine on steroids, with deterministic control over the bit string (whereas TM does a randomised bit flip with probability set by the central dial) and variable voltage output at each stage of the bit string.

Here is a detailed explanation of the Klee sequencer by its inventor, and this is nice demonstration of the Klee in action:



How I would implement a Klee sequencer on Stages
You set the bit string using the mode buttons (ON is 1 and OFF is 0), and the corresponding voltages are set by the sliders (ranging from 0 Volt to at most 1 Volt—remember we're adding multiple voltages into the output). You tap the output voltage from one of the output jacks, thus determining the length of your sequence, oriented right to left, i.e., the normal way you use Stages. The clock is provided at the gate-in above the output you are plugging into. That way you can use one Stages as multiple independent sequencers, e.g. 4-2 or 3-3. With multiple chained Stages you can go totally wild. You can also tap into outputs down the line from the gate input for additional outputs in the same sequence.

That's the basics, and then we can add some bells and whistles: I would assign glissando to the pots at the top, and the time/level CV input could be either the slider level or control over the mode button ON/OFF to change the sequence. I don't know if that last one is permitted by the hardware. To choose how to quantise the output voltage we can long-press the mode button above the gate input, which will allow you to select a quantisation mode from six different types (off/chromatic/major/minor/major pentatonic/minor pentatonic—or something like that). There are probably more tricks that can be implemented, but in practice I will never use anything that requires more than one simultaneous button press. ;)

I didn't want to start a separate thread because right now this is an embryonic idea. I have never written firmware before, so I don't really know how to start something like this. My question for you is therefore three-fold: does this sound implementable? is anybody interested in helping me pursue this? and where do I start learning about firmware writing?

Oh, and finally, how easy is it to brick a Stages? :zombie:
Really interesting! I'd never heard of the Klee sequencer before. The interface would definitely work quite well for it.

The hardest part by far would be any multi-module stuff. That code is pretty specific to the normal Stages mode. You might have to develop a new protocol for module communication. That said, the most complicated part of that code is the segment group detection, which might be reusable... you might only have to override the interaction bits of it (what happens when you press a button on one module down-chain). Unfortunately, I only have one Stages, so can't test out any multi-module stuff :despair:

The other challenging part would be any quantization interface. I really like the Klee's quantization-via-interval setting thing (so not true quantization; just convenient selectable slider intervals) and think that would probably work better for Stages than actual quantization. Probably couldn't support so many modes though since you'd want to represent it with LED color and long-pressing gets old (though you could do a press-button, move slider thing).

Otherwise, totally implementable. An undertaking for sure, but should be relatively straightforward once you wrap your head around the Stages code. Also, I can (mostly) assure you you won't brick your Stages; the bootloader involved in firmware updates is separate from the rest of the code, so as long as you don't mess with that, should be okay. At least, I haven't bricked mine yet :eurosmoke:

Anyway, I might play with this if I have time, though, by all means, give it a shot :sb: Happy to answer questions with what I've learned so far. Also, Émilie seems super responsive to questions on the MI forum and happy to help people dive into the source (though I haven't posted there much yet). As for where to start, grab the mutable dev environment from here and follow the instructions: https://github.com/pichenettes/mutable-dev-environment. You might consider forking my or joeSeggiola's forks if you want the multimode interface to make it easy to switch between the Klee mode and others (just follow the instructions for custom repos). I'd definitely consider PRs as well. You don't need much specialized knowledge beyond having some knowledge of C: the firmwares are all written in C++, but really mostly C with classes. You don't really need to know much about the hardware. Émilie's done a great job of abstracting the hardware specific stuff away. Her code in general is really a joy to work with.

User avatar
pieter
Super Deluxe Wiggler
Posts: 1696
Joined: Tue Dec 01, 2015 2:59 pm
Location: UK

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by pieter » Mon Aug 17, 2020 5:45 am

Thanks for that in-depth and encouraging response, qiemem! Lots to think about and learn, but now I know where to start.

qiemem
Common Wiggler
Posts: 77
Joined: Tue Mar 17, 2020 4:34 pm
Location: Seattle

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by qiemem » Sun Aug 23, 2020 12:30 pm

Hey, just wanted to do a quick gut check with people with a feature I've been playing with: making ramp start values track changing end values of the previous segments.

Ramp (green) segments (for the most part) have their start and end values defined by the segments before and after them. So if you've got hold-ramp-hold (RGR), with the first hold set to 2v and the second set to 6v, the ramp segment will slide from 2v to 6v.

In stock Stages, a ramp's end value tracks the changing value of the next segment. However, start values basically sample and hold the final value from the previous segment. So, if you've got hold-ramp-hold (RGR), with two LFOs feeding into the hold segments, the ramp's starting value will be whatever the LFO was at when the first hold segment ends, but the ramp's end value will keep changing with the second LFO.

I figured out how to change it so a ramp's start value also tracks, so in the above case, the ramp's slope would seesaw with the LFOs. The really cool thing about this is it gives any envelope with a hold or step segment a kind of built-in VCA (best for CV, but okay for audio if you don't mind some digital noise creeping in).

So for a basic ASR, ramp-sustain-ramp (G looping R G), you can patch your signal to be modulated into the looping hold segment. The first ramp will increase the amplitude of the signal, the hold will let the signal through, and the final ramp will bring the amplitude back to 0. This kind of worked in stock Stages, but only for the first ramp; your output would just suddenly stop tracking your signal on the second ramp.

Having built-in VCAs is pretty cool and all, but you can also do some pretty wild stuff. For instance, ramp-step-ramp-step (GYGY) with two signals going into the step segments will crossfade between the two signals every time it receives a gate. ramp-hold-ramp-hold looping will just keeping doing this, which can make for some pretty awesome drones (especially when you then drop the ramp and hold times to audio rate...).

Are there any downsides to this that I'm not seeing? I've been having a ton of fun with it, but just wondering if there's any use cases of the original behavior that I'm missing. I've managed to think of two, one of which I've taken care of:
  • ramp-hold (GR), with just the implementation as described above, becomes useless. The start value of the first ramp is defined by the final value of the last segment. In stock, because it sampled this value, you could use a ramp-hold segment as an attack envelope with a kind of built-in VCA (if you're hold value was changing). I got around this by disabling start tracking if start ends up being the same as end. So not worried about this case.
  • With an ASR (ramp-sustain-ramp, G looping R G), it can be useful to use the gate from the second ramp to advance a sequence. If this sequence ends up feeding into the sustain segment, the new behavior might make the sustain segment change value before you want it to. But this only really matter if you were using that hold segment as a pseudo-VCA, which only kind of worked before, so I don't think this is a big deal. Is this something people were doing?
Anything else? To me, this makes the CV inputs for steps and holds way more useful, but just want to make sure I'm not messing with use cases that haven't occurred to me. If there are downsides, I suppose I could just stick it in the advanced mode, but it feels mostly like a strictly better version of stock behavior, so thinking of putting it into all segment generator modes.

BTW, I've already finished adding frequency range setting to the harmonic oscillator, which does indeed make for a pretty interesting modulation source. Thanks again to thetechnobear for the idea. I made a few adjustments to make it more useful: when in an LFO mode, volume adjustment affects the individual out as well as mix out, whereas by default it only did mix out. I also made a gate in reset the LFO (and kept the "strumming" behavior for the mix out).

Also coming up are much improved audio-rate clocked LFOs, which are great for (sub)harmonic generation.

New version should be out soonish; still testing things. Super busy these days, so I haven't had much time to work on it.

pelang
Common Wiggler
Posts: 241
Joined: Tue Nov 22, 2016 7:30 pm
Location: switzerland
Contact:

Re: [SPLIT] Alternative Firmware(s) for Mutable Instruments Stages

Post by pelang » Sun Aug 23, 2020 2:56 pm

This sounds wild. I can't comment on downsides without using it for a while.
And definitely looking forward to the LF harmonic oscillator.

Post Reply

Return to “Eurorack Modules”