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

(Jon Burroughs) #1

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

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.


(Ashley M. Kirchner [Norym]) #2

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

(Jon Burroughs) #3

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.

(Jon Burroughs) #4

Here’s a different vid of the same thing at full brightness with diffuser, you can see the effect of the falling peak better:

(Andrew Tuline) #5

Would love to see some code for it.

(Jon Burroughs) #6


(Jon Burroughs) #7

@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!

(Andrew Tuline) #8

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.

(Jon Burroughs) #9

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.

(Andrew Tuline) #10

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

(Jon Burroughs) #11

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){;
counter = 0; }

(Jon Burroughs) #12

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.

(Andrew Tuline) #13

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

(Jon Burroughs) #14

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