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
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