I’ve had a few people ask me how the project has been put together, so here’s a little bit about how the sausage is made:
Two pieces of hardware run the project. The first is an Ambient Weather weather station that is installed outside of the Museum of Human Achievement. This is wirelessly sending data to a little hub plugged into MoHA’s Internet connection. Ambient Weather hosts the data on their servers. It’s actually a great product, and I was thrilled with how easy it was to install. Highly recommended if you’re interested in setting up a personal weather station.
On the other end is a Raspberry Pi, which is doing three things. The first is that it’s gathering the weather data from the Ambient Weather server using a python script. It grabs the data in five minute intervals in order to not overtax their servers or the Pi.
The next thing that the Pi does is load the data from a text file into SuperCollider, a music programming language. The code in SuperCollider has a number of scheduled tasks to analyze the data and perform specific actions based on the weather. The resulting music reacts to a number of atmospheric conditions, including the temperature, humidity, rainfall, wind angle, wind speed, barometric pressure, UV, and solar radiation. I am also pulling data from AQICN.org, which has accurate air quality information. All of these characteristics are incorporated into a number of different aspects of the music. If you want more detail, just ask!
As the Pi is making the music, it is being sent to a program called icecast, a tool to broadcast sound in real time online. This is what delivers the audio to your speakers when you click play on the stream.
For what its worth, setting up icecast was by far the trickiest thing to make work. If you’re planning to try out a similar project, I can offer you some guides on how to make this work. Its much to boring and technical to really get into here.
If any of that was unclear, you can also look at this graphic I made.
You made it all the way down here? Maybe you’d like to contribute to the project’s indiegogo page. Also, give the actual piece a listen!