Audio Waveform Art

On May 9th, 2013 I had the idea to create drawings using audio thumbnails. From a technical standpoint, an audio file is just a list of numbers, each corresponding to an amplitude and delivered at a specified rate. It would be easy enough to match these numbers to an image on a grid then generate a WAV file from them. I was able to test my idea with a simple Python script. Once I had a proof of concept I meticulously drew some silhouettes and made the gallery above.

The screen-shots are of an editor named Wavosaur. The audio files will not open in some programs due to odd sample rates. The ZIP archive at the bottom of this page contains the source files and one folder named "dinos" which has a Python script and a vector image created with Inkscape.

Update: June 10 2018

I have received many emails asking how I created these. Honestly, it's a hack due to my poor math skills. I hand drew all the images as SVGs on a canvas that mimicked the amplitude range of an audio file and separated the points into positive an negative integers. Then I copy/pasted the point values into a script that combined them into an array and wrote the array to a .wav file. It was incredibly time consuming.

A talented programmer I know was able to recreate this process within hours of seeing my work. He drew a bunch of polygons in a thumbnail. I asked him how he approached the problem and he replied:

"I used sine and cosine (more elegantly put as the imaginary and real parts of the value of the complex exponential function with an imaginary argument, but I'm trying to help) to space the vertices evenly. I normalized area and then transformed each polygon to its intended location. I used some basic ray tracing to sample the polygons, because who doesn't trace rays to create an audio file?"

So, basically some kind of ray tracing. This is as much help as I can offer at this time.

Remember, an audio file is just a series of positive and negative numbers in an array. The distance from zero correlates to the loudness of that microsecond of time. This loudness is the y-axis of an audio thumbnail. The x-axis is time. This creates an important limitation: you can only draw in one direction. You can only make solid shapes and those shapes can't have any parts drawn to the left, only to the right. For example, if you put a pen to paper you can write the letter "N" without your hand moving left, but you cannot write the letter "Z" even though they are essentially the same shape, just rotated 90°.

I hope in the future someone writes a cool website that will let you upload pictures and export audio thumbnails. I might even do it myself if I have the time!