With the Glasgow Haskell Compiler installed, you can build this program with something like: ghc --make space.hs -o hpeano This program expects audio in a headerless unsigned mono 8bit stereo form. Sox users for example would type something like this to make suitable input: sox audio.wav -t raw -r 10000 -u -b -c 1 audio.raw Adjust the samplerate (10000 in this example) to taste. To experiment with feeding it interlaced stereo samples, put -c 2 instead. It'll choose a recursion level to suit the amount of data you give it. If you want a smaller image, you might have to reduce the sample rate rate a lot before qualifying for a smaller recursion level. Give it the name of your input file as a commandline argument, ie ./hpeano audio.raw You'll get the output in a file called out.ppm . All feedback, ideas, image outputs and patches very welcome to alex (at) slab (dot) org . Thanks! alex