We designed, implemented and analyzed a music recommendation system for our course project. Using the dataset provided by Kaggle  for their Million Song Dataset Challenge , we have analyzed various state-of-the-art techniques which can be used to build a music recommendation system. In this paper, we focus on describing different learning algorithms, which we employed in providing music recommendations. Apart from doing offline evaluations and analysis of different solutions, we also describe our experiences and learnings from building a prototype music recommendation system. Our results suggest that ensemble methods applied with user-based collaborative filtering work better than other methodologies for the chosen dataset in generating high quality recommendations for the music lovers.