Inspiration

The theme for PennApps XVII is "retro," so we decided to dive head first into all things neon, funky, analog, and furby. We created the ultimate hyperstylized interactive jukebox. You're welcome, dad.

What it does

FunkBud not only plays some of the greatest hits of bygone decades, but allows anyone to seize control of one of its virtual instruments for a live jam session using any mobile device. Get groovy with a group of friends or strangers - whoever you funk with, satisfaction and algebraic vibes are guaranteed.

How we built it

We sampled a number of live and synthesized instruments from Ableton, mapped the key ranges and MIDI data to javascript-friendly format, and used socket to allow anyone to access a simple URL to take control of one of FunkBud's instruments. Don't worry, if you're prone to stage fright there's always autopilot.

Challenges we ran into

We really wanted to make something that gushed a 90's aesthetic - it turns out, combining that objective with an ultra-slick user interface wasn't so easy at first (but boy oh boy did we figure it out). Also, we actually arranged every single song from scratch - we practically wrote an entire interactive/manipulable album for this baby. Of course, there were the usual challenges like reducing latency at countless points even outside of interfacing our hub and controllers through socket.

Accomplishments that we're proud of

The visuals on this thing are pretty insane if we do say so ourselves. Also, the instruments are actually sampled from either live/analog instruments or professional-grade synthesizers - plus it's so intuitive, even a toddler could rock out on it (but for the musically oriented, there's plentiful room for juicy riffs and expression).

What we learned

Vanilla javascript can't keep (precise) time for its life - a toast to fantastic libraries yet again.

What's next for FunkBud

Automated song transcription and louder speakers (obviously).

Built With

Share this project:

Updates