2811 LED strip vu-meter

So i recently purchased an LED strip from Aliexpress.My idea was to tape it under my desk to make cool effects with it.One of effects included using it as a vu-meter.So i connected + and - to 12V suppy and data pin to pin 13 of an Arduino uno microcontroller.I uploaded my vu-meter sketch and i was dissapointed with result.I used serial communication to send processed sound data from python to arduino and it worked with many of my projects.But that doesnt have to do with my problem.The problem is FASTLED library’s functions are too slow and after pausing music light show contiounes for as long as 30 seconds because arduino is still processing the data.Do you have any solution
Here is a void loop of my program.
I got 2m long led strip with 100leds,something like that and im using fastled library

void loop(){
if(Serial.available()>0)
{
val=Serial.read();
}
for(int a=0;a<167;a++)
{
if(val==abeceda[a])
{
// penis=map(a,0,kalibracija[f]+10,0,ledNum);
penis=a;
}
}
for(int i=0;i<ledNum;i++){
if(penis>i)
{
leds[i] = CRGB::Red; 
        FastLED.show(); 
}
else{
      FastLED.clear();
}
} 
}

You might like to google the word penis to see what it means in English.

You should show all your sketch not just the part you think is relevant, if you knew what was relevant then you would not be asking the question.

Basically do not do a show function every time you set an LED’s colour but only when you have set them all.

Here is a void loop of my program.

No this is your loop function. Void just means it returns no variable, it is not part of the function’s name.

Grumpy_Mike:
You might like to google the word penis to see what it means in English.

You should show all your sketch not just the part you think is relevant, if you knew what was relevant then you would not be asking the question.

Basically do not do a show function every time you set an LED’s colour but only when you have set them all.
No this is your loop function. Void just means it returns no variable, it is not part of the function’s name.

Sorry if word penis offends you.
Second,it really isnt necessary for me to send you first part of a program because its just about collecting data over serial.And i tested it so it's not a problem.Slow part of program is FastLED.show and FastLed.clear and i cant do anything about it.I just asked if you can help me.Wow you really are grumpy.But still thanks for advice i'll try it out.

SWGLRD420:
Sorry if word penis offends you.

If you were honestly sorry you would have edited your post instead of protesting.

Slow part of program is FastLED.show and FastLed.clear and i cant do anything about it.

Do you have any solution?

If the first is true then the only possible solution is to use a different library.

Slow part of program is FastLED.show and FastLed.clear and i cant do anything about it.

Yes you can do something about it, you should not call it when you set every LED’s colour.
You want to write a function that sets the LEDs to a colour between two numbers. You then call that with the two numbers from zero to the volume level with the on clock oh, then call again with the two numbers from that led to the end of the strip, as black.

Only then call the led.show method, therefor it only gets called once for any one volume level, not once for each led in the strip.