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