Bach Choral Harmony Network Diagrams

Today I decided to revisit the Bach Choral Harmony data set and look at chord progression transitions. In order to do this I wrote a small program that tallies the movement from one chord to another, and then outputs a Graphviz dot file that can be turned into an image.

80s Number One Hits

Recently I harvested all the number one singles of the 1980s from this comprehensive Billboard charts database. Naturally, I whipped up some handy perl code (not shown here) to analyze the records and get the following results.

Sonic L-Systems

In 1968, Aristid Lindenmayer introduced “L-systems” to the world.  Basically, this is an iterative rewriting system of rules that operates on a string beginning with an “axiom” or initial string.

Musical Ngrams

What are the most repeated phrases of musical compositions?  Naturally I wrote a program to tell me!

Terry Riley’s “In C” (in Perl)

The composer Terry Riley was experimenting with generative forms of music and came up with an interesting technique: Give fragments of musical phrases (motifs) to musicians to play in order, but looping however many times they desire.  This results in a sort of “free-form round” – like “Row Your Boat”, only schizophrenic with phrases appearing […]

Bach Note Transition Frequency “Music”

What are the note frequencies of music by Bach?  That is, “How often does an F follow a C?” etc.  What does it sound like if you “reconstruct” playable music from these frequencies? Let’s see!

Bach Chorale Diversity

What is the relative statistical diversity of Bach chorale harmonisations? Ever since I stumbled upon this Bach Choral Harmony Data Set I’ve been wanting ways to analyze it!

Visualization of Led Zeppelin Lyrics with R

What can be known about Led Zeppelin lyrics from the standpoint of a computer geek? First, I collected and properly named every song with lyrics, with the power of perl and persistence. Then I found/crafted some R code to process these into a few graphics.

Weighted Graph “Music”

Code: synch-weighted-randomized   This piece was constructed in 4-bar increments by running the above code and importing the generated phrases (MIDI file) into my DAW (Apple Logic).  I then gave the patterns “better” patches, used layers and added a drum track for continuity. The code uses randomly generated weighted graphs to build up a melody […]

Musical Random Walks Over Weighted Graphs

tl;dr: In this post, I illustrate a simple technique in Perl 5 to perform random walks over (node-edge) graphs, adding the named, “semantic” vertices to a MIDI score. The image on the left is not generated by the random-walk program, but is just a related illustration. :-) OK – on with the code! First, there […]