LyricsOverflow

Goal

To allow users to learn more about the artists they love (or hate) and contribute to the database that we hope to build on in order to begin to better understand what influences different types of lyrics in music.

Inspiration

As a team, we all looked towards music as an inspiration for a potential project, yet individually had differing ideas on how to approach it. We decided on lyrics, as we felt there was potential in learning much about music in performing analysis on music as well as potential in

In-Action

We built the website using Python/Flask for the back-end and HTML/CSS/Bootstrap for the front-end, and deployed the website using Heroku. We built a SQL database using Flask-SQLAlchemy, which we then deployed in conjunction with Psycop 2. We used two API's for retrieving information: Musixmatch, for searching for artists, retrieving information on their discographies and lyrics, and Last.fm, for photographs to appear in conjunction with search results.

class Artist(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), index=True, unique=True)
    unique_word_count = db.Column(db.Integer())
    img_url = db.Column(db.String())
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)

Fig.1: An example of how we modeled some of our SQL tables.

Challenges

From the onset, we all had a variety of skill-sets and expertise with certain platforms that did not necessarily mesh well together for a team. We had little experience in web development, specifically front-end development, and even some unfamiliarity with Python initially. Most of the tools and frameworks that we used for this project were new or unfamiliar, and we learned how to use them as we made progress in the project. This lead to us pushing back some of our initial goals with the project that we hope to revisit in the future. Above all, organization was one of the biggest hurdles we faced; we all worked at different paces and sometimes in wildly different ways for different goals. Learning to coordinate ourselves towards our goal with more focused effort and better planning was essential to our progress.

Future Goals

We are interested in continuing to analyze song lyrics and gleaning more information from them as we can. Specifically, machine learning is an addition that we hope to implement, potentially to predict genre, additional song lyrics, and potentially the author based off of given lyrics. We are also interested in exploring more interesting visualizations of the data we collect, whether through graphs that model certain behavior or more visually appealing models. Overall, we hope to eventually analyze all of the data together and come up with more interesting and encompassing insights.

Share this project:

Updates