Sound Surface - Congress St.


This video shows a sound surface made from data collected along a stretch of Congress Street in Portland, Maine.

The height of each point is determined by the ambient sound level, while the position reflects GPS coordinates.The video gives a tour of each data point, showing the ambient light level at each point. The tour reveals the data collection process. The ambient sound level at each point also introduces a degrading effect to the mesh depending on density. The mesh becomes noisy when there are higher levels of ambient noise present.

The piece tried to show how an invisible force like noise maps to the visible world of light. The mesh degradation shows how noise can be equally as disruptive as visible light.

Processing 1.5 was used to produce this video. Data was collected with a custom-built GPS logger which read ambient sound and light levels. This data is smoothed using linear interpolation to cover gaps in the GPS coverage. The data is also smoothed using a distance threshold algorithm which averages readings which are close together. The point data is then converted into a mesh using Delauney triangulation. Data was collected over two days around and just after sunset to provide greater ambient light contrast.

The music in the background was created using a modular synth, 4-track tape recorder and looping pedal.

An expansion upon this idea was created for a piece called Shadowgraph Topophony, shown at Zero Station in 2016.

Visualization Software

The visualization code was writing in Processing 1.5, with help from the Triangulate and peasycam libraries. Source code for this project is available at:

GPS Logging Device

The GPS logger was built around an Arduino Uno with a number of shields attached. A standalone GPS module was mounted on a protoshield and read using the TinyGPS library. The Arduino standard SoftwareSerial and SD librraries were used for writing SD card data to the Seeed SD card shield. Another prototyping shield contained a very basic audio amplifier which was read directly using the one of the ADC pins on the Arduino. This was placed in a large plastic box with shoulder straps. The light sensor was mounted to the top of the box. A microphone was plugged into the box for audio readings. The entire system runs off a single 9 volt battery.