Nick brought his Ukulele to TreeHacks, because he heard everyone at Stanford can play Ukulele. Raphael is sad because he cannot play the Ukulele. Raphael and Nick decide to make Ukulele Hero so that Raphael is less sad.

What it does

We stream the phone microphone's input to the cloud, where it is plugged into a machine learning model that recognizes what notes compose the chord you're playing, a problem that is at the limits of what's possible today, one that we weren't able to find any convenient libraries or even appealing-looking research on.

The model makes a prediction for what was played and sends it back to the phone, which uses it in Ukulele Hero to know whether you played the right notes.

How we built it

To create training data for the machine learning model, we recorded all the possible strummed notes on the Ukulele and randomly add segments of those note recordings together to get chords, from which we extract several FFT's as features. We trained our model on the Google Cloud Platform using these FFT's as our X and n-hot vectors as our Y.

Challenges we ran into

We spent a huge portion of Saturday trying to hack up a guitar tuner and some earpods (now airpods) to extract the sound the ukulele is making without any interference -- basically trying to wire the ukulele directly to our phone audio jack. It did not work out.

As I write, our machine learning model data is being regenerated after we found a bug in the generation. Hopefully it'll finish by expo-time!

Accomplishments that we're proud of

We brought a Ukulele across the country, cut up a bunch of things that would deem us crazy anywhere but a hackathon, and have a seriously non-trivial technical side to our project that we wrote ourselves.

What we learned

Don't go to wine night on friday? Actually it was probably worth it

What's next for Ukulele Hero

We finish training the model, Raphael learns to play Ukulele. Ukulele is love, ukulele is life.

Share this project: