Music plays a very important role in each of our lives with parties/gatherings being areas where we thought that music heavily affects the people involved. Collectively, our team shared experiences about how the atmosphere of the event is often influenced by what kinds of music played, which is usually controlled by a designated person or set playlist. We wanted to create a system that would play music to match the vibe of the party!
What it does
Our automated system connects to any speaker over a Bluetooth connection in order to liven the scene with convenience for the user. The system performs timed sweeps across the room and detects the number of people in a space at the given time, and plays music from the speaker! For individual to smaller gatherings, our team assumes that the party is just getting started or coming to a close; so we opted for chill/lofi/classical/mid-beat throwback genres. For larger gathers, we have determined that this is when the party is reaching its peak and have opted for upbeat/hype-up/hip-hop music! In addition, as the crowd grows, so does the volume (vice versa)!
How we built it
We designed our system using a Raspberry Pi 4B model to control an external web cam and a step motor that allows the camera to perform 120 degree sweeps (clockwise/counterclockwise) of the room. We chose to use Python in our tech stack because it interfaces relatively well with the microprocessor and libraries we used in order to overcome some of our biggest challenges. We used OpenCV to detect human bodies in the frame of the camera and triggered specific genres of music depending on the number of humans. Music came from an external mp3 library where we configured playlists that would be assigned to the different group sizes determined by the camera. We also configured the Bluetooth!
Challenges we ran into
- Connecting the raspberry pi to a speaker over Bluetooth
- Enabling the external camera to work properly
- Configure OpenCV (environment setup was a pain)
- Detect humans in a given space
- Pulling music from external source
- Code implementation in order to run multiple processes simultaneously
- Hardware issues
Accomplishments that we're proud of
- Fully working product!
- Created fire playlists
- Utilized Computer Vision!!
- Established a Bluetooth connection
- Not sleeping!
What we learned
- Planning and designing should take up the majority of the project
- Aim low and over deliver
- Focus on getting an MVP (minimum viable product) then focus on the details
- Research technologies beforehand
What's next for PartyVizion