Tracking the Sky Orchestra
Earlier this summer Sky Orchestra woke Londoners up to the sound of music from the skies, as seven hot air balloons projecting sweet melodies soared above the capital, heralding one year to go to the London 2012 Olympic and Paralympic Games. Created by artist & studio resident Luke Jerram with composition from Dan Jones, the balloons took off at dawn and dusk with speakers attached, creating a massive audio landscape.
Watershed and Bristol City Council commissioned a website to showcase this extraordinary project, which has its roots in Bristol. The site, built by Play Nicely in Drupal, lets people find out more about the performances and their background. In addition to this Watershed contributed the ability to track the path of the balloon flights in realtime whilst listening to the music streamed live.
During flights the Sky Orchestra site shows the live locations of the balloons and plays the music as it would be heard in person, streamed using Amazon Cloudfront and Flowplayer. The site also makes previous flights available for viewing.
As the seven balloons fly together each plays a separate part of the composition. Each balloon caries speakers, batteries, an amp and a mp3 player for playing the piece. Alongside these there is also an android mobile phone running custom written software to track the location of the balloon. This transmits the current GPS coordinates of the balloon back to the sky orchestra web site over a 3G data connection.
Tracking the balloons
We started by having a prototyping day. We've used this approach previously for projects such as The Memory of Theatre and it works well. The idea is to get all the participants in the same room without distractions and to get a working prototype ready by the end of the day, a bit like a hackday or a compressed agile sprint.
Throughout the entire process where possible we picked technologies that were proven to be reliable or that we were familiar with. If the technology doesn't work during the flights we don't have the ability to try it again, so reliability and extensive testing was vital.
To track the balloons we used GPS. The accuracy of GPS improves as the number of satellites the device has line of sight to increases. In a balloon floating above any obstructions such as buildings we should get good location accuracy.
To get the GPS data from the balloon to the web site we chose to use normal 3G mobile phone signals. Coverage is good across london and we wouldn't need to set up our own radio system. However our solution would need to keep track of any locations whilst there was no signal to send and resend them when there is signal.
We considered a few possible solutions for getting GPS data from the balloon to the web site:
- Dedicated GPS trackers - updated too infrequently and didn't cache the location when there was no phone signal.
- Existing mobile apps - either didn't upload the data in realtime or didn't cache the locations when there was no signal, eg Google Latitude.
- Custom Android app - We have no previous experience with android apps, would be risky.
In the end we chose SL4A which lets you write Android apps in dynamic languages. It proved quick to get started with and we had a working tracking app at the end of the prototyping day. As we progressed though we spent more time accounting for the strange quirks and bugs in SL4A itself. The project documentation is patchy and the project appears to be abandoned. In future we would build a native Android app instead.
We only had one test flight to check if the system worked. The flight had only the one balloon taking off and flying across Bristol. This would let us test how accurate the GPS was and how reliable sending location back over 3G was. The main reason for the test flight was to check if the music played from the balloon was loud enough on the ground. We followed the balloon in a car and listened out. The live location tracking was working great and we used it to figure out where the balloon was heading so we could get ahead of it. It's surprisingly easy to lose track of a hot air balloon.
With a successful test flight we had three things to work on.
- Make the app more robust and reliable, especially for handling if there is no mobile signal. The balloon launch sites might not have phone signal for example.
- Simple user interface for starting & stopping the tracker. Launching a hot air balloon is hard enough without having to fiddle with settings on a phone but we need a way of knowing when exactly the music started playing and the balloon landed.
- Better way of showing the where the balloons are traveling on a map.
From Data to Maps & Music
The current location of the balloon is transmitted to a server every 10 seconds. This is stored in a database. During a live flight this is shown directly on a google map and the audio stream played, offset from when the music started. The google map has a custom style to desaturate the colours and simplify them subtly to make the balloon flightpaths easy to follow.
For archive maps viewed after the flight has happened there is a scrubber, letting people fast forward the flight or skip to specific points. To do this we need to know where a balloon was at a specific time and which piece of music was playing then. The live flight logs are interpolated into 1 second chunks giving us a lookup table from time to locations.
Did it work?
Due to the weather conditions there were only two sky orchestra flights. The web site held up and showed the flight paths and streamed the music just as intended. You can view both flights on the sky orchestra site and see photos in the gallery.
After the flights we ran some analytics to see how well the tracking worked. 96% of the time there was good phone signal and the locations were sent straight to the website, with the remainder cached and resent shortly afterwards. The GPS locations mostly had an accuracy of 4 metres or less during the flights. We also made a quick phone coverage map of the areas flown over to see if there were any black spots, just in case anyone needs a phone coverage map of South London at 500ft altitude.
To learn more about Sky Orchestra see the website, or visit Luke Jerram's site to learn more about his other works.