Chance Based System Progress

So, I got started in Processing today! The Minim library makes it very easy to incorporate music as an input.

My first test was just to read in a music file and display the sound waves. The following images shows both the left and right channels.

This immediately reminded me of A. Michael Noll’s “Gaussian Quadratic,” so I turned the waves forms to display vertically. I also disabled the reset background line of code and adjusted the opacity of the line stroke, so that you can still see the previous wave forms.

Next, I started playing around more with color and the line stroke. The color, as of now, is completely randomized for each new wave form. This is a combination of the left and right channels:

I decided to enlarge part of the wave form, making the lines more linear.

At this point, I decided to use the strokeJoin() along with the start/endShape() to avoid the dots caused by the end and start of a new line. I also adjusted the starting x-position of the wave form based on the ending x-position of the previous wave.

After some time I decided I much preferred the curved shapes given by the wave form.

Time to let a whole song play through! For testing purposes, I chose two different songs: Gorillaz – Feel Good Inc and Kishi Bashi’s – Manchester. Two main things stood out from this iteration that I disliked: (1) the straight vertical lines caused by the silences at the beginning and the end of each song, and (2) there wasn’t a whole lot of variation between the two songs.

To resolve these issues, in my second iteration I incorporated the BeatDetect class (also from the Minim library), which allowed me to analyze the song for rhythmic onsets. I restricted my program to draw a line only if a beat was detected. This took care of the straight lines created during the fade in/out at the beginning/end of a song. It also allowed more visual differences between “Feel Good Inc” and “Manchester.” Since “Feel Good Inc” has a higher BPM, there are more wave forms filling up the space.