Inspiration

The Quack and Roll badge given to all H&R26 participants has many components! So we thought it would be really fun to make a game that can be played on it :)

What it does

It's a rhythm game that's able to be played with just the badge itself.

How we built it

We used the hnr26-badge component in ESP components to program the badge :)

We use RTOS with discretized timesteps (based on ticks) for the rhythm game itself

We use the RTTTL file format to decode sounds into tones to be used by the buzzer, and used fourier transform to create an auto-generate tap map feature.

We use onrender to deploy a web UI to create new song stages, so that people can upload their own songs!!

Challenges we ran into

Allowing a time window for button presses before the bottom LED gets lit up was a bit tricky from a sequential programming perspective; We actually implemented it as a time window that's only to the future, but make the LED displays and sounds lag behind by half the time window length HAHA;

We also had to take much effort to ensure that there could be multiple notes on the same lane close together that don't get compressed together by our code logic (and even faced stack memory errors); but so, we can support up to 100 taps per 500ms (we don't need that much HAHA)

Accomplishments that we're proud of

We managed to complete deployment of a website to add one's own new songs!

We also have a secret stage 👀👀👀 it has an amazing easter egg !!!

What we learned

We learnt about ESP32 programming (as most of us had no experience), audio file formats, and rhythm game considerations.

What's next for Tap Quack

New songs!

A tutorial on the website to learn how to play the game :)

Built With

Share this project:

Updates

posted an update

also i did recently commit a secret song aft deadline; but it wasn't part of our demo and our code before my last commit is our fully functional demo already (it's just adding a secret stage and increasing efficiency bcs the secret stage has >100 notes) everything before that last commit is what we submit for hack&roll

we just added a secret song because it was fun -- because we anticipate actually playing this game on our badge after the competition and github was convenient to send code to each other

Log in or sign up for Devpost to join the conversation.