How to adjust parameters through SPI directly(ADAU1701 project)?
Today I am very glad to receive an ADAU1701MINIZ board. Thanks to great support of Henry from ADI China.
Before I start my first project. I have one question :
I will creat a 5 bands EQ, I will creat a Dynamic Bass, and many other sound effect algorithms. Can I adjust parameters of them by setting parameter RAM or data RAM through SPI? For example, I will add many potentiometers in hardware. I will use them to set parameters. But I don’t know which RAM should be modified. How can I achieve this target?
Thanks in advance.
BR/Jackie
Hi Jackie,
There are a few ways to change parameters in real-time when the system is running.
Microcontroller:
Most systems have some kind of host device that can send commands to the SigmaDSP via the SPI port. There are several threads and tutorials on the forum describing how to do this. Here are some examples:
https://ez.analog.com/message/2799#2799
https://ez.analog.com/docs/DOC-1806
https://ez.analog.com/docs/DOC-1819
GPIOs:
Some SigmaDSPs, including the ADAU1701, have GPIO pins that can interface to pushbuttons, slide switches, potentiometers, or other control hardware. You need to program the SigmaDSP to interface with these correctly. Here are some guides for doing that:
https://ez.analog.com/message/2791#2791
https://ez.analog.com/message/56698#56698
Here are some example projects using the ADAU1701's GPIO: https://wiki.analog.com/resources/tools-software/sigmastudio/tutorials#adau170x-compatible_example_projects
I hope that helps.
Hi BrettG
Thanks for your helpful suggestions. I will generate kinds of table to store all parameters, I think it is the fastest way but I have to do a lot of jobs to copy all of them from the capture windows. Is there any easy way to copy the capture windows?
A very important question , please see attachment. It is a reverb program I designed. I need a karaok echo sound. But it is too bad. I know due to memory limitation it can not be a hall effect. Thanks in advance.
BR/Jackie
Hi
To copy capture window data, I will select those lines and save them as raw data.
About reverb, is there an ADI algorithm for ADAU1701?
Thanks,
Jackie
Hi Jackie,
I'm afraid that ADI has no reverb algorithm for the ADAU1701 -- please see this post for more info:
https://ez.analog.com/message/4337#4337
The ADAU1701 has 2048 words of data RAM, of which perhaps 2000 can be used for delay. This
works out to just over 40mS at 48KHz. Sound travels at about 1000 feet per second, or one foot each
millisecond. Thus, a reverb algorithm with 40mS simulates the reverberation you'd get from a wall 20
feet away (a 40 ft. round trip). That's not a particularly huge room. If you divide this delay in two
for stereo, you're down to 10 feet, even worse. Karaoke machines I've used mix the singers' mics
down to one (mono) channel and apply reverb to that. A mono reverb can use all the available delay
time, allowing for better sound.
ez.analog.com/.../7217.912dbeae1e55bda5ce86e608eee1981f.html
The attached project shows a mono reverb with filters in the delay path. Real room
reverberation has multiple reflections that tend to cancel frequency extremes. Filtering these out
makes the effect more natural.
Karaoke music (from CDGs, etc) normally is not routed through the reverb. Unfortunately, the
-1701 only has two ADC inputs, so you'll need a second -1701 (or a larger DSP) to run your mics while
also handling stereo EQ, etc. for the music. Other SigmaDSPs have more delay (data RAM)
available, but the -1701's built-in codec makes it easier to design with.
Best regards,
Bob
Hi Bob
Thank you very much for your sample project. I can see 1701 can not process reverb algorithm well due to lack of RAM.
For farther study, if there is enough memory in 1701, I will input music from ADC_IN0/1, and use ADPM441, which is a MEMS microphone and it can output digital sound through I2S. I can connect it to SDATA_IN0. How do you think? I think the vocal and music can be processed by 1701 independently. Am I right?
BR/Jackie
Jackie,
You're correct. The ADAU1701 data sheet (page 16) says, "The ADAU1701 can operate with digital or analog inputs and outputs, or a mix of both."
Bob
Hi Bob,
Good! I havn't try it yet, now no need to worry about it. I'm very happy! Thanks.
One question, sorry for so many questions... -- Is there a Bypass logic? So I can skip a block when need.
BR/Jackie
Jackie,
You can use a Switch cell (from the Multiplexers folder) to bypass a cell:
Some cells (like filters) also have a little blue button that you can click to bypass the cell.
It works! I love it!
Have a nice day!
Jackie
Please log in to reply.



