I like tactile interfaces and I love the album art of yesteryear… so I created a simple yet effective way of playing music. Imagine tiny albums, that you can thumb through, and place your choice onto a special device: Music comes out! Magic? No, it’s a combination of Spotify, NFC tags, some code and a bit of elbow grease. Read on to see how it’s made.
Note: This is in no way affiliated with Spotify. I just happened to have a Premium subscription and wanted a nicer interface to enjoy it.
I was — and still am — a creature of habit when it comes to music. I listen to the same albums again and again. When I find something new that I like, I’ll add it to my iTunes collection and play it repeatedly until it becomes familiar and comforting background noise.
A few years ago, I helped out a friend’s band with some digital downloads. As a thanks, they bought me a turntable as a gift — quite the gesture since I had no vinyl records at the time and no intention to start a collection: my CDs were already gathering dust (long ago ripped into MP3 & AAC) and I played my music via a computer or phone. I’d recently discovered Spotify which also allowed me to discover new music quite easily.
Turns out old second-hand record shops are quite fun — if you have someone to guide you. My friend Sergios from Voyage Limpid Sound took me to one where I discovered the joy of buying €1 and €2 records.
I’ve quickly built up a small collection of obscure Jazz & Easy Listening records that were heavily played whenever company’s around. The fact that there’s limited choice means we avoided the dreaded YouTube party. Instead the music fades into the background allowing conversations to flourish. Every now and then I’d have to flip a record over or pick one at random to play next.
Fast forward to earlier this year. We packed up the car with our earthly belongings and relocated to Luxembourg. Sadly, the turntable and record collection were stuck back in Athens. Instead we had a couple of iPads, a Spotify Premium subscription and pair of crappy PC speakers.
By stroke of luck, I found a Marantz AV receiver and a pair of KEF floor-standing speakers for an outrageously low price. Now the music had some legs! However, the Spotify experience really sucks. The app is slow and clunky. I have to know exactly what I’m going to search, and even when I save albums there’s no fast way to go back to them. I’m trying to build a collection of saved albums and artists but it just can’t cut it. Especially when there’s company around, having to pass around a digital device really kills the mood.
I realized that I crave the simplicity and discoverability of a vinyl collection but I couldn’t have that. So I decided to recreate the experience in a more compact form.
The first thing I did was explore the Spotify API. I was thinking of having a Raspberry PI dedicated to it, but the linux story for Spotify was just non-existent. Luckily I have a spare Mac Mini I can use for HTPC purposes. But still, the Spotify lib for Cocoa is now unsupported. I finally settle for controlling the official client via AppleScript. Bonus: I can use Spotify Connect and control playback via an iOS device when I want to.
Now for the interesting part. I already had some exposure to RFID tags from my work on EDMStudio’s (Muse award-winning) TRAIL software. I even had a custom-built RFID reader lying around … but it was big and designed to be embedded in a museum-grade enclosure. Instead I bought an NFC reader (ACS122U) from AliExpress and 50 small round NFC stickers (NTag 213) for a total cost of ~€50.
Turns out I didn’t have to dive too low-level — macOS already supported this kind of hardware via CryptoTokenKit: “Access Smart Cards and manage user interactions”. I was quickly able to detect when an NFC tag was in proximity, and read and write a payload into it (the stickers I’m using have a capacity of ~160 bytes which is enough to store a Spotify ID).
The physical aspect is quite important: The album cards are 6.5×6.5 cm. They are printed on glossy photographic paper and glued to 300gsm paper which results in a nice stiff card. The NFC sticker is sandwiched between and is practically invisible. This was (and still is) by far the most time-consuming element of this project. Finding high-quality album art, printing and cutting, all by hand. It’s a nice meditative exercise but I only do it every few months. Meanwhile, I put NFC tags on scribbled paper tear outs — which is still better than clicking.
The experience of playing music is quite elegant: Lift a bunch of cards out of their box. Browse them as if they’re playing cards. Spread them out on a table. Make a stack if you want. Choose one and place it on the reader. It will emit a little beep and the corresponding album starts to play. If you take the card off of the reader, the music keeps playing. If you want to pause, place the special “Pause” card on the reader. No buttons, no LCD displays. My plan is to conceal the reader in some kind of natural material (balsa wood? leather?).
If you have a Mac Mini lying around, and fancy doing this yourself, I have put all the code here: https://github.com/orestis/fauxvinyl. The license is MIT so go crazy. Also note this is not really production-grade code. That said, it has been running for months so no crashes are anticipated (it will crash though if you present it with an incompatible tag — drop me a line if you have those and I’ll try and add support.)
Care to share your thoughts? Please contact us using the form below or send us an email.