What kind of algorithm should I choose for this music classification system?
There are two high level approaches (Approach 2 was a better fit for a music-classification problem that I worked on) :


Signal processing + CNN  : Output of signal processing is saved as image. Models use the image as input. 




This paper is a good intro to the approach : https://arxiv.org/ftp/arxiv/papers/1712/1712.02898.pdf 



Couple of articles on this : https://www.codementor.io/vishnu_ks/audio-classification-using-image-classification-techniques-hx63anbx1 , https://medium.com/datadriveninvestor/audio-and-image-features-used-for-cnn-4f307defcc2f


Raw audio  + recurrent networks : https://deepmind.com/blog/wavenet-generative-model-raw-audio/  ,  https://arxiv.org/pdf/1606.04930.pdf , https://arxiv.org/pdf/1612.04928.pdf , https://gist.github.com/naotokui/12df40fa0ea315de53391ddc3e9dc0b9


GPU will make the project easier, but is not a requirement.