Inspiration

We were inspired by the idea behind discord music bots. In our circle of friends, we often used discord and discord music bots were very important to us because it provided music for us to listen to when the conversations got dull. The reason we thought of this is because of the shutting down of multiple discord bots.

What it does

The application asks for a user's mood at any given time and puts the user in an audio channel where the user can listen to music that will help them regulate their mood and potentially make their day better.

How we built it

We used express.js for the backend that will handle both websockets and http requests. For the frontend, we used Angular to create the website and to connect. We used a node.js library called node-media-server for the audio server that was required to stream the music live to the website. We then used Postgresql for the database which ties everything together.

Challenges we ran into

We ran into a number of challenges along the way. First of all, we had to find a way to livestream audio onto multiple clients which was done through a node.js library called node-media-server which creates a RTMP server within itself. Since there was little demand for this project, little help can be found from the internet so we had to refer to a lot to the small amounts of documentation that we can find. Secondly, Angular is not a very popular web framework to build apps with purposes similar to ours so finding a way for Angular to be able to play MPEG-DASH file formats was very hard.

Accomplishments that we're proud of

We're proud of being able to complete this project in time. When we first started this project, we thought it would be easy but as we learned more about the details, we realized how tediously hard it is going to be. We got to learn a lot about details of RTMP streaming and how that data is processed by different devices, browsers, and environments.

What we learned

We learned the nitty-gritty details of how live streaming actually works and how different communication protocols need to be used for live streaming platforms to be able to display content to users at such a low latency rate.

What's next for Matina Musical Melody

We're hoping to add more features such as:

  • Music selection through the use of Machine learning
  • Social features such as voice chat, text chat, or video chat.
  • Users' mood's count. (e.g. how many people are feeling sad in such day.)
  • Displaying information on overall users' moods on any given day.
  • Greater selection of music variety through user uploads or community uploads.
  • Audio live streams not only selected from the mood of users but also the preferred genre of the users.
Share this project:

Updates