I need to know if I'm right:
with this tip, I can drive 64 monochrome LED with one max7219.
For 64 RGB LEDs, I need 3 max7219.
yes, and yes.
Conceptually, if I want to make one led of the matrix :
- blinking in red or b or g
- change from red to blue
will it be possible??
I'm assuming you'll use RGB LEDs like this one: http://www.sparkfun.com/commerce/product_info.php?products_id=105
It has 4 legs, one is common and the other 3 are for red, green and blue. So it's effectively 3 LEDs in one package. If you want red, you turn on the red and turn off green & blue. Same for G or B. Magenta is R+B, Cyan is G+B, white is R+G+B, and so on.
With the MAX7219 you can turn individual LEDs on or off. Or you can vary the brightness of all of them at the same time. You wouldn't be able to vary the brightness of individual LEDs (unless you went for the the expensive BlinkM option).
Changing from red to blue just means turning off the red LED and turning on the blue one - which is controlled by a separate 7219. So you would have to send commands to each chip.
Blinking LEDs would be done by turning them off and on in the arduino's software, using its timing functions.
I guess I'll have to code a function that "convert" data from max/msp in data understandable by the Arduino (or wiring) board.
You haven't said what configuration your LEDs will be in, but since there are 50 I'm assuming it's not a matrix. (the 7219 often drives an 8x8 matrix.)
Nevertheless you might find it helpful to represent the LEDs in each display as binary numbers, where a 0 in the number means off and 1 means on. This is known as a bitmap. You could have 3 x 50-bit binary numbers to represent your whole display. Since 50 bits takes up 4 bytes anyway, in practice you would have 3 x 64-bit numbers, which you can send from Max/MSP to the arduino through Max's serial object. Then read in the numbers on the arduino using Serial.read() and send the relevant commands to the 7219.
Hope this is starting to make sense!