Advanced Mathematics: Addendum on Microrhythms

Above is a composition from me by the name “Compromise”. Don’t critique it too harshly, it’s first and foremost there to serve as a demonstration of what Marathon can achieve. What is Marathon? Just give me a minute, and all will be clear.

Microrhythm: A Reintroduction

If you want the full read, click here to read the full episode on microrhythms.

In a nutshell, microrhythm can be seen as “the rhythm in-between” or a “compromise”; hence the song title. According to Malcolm Braff’s vision, you can achieve a microrhythm by finding a middle ground between two conflicting rhythmic patterns. It’s a convenient way of visualizing and theorizing about it in the context of Western music, because otherwise such rhythms are next to impossible to reproduce in standard music notation. Many musical traditions, however, have plenty of microrhythmic feels and beats, and I highly doubt that they are there seen as a compromise between two patterns. But, since I am—and I assume the most of you—coming from a Western point of view, it’s a useful and powerful tool to approach and understand beats from other musics.

Marathon: An Automated Microrhythm-Generating Program

In the aforementioned episode about microrhythms on this here website, I’ve laid down a protocol to achieve them with MIDI files. It was manual and required tedious operations and some calculations as well, the complexity of which was dependent on the complexity of the conflicting patterns at hand. Lately, I had the idea of making this process automated using my rookie knowledge of Python and MIDI programming. As it turns out, it wasn’t too hard! The first version of the program was birthed in a few hours, and you can find it on Github by following this link to the repository. In even less time, I brewed a short composition to try out the program and offer a demonstration of its results to the world.

The name for Marathon is derived from M(icro), R(hythm), and (Py)thon. Right now, in its early and basic form, it reads simple MIDI files including two tracks of equal length and with the same number of notes: they serve as the two conflicting rhythms. The program then calculates a middle ground between each note pair and outputs a single MIDI track that you can use in your music software. I even added a weight value to each of the two input rhythms, so that you can choose how close the output should be to one or the other rhythm. As I’ve written on Bandcamp, the introduction and coda of the piece are gradually morphing from even to phrased and vice-versa respectively, while the rest of the song consists of two distinct patterns at a perfect 50–50 middle ground.

With this I hope to bring microrhythm—or xenorhythm—to a greater audience. Most of the repertoire today consists of acoustic instruments in traditional settings, but I wish to see this wonderful technique spread to other musical realms, like electronic music, rock, metal, jazz (although Mr. Braff beat me a hundredfold on this last one), and more.

The Present and Future Fate of Marathon

As it stands, the code offers a meagre but substantial improvement regarding the accessibility of xenorhythmic music. At least, you don’t have to painstakingly modify a MIDI file by hand anymore! All you need is two tracks on a MIDI file. The program is very sensitive, so for the best results export MIDI data from your DAW. I was able to use it more conveniently by writing patterns in Guitar Pro, exporting the MIDI file, which the program won’t accept for some unknown reason, import it in Reaper instead, export it again, and feed it to Marathon (it now works!)

I’ll do my best to update Marathon to make it more solid, versatile, and convenient in the near future. Who knows, maybe someday it could even be available as a standalone software where you can precisely map out and create fluid xenorhythms for an entire piece! In the meantime, feel free to download the song I made, the code I wrote, and try it out!

On February 24 2019, this entry was posted.