Earth Notes: Rad Sounds: How Cool is your Home Heating in Time-lapse?Updated 2019-10-19 14:48 GMT.
Hi, I'm Damon Hart-Davis, and this is the Earth Notes podcast for 15th September 2019.
I'm making rad sounds from my radiators and temperature data.
"Visualisation" is a way of displaying boring blocks of numbers in a form that we can latch on to and understand easily. We have millions of years' worth of pattern recognition and its ilk built into our brains by evolution.
I used to edit a supercomputing trade magazine many moons ago, and visualisation was a big deal then too. It's no use spending millions on your experiments and number crunching, if you can't actually get the results into your head or anyone else's!
Sometimes we use "visualisation" to make a pretty image, such as a graph.
Sometimes we can use other senses such as touch or taste or vibration.
Sometimes we can make sounds instead.What happens if I speed up data from my house to listen to a year's worth of readings in a second?
That speeds up the daily cycle to happen 365 times in that second, or 365 hertz. That's between the F and F# above middle C. I end up using one sensor reading about every 12 minutes in each sound track that I create.
If we listen to (or look at) temperature or light or humidity we might expect not only to hear a daily cycle, but also a weekly cycle in many homes, and annual cycles driven by the seasons. Other fainter or messier signals may be there from Western (and other) calendar months. Maybe even something from the more-regular lunar cycles?
We can look for these mathematically with number crunching called Fourier analysis. But hearing or seeing could make for simpler believing?
I spent a few hours messing around and have some interesting initial results.
Nothing shocking but you can hear the difference between inside and outside temperatures, and inside between summer and winter.
Here is the sound of tempratures at my desk in the month of August just gone. The heating wasn't on. And temperatures changed especially smoothly while we were away at the end of the month.
It's a fraction of a second, but there is a buzzy tone there.
Now here's the whole of 2018 temperatures from outside as captured by the sensor in our porch (4o). The porch is below the window on my room (5s). The sensors are thus only a few metres away from each other. Still a relatively smooth tone.
And finally for today, the sound of my room (5s) temperatures for 2018:
The buzzing at the beginning and end of the year is the heating (and Radbot) working to keep the rooms only heated when someone is active in them. So with much faster temperature movements than the basic daily cycle.
You can hear the effect of heating!
There's more on my "Earth Notes" Web site at Earth.Org.UK.
Here is the first batch of sounds stand-alone. I captured
.wav intermediate file for each of these too.
Temperatures at my desk (5s) for August 2019 (.wav):
Temperatures outside in our porch (4o) for all of 2018 (.wav):
Temperatures at my desk (5s) for all of 2018 (.wav):
Here are a few more technical details for those who want them. (And to remind me how I did it when I have another go!)
There are 31536000 seconds per (365-day) year.
A conventional sampling rate for music, such as a CD, is 44100 samples per second. That is, 44100 Hertz, often written as 44100Hz.
31536000 / 44100 ~ 715. So I have resampled sensor data every 715s (~12mins). That gets 1s play per data year with a nominal 44100Hz sample rate.
(I should probably be filtering to keep Nyquist happy. Anything changing faster than about once every two samples. I'll consider that later.)
FLAC and WAVE both support (small 8/16-bit) values such as used in
OpenTRV JSON for temperature and light and RH%. In this case I've
converted the sensor readings directly into WAVE (
samples. Then I've normalised later, manually, in Audacity.
Then I've exported to MP3 (and FLAC).
I abused the UNIX
AWK utility to do much of the grunt work.
That included creating the WAVE binaries. That required some swerving around
character encoding. (Turning off UTF-8, and using a "C" binary encoding with
The code all runs on my Raspberry Pi. Some of it runs on my Mac. (I ran Audacity on my Mac.)
See conversion script: script/mkaudio/OpenTRVJSONtoWAV.sh:
gzip -d < data/OpenTRV/pubarchive/remote/201908.json.gz | sh script/mkaudio/OpenTRVJSONtoWAV.sh "T|C16" E091B7DC8FEDC7A9 > ~/tmp/out.wav
For a whole year's data it can be run like this:
xz -d < data/OpenTRV/pubarchive/remote/2018.json.xz | sh script/mkaudio/OpenTRVJSONtoWAV.sh "T|C16" 819C99B4B9BD84BB > ~/tmp/out.wav
There is a lower-level script that converts a text version of the resampled data to a binary WAVE file script/mkaudio/textToWAV.sh:
sh script/mkaudio/textToWAV.sh script/mkaudio/tinyRawAudio.txt 44100