I have looked at FASTSPI and a couple of other spi schemes. I have settled on the rather normal SPI library and SPI.TRANSFER in my output routine.
The 5v version is 'low speed' and can easily be written to too fast. I have to use SPI.setClockDivider(SPI_CLOCK_DIV8) ; so that I don't get some wierd hanging outputs now and then . I tried feeding + and - to both ends of the 5 m strip with absolutely no difference. I am running a 'traveling dot' code that I wrote and it is updating about 44,000 + leds per second. 160 out, 160 back and it has to update the entire strip each time the dot moves over once. that is 160x2x160.
To get the time I counted the led traveling out/back 26 times in 30 seconds. (160x2x160x26)/30=44,373.33 leds/second. Not sure what that is in mhz because I don't know if those who use that calc are counting bits/sec, bytes/second,leds/sec etc.
Now the point. or pointed question.
Is FastSpi worth the extra mile? It looked like a lot of stuff to learn and deal with whereas SPI.TRANSFER(###) lets me use any kind of data array or structure of what-have you.
Granted there are a lot of cool things it does that I have not as yet programmed.
I am building a 7 x 45 matrix and needed lots of flexibility to acomodate my limited C++ skills.
(disclosure, FastSPI_LED/FastSPI_LED2 are my libraries, and so I'm a tad biased)
That's just about 1Mbps of data output (I prefer to use bps instead of Mhz when talking about speed because it makes it clear when i'm talking about bits. The ws2801 has 24 bits of color data for each rgb led, so 44,373.33 * 24 = 1064959.92). Mhz refers to the clock speed of SPI, basically how many times a second the clock changes state.
As for what you want to do - an advantage of FastSPI_LED2 vs. the SPI library is you can change out what chipset your working with easily, and not have to change the rest of your code. Also, there's more to performance with led programming than just the speed with which you can push led data out.
With the original FastSPI_LED library it basically was pretty much like a multi-led chipset replacement for the SPI library (at least with chips that used SPI, not all led chipsets do).
FastSPI_LED2, however, added bunch of things to support led programing, like working with HSV color spaces instead of RGB, fast math operations for doing transformations to your leds quickly, etc while trying to keep an emphasis on high performance on the arduino/teensy devices.
I'm hoping to have a series of examples going from very basic code all the way up to complex, multi-string, multi-dimensional led array programming. It just takes time to get done (and, alas, I have a day job, and multiple projects running in parallel).