Booper (2020)

A barcode sound machine to amuse my 4 year old

Solo work.

Me: “What do you want to be when you grow up Dash?”

Dash: “I want to work at Trader Joe’s so I can boop the barcode scanner.”

My kid knows what he wants. I’m a Dad who likes to please and has an endless “random electronics” bin. So, while procrastinating other vital tasks this afternoon I decided to build “The Booper,” a barcode-activated sound machine.

The Booper is a Raspberry Pi 3, a USB laser barcode scanner, and a speaker. Each time Dash scans a barcode, The Booper plays an audio file (.mp3 or .wav). If the barcode has never been scanned before, then it’s (permanently) assigned a random audio file from the library.

This design choice means that every barcode in the house is a secret key to a sound, story, or song. Once discovered, that barcode consistently plays the same sound forever.

The audio library is a directory of files on disk, sync’ed with Dropbox (using rclone) after every boop. Adding a new audio file is a simple matter of dragging it to a Dropbox folder on my laptop. Dash can then immediately seek out where it hides in a barcode somewhere in the house.

At the request of my family, there’s a special hardcoded “silence” barcode which interrupts playback. In my house, this is a barcode I peeled off a jar of Nutella and Scotch taped to the dresser. Mmm. Nutella.

The code is in python. It works by reading lines of input from stdin. The barcode scanner behaves like a keyboard, “typing” each character of the code and terminating the code with a newline. The association between the codes and the audio files is stored in a sqlite3 database on disk.

The code is available at on github. May it bring momentary peace to your household.

See the setup notes in the README.

project image

LET'S BUILD SOMETHING