There are a great deal of applications already available for the Monome. Due to the open nature of the hardware, software and communication protocols you can also very easily create your own. There is a section for Arc specific development.
| Language | OS Support | Free to write? | Free to run? |
|---|---|---|---|
| Chuck | Lin/Mac/Win | Y | Y |
| Java | Lin/Mac/Win/Sol | Y | Y |
| MaxMSP | Mac/Win | N | Y |
| Max for Live | Mac/Win | N | N |
| Pure Data | Mac/Win/Lin | Y | Y |
| Processing | Lin/Mac/Win | Y | Y |
| Python | Lin/Mac/Win/Other | Y | Y |
| Ruby | Lin/Mac/Win/Sol | Y | Y |
| SuperCollider | Mac/Win/Lin | Y | Y |
Q. Can anyone speak to the advantages or disadvantages of each method (led, row, column, frame)?
A. [the difference is in] number of packets, number of serial bytes, which means time and latency.
Consider:
/led 0 0 1 /led 1 0 1 /led 2 0 1 /led 3 0 1 /led 4 0 1 /led 5 0 1 /led 6 0 1 /led 7 0 1
that's 8 OSC packets (big), which monomeserial must process independently and then convert into two-byte serial packets, for a total of 16 bytes transmitted to be processed by the internal firmware.
/led_row 0 255
that's one OSC packet, monomeserial processes one packet into two serial bytes, the firmware updates all 8 LEDs at once quickly.
/led_row 0 255 /led_row 1 255 /led_row 2 255 /led_row 3 255 /led_row 4 255 /led_row 5 255 /led_row 6 255 /led_row 7 255
8 OSC packets, independent processing of each in monomeserial, two serial bytes each, 16 bytes processed by firmware
/led_frame 255 255 255 255 255 255 255
that's one larger OSC packet, monomeserial processes in one go, it sends 9 bytes to the firmware for one simultaneous LED update.
so, now consider the efficiency of a /frame versus 64 /led messages. 1 OSC packet = 9 bytes vs. 64 OSC packets = 128 bytes. it's not just packet sizes to consider, but how many CPU cycles the computer must use to convert, process, and send these packets.
i don't think you should always use frame. i use all of them, depending on the application and function. if you just want to flash a single LED it's not more efficient to send a whole /frame every time!