SounDNA is a unique tool
for visually juxtaposing any two songs and illustrating their complementing
segments. It emerged as a result of exploring themes that I found interesting
and challenging. To name a few: trigonometry and sin waves, various forms of
audio analysis, and DNA structures.
The program was made
entirely in Processing, and uses text file data generated from separate
Processing programs. These smaller programs analyze an audio track’s waveforms
at 30 frames per second, and average the several-thousand values into 30
floats, each of which represent a 30th of a single song. These
values are used to create a wavy strand-like structure. When combined with the
strand of a second song, a DNA helix is made.
In real DNA helixes,
a strand is composed of various sugars and, more importantly, things called
nucleobases. There are four main types of nucleobases, distinguishable in conventional
models by the colours green, blue, yellow, and red. Interestingly enough, green
bases will only create bonds with red bases, and yellow only with blue bases. Determined
to include this colour information in the final visualization, I designed the
program to divide the range of values from a single strand into four sub-ranges.
Values which fall into a particular sub-range are assigned that particular
colour.
In the final
visualization, two strands (reach representing an individual song) are wrapped
in a rotating DNA-helix-like structure. Visible bonds are created between complementary
song segments. To easier distinguish between the songs, each strand has a
corresponding line graph above or below, depicting the negative and positive
segment averages. Users are able to toggle certain interface features,
including the text overlay, helix rotation speed, and having the lines follow
the corresponding segment’s position on the z-axis. The presentation of this
work is partially inspired by the complex scientific visualizations that frequently
appear in the background of many films.
References
Damien. "Minim." Accessed March 22, 2012. http://code.compartmental.net/tools/minim/.
References
Damien. "Minim." Accessed March 22, 2012. http://code.compartmental.net/tools/minim/.