The inspiration comes from a problem all 3 of us experienced in college. As avid music listeners, we want to hear what our friends hear. But what if you could stream along with them live? The solution is Overhear.
What it does
Overhear which puts you right at the center of social music. Share exactly what you listen to while you listen to it. Overhear captures your computer's audio and streams it live.
How we built it
Overhear all of our biggest technical challenge yet. It is built using a backend server written in Go, an audio-capturing webserver in Python, and a front-end as an Electron app. Overhear was created in less than 36 hours at HackRice.
Challenges we ran into
In our initial architecture, audio was captured into chunks and sent immediately over the websocket. We were able to succeed in sending high quality audio, but loud pops persisted where chunks ended. We ended up spending time to buffer and connect the chunks before sending them over the socket, which helped immensely with audio quality. Additionally, after sending the raw data, playing it as a WAV was seemingly impossible. We had to research the WAV standard and, on the fly, add headers to the WAV files before playing.
Accomplishments that we're proud of
We are all incredibly proud of Overhear because it's something we all plan to use. We took a real-world problem that we and others were having and, from top to bottom, designed and implemented a solution for it. Two of the three members had not used Go before, and none of us had much experience with websockets. Even with these technical shortcomings, we were able to improvise and learn the new tech stack as we developed.
What we learned
We now have a lot of respect for the engineers at Spotify. Streaming audio is no joke; attempting to play a stream seamlessly is also incredibly difficult. We are now all familiar with Go and far more familiar with websockets, to the point that we plan to use both for future hacks. We primarily work on back end projects, but Overhear is hefty on the front-end; we are proud that we designed and implemented a cross-platform design so quickly.
What's next for Overhear
Overhear is not a hackathon project that dies after the judging ends. Rather, we plan to use and improve Overhear as we, the users, find improvements and better uses.