This research is an exploration of the technology and strategies required for large scale audio mesh networks for eventual use in interactive, locative audio art installations. The use of wireless transmitters coupled with Arduino microcontrollers and sound generation and playback, as well as geolocation will be explored for the development of an extensible, modular network.
One Xbee attached to a computer running Processing serves a a coordinator, sending playback commands to several Arduinos with WaveShieds from Adafruit. Processing requires Andrew Rapp's Xbee API and the Arduinos use his Xbee Arduino. The Xbees are Series 2 in API mode. The WaveShields use SD cads (8 Gig, FAT32, fomatted with Mac Disk Utility) to store the audio files in WAV format (mono, 44 kHz, 16 bit).
Sample Processing 2.0 and Arduino code here
The viewer's location is used to determine sound playback. An iOS App created in PhoneGap 3.1 and Xcode sends location information to a web based database. Processing queries the database for the latest user locations. (This hack elimates the need for a web service running on the controller computer running Processing and issues around getting a static, public IP address.)
Assumes you've got a local web server with PHP and MySQL. (Setting in your Apache config file may need to be adjusted to connect to clients other than 'localhost'.) I've configured a local database table with fields: user, long, lat, id and time.
A whitelist setting needs to be made to one of your config.xml files in your PhoneGap / Xcode project to be able to connect to jQuery remotely.
Sample PhoneGap (Xcode), Processing and PHP files here
Shea, Geoffrey and Alan Boulton. Telegraph: Transmission in a streetscape audio artwork. Trans-X Symposium, Toronto, 2012.