A Slice of π – A MOD Music Visualizer

When making Into Oblivion, I was a bit frustrated that it was rather hard to gain good information from the FFT analysis and that it was utterly impossible to find which instrument was playing. And then a friend told me about MOD music.

Unlike audio files like mp3, module files aren’t rendered down to just the audio information. Simplified, they have two elements: A collection of distinct audio samples and tracker information when to play which sample and how to modify its pitch, volume and other properties. So that means if your visualizer is a MOD player, you have all this juicy information available at your fingertips!

So there were a few things I needed:

  • MOD files: I got those from ModArchive.org. I chose:
    • chiptune, phantasmagoria, rsectro and zapped_out by 4mat
    • Rivendell by radix
  • A MOD tracker to analyze the MOD files: OpenMPT filled that spot quite nicely and was easy to get into even for a total beginner like me.
  • A MOD processing library – of which I only found one! Luckily, PortaMod has (nearly) everything I needed, and the creator Brendan Ratliff was most helpful on Twitter.

Since this was my first foray into MOD music visualization and I wasn’t cooperating with a musician, I wanted to keep the visualizer as general as possible; any file that it could play should work. I also wanted to use as much information as possible. In the end, I chose a rotating circular representation divided into slices. Each slice is a MOD channel and each MOD sample was assigned a color. Pitch modifications made the radius go bigger, and everything is pulsating according to the output amplitude.


Executable for Windows
GitHub Repository (MIT License)

And now there’s been enough talk – have a preview video and a few screenshots!

The song used are, in order:

  • Rivendell by radix
  • phantasmagoria by 4mat
  • rsectro by 4mat
  • zapped_out by 4mat

chiptune01      phantasmagoria01

phantasmagoria02      phantasmagoria04

rivendell03      rsectro01

rsectro04      zappedout03

Leave a Reply

Your email address will not be published. Required fields are marked *