Let's shuffle bitsblog projects about

FlopMaster

FlopMaster is a software written to produce music from multiple floppy disk drives. I sometime refer to this thing as a "floppy organ".

This project was born after seeing some videos were 8 drives are playing the theme of "game of thrones".

I thought it was fun and wanted to reproduce it.

Finding discarded floppy disk drives was not too hard since at that time, most of the "outdated" machines headed to trash had such a drive.

The most annoying part of the hardware setup was to build clean signal cables for each drives. As I didn't have single header pin connectors, I remember having to saw one in half. Then I thought it would be elegant to reuse the connector from the ribbon cable... And while this is indeed very convenient and clean, this is also very error prone :).

The video linked above uses Moppy to control the floppy drives. Being an open-source Java software, I set it up, flashed an Arduino and started fiddling with MIDI tunes.

But I was not satisfied: the software had some limitations (1 drive = 1 MIDI track) and occasionally missed notes. And let's be honest, I really wanted to write something similar just for kicks.

So, that's how FlopMaster came to life. It's really different from Moppy since it is only a CLI and does not handle MIDI playback. Instead, it either connect to an existing MIDI output or creates a virtual one.

This allows to use existing software to play MIDI or even perform live!

The video below show the contraption in action, playing "This is Halloween" from The Nightmare Before Christmas.

The eight disk drives are controlled by an Arduino which receives data from the host software (FlopMaster). FlopMaster merely converts (and optionally transpose) notes into actions that the firmware receives over serial. Those actions can be reset drive, start frequency, stop frequency, etc.

The controller can assign one drive per MIDI track, but since most MIDI files assign a track to an instrument, this may not sound great (long silences). So the alternative strategy is to pool notes over the available drives. This way, you can play up to eight simultaneous MIDI tracks (extra playing tracks are simply discarded).

The firmware has two responsibilities: execute the action and keep track of the head position. Once the head has reached an extremity, its direction is reversed.

The code is open source, and the project is mostly dormant, or feature complete. Last changes were in 2019 where we had a hackathon at work and some colleagues and I built a slack bot to trigger a MIDI sequence on CI failure.

You can see a live performance in the following video, where Sladix is performing with a midi keyboard.

This project has been fun, especially since it has no practical use. Let's call it art.

And now I have 8 floppy disk drives taking the dust in a corner...