Earth Notes: Water Music: How Does Tap-water Temperature Sound in Time-lapse?Updated 2023-04-10.
Hi, I'm Damon Hart-Davis, and this is a mini Earth Notes podcast episode for 29th October 2019.Move over Handel! Having tried 'audifying' various chunks of data in a fairly simplistic way, here I try my hand at 'sonifying' some water temperature data data at a slightly more abstract level, via a MIDI sound track and a slightly larger set of tools.
Rather than turn data values directly into amplitude at a very high rate to make a tone, I'm now more slowly turning those values into note pitches.
For this I turn my data first into a CSV (Comma-Separated Values) file such as Excel might load. Then I convert it into a version with a regular cadence even when the data is not itself perfectly regular. Then I process that into a MIDI (Musical Instrument Digital Interface) file, with each data point a single note. I have Apple's Garage Band on my Mac transform that into a (large WAV) audio file. Finally, Audacity exports into the final FLAC (lossless) and MP3 (lossy) audio files.
Whew! About a half-dozen steps, though most are fairly mechanical.
The step of converting to MIDI from the even-cadence data is the one with the most scope for fun, probably. The first pass was the simplest thing I could get working. And for under a hundred lines of shell and
awkscript I don't think that it's too bad!
For my first attempt I take about a decade of (eventually) monthly readings of my kitchen tap water temperature and turn it into about 30 seconds of audio. Maybe it's water electronica?
(I have been advised that 70 to 140 beats per minute is 'normal' music tempo, but I have made something like 120 data points fit 30 seconds, so maybe 240bpm?)
That did not seem to actually have the instrument voice loaded, which is fine!
This time then, with feeling. And a dollop of fake harp...
And then with four copies of the harp track overlaid and slightly delayed. The more-delayed copies are quieter for something like echo or reverb. This is all done in Garage Band from the previous harp MIDI file.
So, my first adventures in audification and sonfication via MIDI files generated from the source data. The world is my oyster.
Another idea that I'd like to try is using outside temperature for pitch, and taking volume ('velocity') from gas demand.
Another is to create various monthly series, eg battery flow, electricity demand, PV generation, and give them their own instruments and arrange them on a virtual stage with L/R panning.
There's more on my "Earth Notes" Web site at
Further to the above ideas, possibly line up individual rooms on that L/R 'stage', with percussion or chorals for occupancy or other events, for example.
In place of external temperatures HDD (Heating Degree Days) could be used.
A typical resting heat rate is 60 to 100 beats a minute, ie ~1Hz or a little faster. Cycles in sonified output that match that may be more salient. So, one day per second or one year per second are likely good.
The workflow now for the first sonification was:
- Start with HTML data source
- To CSV data with a script
- To tidied-up plain-text data with regular cadence with a script
- To a MIDI file with a script
- To a WAV file (not retained) with Apple's Garage Band
- To FLAC and MP3 files with Audacity.
Note that for that first conversion from MIDI to WAV, Garage Band had not yet downloaded all its 'essential' sounds, including the flute voice it seems.
Much as before except with harp (MIDI instrument 47):
Four copies of the same MIDI harp track played slightly delayed, with later ones fainter for poor-man's reverb:
New scripts and usage:
sh script/16WW-mains-water-inlet-temperature-month-filter.sh < data/16WW-mains-water-inlet-temperature.csv | sh script/mkaudio/fill-in-months-CSV.sh sh script/mkaudio/fill-in-months-CSV.sh < data/16WW-mains-water-inlet-temperature.csv sh script/mkaudio/fill-in-months-CSV.sh < data/16WW-mains-water-inlet-temperature.csv > ~/tmp/temp.dat; sh script/mkaudio/texttoMIDI0.sh ~/tmp/temp.dat > ~/tmp/out.mid
And here are the auto-generated even-cadence CSV and MIDI files from all data (keep coming back as these get extended):