Would this be super useful?

You know how in audacity you can amplify to the maximum without clipping?

Something like that for wavs you’ve recorded. But also, a unit that will record an input, run that test, and return the value it can be amplified to without clipping… and then you delete that unit and input its returned value…

Hadn’t ever really thought about it. Could be useful - I’m just eyeballing it now I guess, which works OK.

I’d definitely like to get a compressor unit at some point, with all the bells and whistles including auto makeup gain - something that could be used on a live signal.


I think it would be super useful, but I have no idea how it’d be achievable out the box… dyt it’s possible with lua?

EDIT thinking some more, maybe not that useful. I was just thinking how often I do that in audacity + how eyeballing is fraught + [or rather multiplied by] the complexity of the 301 environment. however, maybe the last point is null

So anyway, let’s pretend it’d be “super useful” for a while…

I gather there’s no comparator unit per se available. However, the ingredients might already be there for this.

What about using a fold unit: so that on the “upper” section the gain’s value is set at one, and on the lower section the gain’s value is set to zero. Then adjusting a mixer’s volume setting – with audio the same as is being fed to the fold unit – until that threshold value is not met and the fold unit has no output.

So I mean controlling the volume of the mixer with the output of the fold unit… but I’m not sure if this is just fantasy on my part, because I’ve no idea what to set to the value of “threshold”. Let me go have a play for a while…

1 Like

There’s a Compare unit in Accents. It is just a straightforward encapsulation of the comparator DSP object from the middle layer. I think you might be able to build something that does this in the UI layer using that,a S&H, and some clever patching. Haven’t really thought it completely through, though.

Not wrapping my head around it just yet, but you very well might be onto something, and I like that you’re thinking outside the box, so to speak. That’s the kind of stuff that leads to discoveries you didn’t know were possible!

1 Like

Aren’t we just talking about normalizing an audio signal? So hunting for the maximum peak, and taking the db difference between that bringing it to the dbfs ceiling?

that’s what i meant, yes Neil…

I had a play with the er301 just then, and couldn’t get the desired result. I tried using a fold, then using an envelope follower. Anyway, not sure if it’s cos I’m not yet used to thinking this way, or it’s impossible [for me?] in the GUI, but no luck with either.

Do you need the value or just the ability to normalize a file?

ideally a value, yea. normalizing a file wouldn’t be as useful anyways…

Value, not sure but you can for sure apply basic editing, fades and normalizing type processes by open the file in a slicer unit as well as (I think) in the admin/audio pool area.

Cools, thanks.

The fold unit set like that will out a signal only when the input to it reaches some threshold, which I tried at just below one. I then tried to get this to reduce the value of a vca which was being fed the same input. But, the issue was that I could not – see a way to – get input signal above the threshold to trigger a reduction in the value of a vca [before the fold] fed the input signal until the fold no longer created any signal.

Does that make sense? It may just sound a bit like I’m confused about compression, but I’m not e.g. trying to reduce the amplitude of some component of the signal, but reduce the amplitude of the entire signal so that whenever it peaks above the threshold the volume is reduced and a peak of the same height will not be above the threshold…? Does it make sense :slight_smile: ?

I’ll try again later: cos I think I get what I was doing wrong :slight_smile: I need to HOLD the vca value’s input at the highest point it has reached.,. hmm

This sounds like using a limiter. aka brick wall compression with an infinite ratio… so if your threshold is set to ie: -3db, anything signal above this value will be “limited” to -3db.

Which will allow you to boost the entire signal’s gain by +3db

1 Like

So I figured out I CAN do this [90% sure anyway] in the GUI, but not HOW to, yet… it’s late here, 11pm, so I won’t now until tomorrow at the earliest – I think. Suffice to say what essentially I am trying to do with a signal is reduce its gain so that it does not go over some point: with the value of gain fixed / reset – to a higher value – whenever the signal goes above that point [i.e. I need a sample and hold].

That may be not explain, but I’m pretty sure it’s doable in principle with the GUI… cheers :slight_smile:

1 Like

OK I had an hour to spare, and here is the result

Q01.save (10.4 KB)

Apologies for it being a quicksave, and I hope it’s the right one. Here’s a screenshot:


If you un-bypass the vca that is set with a bias value of five, the signal gets a bit louder, but the gain on the vca before it will, I THINK, mean that it does not clip…

I still have to make sure it works as planned, and it’s not super user-friendly [not even a “unit” yet]: but I think that – basically – if you put this vca unit, it should be obvious which one [the first one], at the start of some processes, then the signal after it, where you placed it, won’t undergo clipping.

Right? Try it with the second vca I mean, un-bypassing it… a trigger into a1 will reset the unit.

If there’s any interest in this – and someone says it works – then I will make it a unit and explain how it works, at a minimum.

EDIT not quite true, you could e.g. clip / distort the signal then reduce its amplitude later… but it works I THINK so that the output itself – the last unit in the chain – does not distort the signal. you could probably, with LUA, design a unit that goes before a unit and stops it – that unit it’s before – from ever clipping. Not sure, though at four percent of capacity you couldn’t add it everywhere. To make it a genuinely interesting unit, you would have to find a way to feed some of its values the output from the unit it is placed before [instead of outx]… does that make sense??

I tried it and got it to sort of work once (*), but then it seemed to kind of self destruct and I couldn’t get more than a flatline out of it anymore.

Overall though, I guess I’m still not quite sure what you’re trying achieve that you couldn’t do with a limiter on a live signal or by normalizing a recorded waveform as Neil suggested. I’m not saying there’s not something good here; just that I don’t quite get it yet. I’m a slow learner sometimes though. :slight_smile:

(*) It did not clip when I un-bypassed the 2nd vca, but the signal was also less than -1.0-1.0 - something like -0.5 to 0.5. So it wasn’t really maximized but rather reduced from the full strength noise in.

I don’t know: a limiter almost certainly isn’t what I mean. I am talking about reducing the volume of a live signal so that it doesn’t clip, not clipping a signal.

I’ll take another look at what I did and try to sort out why it failed… but more to the point: is there any way to get the signal from some later point in a chain to the value of a unit? Does that question make sense

I think the former is what a limiter does though. :slight_smile:

Yes - so you’re talking about a feedback circuit, right? When you want to create a feedback circuit, go to the subchain where you want the feedback to come to, go to the input for that subchain (where you’d normally select IN1, etc.) In the lower display, instead of JACKS select LOCALS. You’ll be taken to the scope display of your patch and you can navigate and tap the signal at any point in the chain. Don’t forget to set the gain amount, just like with a jack. You can also feed a signal forward this way.

(*) Not sure if you’ve upgraded to 0.4.26 yet - I’m not certain on which firmware this all became available but it was sometime during v0.4.x. If you don’t see LOCALS you’ll need to update the firmware.

cool, I mean I could be wrong, I don’t have a limiter, but I think we’re miscommunicating:

In electronics, a limiter is a circuit that allows signals below a specified input power or level to pass unaffected while attenuating (lowering) the peaks of stronger signals that exceed this threshold.

I want to attenuate the entire signal: to a level that is set by a threshold [say 0.5] – so that the signal never exceeds this amount. In a modular, I would need a maximum logic module, a comparator, sample and hold, and an envelope follower: I think that is all. Not sure if I have these, but if I do then I’ll try doing it with my modular than transferring what how it works into the er-301.

Guh can’t believe this hasn’t worked yet :smiley:

Sorry if I seem a super flaky shitposter, I just think out loud a lot

Does this explain?? I THINK it’s how I’d do what I mean. I could just go try this in the er301 but I’m not sure how to do minimum yet.

Yeah, makes sense now. A limiter doesn’t attenuate the entire signal - just the samples that are over the threshold. So you are trying to do something different.