For the past several months, I've been working on a project for my kid. It's been pretty fun so I thought I might share a bit about it.
This project started back in March, when we found ourselves holed up at my parents' place in isolation because of You Know What. I (re)discovered a cassette tape player and a stash of tapes containing stories I used to listen to at bedtime as a kid.
I offered the tapes to my kid and she absolutely loves them. She listens to them every night before bed, and getting to re-listen to them with her is awesome. But there's one small problem – she's too small to actually work the buttons on the tape player.
This sucks for her; she has to climb out of bed and come bug me after a half hour or so to come flip the tape or turn on a new story. What a uniquely old-school, analog problem! I kinda love it. So I decided to try to make her something that was easier for her to control.
I started by digitizing all the tapes, then turned to the matter of the device itself. I pictured something somewhat 'designy' and fun-looking, with buttons that were fun to push. Because I'm a big design nerd I got sucked into studying Dieter Rams' stuff
(which I suppose is terribly unoriginal of me but whatever, his stuff is awesome. I mean, just look at this sexiness!)
I looked around for fun buttons, and got fairly hung up on sleek steel ones like you might find in an elevator. But Sarah gently reminded me I was meant to be designing this for a kid, not for myself, and my kid's idea of a "fun button" was probably different from mine.
So I instead settled on some arcade buttons with LEDs in them. Controlling the LEDs is independent from the button itself, which meant I could do things like make them fade off nicely after being pressed, or make one of them "breathe" when paused like macbooks used to do.
I asked my buddy @mfrederickson for some help with my circuit design, which initially included a screen. My thought was that the screen could help my kid understand what track was playing, and I figured maybe Sarah could make some fun illustrated "cover art" for each story.
"Do you really NEED a screen though?" Mike asked. "I mean, look, she's gonna have the rest of her life to look at screens; those aren't going away anytime soon."
"And also, I don't think there will be a shortage of opportunity for Sarah to make art for her, so that's not a great reason to include a screen either. Why don't you use this as a constraint, to make the box more interesting and unlike other stuff she might see in the world?"
Mike knows that "constraint" is a trigger word for me. If it's not already obvious, I fucking LOVE constraints. I hate a blank canvas. Constraints help me set up some rules for myself, which in turn usually help me think more creatively than I might otherwise.
So with no screen, the biggest problem posed with my project was: how do you know what story is playing? My kid would have to wait several seconds (or minutes) after starting a track to figure out whether it's what she wants to hear. Annoying.
Some of the tapes were meant to be read along with a book, and they have this little chime that plays to indicate to turn the page. I find those chime sounds so charming! So I wondered to Mike about the idea of preceding each track with a quick, unique little chime.
In time, my kid would grow to recognize the different chimes, the way we recognize the different beeps and boops our phones all make.
"If the buttons are fun to press, she might want to press them quickly just because they feel good," Mike hypothesized. "It'd be cool if the chimes sound nice when played quickly after one another, almost like a song." This idea totally captivated me.
I screwed around for weeks in Ableton, playing with different scales and synths to come up with unique 'audio logos' for the different stories. If my kid ever decided to spam the buttons, I wanted her to discover she could effectively play it like an instrument.
Another thing I find charming is the startup sound of video game consoles – I loved the sense of anticipation I felt as a kid when I started up my Gameboy or my Nintendo. So I decided to make a startup sound for this box.
The startup sound isn't arbitrary – my kid plays this one game on our iPad where she assembles different wacky instruments into a sort of orchestra, and then discusses with me whether the resulting sound is silly or pretty.
So one evening, I asked her to go through each of the instruments with me. We talked about each one, and I recorded everything we did. Then I picked out the most memorable highlights from our conversation to build a little audio logo that I thought she'd find pleasing.
Once I'd gotten the box all together and had a chance to play with it a bit myself, I realized it was screaming for one more element: cheat codes. I added some logic to recognize certain sequences of buttons or chimes, which can "unlock" hidden surprises.
These surprises include stories read by Sarah and I, some beautifully-produced audiobooks by @oliverjeffers (one of our favorite authors), or this delightful rendition of "Yertle the Turtle" read by @JohnLithgow (!).
Anyway, I realize none of this is particularly revolutionary (there are heaps of awesome examples of Arduino-based music players to be found on the internetz), but this was very fun to make and to give my kid for the holidays.
Footnote: the most gratifying part of this is sitting in my living room at night and hearing my kid play with the buttons in her bedroom when she's supposed to be going to sleep.