Developing Applications for the Monome:

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.

Communication

Development Languages and Environments

Language Comparison

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

led update methods

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!