Sorry for bothering again,

@Dwain_Scheeren Unfortunately not - you need several audio bands for this animation. With a Teensy you could try software FFT to get the required data.

I’ve been able to get OpenMusic Labs FFT running on a Nano. God only knows why it works.

Okay but with my print I will can make led react to music. We gona use a arduino nano

Awesome! Can’t wait to have a play with this :). Thanks for sharing!

Got myself one of these: http://www.ebay.com/itm/MSGEQ7-breakout-board-7-band-graphic-equalizer-for-audio-for-Arduino-RPi-PIC-/301210655107?_trksid=p2141725.m3641.l6368

Will I be able to get it to work with your code?

Also, how many LEDs would you expect me to be able to run with an Uno? Will it be powerful enough for animating 120LEDs?

@Brian_Lewis What does that thing you got from ebay do?

@Michal_Hipner it allows you to plug in an audio source and then get data for 7 different frequencies which can then be used to make some cool LED art. You can buy the chip separately but the breakout board like I got is nice since it has the 3.5mm jack included.

Would this work with a Raspberry Pi?

No, FastLED doesn’t support this platform. You would have to write every used function yourself. I read that there existsts a library which allows driving WS2812s on a Raspi I. You would also need external harware to have some analog inputs in order to read the MSGEQ7. So I see no easy way to adapt it.

@Stefan_Petrick , Thanks for sharing. I’m going to try this on my bicycle for a night ride.

As a beginner i´m trying hard to get it work, but i dont get it. How does the full Sketch look like? Could anyone share his with me?

@Alex- Stefan’s code requires a line in as well as an MSGEQ7 chip. Here’s something similar that I whipped together (as in hasty hack) that just uses a line in (or microphone) and looks pretty similar. It also uses palettes instead of direct CRGB assignments.

Thanks so far!
I own a Breadbro Wave, so i have a MSEQ7 built on board, capturing sound via my Denon AVR Zone2 out so i can regulate the output for this independently. I just learned how to read values and got a one color sound reactive flashing working - thats nice but not similar to the shown animation :wink:
Im doing my best to learn!

I don´t get it, maybe @Stefan_Petrick could help with a complete Sketch? My Main Problem is understand how to give the Values to his script - as i´d like to use the builtin MSGEQ7. To completely learn fluent Arduinoish my spare time is too small, even that we all know that would be the most interesting way to get this working :smiley:

could you post how you did the left and right into your Bands*

@Stefan_Petrick I have tried to duplicate your code using the Neopixels library (because FastLed does not support my RGBW SK6812). But the result I get is completely different. I have omitted the MSEQ7 part and only doing one direction for now, also only using red color. I also couldn’t find a “FadeToBlack” function with Neopixles, so I tried to make my own.

Can you take a look below and tell me if you find any immideate errors?

void animation22(int x)
{
strip.setPixelColor(0, x, 0, 0, 0);

for (int i = 1; i < NUM_PIX; i++) {
strip.setPixelColor(i, strip.getPixelColor(i-1));
}
strip.show();
fade_down();
}

void fade_down(){
for (int i = 0; i < NUM_PIX; i++) {
for (int j = 255; j > 0; j–) {
strip.setPixelColor(i, j, 0, 0, 0);
strip.show();
}
}
}

There is a problem with your code: The magic of the effect is based on diming all leds a little down before shifting the data to the side. So a proper fade_down function is essential. You need to read the RGB values and scale them down to 99…95% of its previous value. I never used the Neopixel lib, but maybe you can do the math with FastLED (scale8) and use Neopixel just for the output. Your code has several problem: You write for each led 255x an decreasing value and call basically 255x255 times strip.show for nothing… NEVER call strip.show inside a loop.
for the fade_down you need something like:
for (int i = 0; i < NUM_PIX; i++) {
read the RGB values of led #i
scale R, G & B down a little
write this scaled values back to #i }

newR = (oldR * 250)/255 might be a good start for the scaling of one color.

I think I can do the fade_down in Neopixel according to your guidelines. But i never understood how one can make a moving pixel without having http://strip.show inside the loop. If it’s not inside the loop then all pixels will be one color instantly no? Don’t you want that rolling effect?

The whole thing is going quite fast, so you dont see that it updates only once the “void Loop“ is done. It calculates new values for every led inside the for-loop and should write it to the leds when this is done.

The basicy structure of any led animation should be
A) Calculate all data for all leds
B) Update once all leds.
It make no sense to update the strip afer every single led that changed. You want to write a complete frame.

So in the animation we talk about happens the following
A) Read audio
B) Write one single new led RGB data in the middle depending on the audio data.
C) Fade (scale) all RGB data down a little
D) Copy from the middle to the left an right
E) Send all this new data to the leds.
Repeat A-E as fast as possible.