heythats.cool

anthony d'angelo's website

TideSynth.py

Sonification of Tidal Harmonic Constituent Data

Download on Github

Like an audio signal, tide records can be visualized as a complex waveform. If you apply a Fourier transform to past measurements, you can visualize the frequencies and amplitudes of each harmonic that constitutes the original wave. Each resulting harmonic represents the influence of a real-world phenomenon on the tide, such as the position of the moon relative to a terrestrial reference point.

By speeding up each constituent's frequency from weeks/months/years to a period in the audible range, we can hear a representation of tidal predictions. The resulting waveform never repeats exactly.

The script is based on the Tide Predicting Machine No. 2, aka “Old Brass Brains,” an analog computer constructed by Rollin A. Harris and E.G. Fisher in 1910. This machine was used by the US National Geodetic Survey (then called the US Coast and Geodetic Survey) for official tide predictions for over fifty years. Using mechanical principles, it modeled the frequencies, amplitudes, and phases of known tidal harmonics, then reconstituted the waveform as a drawing on paper.

Example Output

Station 9410660 Los Angeles, May 27 2022, A3 220Hz, 10s

Station 1612340 Honolulu, July 3 2022, C4 261Hz, 15s

How To Use TideSynth

  1. Acquire harmonic constituent data. The National Oceanic and Atmosphere Administration (NOAA) publishes snapshots of tidal harmonic data here. The seven-digit code at the end of the linked URL is a unique NOAA station code. In this case, 9410660 represents the Los Angeles station. You can look for your nearest station and its code here. Once you have your table of harmonic constituents, copy/paste the full contents table into your preferred software and export as CSV. Make sure to use the same column order and headers as the example CSV provided in the GitHub download.
  2. Run the script. Initialize Python3 in your preferred command line interface and open TideSynth.py. You will be prompted to enter four pieces of information:
    • Input File Path: the file path of the CSV you created in step 1.
    • Fundamental frequency in Hertz. For musical results, remember that the typical human hearing range is 20-20000Hz.
    • Audio Duration in Seconds: The length of the file that will be created.
    • Output Filepath: where you’d like to save the audio file, including the name of the file and .wav extension.

After the output filepath is entered, TideSynth will generate a .wav file based on the data provided. If the script returns errors, try removing spaces from folder names in the input and output file paths and try again.

For more information on tides and tide prediction, check out these NOAA publications: