Portland Rain Data Sonification

The rumors are true, it rains alot in Portland! This seems to be common knowledge, however I wanted to take a slightly different look at the weather. The City of Portland HYDRA Rainfall Network publishes the average rainfall data online from various rain gages placed around the city. I thought it would be interesting to see what kinds of sounds could be generated with this data.

When looking at the number of days where there is rain, it seems like alot. Here is a quick slice of the data, a heatmap of the number of days there was rain during 2016:

Interestingly enough, when I dug a bit deeper into the data, the actual total amount of rainfall is not nearly as heavy. The rain often feels like a light mist instead of torrential downpour. Here is another heatmap with the total rainfall in inches for each day during 2016:

I took the daily rainfall data recorded at the Hayden Island Rain Gage over the last 10 years (~Feb 2008 - Feb 2018) and presented it as a semi-twelve-tone serialism composition that was generated by different facets of the data.

Here is the full 20-min composition:

How it works

This project was created using Python, OSC and ChucK. I wrote a Python controller to pre-process and pass the data via OSC. I have ChucK running via MiniAudicle to receive the OSC messages (pitch and velocity) and orchestrate 5 different synths to create audio for the rainfall values.

Each hour is represented by a sequence of tones. I used an open source Python library, that I previously wrote, called twelve-tone to compose multiple bars of a 12 tone sequence based on the data.

There were two main characteristics I targeted:I created

  • Short, fast sequences for days with no rain
  • Long, slow passages that were weighted with rainfall measurements.

The note sequences are passed one by one as an OSC message to ChucK for synthesis.

Sound Design and Synthesis

While designing the sounds for each facet of the data, I decided on using 5 synths to define the data:

  • High pitched chimes for non-rainy hours
  • Heavy brooding synths for rainy hours
  • A plucky tone with high feedback for lighter rainfall
  • Percussive clap that signifies the end of a 24 hour period
  • Percussive sitar that is swapped out 50% of the time for end of 24 hours.

Here is a link to my synthesis code: https://github.com/accraze/raindata-audio/blob/master/ChucKSound.ck

We iterate through each day and check the rainfall values recorded for each hour.
Here's a video that shows the project in action:

PDX rain data sonification from accraze on Vimeo.