This is a follow up to my previous VU video post.

This is a follow up to my previous VU video post. https://plus.google.com/105445034001275025240/posts/jK2fxRx79kj

It’s really quite amazing how simply adding nscale8(), twice, can change your animations substantially. In the video, I use the nscale8_video() which never lets your array fade all the way to black.

The best part that I just cannot capture with my sh#tty camera, is I have a single pot to dial in certain variables while a push button, saves the pot setting and then scrolls thru a preset list. Pretty simple, and easier to code than I thought.

e7ec1cdb603189d1868c78e5bbc058de.gif

How come some “beats” are hitting leds[max] and others aren’t? Are you doing that on purpose?

I originally took code from Adafruit’s LED tie project. It has a feature where it scales the visual output to the size of your LEDs. I’m still experimenting with and tweaking the code. It could be my mic breakout too.

Here’s a different vid of the same thing at full brightness with diffuser, you can see the effect of the falling peak better: https://www.youtube.com/watch?v=JjX8X5D8RW0&feature=youtu.be

Would love to see some code for it.

@Andrew_Tuline http://www.slickstreamer.info/2014/07/led-bracelet-vu-meter-3dprinting.html

@Ashley_M_Kirchner_No The mic has an AGC, meaning Auto Gain Control. Duh, so after changing the attack response, it looks even better. RTFM!

Thanks for the code. When I get time, I’ll need to look into why my MEMS microphone works great with the Spectrum Shield, but no so great as direct input to the Arduino.

Here, the mic is fed 3.3v and I use the EXTERNAL analog reference pin with 3.3v too. The code will also compensate for DC offset from my breakout MA9814 from adafruit.

Got it converted to FastLED in short order, but the MEMS output levels are pretty twitchy. Will continue to investigate. Nice visualization.

I had to add what I call, a frame rate booster. Updating the LEDs every so many times thru the loop. I was able to 'smooth ’ my animations and not spam my neopixels with data.

static byte counter = 0; //FRAME RATE BOOSTER without affecting mic input
if(counter++ >= 8){
LEDS.show();
counter = 0; }

I even switched the sample rate at which the code averaged the signal, to smooth the ‘flicker’. I tried a few different options, 200 looked best for my setup.

Got it smoothed out by setting my DC_OFFSET to 32 and the NOISE to a whopping 100. Awesome!!

I recently tried to scale up the number of LED’s >20, but the code is hard capped for a small amount of LEDs.