Beispiel #1
0
    def get_chromagram(self, mode=MusicDataType.AUDIO):
        """
        Get chromagram for the spotify track

        Creates chromagram either from mp3(:meth:`utils.get_chromagram_from_audio`) or echonest analysis (:meth:`apiwrappers.echonest.get_echonestsong_by_spotifyid`) of the spotify track.Chromagram may return None if there is no matching echonest song for the spotify track
        
        Args:
            mode: :class:`.MusicDataType`. either should be audio or echonest

        Returns:
            Chromagram representation.
        """
        directory = os.path.dirname(os.path.abspath(__file__))
        if mode == MusicDataType.AUDIO:
            audio_file_path = directory + '/' + self.id + '.mp3'
            utils.download_file(self.preview_url, audio_file_path)
            chromagram = utils.get_chromagram_from_audio(audio_file_path)
            utils.remove_file(audio_file_path)
            return chromagram
        elif mode == MusicDataType.ECHONEST:
            e = get_echonestsong_by_spotifyid(self.id)
            if e:
                self.echonest_features = e.features
                return e.features.chroma
            else:
                print "No echonest song found for spotify:track:"+self.id
        return None
Beispiel #2
0
    def get_chromagram(self,mode=MusicDataType.AUDIO):

        directory = os.path.dirname(os.path.abspath(__file__))
        if mode == MusicDataType.AUDIO:
            audio_file_path = directory + '/' + self.id + '.mp3'
            utils.download_file(self.preview_url, audio_file_path)
            chromagram = utils.get_chromagram_from_audio(audio_file_path)
            utils.remove_file(audio_file_path)
            return chromagram
        elif mode == MusicDataType.ECHONEST:
            if  self.features:
                return self.features.chroma
            else:
                print "No echonest song found for:"+self.id
        return None