Inspiration
We love partying, but hate when the vibe isn't right. We love hosting, but hate the stress of guessing what people want to hear. With Resonant, we just wanted to make things simple for our hosts and partygoers. Using our event-finder and AI-enhanced DJ tool, we wanted to make sure that every event's music agrees with its guests at no expense to the host.
What it does
Users know what to expect when going to a Resonant event - the music aligns and adapts to energy, conversation, and rhythm levels, so everyone can find an event that matches and adapts to how they feel. Using a simple phone check-in, Resonant reads the room for its host and determines which song choices best fit the current mood, so when things begin to wind down (or ramp up), you can be sure the music will too.
How we built it
A Node.js, Express, and Socket.IO backend powers the live dashboard and receives updates from guests joining through a QR code. Mobile sensor readings become normalized crowd metrics, while a separate Python and Librosa pipeline analyzes local songs before the event. As the night goes on, a deterministic DJ engine interprets the room and ranks suitable songs. OpenAI can optionally choose among the top candidates, with an automatic deterministic fallback.
## Challenges we ran into
The biggest challenge was separating actual dancing from walking, socializing, or random phone movement. We developed contextual metrics and an experimental rhythm detector based on repeated motion, activity, and confidence. We also addressed inconsistent sensors, short sampling windows, GPS accuracy, privacy, track matching, API security, and AI spending.
Accomplishments that we're proud of
Our system can match the room’s mood, guide it in a new direction, or blend both approaches. It produces explainable song rankings and remains operational without AI or internet access. We also created a reusable song database, real-time dashboard, mock testing scenarios, and modular architecture ready for live sensor data.
What we learned
We learned that crowd measurements cannot map directly to song attributes. The system must interpret context. for example, high movement with low rhythm may indicate mingling rather than dancing. Separating audio analysis, semantic interpretation, and live decision-making made the project easier to test, explain, and improve.
What’s next for Resonant
Next, we would create search algorithms for parties that most match a user and their interests, creating a better profile for an improved user experience. We could add more features to the DJ, letting it guide an experience for a balanced night. We also plan to connect live playback data and measure how different parts of a song change the crowd, creating a privacy-conscious feedback loop for better future decisions. An option to list events privately would add as well.
Built With
- claude
- html
- javascript
- music
- openai
- python
Log in or sign up for Devpost to join the conversation.