Welcome to %s forums

BrainModular Users Forum

Login Register

Auto volume Leveler

Discussions about add-ons, announcements
Post Reply
gurulogic
Member
Posts: 1019
Contact:

Unread post by gurulogic » 25 Apr 2015, 11:21

Here's a little audio utility patch I made as part of a workspace that I will be using as a Usine HH based loudspeaker/PA management system. Hopefully someone finds it useful.

The main intent my personal usage of this patch is to prevent redlining DJ's and other unfortunate mishaps from destroying my PA. This project is initially inspired by having to rebuild 5 of my subwoofers after a "free" event last summer, but is also inspired by all the benefits of having Usine HH as the central hub of my loudspeaker system.

"Auto Volume Limit is primarily an automatic volume control tool intended to be placed at the end of the signal chain as a speaker protection and will prevent the audio output from ever exceeding 0dB regardless of how hot the input signal gets, and without the coloration that may be added by compressors or limiters . It may also be useful for vocal or instrument volume leveling.
(disclaimer: Only lightly tested so far, so use with caution or keep a fire extinguisher on hand if testing the limits on real live speaker cones :) "

http://www.sensomusic.com/downloadaddon ... %201.0.pat

More stuffs to come..

User avatar
oli_lab
Member
Posts: 1263
Location: Brittany, France
Contact:

Unread post by oli_lab » 25 Apr 2015, 16:43

this is just brilliant !

I tried few months ago to build a feedback leveler to keep my live set at a broadcast level and save ears of people with headset.... but it was pumping a bit.

my goal was to keep a large dynamic range at anytime while having an average level roughly the same

just like in EBU128 except that it was done live.

I'll make a multichannel adaptation of our patch ! and use in conjonction with my autoleveler to tame things a bit more.

also, it may be beneficial to EQ what goes in the enveloppe follower as in your case, boosting the bottom end should give a better idea of what goes on in your sub and you'll be on a conservative side.
for my case (EBU128) it should be the opposite as loudness mesurements don't take low end as much as mid and highs into account.

cheers

Olivar
http://oli-lab.org

Win11 Ryzen9/32GB RAM - RME MADIFACE - SSL alpha link 4-16 - OSC capable interfaces

follow OLI_LAB adventures on Mastodon
@olivar_premier@mastodon.social

User avatar
oli_lab
Member
Posts: 1263
Location: Brittany, France
Contact:

Unread post by oli_lab » 25 Apr 2015, 16:59

and also :
- how do you manage to change the name (caption) of * module ???
- why is the 0.2ms delay for ?

cheers
http://oli-lab.org

Win11 Ryzen9/32GB RAM - RME MADIFACE - SSL alpha link 4-16 - OSC capable interfaces

follow OLI_LAB adventures on Mastodon
@olivar_premier@mastodon.social

gurulogic
Member
Posts: 1019
Contact:

Unread post by gurulogic » 25 Apr 2015, 20:29

Hi Oli_lab, I am glad you like the patch and look forward to seeing any adaptations. I am interested in your mention of EQ for the Env input, but not quite sure what is the benefit?

I was also planning to setup as 'multi channel' but linked to one master Env which would be receiving the complete frequency range as I will have the outputs of my speaker system (UP215) crossover each available as separate channels in Usine for further processing. I had considered being able to set separate threshold for each frequency range but that seems difficult as different styles of music tend to have a lot of variation in dynamic range across frequencies, so it might be hard to choose a fixed threshold on for example for example, just the subwoofer range, which in my case is apprx 20-90Hz.

In the case of my crossover outputs, with average music input or pink noise, the gain difference between frequency ranges can be quite significant with the HF coming into my audio interface much hotter than the lows and mids, however with a sine sweep, the energy is quite equal across the bands +-3dB which seems if anything a poor calibration in my crossover.
Anyways.. I'm happy to hear any suggestions on best usage in this case as my technical understanding of the math and physics side of how audio works is somewhat limited.

The 0.2ms delay was chosen by sending a short percussive sound as my source, setting a short release on the env follower and controlling an inverse fader so that as the input went to 0dB, the output volume module would go to -80dB, and then adjusting the delay until I would hear as little of the source sound as absolutely possible, which in this case was only the faintest little tick sound. When playing back a fuller sound, this setting did not seem to have as much relevance. May needs some more thought.. Also, not sure if this would be a factor but I have my Usine bloc size at 32 for this project to keep any and all latencies as low as possible.

Also FYI, the mapper module is in place to level out a non linear response I am getting in volume reduction as the gain goes up. For some reason, by the time my input was +12, the volume module would be at -17.There still is a tiny bit of drop off as the scale goes up but it seems mostly insignificant, at least for my uses. Also to note, the volume out module will always have -1dB set. I did this to keep the occasional small peak that can happen when rapidly changing levels from clipping the output.

Caption of module is changed with Alt + click, on Windows. Not sure for Mac.

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 25 Apr 2015, 21:04

sounds really interesting, gonna give a shot, i one madese kind of auto-leveler when i was needind to make some audio synced mapping at a festival with usine at the core audio receiver/analyser/ OSC events trigger. i wanted it to be autonomous if i had to go to sleep and wandted it to adapt input levels and dynamics to get the best out of it while maintening dynamic range.
it was working quite well but i was not outputing audio, only datas so internally real audio could potentially be tweaked hard in hearing rangre, definitely have to check your solution :)

gurulogic
Member
Posts: 1019
Contact:

Unread post by gurulogic » 25 Apr 2015, 21:19

oli_lab wrote:also, it may be beneficial to EQ what goes in the enveloppe follower as in your case, boosting the bottom end should give a better idea of what goes on in your sub and you'll be on a conservative side.
for my case (EBU128) it should be the opposite as loudness mesurements don't take low end as much as mid and highs into account.
After a bit of thought I think I better understand what you mean with the EQ. In my case, with the low/mid/hi crossover inputs available, it might make sense to take an average of the three frequency ranges for better peak control if any one range gets too hot (ie: DJ cranking the LF EQ to +12 because he thinks it will make his bass sound better..)
Something along these lines?

The worst is when somebody decides to switch a mixer on when the system is hot. Ouch!

User avatar
oli_lab
Member
Posts: 1263
Location: Brittany, France
Contact:

Unread post by oli_lab » 25 Apr 2015, 21:26

if you detect levels separatly on each channel your resulting sound migth be incoherent (excuse my french)
best is to detect the summation of each channel to get an good idea of the loudness.

It could be good to have a high pass filter that cut at 30Hz, but we'll have to beg senso for that !

the 50Hz limit on the usine filter is not low enougth.

I made a patch for autolevelling just now, it is on the addons page

cheers

Olivar
http://oli-lab.org

Win11 Ryzen9/32GB RAM - RME MADIFACE - SSL alpha link 4-16 - OSC capable interfaces

follow OLI_LAB adventures on Mastodon
@olivar_premier@mastodon.social

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests