The original Unknown Pleasures cover art is a stacked plot of radio signals from a pulsar. This is a little project I've been working on inspired by that. It builds similar style visualizations from given audio files and subsequently generates a video that is plays the visualization along with the song. You can find the source code on GitHub.
In making this visualization I started with the barebones - showing a waveform on the screen. I started by writing the code to read sound data from a .wav file, and wrote a simple script to visualize the data using Pythons Pillow library.
Once I had managed that I set about experimenting with showing the waveform in a way similar to how the final version would show it. I also wrote the code to layer the audio onto the videos produced. In this version the red and white lines represent the right and left audio channel. Part of the goal with this prototype was to decide how to handle those, and this pointed me towards just averaging them. Displaying them in the final version would've made the image more noisy and less intuitive to a viewer because they'd likely have no 'intuition' about what the two lines represent.
At this point I was ready to start making the final version. I started by just generating a frame of the output from some sample songs. Below are the result of running an early version of the project on Like Real People Do by Hozier and Love Will Tear Us Apart by Joy Division. It is interesting to see how the artists sounds are translated into the output. Hozier's smoother sounds look visually different from Joy Division's more 'rocky' ones.
Having done that, I put it all together for the final version. It can be run on any sound file, and produces results that I'm pretty happy with. I'd like to update the code to run in realtime in the future so it could respond to sounds in its environment.
Back to Top