Post Go back to editing

Single Level Detector w Numeric Display Hold and Decay no effect

Category: Software
Product Number: ADAU1467
Software Version: SigmaStudio 4.7

Hey together,

we are using on our project the "Single Level Detector w Numeric Display" on and ADAU1467. 

Now we have the requirement to modify the attack, hold and release for this block. In SigmaStudio itself those parameters are not accessible via the UI but the parameters (TCONST, HOLD, DECAY) are exposed in the exported Header Files and we can access those parameters via ParameterUpdate. 

But when I change HOLD or DECAY it has no effect on the timing. Even with massive values for HOLD like 48000 (1s) the levelmeter behaves like with small values like 480 (10ms). DECAY is similar, no effect noticable here. But if i change TCONST it seems to change mostly the release time, which is a little bit strange as i expected it changes the attack time. 

- Is there any limitation with this block, that the values HOLD and DECAY are ignored? 

- Why does TCONST affect the release time, is there any relation? 

Best regards,

Eric  

  • Hello Eric,

    I can access these parameters in the GUI, I can edit the values in the capture window.

    - Is there any limitation with this block, that the values HOLD and DECAY are ignored? 

    For this level detector block, I guess these parameters are not actually implemented in the DSP code. The RMS value should be but it looks like all the time constant and hold time variables are ignored. when I changed them, it didn't make any difference too.

    Regards,

    Harish

  • Hello Harish, 

    thanks for the confirmation. The only parameter which has some effect is TCONST, right? I guess then the block is using this formular y = tc*y(n-1) + (1-tc)x. Would it be possible for you to verify this somehow bus asking your colleagues? 

    By the way how you are able the access the values in the capture window?

    Best regards,

    Eric

  • Hello Eric,

    I will have to open up the code and look into this. I do know that several of the parameters shown in the Params window are not used and were not removed. If you run audio into the meter and keep hitting refresh you will see that many of the parameters never change. It is a good topic for a PowerPoint discussion on how the meters work and how to gather the data with a microcontroller. I am a bit overwhelmed at the moment so feel free to bump this discussion up again in a little while. 

    Meanwhile, I did do an analysis of the compressor variables a couple of years ago, the entire document is up on the forum. You can find it here: (+) standard RSM compressor - Q&A - SigmaDSP Processors & SigmaStudio Dev. Tool - EngineerZone

    Here is an excerpt of the Decay calculations. 

    I think the meter should be similar. By the way, This meter is most likely setup with an instant attack time despite being called an RMS meter. Again, I will crack open the code to see what was done. 

    By the way. You could always program this functionality yourself and gain some control over the processing. 

    Take an envelope generator, most likely you would take the RMS version, and run your audio into that block. Then take the output and send that to the low-MIPS version meter. That meter is pretty much a Readback and has very little processing besides taking the absolute value of the input. You can also take the output of the envelope generator to a ReadBack and have your microcontroller read it. 

    I will try to get back to this when things calm down for me. I was out of the country all last week so you know what that does to your work load! 

    Thanks,

    Dave T

  • Hello Dave, 

    thanks a lot for the clarification. For the levelmeters it is a little bit confusion, what they really do depending on the block you choose. So a presentation would be perfect. 

    You suggestion with the "envelop" is exactly what we do now to work around the missing controls. But it took some time to find out that they are not used by the other levelmeters. 

    Best regards,

    Eric