All times are UTC+02:00




Post new topic  Reply to topic  [ 3 posts ] 
Author Message
PostPosted: Mon Dec 14, 2009 6:38 pm 

Joined: Mon Jun 09, 2008 2:45 pm
Posts: 104
Hvz,

Something I've implemented in my OS X project is an accelerated AGC algorithm. Essentially, an audio threshold is established (user configurable). For instance, your target level is -14dB (for a rolling average). The rolling average is configured, as is a specified attack and rise time. These are configured to be slow, and the attack and release behave non-linearly (logarithmic).

Some example settings:
Threshold: -14dB
Attack: 2 sec
Release: 6 sec

The initial hold time would be set to the time constant (tau) of the attack (which isn't really a constant, it is user-configurable - it is a constant in the programming sense - it is set and not configured under normal operation). If your time to attack is 2 seconds, your "hold time" is two seconds. Your average - a sum of all audio across the spectrum, is identified to exceed or fall below that threshold based on the attack time. If it continues to exceed that threshold, the audio is attenuated with a logarithmic decay algorithm until the average is brought down to your threshold. Conversely, this is relevant to the rise time as well, in an opposing fashion (with attack time still equivalent to the hold time).

After that, a final limiter algorithm (behaving exactly like yours does) is employed, which bumps the gain up or down based on instantaneous analysis.

This is just a thought. I can't get Stereo Tool to quit "diving" (attenuating quickly) when I try to employ some more aggressive normalization.

...Still trying to figure out how you've done this with .NET! :) X-CODE offers an interface for Audio Units. These are easy to work with, as the classes for audio are readily available.

http://developer.apple.com/mac/library/ ... ction.html

If there is a way to do this already, and I am missing the point - I apologize for bringing it up!


Top
   
PostPosted: Mon Dec 14, 2009 6:55 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11418
There isn't - yet.

For the upcoming release, I have improved the "remove remaining peaks" filter a lot - it removes peaks much more aggressively, and it sounds better. This might be a bit closer to what you want:
viewtopic.php?f=16&t=853&st=0&sk=t&sd=a&start=80 (Use the BETA2, not the BETA3)

The actual problem - the behavior of the "pre limiter" itself - is not changed though (more specifically: There is no hold time), so when loud peaks are present, the volume will still start to drop immediately. The improve "remove remaining peaks" filter might allow you to lower the speed with which the volume drops.


Top
   
PostPosted: Mon Dec 14, 2009 8:52 pm 

Joined: Mon Jun 09, 2008 2:45 pm
Posts: 104
Thanks!

I'll check this out when I get home!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 3 posts ] 

All times are UTC+02:00


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited