Interfacing Arduino to MAX/MSP via OSP


Interfacing Arduino to MAX/MSP via OSP

With the increasing use and development of open source hardware is also increasing, the use of Arduino board. Arduino is an open-source electronic prototyping platform based on flexible, easy-to-use hardware and software. This board can either be built by hand or purchased preassembled from the market. It is a very flexible module which can be easily interfaced with working software yielding interesting electronic applications. This project deals with establishing a connection which allows sending and receiving data between an independent Arduino microcontroller and MAX/MSP using Processing software and the OSC protocol without the use of an Ethernet shield. MAX is a visual programming language for music and multimedia. The Arduino used here is the Arduino Uno board. The Arduino Uno is a microcontroller board based on the ATMega328. It has 14 digital input/output pins, 6 analog inputs, a 16 MHz crystal oscillator, a USB connection and a power jack.

 
OSC is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology. OSC stands for Open Sound Control. It is a content format for messaging among computers, sound synthesizers, and other multimedia devices which are optimized for modern networking technology. It is evident that the OSC protocol can be conveniently implemented in MAX by downloading the Max externals. This calls for establishing a connection between Arduino and OSC which is accomplished through Processing language. Processing is an open source programming language and environment for people who want to create images, animations and interactions. In fact, the Arduino IDE is actually modeled on Processing since the software is embedded with a special library called Arduino library. The Arduino library facilitates to control an Arduino directly through Processing over a serial communication. Also, there is a library in Processing called OSC library that allows OSC data to be sent and received by Processing sketchs.