What is Musicord?
Musicord is a web application that allows multiple groups of users to build collaborative playlists and stream music together.
It is written with node.js and uses sockets to synchronize playing, pausing, and skipping between tracks. In addition, Musicord takes advantage of annyang.js to provide voice commands to be accessible at or away from the keyboard.
Why did we build it in the first place?
As college students, we found that in many group settings there isn't always easy access to speakers. Though we don't have speakers, many of us have our laptops all the time. It is frustrating to not be able to coordinate the speakers in these devices for a solid audio experience. Along with this, we wanted to make collaborative playlists easily accessible so that each device owner has a say in the music being played.
Musicord makes it easy to collectively break out into song and jam with your friends on lazy afternoons. It's intuitive web interface coupled with voice recognition makes it a breeze to use while ensuring minimal latency so that you can enjoy a 360 degree audio effect while achieving virtually unlimited amplification.
Technologies and libraries that fuel this project
For this project we explored a large variety of technologies. We implemented sockets to keep the streamed audio in sync between devices and built our backend in node.js. With Spotify's api we were able to search through a large database of music to play from. Annyang.js enabled void commands, WaveSurfer.js and Granim.js provided the nice UI.
Challenges we ran into
Deploying our website on the google cloud platform proved to be more difficult than anticipated. Getting the different instances of rooms to be completely independent of each other had many obstacles.
Accomplishments that we're proud of
We're really proud of the fact that we were able to set up independent instances of rooms that play separate music. The music that is played has no lag and the spotify api gives users a large variety of music to choose from. We were also really excited to be able to synchronize audio from a web browser on Windows and MacOS. It was really cool to see up to 9 devices playing the same song in different parts of the room at once while we were testing it.
What we learned
What's next for Musicord?
Finish debugging and refactoring the code. Implementing the same utility with video and youtube's apis would be great too!