Curiosity About Variable Env Length and Bit Reduction Effect?

Was just realizing recently that variable length envelopes are a thing when a reviewer of some synth commented that the envelope length is too short, and should have been equipped with the ability to adjust the length, which made me wish my Korg Minilogue XD had this capability. Also was messing with bit reduction in Korg Gadget, and began wondering how this is done…

Can the above two items be accomplished in A3 or A4? If so, can anyone provide an example of one or both, and a short explanation? As always, I hope everyone is safe, happy, and healthy :smile:

Hey there,

Great community here… I’ve been jumping into Audulus 4, enjoying myself immensely. See the attached file. (had to zip it because the website doesn’t support the file type yet.)

Anyway, by variable envelope, do you mean variable gate, which can change up some envelope times/behavior? I am curious what you refer to… Audulus of course uses the clock gate with pulse width, perhaps all you’d need to do there is modulate pulse width.

Regarding bit depth, I’m not going to try to wax technical, I just see it as one half of the bitcrushing effect, where the other half is downsampling. They both kinda fall under the “sample and hold” category I suppose. Bit depth is just some math, downsampling is a sample and hold episode.

Bitcrusher.audulus4.zip (28.0 KB)


1 Like

A nice thing about separating the bit depth from downsampling in a bitcrusher effect is then you can insert effects between them. There’s a guitar pedal made by WMD called Geiger Counter that does this – LUT distortion between the two (Audulus doesn’t have a solution yet for LUT’s. Maybe something with the spline could do something waveshaper-like but that’s just a novel approach imo).

At any rate, here’s a more elaborate demo with s/h filter/feedback/saturation between the bit reducer and downsampler, and a “variable gate” setup, a guess at what I think you meant @stevo3985. Audulus 4 only.

Bitcrusher-Destroyer.zip (51.0 KB)

(Edit: the first version didn’t work because of a feedback loop that killed it when opening. Fixed.)

1 Like

Yeah, this is what I was looking for. I understand now that some synths (perhaps only specialty) offer the ability to change your envelope from having a shorter attack, decay, release (I don’t think it affects the length of the sustain) to having a longer ADR, so you could leave your settings as they are (i.e. 30% attack, 90% decay, and 45% release) and lengthen or shorten the amount of gate time. I hope this makes sense.

I can kinda picture a way to do this in A3/4, as I have been thinking about this for a few days, and recalling something @robertsyrett reminded them to demo on the old (holy cow, was that really 3 years ago???) livestream back in like 2018 IIRC. Will get back to you about this. Thanks for the great example of bit reduction, @jersmi :smile:

Hmm, does this point to the realm of switching logic, comparators, “while this is X, do Y”, etc.?

Curious what Mr. Syrett was discussing way back in the golden age of 2018… My equivalent prior to Audulus was Bidule, I built a MN MATHS setup in Bidule, as I am sure folks have here as well, considering the scope of the work here over the past hundred years or so… :rofl: I’m still building out my own basic tool kit in Audulus, reinventing some wheels along the way. Not quite there yet…

Just going by what you are saying, the basic concepts branch into two:

Regarding leaving your ADR settings, you could set up a separate knob to multiply your ADR settings by some number, call it “shrink and stretch”. I was just fiddling with the snare drum patch – the ADSR in there has a knob to keep settings and change from 1x to 10x to 60x.

Then, gate pulse width and ADSR behavior starts from here:

If sustain is 0, it’s an AD envelope, so with gate high it will run its cycle through A and D then stop whether the gate is still high or not.
If sustain is 1, it’s an AR envelope, so with gate high it will run through A, sustain while gate is high, then run R when gate goes low.

One might say all things (still) point to MATHS… :scream:

2 Likes

There’s a reason Maths is the #1 Eurorack module by a wide margin. I’ve toyed with the idea of adding one to my very modest setup but Audulus plus an ES-8 can serve much the same function.

1 Like

Like many, I’m a fan of Make Noise – they have that balance between engineering and far out art, the mutant offspring of Don Buchla, et al.

2 Likes

I made an example patch. Probably should name the envelope something, since I built it from scratch, but I will worry about that later. I was more concerned with seeing if my theory would work :smiley:

short <–> long gate example.audulus (70.2 KB)

Edit: Changed the patch to use the random gate output of my sequencer module. I think it works better as an example, that way.

1 Like

Thanks for clarifying that! To follow up with the “shrink and stretch” approach using a centered knob, these expressions would calibrate a knob to 0=1/10x, .5=1x and 1=10x (use in place of crossfader):

Screen Shot 2021-08-01 at 4.50.35 AM

I also think it is worth noting based on what you posted that this method stretches/shrinks the envelope, whereas changing gate time is a different matter that can dramatically change envelope behavior depending on gate time vs envelope time settings and type (for ex., AD vs AR).

1 Like

That seems like semantics to me. Perhaps I am mistaken, (I will never claim to be the person with all the answers), but as I understand it, the signal that is feeding an envelope is a gate, and the envelope merely shapes the signal, making it no more or less of a gate, and that by adjusting the A, D, and/or R, and/or adjust a gate multiplier factor (my example) of all of those settings, we are changing the gate time.

At any rate thanks for your help with the bit reduction thing, again, @jersmi, and I appreciate the example for replacing the crossfade node, as it appears that it may end up deprecated, since it is in the ‘legacy’ labeled nodes section. I hope you are having an enjoyable weekend! :smiley:

Re semantics, I’ll try to post an example and if you find it useful, great. I’d say just plant the seed that it is the combination of gate + envelope that opens the door.

Yeah, re crossfader, I just set up a (linear) crossfade as the expression A*(1-x)+B*x. Sets up nicely with A at the top, x in the middle and B at the bottom. Same thing, different outfit. Definitely a workhorse. And variations abound throughout the amazing examples across the forum here.

1 Like

I’m not really clear on what you mean by variable gate time. Since the gate is an input signal to the envelope I don’t believe it really makes sense to suggest that the envelope circuit can somehow alter the gate. For example in the case of a keyboard or similar the gate goes high when the note is depressed and then low when it is released. The envelope has no control over the gate’s timing or height. The envelope circuit can of course respond to the gate in any fashion the circuit designer wishes but the gate time is fixed by the preceding circuit. That said, a wide variety of envelope behaviors is certainly possible and there are a few multi-stage designs on the Forum.

1 Like

Right, envelope cannot alter the gate, but the gate can alter the envelope. In this example, AD/R times are relative to the random gate time setup inserted in @stevo3985’s sequencer.

(Audulus 4 patch)

random gate envelope example.audulus (34.3 KB)

1 Like

@stschoen Hey! It’s great to hear from you :slightly_smiling_face: it has been some time since I have gotten a chance to interact with any of my friends/mentors from this forum. My life has been beyond busy and I wish there were more hours in a day lol! I tried to tag Mark in the original post that mentioned Robert, as Mark was the one running the livestream, but it seems Biminiroad is gone from the users of the forum :confused:

At any rate, I made a specific example of what I was talking about, and posted it above, but I noticed some issues with the way my Dual Core Quad Wave VCO wired, and so I have fixed that and also added a vibrato to the patch.

short <–> long gate example.audulus (77.4 KB)

My understanding was exactly this ^ (which absolutely does not make it correct, and that is why I included the disclaimer about never making the claim to know everything) but the fact remains that any of you who know me, know that I am full of more questions than answers :wink:

It just seems to me, that if we’re talking about the response of a VCF or a VCA to an envelope, it is generally referred to (anytime I have heard or read about this scenario) as the ‘gate time’, which is typically (unless connected directly from a clock, square wave or PWM output of some sort) in reference to the envelope or the function generator it is passing through.

I am not trying to argue, assert that I know better, or state that something is an absolute truth. I certainly didn’t mean to confuse anyone; I was just doing my best to communicate what I was trying to do, and get the answer that I sought.

I am always happy to learn new lessons, but the statement above that @jersmi made seemed like arguing about whether a black key is a sharp of the lower note or a flat of the higher note. If I am wrong, I am not worried about it, as I have no pride at stake, here. I was just countering with what I know (or think I know lol). No disrespect intended :slightly_smiling_face:

1 Like

Personally @stevo3985 I think your question was great in spirit, and there are valid issues that occur when sorting out gates and envelopes in the modular world. Your example was perfect for demonstrating the point you posted about Robert Syrett’s demo. I know I am new here and trust must be earned. If I step up and reply to something, I’ll to do my best to demonstrate my points with examples.

1 Like

Ps. I think your patch is super cool, sounds good! I am currently building out my own Audulus toolkit, and I have a vibrato setup based on the Roland SH3 architecture (personal fave classic synth). If you are interested, happy to share… It’s simply a vibrato with an envelope setup to fade in the vibrato. Probably like you, part of the fun in Audulus is building out my own stuff, so I won’t presume…

1 Like

Don’t worry about being new here, or (Welcome! btw :smile: ) feeling like you have to earn trust to offer answers. This isn’t MuffWigglers, GearSlutz or any of those other kinda (sometimes) unfriendly to newcomers, type of forums. Audulus is a different community with a more positive vibe. All are welcome, and we value all members and each person’s modular opinions, knowledge and experiences, as it collectively makes us better as a community.

You had good answers, and I was happy to get the feedback I was looking for so quickly regarding the bit reduction question. Thanks!

Definitely share that to the community! :partying_face: If you have anything you built that you are particularly proud of, don’t hesitate to share it. There are a lot of lurkers in the community, and many don’t always wish to build solutions from scratch, and just desire to have awesome modules they can plug into their patches and move on making music.

Edit: Forgot to mention why the lurkers were mentioned is because they may be too scared to reach out and ask a question. Putting yourself out there like those of us that do (I have questions for the community all the time, when I am more active) is REALLY scary for some, and they may choose not to, and many just appreciate the cool modules they can plug in to use for [whatever cool thing you built your module to do]

Cool.

Wait, learning, too – if gate time to envelope is <1, will it alter the envelope height?! I’m trying to sort out how your patch is sending values between -1 and 1 to the envelope…

1 Like

I would agree that it’s really a matter of semantics and one could certainly argue that an envelope is a gate as well. So long as we all end up on the same page, it’s not worth arguing over terminology.

One of the things I find appealing about Audulus is the way that all signals are treated the same. Audio, control, constants are all just 32 bit values. I think it’s more important to focus on what we want to accomplish rather than trying to fit into preconceptions.

1 Like

I’m definitely still in another modular world expecting that I need to sort out triggers and gates to send to an envelope, and treating gates as explicitly high/low values that are used solely for control messages. But I get what what you are saying for sure…

that said, I think it is useful to keep them separated, at least from a certain signal flow vantage point – clock/gate → envelope. I think the example I posted is worth a look on that front… I need to do a little testing on envelopes in Audulus, I might be missing some important possibilities… Another reason I post – to make sure my feet are held to the fire!

2 Likes