Close
0%
0%

Temperature Sonification

Temperature samples were directly converted to audio samples and played back at a time compression ratio of 2.4 million.

Similar projects worth following
0 followers
Temperature samples from a TEMPer USB thermometer on a Raspberry Pi were recorded at a rate of one sample every five minutes. When played back as 16 bit / 8 kHz audio (a time compression factor of 2.4 million), very interesting sounds emerged that were beyond what could be explained through normal temperature fluctuations and random noise.

This study explores a novel method of environmental sonification using temperature data collected from a USB thermometer. By converting these values directly to audio samples and playing them back at 8 kHz, subtle patterns emerged in the data—some of which closely resemble speech-like formants.

Upon further analysis and cross-referencing with solar and geomagnetic activity logs, a consistent correlation between structured audio phenomena and known space weather events was discovered. The study suggests that this setup may be passively sensitive to low-frequency electromagnetic field variations, effectively turning the thermometer into an unintended EMF detector. This document outlines the methodology, validation against independently generated audio, and proposes future work in signal analysis, instrumentation, and citizen science.

logger.php

PHP script to call temper-poll and log the temperature.

php - 490.00 bytes - 05/08/2025 at 22:21

Download

data.zip

Collection of ten years' worth of temperature recordings from 2015 to mid-2025. Sampled at a rate of once per 5 minutes.

x-zip-compressed - 5.15 MB - 05/08/2025 at 22:02

Download

Temper (Python Result - Raw).wav

Temperature logs converted to audio with no post-processing. Seasonal temperature changes are apparent in the file. Created via the Python script.

Waveform Audio File Format (WAV) - 1.88 MB - 05/08/2025 at 22:02

Download

Temper (Python Result - Processed).wav

Temperature logs converted to audio with post-processing, including a high-pass filter at 128 Hz and volume normalization. Seasonal temperature changes are no longer present in the file. Created via the Python script.

Waveform Audio File Format (WAV) - 1.88 MB - 05/08/2025 at 22:02

Download

snippet1.wav

First part of the audio that resembles speech.

Waveform Audio File Format (WAV) - 107.89 kB - 05/08/2025 at 22:02

Download

View all 10 files

  • 1 × Raspberry Pi B+
  • 1 × TEMPer USB Thermometer

  • 1
    Raspberry Pi B+ Setup

    Install Raspberry Pi OS as usual.  The TEMPer USB thermometer needs a Python utility called "temper-poll":

    https://github.com/padelt/temper-python

  • 2
    Temperature Logging

    Create a script that calls temper-poll and a task in /etc/crontab to record the temperature every five minutes.  The code for this project expects a log file in the following format per line: 

    <UNIX timestamp> <temperature (F)> <MM/DD/YY> <HH:MM:SS>

    You will need to run this cron job for several months in order to gather enough useful data.

    Example logging script (PHP):

    <?php
    
    $adj = 0; // Temperature adjustment in Fahrenheit.  Calibrate with another trusted thermometer after recording some samples.
    
    $d = Array();
    exec("temper-poll",$d);
    if(isset($d[1])){
      $s = $d[1];
      $s = explode(' ',$s);
      $s = $s[3];
      $s = str_replace('°F','',$s);
      $s = (intval($s*100) / 100) + $adj;
      $ts = time();
      $ds = date("m/d/y H:i:s");
      file_put_contents('./temper.dat',$ts.' '.$s.' '.$ds."\n",FILE_APPEND);
    } else {
      echo 'Could not read temperature.';
      exit();
    }
    
    ?>
  • 3
    Conversion of temperature logs to audio

    The PHP and Python files provide two separate ways to convert the temperature logs to an audio file.  The resulting audio file will be in a 16-bit / 8 kHz sample rate format.  Temperature fluctuations will become audible sound.  It is a good idea to run some simple post processing on the resulting audio, namely a high pass filter around 120 Hz to filter out the seasonal temperature swings, followed by volume normalization.  There may also be transients worth filtering out in order to get the remaining audio levels to a decent range.

View all 3 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates