floppy

floppy disk jukebox

github

the disk

recently at work i've had to use floppy disks - the 3.5 inch, 1.44 MB plastic rectangles from the 80s. younger people might never have even used one of these disks, which were so ubiquitous at their peak that we STILL use a floppy disk to represent the "save" icon in thousands of GUIs.

i want to do something... stupid with them.

humans love tangible things, even if equivalents are better in every way; just look at casettes, vinyls, even old iPods over streaming audio off your phone. It's worse in almost every way, except silly human brain go "oooo" - why can't floppy disks be the same?

the plan

they're 1.44MB - this is *just* big enough to fit a VERY compressed mp3 file, and what's better than only being able to fit one song on each disk? (this is such a stupid idea).
i want to keep this project absurdly simple too - if i'm going to make a jukebox floppy disk player, it's not going to have play or pause, no FF or RW, and to "skip" a song, you'll have to change the disk yourself. It's definitely going to be a gimmick, but so is using vinyls in 2023!

front drawing of the floppy disk player side drawing of the floppy disk player

it needs some kind of output, other than audio, so a small 16x2 LCD should fit the theme - It'll show the status of the player, and current song metadata.

the hardware

here is every component needed for the simplest version:

the floppy drive plugs into the Pi, the LCD display to the GPIO pins, and all the Pi needs is power and aux out connected. At the moment I have no plans to include any buttons or dials (although i did draw them on the diagram!)

the software

there's a few ways this could go together on the software side, but here are the facts:

we have a floppy drive connected, and sometimes a floppy disk insertedm which may have an audio file on it. we want to make sure the disk is mounted, and if a valid audio file found to play it!

We could keep the audio file on the root of a formatted floppy, but this will lose some available space. We could also write the audio file directly to the disk, but then we'll have issues with checking if the file is valid and storing metadata too - standard DOS formatted floppies should be fine.

all we need to do is mount the disk and play the file - metadata can be read from a .txt and printed to the display.

In the video above, I tested only two audio formats. MP3s compressed down to 1.44MB turn out to be barely recognisable. MP3 really isn't meant for the modern world - so i tried the OPUS compression format. It's designed for voice and streaming, but it performed very well with a significant improvement over MP3. Unfortuately it's still audibly compressed, but that's a tradeoff i'm willing to make.

prototypes

two functional prototypes, where the disk is autoplayed when inserted into the drive