Using an Uno, I built an audio visualizer that displays peak and average levels along with the frequency spectrum. It is working fine.
The issue, which leads to my question is this: The audio is tied to both the MSGEQ7 (spectrum chip) and a Shifty VU shield. The SVU rectifies the signal which is read on A2 & A3. The EQ7 output is read on A0 & A1 using ARef = DEFAULT. If I switch off the spectrum display (don't execute the spectrum code) I can use ARef = DEFAULT to read the SVU output (A2 & A3). However, if the spectrum code is being executed I need to use ARef = INTERNAL because the levels are much less. My question is why the difference? Why is the level reduced on A2 & A3 when I'm also reading A0 & A1?
I'm attaching a block diagram that shows the connections.
Well, its all good. A brief explanation is in order. This issue appeared while bread boarding the project. At the time, I changed the ARef based on the Spectrum switch and then as the project continued, I focused on other things. Yesterday while looking at the code, I thought "This makes no sense." Which prompted me to make the post. While waiting for a reply, I wrote a test sketch that I ran last night. To my surprise I discovered the reference voltage doesn't need to change! I suppose all the wire used on the breadboard affected the audio level and now it works fine.
Lesson learned: Test everything, both during design and again with the finished project. Don't make any assumptions.