Noise Gate not in toolbox
Greetings,
Based on this doc
wiki.analog.com/.../noisegate
I should be able to find the "noise gate" schematic in the toolbox (ADAU146x is mentionned in the supported targets)
However I can't find it in the toolbox (please see attached screenshot)
Am I missing a software version / component, or is the doc wrong and this module isn't supported on the adau1467 ?
I understand I can use a "RMS compressor" component to act as a noise gate, but based on the docs I was hoping the noise gate component to be more efficient (in terms of memory and processing power) than the RMS compressor.
Of course I cannot validate this hypothesis based on docs alone, and can't compare both as the noise gate is not present in my toolbox
Thanks
Edit Notes
Fix typos
[edited by: JBAX at 2:10 PM (GMT -4) on 17 Mar 2025]
Audio Signal Processors
software
sigmaStudio 4.7
adau1467
SigmaDSP Audio Processors
Hello JBAX,
I have never seen this noise gate included in the library for the Sigma300/350 parts. The Wiki post shows the SHARC processors also having this so I am guessing they developed it for the SHARC and it was never translated over to the Sigma300/350. But there are so many ways to do this.
This first I will mention but I did notice you mentioned you did not want to use a compressor but I will answer here for others who may read this.
You can set the compressor curve in the compressor blocks to act as a noise gate. I will attach this example where I implemented a mulit-band noise suppressor using RMS compressors. It is in the hierarchy block and open up the compressor curve window to see how it is done.
5224.ADAU1452 Multiband Noise Suppression.dspproj
This next project uses the Signal-Detect block to control a volume control. This is more what you are looking for
0574.ADAU1452 Signal Detect-Noise Gate example.dspproj
You also could do this all yourself using an envelope generator, either peak or RMS, then sending that output to an ABCD logic block to test if it is greater or less than. and then send a "1" or and "0" to a volume control to gate the signal. The externally controlled volume controls have a slew value for going up or down so it is a great block to use for this function. What you would compare to is either a DC cell where you figure out a value, or I suggest you use a DC cell to feed to a volume control so you have a logarithmic control of the threshold and it would also be easy to program with an external controller.
I have not studied these two approaches, the Signal-Detect Block verses the envelope generator and the ABCD block to see which is more efficient. It will probably be close to the same.
I hope this helps.
Dave T
Thanks for your answer!
I will test and see what's the best method for my needs
I'm not set on not using a compressor, I just thought an existing "noise gate" algorithm would be more efficient in processing power and memory than a compressor, and quicker to implement than rolling up a custom implementation based on other blocks.
I successfully implemented a Noise Gate based on a "Signal-Detect" and a "Slew volume Ext" block as per your example project, it works like a charm. Thanks !
Hello JBAX,
Awesome!!! Thanks for taking the advice and trying it out. The Signal detect block is about 80% of what you want a noise gate should do. So it should be fairly efficient for code size.
Hope the rest of your project goes well!
Dave T
Please log in to reply.
