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 :)
Log in or sign up for Devpost to join the conversation.