I want to build a VU meter, I got it to work that the audio level is read out via analog.Read and then mapped an given to an amount of Leds. But how can I get the Leds to not just turn on and off but “fade” from black to full brightness and then back to black? I can do it for the whole strip without reading an analogue input, but how can I do it for every Led in particular? Thanks for any help, I can post my code if needed.
Try using the fadetoblack function in fastled. See the demo reel code to see how.
The demo reel code?
That would be one of the examples in the FastLED 3.1 release. Here’s the demo:
https://github.com/FastLED/FastLED/tree/FastLED3.1/examples/DemoReel100
Oh, thank you. Is there any more documentation; I just dont really get how to use it…
There’s a fair amount of written documentation in the source code for the library itself. Just open the files on your machine, or search for the function you’re curious about. You can also search and browse the source on GitHub.
https://github.com/FastLED/FastLED/tree/FastLED3.1
We’re slowly also transferring the docs into other forms, but the source code is where the answers are for now.
@Lars_Knust , an idea for you:
If you have:
CHSV leds[NUM_LEDS];
Make a second array of length NUM_LEDS where you can save a target brightness level for each pixel.
CHSV leds_target[NUM_LEDS]; //for example
When the audio check determines a LED should be turned on, rather then set it’s brightness directly, update the brightness target value in the target brightness array.
After reading your audio levels and setting brightness targets, then loop through the pixels comparing the current brightness to the target brightness. Increment a pixel’s brightness up or down accordingly toward the target. Something like:
if (leds[i].value > leds_target[i].value) {
leds[i].value -= 10; // subtract 10 from value.
}
else {
leds[i].value += 10; // add 10 to value.
}
FastLED.show()
The target of course will constantly be changing as the audio changes, and your pixels will constantly be chasing the target up or down.
At the same time you’re checking the value vs target, you could also shift the hue. Example:
if (leds[i].value > leds_target[i].value) {
leds[i] += CHSV(3,0,0); // add 3 to hue amount, and 0 to saturation and value.
}
Maybe have a base hue color for low values and a hue target for high values and then use the map function to tweak the hue as brightness values go up and down? 
Thank you so much for your response, I think I know what to do now.
But I have one Problem; As far as I understand, I have to set my arrays from
CRGB leds[NUM_LEDS];
to
CHSV leds[NUM_LEDS];
now. When I change it, I get an error in the setup line FastLED.addLeds (…) which says
“wrong number of template arguments (2, should be 1)”. But as I have to use the leds[i].value I need to use CHSV, don’t I?
Maybe I it is really obvious what to do and I just don’t get it, anyways I would really appreciate some help. 
What’s your entire FastLED.addLeds line?? I’d have to see what’s there to help with that. Maybe post code to pastebin.
If you want to work with leds[i].value you will need to create/use a CHSV leds[NUM_LEDS]; array.
But you don’t have to use HSV, you can work in RGB if that makes more sense. Then use three If statements for r,g,b and that will work just fine also.
if (leds[i].r > leds_target[i].r) {
leds[i].value -= 10; // lower red value.
}
if (leds[i].g > leds_target[i].g) {
leds[i].value -= 10; // lower green value.
}
etc.
Thank you so much, I will try to use RGB, but I think HSV would be more ideal for me.
I tried to make a new sketch, even if I have just this code
http://pastebin.com/wc60uQHZ
it wont compile because of the error “vu.ino:8:53: error: wrong number of template arguments (2, should be 1)”. Any idea?
@Lars_Knust , I think I was confused/confusing this morning with me typing up some code in the chat here and not actually running it. So here are two examples I put together of the “chasing a target” idea to hopefully help out if needed.