Driving multiple leds

I'm planning to read an audio signal and analyze its frequency spectrum with MSGEQ7 Integrated Circuit.

This IC will give me a serial analog data. Then in accordance with the value of each analog data in the array with size of 7, I will drive certain numbers of LEDs at the same time.

Since I'm not familiar with shift register I'm not sure if it is suitable for such purpose ? I have another option, which is; LED Display Driver (8-Digit) - MAX7219CNG from sparkfun;

https://www.sparkfun.com/products/9622

It's quite a bit expensive though.

So, would I be fine with cascaded shift register ?

Yes, you are ok just using some 74HC595 shift registers to drive LEDs. Have proper resistors to limit the current. These shift registers are meant to drive signal lines, not high-power LEDs. You may chain them into a good length. Just make sure you wait long enough between shifting out the last bit and latching the values out. It takes time to propagate the bits to the last shift register. If you see your last few LEDs always lit or blinking and not doing what they should do, that is when you latch out the values too soon. The LED driver from sparkfun probably has current limitation built in and needs no resistors. Here is a cheap source of the 595s

http://www.dipmicro.com/store/74HC595 Shipping coupon:

https://www.dipmicro.com/coupon?A9Y1

Compared with sparkfun price:

https://www.sparkfun.com/products/733

Thanks so much for your answer.

One more thing;

Let's say I'l be driving 25*7 = 175 LEDs,

With the array I got from spectrum analyzer, which is size of 7, I need to create another array with size of 175. Then I need to load this to 22 shift registers and then release the parallel data. This will be done over and over again, very quickly, since the LEDs have to be synced with the audio.

Would I experience any time delay between the actual serial data and its representation on LEDs ?

Thank you again.

liudr: Yes, you are ok just using some 74HC595 shift registers to drive LEDs. Have proper resistors to limit the current. These shift registers are meant to drive signal lines, not high-power LEDs. You may chain them into a good length. Just make sure you wait long enough between shifting out the last bit and latching the values out. It takes time to propagate the bits to the last shift register. If you see your last few LEDs always lit or blinking and not doing what they should do, that is when you latch out the values too soon. The LED driver from sparkfun probably has current limitation built in and needs no resistors. Here is a cheap source of the 595s

http://www.dipmicro.com/store/74HC595 Shipping coupon:

https://www.dipmicro.com/coupon?A9Y1

Compared with sparkfun price:

https://www.sparkfun.com/products/733

Poor design. Have array set up as 7 high, 25 across. Each column of 7 shares common cathode, each row of 25 shares common anode. shift register cd74ac164 drives the 7 anodes, with current limit resistor per anode. 4 TPIC6B595 shift registers drive the cathodes. Once a millisecond, drive the anodes, sink current in 1 cathode. Next millisecond, update the anodes, sink the next cathode. 1/25mS = 40 Hz refresh rate, flicker free.

Anode data comes from 25 byte array. During the 1mS column on time, do other stuff, like update the array. Classic blink without delay application.

There won't be any delay that a human can detect. 175 bits of signal propagates quite fast down the shift registers.