ΣSigmaStudio Ask AI Русский Log in

Flanger module for Sigma DSP on Sigma Studio

SigmaDSP & SigmaStudio shogo Jan 26, 2015 00:00 5 replies Original on forum ↗
Subscribe
shogo Question
Jan 26, 2015 00:00

Hi,

I'm looking at Sigma DSP Wiki and found Flanger module on following site, but could not find the module on Sigma Studio.

https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/adialgorithms/flanger

Could you let me know which processor supports this module ?

Best regards,

Shogo

JohnTo Reply
Jan 28, 2015 00:00

Hi Shogo,

It seems this module has been removed. I checked all SigmaDSP processor project Tree Toolboxes and could not find it. Perhaps the reason for this is there was a bug back in 3.6 release and they might have decided to remove it if there were no plans to fix it:

https://ez.analog.com/message/50267#50267

However, a flanger effect is very easy to implement using sine tone generators, voltage controlled delay and some adders.

The difference equation for a flanger is as follows:

I just cooked up a stereo flanger for the ADAU1450. Seems to work... the depth of the flange can be adjusted with changes to the delay sizes and modulation speeds. Project is attached.

Hope this helps!

-JT

8883.e11dd2572de8098b918cff7694cc808d.png
8883.e11dd2572de8098b918cff7694cc808d.png
8883.e11dd2572de8098b918cff7694cc808d.png-620x536.png
8883.e11dd2572de8098b918cff7694cc808d.png-620x536.png
6740.de8fce9973578c9a07f0760a10341e17.png
6740.de8fce9973578c9a07f0760a10341e17.png
6740.de8fce9973578c9a07f0760a10341e17.png-620x511.png
6740.de8fce9973578c9a07f0760a10341e17.png-620x511.png
JohnTo Reply
Jan 30, 2015 00:00

Hi Shogo,

The previously supplied project used linear interpolation for the delay line just reading stored samples in memory. The side effect using this type of interpolation could be a significant perceived loss of content in the high frequencies. I re-tweaked the project for the EVAL-ADAU1452MINIZ to use fraction sample delay.

I also optimized slightly to use a single oscillator for both left and right channels, and added a feedback path on both channels to increase the resonance/metallic tone. Project is attached.

-JT

2eeca2342294c41bff3c5a31c1ce9957.png
2eeca2342294c41bff3c5a31c1ce9957.png
2eeca2342294c41bff3c5a31c1ce9957.png-252x381.png
2eeca2342294c41bff3c5a31c1ce9957.png-252x381.png
ecf06521077df86da2cc69499371287f.png
ecf06521077df86da2cc69499371287f.png
ecf06521077df86da2cc69499371287f.png-620x522.png
ecf06521077df86da2cc69499371287f.png-620x522.png
shogo Reply
Apr 24, 2015 00:00

Hi John,

Apologies for taking long time to response.

Thanks for your advice, this is great help for me.

Regards,

Shogo

horst Reply
May 5, 2015 00:00

Hi John,

Thanks for your examples. They really teached me a lot.

Is there a possibility to control the modulation rate of the delay through an AUX input e.g. potentiometer?

I tried it in several ways, but it didn't work out.

BR,

Martin

KJBob Reply
May 6, 2015 00:00

Hello Martin,

Apparently, John is not able to answer your question presently. Likely you have tried replacing the fixed oscillator in his flanger project with a VCO, but were not able to control it from an AUX ADC input. There's a few "gotchas" in between, which I'll try to help navigate with you.

The ADAU1452's Aux ADC converts its zero to 3.3V input into an integer number ranging from 0 to 1023. If you have used other SigmaDSPs before, you'll realize the 1452's Aux ADC is fundamentally different from the others -- the earlier chips' Aux ADCs output 0 to 1.0 in decimal format. SigmaDSP number formats are easy to learn, but tend to eat beginners alive -- they took a good chunk out of me a few years ago. By all means have a look at Brett G.'s famous tutorial at What are the number formats for SigmaDSP? This tutorial was written before the ADAU1452, so you'll need to remember that its decimal format is 8.24, not the 5.23 common to other SigmaDSPs. Also, the ADAU1452's integer format is 32.0, not 28.0 as the others use.

Sigma VCO's accept a 0 -- 1.0 decimal input, corresponding to a output frequency of 0 -- (fs / 2). In other words, a 1.0 decimal input provides a 24 KHz output given the usual 48K sample rate. A flanger, of course, would usually operate at a very slow rate of a few hertz at most -- so we need a correspondingly small input. For example, a maximum input of 0.00025 would result in a top flanger rate of 6 Hz.

Meanwhile, we need to convert the Aux ADC's 0 -- 1023 integer output to decimal in order to see how it matches up with the needed VCO input. To do this, divide it by (2^24 = 16777216). We thus find that the maximum Aux ADC value is 0.0000610352. Dividing the needed VCO input by the Aux ADC value, we find we need a gain of 4.096 to turn one into the other.

Finally, if you're using the ADAU1452MINIZ eval board, you'll need to bring your 0 to 3.3V control input to the tiny pad for the AUX ADC input you're using. Unfortunately, my hardware is not with me right now so I cannot test the modified project, which will be attached.

Best regards,

Bob

8270.f170ca91201ef11fedf19c2db17cc1c0.png
8270.f170ca91201ef11fedf19c2db17cc1c0.png
8270.f170ca91201ef11fedf19c2db17cc1c0.png-359x391.png
8270.f170ca91201ef11fedf19c2db17cc1c0.png-359x391.png