possible to set limiter to make signal reaching a certain peak or rms regardless of the input level?


after pausing my project for over a year I am back on it. 

I already built an eurorack module using a teensy to control an adau 1701 using i2c.

The dsp gets a signal which at the moment is split into three channels.

Each channel consits of a filter and a circuit that generates pulses as soon as the inout signal reaches a certain level (thank you so much bob for helping me with this, if you are interested I can send you a video showing the prototype playing my eurorack according to the input signal), I measured the delay between Signal peak and DSP output and I am around 1 ms if the level is set correctly which is supertight.

Now the signal gets split into three channels to allow different signals to be generated out of the source material which per channel passes a filter to make the channel react just on certain frequencies. My problem is that I cant get the control for the input level block right. Using a potentiometer and not an encoder (we go without display at the moment) it simply isn't possible to set the input level right. We tried linear as well as exponential, limited the pot to a certain range etc. 

Now that it doesn't work that great (either you set the input signal to a level so the dsp will act on the bass or you set it to act on the highs, both isn't possible as the software block isn't controllable properly using i2c, I thought maybe I could just set the whole thing to react on bass of a proper leveled signal and use a limiter for the other channels to bring the signal up. Is there any way to make a limiterblock within the algorithm pull the signal up to a certain level regardless of the input signal? So if I go for thin hihats as the input filtered of the original signal there must be a strong boost, if I go for snare bodies the boost is less, if I go for bass there doesn't have to be a boost.

I am imagining it to work that way that I could maybe set the release time of the limiter (and maybe the threshold?) to be able to dial in the filtered signal causing a trigger. Is there such a thing as an auto normalize?

Thanks for helping

  • 0
    •  Super User 
    on Jul 23, 2021 10:32 AM

         Hello jenskuehnemann,

         The closest thing to an auto normalize might be a RMS Compressor.  Unlike the Limiter block, the compressor can be set to allow peaks through while keeping the average level relatively constant.

    The RMS TC setting adjusts how fast the compressor responds to peaks -- you man need to reduce the default setting to allow peaks through to your detection logic.

         Click the Show Graph button which brings up a graph of output vs. input level.  Slide the points (dots) for the desired effect.  You can remove unneeded points by right-clicking them.  For example, the graph shown below will keep the average output level at about -15 dB for any input level between -35 and +6 dB.  The maximum upward adjustment available is limited by the ADAU1701's number format to 15.99 (about 25 dB).

         It's also possible to rework the detection logic itself to be less sensitive to average level, although this can get quite complex to implement.

         Best regards,