A floppy-disk Walkman – using a Raspberry Pi

by @edent | # # # # | 23 comments | Read ~15,325 times.

I have built the most inconvenient way of playing music! It is lo-fi awfulness and cyberpunk grungy.

Thanks! I hate it!

Ingredients

WHY?!?!

As I discussed yesterday, it’s possible to fit half an hour of speech on a single floppy disk. The best band in the world are The Beatles, and their shortest album is A Hard Day’s Night – at 30 minutes, 45 seconds. Beatles audio was designed to be played over crappy AM radio in mono, so is well suited to being compressed using the latest audio codecs.

OK, I also got sent a USB floppy drive to review and wanted to do something interesting with it!

Compress your audio

A floppy disk can hold a maximum of 1,457,664 Bytes.

Using the Opus Audio Codec, you can squish audio to miniscule file sizes.

I got a single WAV of the album, and ran this command – which is about the best quality within the target filesize:

opusenc hdn.wav --downmix-mono --bitrate 6.7 --framesize 60 --discard-comments --discard-pictures --cvbr hdn.opus

That got it down to a trim 1,429,105 bytes. Enough space left over for some low-resolution cover art!

A very tiny copy of the Hard Day's Night album cover.

You can shrink the audio by a few more bytes by using removing the default metadata from .opus files.

How does it sound?

The copyright for Hard Day’s Night should have expired in 2014. Sadly, the law was changed in the UK in 2013. So it doesn’t expire for another 14 years. Here are some samples which I am using for non-commercial research purposes. This, I hope, falls under the fair dealing exception.

Not much worse than fading medium-wave station, right? RIGHT!?

(I’ve re-encoded it to MP3 in order for it to play in the browser.)

Building It

Sadly, the Pi Zero doesn’t have an an audio out jack. But the USB floppy drive is pretty big, so we don’t lose much space by going for a full-sized Pi. The Pi has a weird combined video / audio jack. I powered it using a USB Battery.
A floppy disk with an album conver printed on it. It is about to be plugged in to a mishmash of electronics.

All held together with rubber-bands. Classy!

Here’s a high tech block diagram:


🔋---→💻---→ 🎧 
      ↑
      |
      💾

Run these magic commands

I used Raspberry Pi OS Lite which doesn’t have a desktop manager, and fits on a 4GB microSD card.

Set the audio output to go via the headphone jack:

sudo raspi-config

Then choose: Option 7 (Advanced Options), then A4 (Audio), then 1 (Headphones).

Set the headphone volume to 100% (or whatever you fancy):

amixer sset "Headphone" 100%

Make sure you have the Opus tools and codecs installed:

sudo apt install opus-tools

Make sure that the floppy disk has been detected:

dmesg

It will probably show us as sda – mount it with

sudo mount /dev/sda /mnt

Go to the directory with your audio in it:

cd /mnt

Decode the file and pass it through to aplay – this should start playing music straight through your headphones.

opusdec --force-wav --quiet hdn.opus - | aplay

ENJOY!

Notes

Depending on the speed of your drive, and the framesize of your audio, you may experience buffer-underruns. This will cause the audio to skip. Just like jogging with a CD Walkman!

I printed the album cover on a Bluetooth Thermal Printer.

A floppy disk with a low fidelity label of A Hard Day's Night.

ToDo

  • Build a circuit to let me press buttons to play, pause, and skip tracks.
  • Make it auto-play when the disk is inserted.
  • Use the Rockband Moggs to make acapella / vocal only disks. Should be better quality without the backing music.
  • 3D print a case so I can go jogging with it while wearing a shell suit.
  • Register a patent on the blockchain so people have to pay me a trillionth of a EdentCoin every time they play music using my brilliant invention.

Put your ideas in the comment box.

Thanks

Huge thanks to Alistair for sending me a bunch of old floppies to play with.

Enjoyed this post?

If you like the silly things I do, you can say thanks by:

Or, just leave a supportive comment.

23 thoughts on “A floppy-disk Walkman – using a Raspberry Pi

  1. What a time to be alive

  2. What an awesome build! I remember Roland used to make some floppy based players, but I don’t think they ever made something truly portable.


  3. Andi Archer says:

    “A floppy disk can hold a maximum of 1,457,664 Bytes” not quite , you can squeeze a whole 1680 kB on a disk if you format it differently much like used by Microsoft for its floppy disk editions.
    https://en.wikipedia.org/wiki/Distribution_Media_Format

    1. @edent says:

      I did think about using some of those non-standard formats, but I wasn’t sure if I could get the Pi to read them.

      1. David Sheldon says:

        Last time I looked at USB floppy drives, you couldn’t use those formats as it was done in the USB controller, and want exposed to the system.

  4. mike says:

    I can’t decide if this is a better or worse idea than a digital camera that uses floppy disks.
    https://en.wikipedia.org/wiki/Sony_Mavica#Digital_still_cameras_with_storage_on_3.5%22_floppy_disk

  5. Andi Archer says:

    Talking of floppies did you ever see that Windows 95 on a floppy that was produced, it did sort of work visually but was really a linux derivative with a windows shell.

    1. Erik Tomlinson says:

      I mean, Windows 95 did come on floppies… thirteen of them, formatted in that Microsoft Advanced Format or whatever it was called.

      One CD was much more convenient… and it had a Weezer music video on it!

  6. Good grief; a 3.5″ floppy looks HUGE in that context!



  7. Stamanfar says:

    Shit like this gives me life. Well done sir.

  8. 💬 says:

    Nobody:
    This guy: I want to play music like it was back in hipster days. Over a floppy.

    shkspr.mobi/blog/2020/09/a…

  9. Dale Lane says:

    A floppy-disk Walkman. I love this. It’s sort of a so-awful-it’s-awesome thing. 😁
    shkspr.mobi/blog/2020/09/a…

  10. Stuart Hall says:

    I especially like the red rubber bands, most commonly used by the Royal Mail because the degrade over time and therefore don’t contaminate the ground when dropped. This means that they will unquestionably fail at some point (presumably when most inconvenient?) and make the whole thing just that little bit more annoying.

    Superb!

  11. Amigiac says:

    Weirdly I did this on the Amstrad CPC6128 in the early 90’s. And rediscovered my CPC at the weekend. The disk marked Music didn’t survive the plastic box in the shed unfortunately. Ni ether did the CPC but I can and will rebuild it.

  12. Paul J S says:

    Well played, Sir!

  13. This post made me happy! 😁 Awesome work!

  14. Karl says:

    So I built something like this using NodeJS, look at UDev rules for the ability to “autoplay”

Leave a Reply

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