Case Study 7: What's Shakin'
Matt Paul is a founding member of start-ups big and small, such as StreetPrices, SeenON!, and the veritable TiVo of the web, StumbleUpon. Nowadays, as founder of mopimp productions, Matt is focused on the intersections of real time meets rhythm, and location-based services meet game mechanics, but he freely admits that by the time this book comes to print, he might well be working on something else entirely.
How did you get started doing iPhone development?
I first got my feet wet developing for the iPhone in the summer of 2008 at iPhone Dev Camp 2 in which my hack-a-thon team's app, Fwerps, won best app by a group of new/first-time Cocoa and iPhone SDK developers.
What inspired you to build What's Shakin'?
My friend Hunter Peress, an Android developer, and I thought it would be fun to collaborate on a cross-platform mobile app together. We started brainstorming around what we might find fun and would conceivably want to use ourselves. I had been known to dabble in drumming on and off over the last decade, whereas Hunter regularly performs as a hand percussionist; hence percussion was a natural area for us to explore.
The question remained, Could we make a realistic musical instrument that was played via dance and motion? We asked ourselves what instrument would lend itself best to our collaboration. We surmised it would be one that you could hold in your hands like a clave, a wood block, or an egg shaker—perfect!
What kind of competitive research did you do?
Over the course of development, I must have tried at least ten competitors. Some had nice visuals, some came with a good selection of instruments to pick from, but none of the lot did justice to the experience of playing an acoustic musical instrument; they simply lacked the responsiveness required. There was definitely an opportunity here to improve the state of the art.
How did you start the design?
Our initial approach was to emulate the sound created when you play an acoustic egg shaker by modeling the individual beads inside and their interactions with the eggshell and one another. We quickly discovered that this approach would prove challenging. Sure, we could make some simplifying assumptions and disregard bead-bead interactions, but it would likely take a lot of time to get things right and a lot of computation to pull off in a realistic manner.
What did you try next?
Soon enough I realized that a hybrid approach leveraging OpenAL in conjunction with the device's accelerometer would be sufficient for our purposes. OpenAL is a cross-platform 3D audio API that allows developers to easily position sounds in 3D space and create sound effects such as the Doppler effect.
OpenAL afforded us plenty of control over the shaker's sound and gave us the ability to modulate it according to the user's style of play. We were even able to expose a parameter on the Settings page that allows the users to vary the number of beads in their egg shaker and produce a more staccato or "slushy" sound accordingly.
Were you able to get user feedback before launching?
First we tested it with our own music—Hunter used it with his Brazilian drums and I tried it while practicing my DJ set. Then we had lots of our friends test the app. On several occasions I would shake along to rehearsals of my roommates' band, The New Up, who practice in the adjacent room to my home office.
All of the feedback we received in-house was great, but I wanted to know how the app would work in the real world—could people hear it in a noisy bar? So I brought an early beta version down to a bar in North Beach. The most concrete takeaway was that the app's parameters needed to be configured a certain way to enable users to show off the app in a loud environment.
How did you know the app was done?
All summer long, my roommates were constantly subjected to hearing this comparison of plastic- versus silicon-based egg shaker technologies; I'm sure it drove them mad. One day, after numerous iterations, they could no longer tell if I was playing acoustic or using the app from the other room without running in to see for themselves—that was when I knew we had our emulation down pat and were ready to launch. [Figures CS7.1–CS7.2 show the final app.]
Figure CS7.1 What's Shakin' app
Figure CS7.2 What's Shakin' app in context
What's next for What's Shakin'?
We're very excited to continue building upon What's Shakin's launch and have made plans to add a greater selection of sounds for users to unlock, the ability for users to record and share their performances with an online community of fellow shakers, and leaderboard rankings and scoreboards so users can boast and brag about their past performances. The pie in the sky for us would be to create a Shaker Hero–esque franchise of games and levels for users to play.