Inspiration
AudHub aims to seize the means of musical production for the masses. No longer shall the gentle partygoer suffer under the oppressive yoke of the host's music choices. By utilizing AudHub's custom media server everyone at a party can have a say in what gets played.
What it does
AudHub has three components: the soundsystem, the server, and the clients. The soundsystem is whatever is going to be playing the output (in this case it's a Bluetooth speaker). The server is a phone running AudHub connected to the soundsystem that houses the music library and gets the final say in what is played. Finally, the clients are phones running AudHub that connect to the server and can vote on what gets played and when.
How we built it
We wrote AudHub using Android Studio so getting the app's frontend to work was relatively straightforward. The backend is a cobbled-together mix of Android's Bluetooth interface, MediaPlayer controls, and the tears of the damned. The final app is capable of working as either the server or the client depending on what options the user selects.
Challenges we ran into
Welp. It's been an uphill battle the whole way. Neither of us had used Android Studio before so we had a lot of fun trying to figure out its quirks. Most of the first night was spent just getting the blasted thing to sync to GitHub. Once that herculean task was accomplished we worked on getting the app to actually connect to things via Bluetooth. That's where the real hurdles came in. We really wanted to write our own methods for connecting to a Bluetooth speaker so that we could broadcast to multiple of them at once. After many hours of attacking the problem we ended up with a solution that yielded fantastic error messages but otherwise no real results. In the end we just had to go with the default BT API and move onto figuring out how to get the client-server relationship set up (which wasn't much easier).
Accomplishments that we're proud of
The high point of this whole competition was when we finally were able to get the client phone to send commands to the server phone. Our implementation certainly cannot be described as "elegant" or "completely functional" but man are we proud of what it can do.
What we learned
GitHub is a fickle mistress. Android Studio has terrible error handling. No matter what anyone else might say the problem clearly lies with the professionally developed and tested API and not with our slapshod code written at 2AM.
What's next for AudHub
In its current state AudHub serves as a wonderful proof of concept, but we aren't planning on stopping until we can get it to 100%. I'm confident that with some more time (and possibly some outside help) that we can solve our Bluetooth woes. The bottom line is that we came into this competition with a vision of stress-free dinner parties with egalitarian music control and we will not rest until that dream is a reality.

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