/voyager-decoder

An experiment in decoding the audio-encoded Voyager probe images

Primary LanguageJavaApache License 2.0Apache-2.0

voyager-decoder

An experiment in decoding the audio-encoded Voyager probe images. These images are encoded in a stereo sound clip, around 8 minutes long, with each image taking about 5 seconds of data.

This was coded over the course of a few days, in Java.

Some extra libraries are needed, these are provided in the Maven pom.xml file:

  • com.googlecode.soundlibs/tritonus-share - extra audio features
  • com.googlecode.soundlibs/mp3spi - for MP3 decoding
  • com.googlecode.soundlibs/vorbisspi - for OGG decoding
  • org.apache.commons/commons-math3 - for statistical processing
  • com.beust/jcommander - command-line options

This project does not decode the images 100% correctly, it also does not handle color or any metadata that might be available. There are numerous other limitations as well.

An important note: the software works best with normalized 96Khz 16-bit .WAV files.

Currently (18 Oct 2017), 156 images are generated by the program, with various degrees of legibility.


The process has been documented on my blog: https://hackcorrelation.blogspot.de/search/label/voyager


The code is not in a "production" state, but it could provide an easy framework to start with for someone looking to do something similar. A lot of the tedious work is already done:

  • decoding sound files in various formats
  • decoding interleaved sound data to retrieve usable sample values
  • buffering, multi-threading, multi-channel processing
  • sound (audio output) rendering
  • waveform visualisation
  • scaled image generation with basic image controls and saving to PNG

screenshot

a part of the generated thumbnails 18.10.2017