Created
November 2, 2012 06:58
-
-
Save karlgrz/3999158 to your computer and use it in GitHub Desktop.
Steps to reproduce echonest remix problems with Ubuntu 12.10, Python 2.7, VirtualBox on Windows 7 Host
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-Windows 7 64-bit Ultimate host, Virtualbox version 4.24 | |
- Ubuntu Desktop 12.10 64-bit from ubuntu.com 7:30PM 2012-11-02 | |
- installed following (I realize some of these have nothing to do with running these libraries, but I wanted to include anything in case something sticks out to you guys) | |
- hg | |
- git | |
- dropbox | |
- keepass | |
- chromium | |
- vsftpd | |
- build-essential | |
- ffmpeg (including ln -s .......en-ffmpeg) | |
- python2.7-dev | |
- python-setuptools | |
- sudo easy_install pip | |
- sudo pip install numpy | |
- created new ssh keys | |
- confirm "import numpy" works | |
- confirm en-ffmpeg works | |
- git clone https://github.com/echonest/remix.git | |
- cd remix | |
- git submodule update --init (appeared to check out the most recent, starts with 73046e...") | |
- added my API key to .bashrc and confirmed it was set properly | |
- sudo python setup.py install (from remix) | |
- python test.py (which looks similar to the Step 4 - Make something beautiful example from http://echonest.github.com/remix/index.html#how except I used my own mp3, a filename called Rain.mp3 output to RainReverse.mp3, both in the same folder as test.py, which is two levels above remix github repo) | |
Here's the output: | |
karl@karl-VirtualBox:~$ python test.py | |
en-ffmpeg -i "Rain.mp3" | |
en-ffmpeg -y -i "Rain.mp3" -ac 2 -ar 44100 "/tmp/tmpUeMqCw.wav" | |
Computed MD5 of file is d68d079a0cb2571ec693cbbe834a0b89 | |
Probing for existing analysis | |
Analysis not found. Uploading... | |
Traceback (most recent call last): | |
File "test.py", line 5, in <module> | |
audio_file = audio.LocalAudioFile("Rain.mp3") | |
File "/usr/local/lib/python2.7/dist-packages/remix-1.5.0-py2.7-linux-x86_64.egg/echonest/audio.py", line 896, in __init__ | |
tempanalysis = AudioAnalysis(filename) | |
File "/usr/local/lib/python2.7/dist-packages/remix-1.5.0-py2.7-linux-x86_64.egg/echonest/audio.py", line 125, in __init__ | |
self.metadata = self.pyechonest_track.meta | |
AttributeError: 'Track' object has no attribute 'meta' | |
karl@karl-VirtualBox:~$ | |
I'm happy to provide any more information that might help debug this. I'll also try some more things tomorrow. | |
KG |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Reverse a song by playing its beats forward starting from the end of the song""" | |
import echonest.audio as audio | |
# Easy around wrapper mp3 decoding and Echo Nest analysis | |
audio_file = audio.LocalAudioFile("Rain.mp3") | |
# You can manipulate the beats in a song as a native python list | |
beats = audio_file.analysis.beats | |
beats.reverse() | |
# And render the list as a new audio file! | |
audio.getpieces(audio_file, beats).encode("RainReverse.mp3") |
In terms of your API key, the simplest test is this:
http://developer.echonest.com/api/v4/artist/search?api_key=YOUR_API_KEY&name=radiohead, which looks good.
In terms of remix metadata, I suspect that the API is being a bit kittenish. For the moment, my tests indicate that you can just comment out the offending line in audio.py, and nothing in remix should break:
self._bars = None
self._beats = None
self._tatums = None
self._sections = None
self._segments = None
self.identifier = self.pyechonest_track.id
# self.metadata = self.pyechonest_track.meta # this is the problem line!
We'll get a better fix pushed out soon, but that should get you up and running. If you have problems with that, let me know!
Best,
Thor
Thank you, my friend. Much appreciate the prompt help! This makes a happy developer!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Whoa, ok. Mind = blown.
I used a different mp3 (something off of a commercially released record, in this case Jerry Cantrell's Degradation Trip) and this time the analysis (and also test.py) executed successfully.
Does this mean that I CANNOT analyze home brewed tracks? That makes the remix API a little useless to me, as I had wanted to use it for mixing up my own songs (i.e. songs I export from Cubase). Am I doing something wrong?