Help with LED VU Meter

Well, I didn't write it so I don't entirely understand it. And I am very new to programming and C and all this, so please cope with me.

The variable left will contain a value between 0 and 1023. Your particular input may result in a lower upper bound, but do you know what that upper bound is?

No, I don't. Could it be 1023? The part where you put this (under the analogread) doesn't make much sense to me.

left = left / 2;    // adjusts the sensitivity (I changed this to 2 from 50 so it lights up better)

So, now left is between 0 and 512.

Where do you get between 0 and 512? Is this like 1024KB in a MB kinda thing? Is that how you got the 1023 and 512 being ~half of 1023? Well the sensitivity number has to be low so the lights light up better.

   for (i = 0; i < left; i++) // turn on the leds up to the volume level
    {
     digitalWrite(led[i], HIGH);
    }

Now, I ranges from 0 to an upper limit as high as 512. The led array does not contain anywhere near that many elements.

What? There are 10 elements (LED's) I don't quite understand.