ruby-echonest 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog ADDED
@@ -0,0 +1,4 @@
1
+ == 0.0.1 / 2009-04-14
2
+
3
+ * initial release
4
+
data/README.rdoc ADDED
@@ -0,0 +1,41 @@
1
+ = echonest
2
+
3
+ A Ruby interface for Echo Nest Developer API
4
+
5
+ == Description
6
+
7
+ == Installation
8
+
9
+ === Archive Installation
10
+
11
+ rake install
12
+
13
+ === Gem Installation
14
+
15
+ gem update --system
16
+ gem install gemcutter
17
+ gem tumble
18
+ gem install ruby-echonest
19
+
20
+ == Features/Problems
21
+
22
+ Only supports the API for Track http://developer.echonest.com/pages/overview
23
+
24
+ == Synopsis
25
+
26
+ require 'rubygems'
27
+ require 'echonest'
28
+
29
+ filename = 'foo.mp3'
30
+ echonest = Echonest('YOUR_API_KEY')
31
+ echonest.get_beats(filename)
32
+
33
+ == Thanks
34
+
35
+ {koyachi}[http://github.com/koyachi] for original idea http://gist.github.com/87086
36
+
37
+ == Copyright
38
+
39
+ Author:: youpy <youpy@buycheapviagraonlinenow.com>
40
+ Copyright:: Copyright (c) 2009 youpy
41
+ License:: MIT
data/Rakefile ADDED
@@ -0,0 +1,108 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/clean'
4
+ require 'rake/testtask'
5
+ require 'rake/packagetask'
6
+ require 'rake/gempackagetask'
7
+ require 'rake/rdoctask'
8
+ require 'rake/contrib/sshpublisher'
9
+ require 'spec/rake/spectask'
10
+ require 'fileutils'
11
+ include FileUtils
12
+
13
+ $LOAD_PATH.unshift "lib"
14
+ require "echonest"
15
+
16
+ NAME = "ruby-echonest"
17
+ AUTHOR = "youpy"
18
+ EMAIL = "youpy@buycheapviagraonlinenow.com"
19
+ DESCRIPTION = "An Ruby interface for Echo Nest Developer API"
20
+ RUBYFORGE_PROJECT = "ruby-echonest"
21
+ HOMEPATH = "http://github.com/youpy/ruby-echonest"
22
+ BIN_FILES = %w( )
23
+ VERS = Echonest::VERSION
24
+
25
+ REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
26
+ CLEAN.include ['**/.*.sw?', '*.gem', '.config']
27
+ RDOC_OPTS = [
28
+ '--title', "#{NAME} documentation",
29
+ "--charset", "utf-8",
30
+ "--opname", "index.html",
31
+ "--line-numbers",
32
+ "--main", "README.rdoc",
33
+ "--inline-source",
34
+ ]
35
+
36
+ task :default => [:spec]
37
+ task :package => [:clean]
38
+
39
+ Spec::Rake::SpecTask.new do |t|
40
+ t.spec_opts = ['--options', "spec/spec.opts"]
41
+ t.spec_files = FileList['spec/*_spec.rb']
42
+ t.rcov = true
43
+ end
44
+
45
+ spec = Gem::Specification.new do |s|
46
+ s.name = NAME
47
+ s.version = VERS
48
+ s.platform = Gem::Platform::RUBY
49
+ s.has_rdoc = true
50
+ s.extra_rdoc_files = ["README.rdoc", "ChangeLog"]
51
+ s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)/']
52
+ s.summary = DESCRIPTION
53
+ s.description = DESCRIPTION
54
+ s.author = AUTHOR
55
+ s.email = EMAIL
56
+ s.homepage = HOMEPATH
57
+ s.executables = BIN_FILES
58
+ s.rubyforge_project = RUBYFORGE_PROJECT
59
+ s.bindir = "bin"
60
+ s.require_path = "lib"
61
+ s.test_files = Dir["test/test_*.rb"]
62
+
63
+ s.add_dependency('libxml-ruby')
64
+ s.add_dependency('httpclient')
65
+ #s.required_ruby_version = '>= 1.8.2'
66
+
67
+ s.files = %w(README.rdoc ChangeLog Rakefile) +
68
+ Dir.glob("{bin,doc,spec,test,lib,templates,generator,extras,website,script}/**/*") +
69
+ Dir.glob("ext/**/*.{h,c,rb}") +
70
+ Dir.glob("examples/**/*.rb") +
71
+ Dir.glob("tools/*.rb")
72
+
73
+ s.extensions = FileList["ext/**/extconf.rb"].to_a
74
+ end
75
+
76
+ Rake::GemPackageTask.new(spec) do |p|
77
+ p.need_tar = true
78
+ p.gem_spec = spec
79
+ end
80
+
81
+ task :install do
82
+ name = "#{NAME}-#{VERS}.gem"
83
+ sh %{rake package}
84
+ sh %{sudo gem install pkg/#{name}}
85
+ end
86
+
87
+ task :uninstall => [:clean] do
88
+ sh %{sudo gem uninstall #{NAME}}
89
+ end
90
+
91
+ Rake::RDocTask.new do |rdoc|
92
+ rdoc.rdoc_dir = 'html'
93
+ rdoc.options += RDOC_OPTS
94
+ rdoc.template = "resh"
95
+ #rdoc.template = "#{ENV['template']}.rb" if ENV['template']
96
+ if ENV['DOC_FILES']
97
+ rdoc.rdoc_files.include(ENV['DOC_FILES'].split(/,\s*/))
98
+ else
99
+ rdoc.rdoc_files.include('README', 'ChangeLog')
100
+ rdoc.rdoc_files.include('lib/**/*.rb')
101
+ rdoc.rdoc_files.include('ext/**/*.c')
102
+ end
103
+ end
104
+
105
+ desc "Show information about the gem"
106
+ task :debug_gem do
107
+ puts spec.to_ruby
108
+ end
@@ -0,0 +1,203 @@
1
+ require 'digest/md5'
2
+ require 'httpclient'
3
+
4
+ module Echonest
5
+ class Api
6
+ VERSION = '3'
7
+ BASE_URL = 'http://developer.echonest.com/api/'
8
+ USER_AGENT = '%s/%s' % ['ruby-echonest', ::Echonest::VERSION]
9
+
10
+ class Error < StandardError; end
11
+
12
+ attr_reader :user_agent
13
+
14
+ def initialize(api_key)
15
+ @api_key = api_key
16
+ @user_agent = HTTPClient.new(:agent_name => USER_AGENT)
17
+ end
18
+
19
+ def get_bars(filename)
20
+ get_analysys(:get_bars, filename) do |analysis|
21
+ analysis.map do |bar|
22
+ Bar.new(bar.content.to_f, bar['confidence'].to_f)
23
+ end
24
+ end
25
+ end
26
+
27
+ def get_beats(filename)
28
+ get_analysys(:get_beats, filename) do |analysis|
29
+ analysis.map do |beat|
30
+ Beat.new(beat.content.to_f, beat['confidence'].to_f)
31
+ end
32
+ end
33
+ end
34
+
35
+ def get_segments(filename)
36
+ get_analysys(:get_segments, filename) do |analysis|
37
+ analysis.map do |segment|
38
+ max_loudness = loudness = nil
39
+
40
+ segment.find('loudness/dB').map do |db|
41
+ if db['type'] == 'max'
42
+ max_loudness = Loudness.new(db['time'].to_f, db.content.to_f)
43
+ else
44
+ loudness = Loudness.new(db['time'].to_f, db.content.to_f)
45
+ end
46
+ end
47
+
48
+ pitches = segment.find('pitches/pitch').map do |pitch|
49
+ pitch.content.to_f
50
+ end
51
+
52
+ timbre = segment.find('timbre/coeff').map do |coeff|
53
+ coeff.content.to_f
54
+ end
55
+
56
+ Segment.new(
57
+ segment['start'].to_f,
58
+ segment['duration'].to_f,
59
+ loudness,
60
+ max_loudness,
61
+ pitches,
62
+ timbre
63
+ )
64
+ end
65
+ end
66
+ end
67
+
68
+ def get_tempo(filename)
69
+ get_analysys(:get_tempo, filename) do |analysis|
70
+ analysis.first.content.to_f
71
+ end
72
+ end
73
+
74
+ def get_sections(filename)
75
+ get_analysys(:get_sections, filename) do |analysis|
76
+ analysis.map do |section|
77
+ Section.new(
78
+ section['start'].to_f,
79
+ section['duration'].to_f
80
+ )
81
+ end
82
+ end
83
+ end
84
+
85
+ def get_duration(filename)
86
+ get_analysys(:get_duration, filename) do |analysis|
87
+ analysis.first.content.to_f
88
+ end
89
+ end
90
+
91
+ def get_end_of_fade_in(filename)
92
+ get_analysys(:get_end_of_fade_in, filename) do |analysis|
93
+ analysis.first.content.to_f
94
+ end
95
+ end
96
+
97
+ def get_key(filename)
98
+ get_analysys(:get_key, filename) do |analysis|
99
+ ValueWithConfidence.new(analysis.first.content.to_i, analysis.first['confidence'].to_f)
100
+ end
101
+ end
102
+
103
+ def get_loudness(filename)
104
+ get_analysys(:get_loudness, filename) do |analysis|
105
+ analysis.first.content.to_f
106
+ end
107
+ end
108
+
109
+ def get_metadata(filename)
110
+ get_analysys(:get_metadata, filename) do |analysis|
111
+ analysis.inject({}) do |memo, key|
112
+ memo[key.name] = key.content
113
+ memo
114
+ end
115
+ end
116
+ end
117
+
118
+ def get_mode(filename)
119
+ get_analysys(:get_mode, filename) do |analysis|
120
+ ValueWithConfidence.new(analysis.first.content.to_i, analysis.first['confidence'].to_f)
121
+ end
122
+ end
123
+
124
+ def get_start_of_fade_out(filename)
125
+ get_analysys(:get_start_of_fade_out, filename) do |analysis|
126
+ analysis.first.content.to_f
127
+ end
128
+ end
129
+
130
+ def get_tatums(filename)
131
+ get_analysys(:get_tatums, filename) do |analysis|
132
+ analysis.map do |tatum|
133
+ Tatum.new(tatum.content.to_f, tatum['confidence'].to_f)
134
+ end
135
+ end
136
+ end
137
+
138
+ def get_time_signature(filename)
139
+ get_analysys(:get_time_signature, filename) do |analysis|
140
+ ValueWithConfidence.new(analysis.first.content.to_i, analysis.first['confidence'].to_f)
141
+ end
142
+ end
143
+
144
+ def build_params(params)
145
+ params = params.
146
+ merge(:version => VERSION).
147
+ merge(:api_key => @api_key)
148
+ end
149
+
150
+ def get_analysys(method, filename)
151
+ get_trackinfo(method, filename) do |response|
152
+ yield response.xml.find_first('/response/analysis')
153
+ end
154
+ end
155
+
156
+ def get_trackinfo(method, filename, &block)
157
+ content = open(filename).read
158
+ md5 = Digest::MD5.hexdigest(content)
159
+
160
+ begin
161
+ response = request(method, :md5 => md5)
162
+
163
+ block.call(response)
164
+ rescue Echonest::Api::Error => e
165
+ case e.message
166
+ when /Analysis not ready/
167
+ sleep 20 # wait for serverside analysis
168
+ get_trackinfo(method, filename, &block)
169
+ when 'Invalid parameter: unknown MD5 file hash'
170
+ upload(filename)
171
+ sleep 60 # wait for serverside analysis
172
+ get_trackinfo(method, filename, &block)
173
+ else
174
+ raise
175
+ end
176
+ end
177
+ end
178
+
179
+ def upload(filename)
180
+ open(filename) do |f|
181
+ request(:upload, :file => f)
182
+ end
183
+ end
184
+
185
+ def request(name, params)
186
+ method = (name == :upload ? 'post' : 'get')
187
+ response_body = @user_agent.__send__(method + '_content', URI.join(BASE_URL, name.to_s), build_params(params))
188
+ response = Response.new(response_body)
189
+
190
+ unless response.success?
191
+ raise Error.new(response.status.message)
192
+ end
193
+
194
+ response
195
+ end
196
+ end
197
+ end
198
+
199
+ class HTTPClient
200
+ def agent_name
201
+ @session_manager.agent_name
202
+ end
203
+ end
@@ -0,0 +1,5 @@
1
+ class Bar < ValueWithConfidence
2
+ def start
3
+ value
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Beat < ValueWithConfidence
2
+ def start
3
+ value
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class Loudness
2
+ attr_reader :time, :value
3
+
4
+ def initialize(time, value)
5
+ @time = time
6
+ @value = value
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class Section
2
+ attr_reader :start, :duration
3
+
4
+ def initialize(start, duration)
5
+ @start = start
6
+ @duration = duration
7
+ end
8
+ end
@@ -0,0 +1,12 @@
1
+ class Segment < Section
2
+ attr_reader :loudness, :max_loudness, :pitches, :timbre
3
+
4
+ def initialize(start, duration, loudness, max_loudness, pitches, timbre)
5
+ super(start, duration)
6
+
7
+ @loudness = loudness
8
+ @max_loudness = max_loudness
9
+ @pitches = pitches
10
+ @timbre = timbre
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ class Tatum < ValueWithConfidence
2
+ def start
3
+ value
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class ValueWithConfidence
2
+ attr_reader :value, :confidence
3
+
4
+ def initialize(value, confidence)
5
+ @value = value
6
+ @confidence = confidence
7
+ end
8
+ end
9
+
10
+
@@ -0,0 +1,54 @@
1
+ require "xml"
2
+
3
+ module Echonest
4
+ class Response
5
+ attr_reader :xml
6
+
7
+ def initialize(body)
8
+ @xml = XML::Document.string(body)
9
+ end
10
+
11
+ def status
12
+ @status ||= Status.new(@xml)
13
+ end
14
+
15
+ def success?
16
+ status.code == Status::SUCCESS
17
+ end
18
+
19
+ def query
20
+ @query ||= Query.new(@xml)
21
+ end
22
+
23
+ class Status
24
+ UNKNOWN_ERROR = -1
25
+ SUCCESS = 0
26
+ INVALID_API_KEY = 1
27
+ PERMISSION_DENIED = 2
28
+ RATE_LIMIT_EXCEEDED = 3
29
+ MISSING_PARAMETER = 4
30
+ INVALID_PARAMETER = 5
31
+
32
+ attr_reader :code, :message
33
+
34
+ def initialize(xml)
35
+ @code = xml.find('/response/status/code').first.content.to_s.to_i
36
+ @message = xml.find('/response/status/message').first.content.to_s
37
+ end
38
+ end
39
+
40
+ class Query
41
+ def initialize(xml)
42
+ @parameters = {}
43
+
44
+ xml.find('/response/query/parameter').each do |parameter|
45
+ @parameters[parameter['name'].to_sym] = parameter.content
46
+ end
47
+ end
48
+
49
+ def [](parameter_name)
50
+ @parameters[parameter_name]
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,3 @@
1
+ module Echonest
2
+ VERSION = '0.0.6'
3
+ end
data/lib/echonest.rb ADDED
@@ -0,0 +1,15 @@
1
+ require 'echonest/version'
2
+ require 'echonest/api'
3
+ require 'echonest/response'
4
+ require 'echonest/element/value_with_confidence'
5
+ require 'echonest/element/bar'
6
+ require 'echonest/element/beat'
7
+ require 'echonest/element/section'
8
+ require 'echonest/element/segment'
9
+ require 'echonest/element/loudness'
10
+ require 'echonest/element/tatum'
11
+
12
+ def Echonest(api_key) Echonest::Api.new(api_key) end
13
+
14
+ module Echonest
15
+ end
data/spec/api_spec.rb ADDED
@@ -0,0 +1,219 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
3
+ require 'spec_helper'
4
+ require "echonest"
5
+
6
+ include SpecHelper
7
+
8
+ describe Echonest::Api do
9
+ before do
10
+ @api = Echonest::Api.new('5ZAOMB3BUR8QUN4PE')
11
+ end
12
+
13
+ it "should have version" do
14
+ Echonest::Api::VERSION.should eql('3')
15
+ end
16
+
17
+ it "should build parameters" do
18
+ params = @api.build_params(:id => 'music://id.echonest.com/~/AR/ARH6W4X1187B99274F')
19
+ params.keys.size.should eql(3)
20
+ params[:version].should eql('3')
21
+ params[:api_key].should eql('5ZAOMB3BUR8QUN4PE')
22
+ params[:id].should eql('music://id.echonest.com/~/AR/ARH6W4X1187B99274F')
23
+ end
24
+
25
+ it "should call api method" do
26
+ make_connection_stub(<<EOM)
27
+ <?xml version="1.0" encoding="UTF-8"?>
28
+ <response version="3">
29
+ <status>
30
+ <code>0</code>
31
+ <message>Success</message>
32
+ </status>
33
+ <query>
34
+ <parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter>
35
+ <parameter name="id">music://id.echonest.com/~/AR/ARH6W4X1187B99274F</parameter>
36
+ </query>
37
+ <artist>
38
+ <name>Radiohead</name>
39
+ <id>music://id.echonest.com/~/AR/ARH6W4X1187B99274F</id>
40
+ <foreign_id>music://id.echonest.com/5ZAOMB3BUR8QUN4PE/AR/1</foreign_id>
41
+ <familiarity>0.96974159665</familiarity>
42
+ </artist>
43
+ </response>
44
+ EOM
45
+
46
+ response = @api.request(:get_bars, :id => 'music://id.echonest.com/~/AR/ARH6W4X1187B99274F')
47
+ response.success?.should be_true
48
+ end
49
+
50
+ it "should raise error when api method call was failed" do
51
+ make_connection_stub(<<EOM)
52
+ <?xml version="1.0" encoding="UTF-8"?>
53
+ <response version="3">
54
+ <status>
55
+ <code>1</code>
56
+ <message>Invalid API key</message>
57
+ </status>
58
+ <query>
59
+ <parameter name="api_key">XXXXXX</parameter>
60
+ <parameter name="id">music://id.echonest.com/~/AR/ARH6W4X1187B99274F</parameter>
61
+ </query>
62
+ </response>
63
+ EOM
64
+ lambda {
65
+ @api.request(:get_bars, :id => 'music://id.echonest.com/~/AR/ARH6W4X1187B99274F')
66
+ }.should raise_error(Echonest::Api::Error, 'Invalid API key')
67
+ end
68
+
69
+ it "should raise error when unknown api method was called" do
70
+ lambda {
71
+ @api.get_xxx(:id => 'music://id.echonest.com/~/AR/ARH6W4X1187B99274F')
72
+ }.should raise_error(NoMethodError)
73
+ end
74
+
75
+ it "should get bars" do
76
+ make_connection_stub(open(fixture('get_bars.xml')).read)
77
+
78
+ bars = @api.get_bars(fixture('sample.mp3'))
79
+
80
+ bars.should be_an_instance_of(Array)
81
+ bars.size.should eql(80)
82
+ bars.first.start.should eql(0.45717)
83
+ bars.first.confidence.should eql(0.537)
84
+ end
85
+
86
+ it "should get beats" do
87
+ make_connection_stub(open(fixture('get_beats.xml')).read)
88
+
89
+ beats = @api.get_beats(fixture('sample.mp3'))
90
+
91
+ beats.should be_an_instance_of(Array)
92
+ beats.size.should eql(375)
93
+ beats.first.start.should eql(0.45717)
94
+ beats.first.confidence.should eql(0.823)
95
+ end
96
+
97
+ it "should get tempo" do
98
+ make_connection_stub(open(fixture('get_tempo.xml')).read)
99
+
100
+ tempo = @api.get_tempo(fixture('sample.mp3'))
101
+
102
+ tempo.should eql(120.163)
103
+ end
104
+
105
+ it "should get segments" do
106
+ make_connection_stub(open(fixture('get_segments.xml')).read)
107
+
108
+ segments = @api.get_segments(fixture('sample.mp3'))
109
+
110
+ segments.size.should eql(4)
111
+
112
+ segment = segments.first
113
+
114
+ segment.start.should eql(0.0)
115
+ segment.duration.should eql(0.421)
116
+ segment.loudness.time.should eql(0.0)
117
+ segment.loudness.value.should eql(-60.0)
118
+ segment.max_loudness.time.should eql(0.0)
119
+ segment.max_loudness.value.should eql(-60.0)
120
+ segment.pitches.size.should eql(12)
121
+ segment.pitches.first.should eql(0.542)
122
+ segment.timbre.size.should eql(12)
123
+ segment.timbre.first.should eql(0.0)
124
+ end
125
+
126
+ it "should get sections" do
127
+ make_connection_stub(open(fixture('get_sections.xml')).read)
128
+
129
+ sections = @api.get_sections(fixture('sample.mp3'))
130
+
131
+ sections.size.should eql(16)
132
+
133
+ section = sections.first
134
+
135
+ section.start.should eql(0.0)
136
+ section.duration.should eql(7.82647)
137
+ end
138
+
139
+ it "should get durtion" do
140
+ make_connection_stub(open(fixture('get_duration.xml')).read)
141
+
142
+ @api.get_duration(fixture('sample.mp3')).should eql(194.3493)
143
+ end
144
+
145
+ it "should get end of fade in" do
146
+ make_connection_stub(open(fixture('get_end_of_fade_in.xml')).read)
147
+
148
+ @api.get_end_of_fade_in(fixture('sample.mp3')).should eql(0.421)
149
+ end
150
+
151
+ it "should get key" do
152
+ make_connection_stub(open(fixture('get_key.xml')).read)
153
+
154
+ key = @api.get_key(fixture('sample.mp3'))
155
+
156
+ key.confidence.should eql(1.0)
157
+ key.value.should eql(5)
158
+ end
159
+
160
+ it "should get loudness" do
161
+ make_connection_stub(open(fixture('get_loudness.xml')).read)
162
+
163
+ loudness = @api.get_loudness(fixture('sample.mp3'))
164
+
165
+ loudness.should eql(-8.426)
166
+ end
167
+
168
+ it "should get metadata" do
169
+ make_connection_stub(open(fixture('get_metadata.xml')).read)
170
+
171
+ metadata = @api.get_metadata(fixture('sample.mp3'))
172
+
173
+ metadata['genre'].should eql('Boogaloo')
174
+ metadata['duration'].should eql('194.3493')
175
+ end
176
+
177
+ it "should get mode" do
178
+ make_connection_stub(open(fixture('get_mode.xml')).read)
179
+
180
+ mode = @api.get_mode(fixture('sample.mp3'))
181
+
182
+ mode.confidence.should eql(1.0)
183
+ mode.value.should eql(1)
184
+ end
185
+
186
+ it "should get start of fade out" do
187
+ make_connection_stub(open(fixture('get_start_of_fade_out.xml')).read)
188
+
189
+ @api.get_start_of_fade_out(fixture('sample.mp3')).should eql(182.44499)
190
+ end
191
+
192
+ it "should get tatums" do
193
+ make_connection_stub(open(fixture('get_tatums.xml')).read)
194
+
195
+ tatums = @api.get_tatums(fixture('sample.mp3'))
196
+
197
+ tatums.should be_an_instance_of(Array)
198
+ tatums.size.should eql(757)
199
+ tatums.first.start.should eql(0.45717)
200
+ tatums.first.confidence.should eql(1.0)
201
+ end
202
+
203
+ it "should get time_signature" do
204
+ make_connection_stub(open(fixture('get_time_signature.xml')).read)
205
+
206
+ time_signature = @api.get_time_signature(fixture('sample.mp3'))
207
+
208
+ time_signature.confidence.should eql(0.064)
209
+ time_signature.value.should eql(4)
210
+ end
211
+
212
+ it "should make http request with agent name" do
213
+ @api.user_agent.agent_name.should eql('ruby-echonest/' + Echonest::VERSION)
214
+ end
215
+
216
+ def make_connection_stub(xml)
217
+ @api.user_agent.stub!(:get_content).and_return(xml)
218
+ end
219
+ end
@@ -0,0 +1,12 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
3
+ require 'spec_helper'
4
+ require "echonest"
5
+
6
+ include SpecHelper
7
+
8
+ describe Echonest do
9
+ it "should return an instance of Echonest::Api" do
10
+ Echonest('XXXXXXXX').should be_an_instance_of(Echonest::Api)
11
+ end
12
+ end
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><bar confidence="0.537">0.45717</bar><bar confidence="0.201">2.53058</bar><bar confidence="0.514">4.55475</bar><bar confidence="0.819">6.57259</bar><bar confidence="0.923">8.57879</bar><bar confidence="0.574">10.59756</bar><bar confidence="0.756">12.6043</bar><bar confidence="0.203">14.60555</bar><bar confidence="0.754">16.59055</bar><bar confidence="1.0">18.57677</bar><bar confidence="1.0">20.55684</bar><bar confidence="0.3">22.54074</bar><bar confidence="0.584">24.51661</bar><bar confidence="1.0">26.50641</bar><bar confidence="1.0">28.49072</bar><bar confidence="0.982">30.48332</bar><bar confidence="1.0">32.47166</bar><bar confidence="0.777">38.65162</bar><bar confidence="0.831">40.6402</bar><bar confidence="0.66">42.63228</bar><bar confidence="0.509">44.63888</bar><bar confidence="0.309">46.62947</bar><bar confidence="0.868">48.60873</bar><bar confidence="0.884">50.59985</bar><bar confidence="0.744">52.5869</bar><bar confidence="0.58">54.57072</bar><bar confidence="0.814">56.54202</bar><bar confidence="0.978">58.53608</bar><bar confidence="1.0">60.52887</bar><bar confidence="1.0">62.52642</bar><bar confidence="0.905">70.75634</bar><bar confidence="0.596">72.76161</bar><bar confidence="1.0">74.75724</bar><bar confidence="0.84">76.74967</bar><bar confidence="0.49">78.73407</bar><bar confidence="0.629">80.71777</bar><bar confidence="0.757">82.69579</bar><bar confidence="0.621">84.6767</bar><bar confidence="0.665">86.66112</bar><bar confidence="0.819">88.65031</bar><bar confidence="0.417">90.64465</bar><bar confidence="0.739">92.64206</bar><bar confidence="0.436">94.64574</bar><bar confidence="0.641">96.65579</bar><bar confidence="1.0">98.65178</bar><bar confidence="0.775">112.8689</bar><bar confidence="0.892">114.84605</bar><bar confidence="0.222">116.84035</bar><bar confidence="0.76">118.86875</bar><bar confidence="0.161">120.89512</bar><bar confidence="0.779">122.91559</bar><bar confidence="0.854">124.92457</bar><bar confidence="0.739">126.94511</bar><bar confidence="0.499">128.96584</bar><bar confidence="0.95">130.98184</bar><bar confidence="0.932">132.99673</bar><bar confidence="0.967">135.01125</bar><bar confidence="1.0">137.02043</bar><bar confidence="1.0">139.03263</bar><bar confidence="0.836">147.30194</bar><bar confidence="0.953">149.32278</bar><bar confidence="0.741">151.33967</bar><bar confidence="0.572">153.35657</bar><bar confidence="0.193">155.37261</bar><bar confidence="0.888">157.38522</bar><bar confidence="0.957">159.39417</bar><bar confidence="1.0">161.40787</bar><bar confidence="0.129">163.41594</bar><bar confidence="0.951">165.42143</bar><bar confidence="1.0">167.43692</bar><bar confidence="1.0">169.4461</bar><bar confidence="1.0">171.45653</bar><bar confidence="1.0">173.47484</bar><bar confidence="0.446">175.48194</bar><bar confidence="0.646">177.48631</bar><bar confidence="0.414">179.51877</bar><bar confidence="0.646">181.53095</bar><bar confidence="0.546">183.54715</bar><bar confidence="0.689">185.56236</bar><bar confidence="0.34">187.56796</bar></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="md5">6361bbe3186f31ccc49da04ed3ebb1b8</parameter></query><analysis><beat confidence="0.823">0.45717</beat><beat confidence="0.822">0.97966</beat><beat confidence="0.781">1.50139</beat><beat confidence="0.455">2.01873</beat><beat confidence="0.731">2.53058</beat><beat confidence="0.793">3.03556</beat><beat confidence="0.689">3.54101</beat><beat confidence="0.645">4.04815</beat><beat confidence="0.597">4.55475</beat><beat confidence="0.782">5.06246</beat><beat confidence="0.734">5.56885</beat><beat confidence="0.705">6.07103</beat><beat confidence="0.728">6.57259</beat><beat confidence="0.752">7.07414</beat><beat confidence="0.713">7.57569</beat><beat confidence="0.718">8.07724</beat><beat confidence="0.711">8.57879</beat><beat confidence="0.666">9.08123</beat><beat confidence="0.634">9.58645</beat><beat confidence="0.646">10.09240</beat><beat confidence="0.647">10.59756</beat><beat confidence="0.737">11.10182</beat><beat confidence="0.626">11.60530</beat><beat confidence="0.712">12.10736</beat><beat confidence="0.451">12.60430</beat><beat confidence="0.746">13.10368</beat><beat confidence="0.658">13.60556</beat><beat confidence="0.630">14.10701</beat><beat confidence="0.631">14.60555</beat><beat confidence="0.747">15.10196</beat><beat confidence="0.709">15.59837</beat><beat confidence="0.745">16.09477</beat><beat confidence="0.724">16.59055</beat><beat confidence="0.714">17.08571</beat><beat confidence="0.651">17.58175</beat><beat confidence="0.638">18.07965</beat><beat confidence="0.686">18.57677</beat><beat confidence="0.719">19.07389</beat><beat confidence="0.701">19.57013</beat><beat confidence="0.679">20.06390</beat><beat confidence="0.633">20.55684</beat><beat confidence="0.740">21.05142</beat><beat confidence="0.721">21.54786</beat><beat confidence="0.643">22.04451</beat><beat confidence="0.646">22.54074</beat><beat confidence="0.760">23.03496</beat><beat confidence="0.733">23.52855</beat><beat confidence="0.752">24.02214</beat><beat confidence="0.739">24.51661</beat><beat confidence="0.748">25.01382</beat><beat confidence="0.722">25.51165</beat><beat confidence="0.702">26.00947</beat><beat confidence="0.637">26.50641</beat><beat confidence="0.651">27.00149</beat><beat confidence="0.666">27.49734</beat><beat confidence="0.730">27.99346</beat><beat confidence="0.741">28.49072</beat><beat confidence="0.767">28.98886</beat><beat confidence="0.749">29.48701</beat><beat confidence="0.709">29.98516</beat><beat confidence="0.614">30.48332</beat><beat confidence="0.615">30.98256</beat><beat confidence="0.606">31.47952</beat><beat confidence="0.664">31.97559</beat><beat confidence="0.709">32.47166</beat><beat confidence="0.624">32.96773</beat><beat confidence="0.661">33.47095</beat><beat confidence="0.590">33.97816</beat><beat confidence="0.749">34.48352</beat><beat confidence="0.546">34.98610</beat><beat confidence="0.278">35.48715</beat><beat confidence="0.401">36.23752</beat><beat confidence="0.823">36.71990</beat><beat confidence="0.694">37.19297</beat><beat confidence="0.652">37.67017</beat><beat confidence="0.808">38.15541</beat><beat confidence="0.809">38.65162</beat><beat confidence="0.852">39.15213</beat><beat confidence="0.844">39.65190</beat><beat confidence="0.894">40.14690</beat><beat confidence="0.859">40.64020</beat><beat confidence="0.885">41.13628</beat><beat confidence="0.782">41.63547</beat><beat confidence="0.837">42.13388</beat><beat confidence="0.777">42.63228</beat><beat confidence="0.941">43.13307</beat><beat confidence="0.842">43.63548</beat><beat confidence="0.844">44.13762</beat><beat confidence="0.819">44.63888</beat><beat confidence="0.886">45.13676</beat><beat confidence="0.860">45.63281</beat><beat confidence="0.858">46.12990</beat><beat confidence="0.742">46.62947</beat><beat confidence="0.926">47.12910</beat><beat confidence="0.879">47.62379</beat><beat confidence="0.922">48.11662</beat><beat confidence="0.833">48.60873</beat><beat confidence="0.884">49.10371</beat><beat confidence="0.755">49.60205</beat><beat confidence="0.827">50.10147</beat><beat confidence="0.869">50.59985</beat><beat confidence="0.927">51.09574</beat><beat confidence="0.866">51.59205</beat><beat confidence="0.911">52.08960</beat><beat confidence="0.858">52.58690</beat><beat confidence="0.976">53.08405</beat><beat confidence="0.982">53.58032</beat><beat confidence="0.846">54.07635</beat><beat confidence="0.882">54.57072</beat><beat confidence="0.942">55.06324</beat><beat confidence="0.898">55.55504</beat><beat confidence="0.967">56.04822</beat><beat confidence="0.944">56.54202</beat><beat confidence="0.967">57.03970</beat><beat confidence="0.941">57.53872</beat><beat confidence="0.895">58.03785</beat><beat confidence="0.875">58.53608</beat><beat confidence="0.895">59.03429</beat><beat confidence="0.881">59.53249</beat><beat confidence="0.874">60.03069</beat><beat confidence="0.947">60.52887</beat><beat confidence="0.982">61.02703</beat><beat confidence="0.902">61.52607</beat><beat confidence="0.816">62.02714</beat><beat confidence="0.838">62.52642</beat><beat confidence="0.848">63.02409</beat><beat confidence="0.828">63.52227</beat><beat confidence="0.842">64.02358</beat><beat confidence="0.953">64.52383</beat><beat confidence="1">65.02220</beat><beat confidence="1">65.52047</beat><beat confidence="0.657">66.02096</beat><beat confidence="0.929">66.53093</beat><beat confidence="0.650">67.05185</beat><beat confidence="0">67.57536</beat><beat confidence="0.528">68.32800</beat><beat confidence="0.744">68.81112</beat><beat confidence="0.746">69.28821</beat><beat confidence="0.624">69.77068</beat><beat confidence="0.733">70.25863</beat><beat confidence="0.835">70.75634</beat><beat confidence="0.870">71.26075</beat><beat confidence="0.835">71.76452</beat><beat confidence="0.890">72.26431</beat><beat confidence="0.867">72.76161</beat><beat confidence="0.907">73.25808</beat><beat confidence="0.871">73.75719</beat><beat confidence="0.899">74.25792</beat><beat confidence="0.870">74.75724</beat><beat confidence="0.917">75.25594</beat><beat confidence="0.895">75.75464</beat><beat confidence="0.896">76.25335</beat><beat confidence="0.870">76.74967</beat><beat confidence="0.818">77.24304</beat><beat confidence="0.802">77.73832</beat><beat confidence="0.920">78.23597</beat><beat confidence="0.767">78.73407</beat><beat confidence="0.874">79.23176</beat><beat confidence="0.791">79.72734</beat><beat confidence="0.933">80.22343</beat><beat confidence="0.771">80.71777</beat><beat confidence="0.903">81.21262</beat><beat confidence="0.861">81.70772</beat><beat confidence="0.927">82.20256</beat><beat confidence="0.877">82.69579</beat><beat confidence="0.930">83.18892</beat><beat confidence="0.861">83.68479</beat><beat confidence="0.945">84.18075</beat><beat confidence="0.876">84.67670</beat><beat confidence="0.877">85.17264</beat><beat confidence="0.822">85.66857</beat><beat confidence="0.865">86.16511</beat><beat confidence="0.824">86.66112</beat><beat confidence="0.863">87.15615</beat><beat confidence="0.797">87.65328</beat><beat confidence="0.905">88.15175</beat><beat confidence="0.873">88.65031</beat><beat confidence="0.863">89.14889</beat><beat confidence="0.843">89.64747</beat><beat confidence="0.891">90.14606</beat><beat confidence="0.780">90.64465</beat><beat confidence="0.897">91.14326</beat><beat confidence="0.777">91.64150</beat><beat confidence="0.916">92.14115</beat><beat confidence="0.827">92.64206</beat><beat confidence="0.879">93.14297</beat><beat confidence="0.770">93.64389</beat><beat confidence="0.893">94.14481</beat><beat confidence="0.811">94.64574</beat><beat confidence="0.898">95.14667</beat><beat confidence="0.802">95.64760</beat><beat confidence="0.924">96.15141</beat><beat confidence="0.782">96.65579</beat><beat confidence="0.873">97.15598</beat><beat confidence="0.711">97.65383</beat><beat confidence="0.788">98.15260</beat><beat confidence="0.778">98.65178</beat><beat confidence="0.870">99.15361</beat><beat confidence="0.726">99.65707</beat><beat confidence="0.883">100.15949</beat><beat confidence="0.898">100.66164</beat><beat confidence="0.857">101.16376</beat><beat confidence="0.750">101.66818</beat><beat confidence="0.863">102.17512</beat><beat confidence="0.749">102.68814</beat><beat confidence="0.749">103.20682</beat><beat confidence="0.742">103.74641</beat><beat confidence="0.380">104.30121</beat><beat confidence="0.633">104.86049</beat><beat confidence="0.633">105.42074</beat><beat confidence="0.731">105.96022</beat><beat confidence="0.458">106.48434</beat><beat confidence="0.209">107.00433</beat><beat confidence="0.269">107.53317</beat><beat confidence="0.059">108.07019</beat><beat confidence="0.399">108.60890</beat><beat confidence="0.943">109.91041</beat><beat confidence="0.830">110.40041</beat><beat confidence="0.819">110.88303</beat><beat confidence="0.800">111.36835</beat><beat confidence="0.782">111.86652</beat><beat confidence="0.829">112.36914</beat><beat confidence="0.839">112.86890</beat><beat confidence="0.912">113.36425</beat><beat confidence="0.817">113.85763</beat><beat confidence="0.884">114.35141</beat><beat confidence="0.814">114.84605</beat><beat confidence="0.867">115.34095</beat><beat confidence="0.844">115.83871</beat><beat confidence="0.833">116.33922</beat><beat confidence="0.882">116.84035</beat><beat confidence="0.891">117.34513</beat><beat confidence="0.800">117.85343</beat><beat confidence="0.805">118.36166</beat><beat confidence="0.817">118.86875</beat><beat confidence="0.862">119.37586</beat><beat confidence="0.791">119.88208</beat><beat confidence="0.874">120.38657</beat><beat confidence="0.795">120.89512</beat><beat confidence="0.889">121.40196</beat><beat confidence="0.871">121.90675</beat><beat confidence="0.766">122.41156</beat><beat confidence="0.779">122.91559</beat><beat confidence="0.902">123.41747</beat><beat confidence="0.833">123.91825</beat><beat confidence="0.881">124.42008</beat><beat confidence="0.790">124.92457</beat><beat confidence="0.890">125.42969</beat><beat confidence="0.800">125.93482</beat><beat confidence="0.812">126.43996</beat><beat confidence="0.827">126.94511</beat><beat confidence="0.867">127.45028</beat><beat confidence="0.821">127.95545</beat><beat confidence="0.863">128.46064</beat><beat confidence="0.802">128.96584</beat><beat confidence="0.908">129.47105</beat><beat confidence="0.900">129.97627</beat><beat confidence="0.816">130.47906</beat><beat confidence="0.747">130.98184</beat><beat confidence="0.880">131.48424</beat><beat confidence="0.843">131.98805</beat><beat confidence="0.884">132.49284</beat><beat confidence="0.839">132.99673</beat><beat confidence="0.893">133.50303</beat><beat confidence="0.824">134.00779</beat><beat confidence="0.748">134.51039</beat><beat confidence="0.750">135.01125</beat><beat confidence="0.793">135.51316</beat><beat confidence="0.752">136.01532</beat><beat confidence="0.799">136.51744</beat><beat confidence="0.822">137.02043</beat><beat confidence="0.880">137.52503</beat><beat confidence="0.858">138.02793</beat><beat confidence="0.780">138.52921</beat><beat confidence="0.727">139.03263</beat><beat confidence="0.776">139.53552</beat><beat confidence="0.741">140.03760</beat><beat confidence="0.738">140.53880</beat><beat confidence="0.840">141.04052</beat><beat confidence="0.828">141.54300</beat><beat confidence="0.755">142.05020</beat><beat confidence="0.627">142.56801</beat><beat confidence="0.833">143.08838</beat><beat confidence="0.647">143.60578</beat><beat confidence="0.384">144.11862</beat><beat confidence="0.450">144.87134</beat><beat confidence="0.510">145.35555</beat><beat confidence="0.428">145.83217</beat><beat confidence="0.323">146.31291</beat><beat confidence="0.462">146.80069</beat><beat confidence="0.557">147.30194</beat><beat confidence="0.512">147.81248</beat><beat confidence="0.521">148.32106</beat><beat confidence="0.564">148.82309</beat><beat confidence="0.518">149.32278</beat><beat confidence="0.559">149.82430</beat><beat confidence="0.564">150.32938</beat><beat confidence="0.558">150.83556</beat><beat confidence="0.578">151.33967</beat><beat confidence="0.604">151.84376</beat><beat confidence="0.600">152.34847</beat><beat confidence="0.598">152.85253</beat><beat confidence="0.552">153.35657</beat><beat confidence="0.602">153.86061</beat><beat confidence="0.617">154.36462</beat><beat confidence="0.557">154.86863</beat><beat confidence="0.563">155.37261</beat><beat confidence="0.613">155.87659</beat><beat confidence="0.597">156.38028</beat><beat confidence="0.614">156.88307</beat><beat confidence="0.590">157.38522</beat><beat confidence="0.618">157.88734</beat><beat confidence="0.561">158.38943</beat><beat confidence="0.577">158.89150</beat><beat confidence="0.583">159.39417</beat><beat confidence="0.605">159.89746</beat><beat confidence="0.594">160.40076</beat><beat confidence="0.578">160.90405</beat><beat confidence="0.574">161.40787</beat><beat confidence="0.612">161.91168</beat><beat confidence="0.600">162.41307</beat><beat confidence="0.561">162.91446</beat><beat confidence="0.588">163.41594</beat><beat confidence="0.615">163.91742</beat><beat confidence="0.609">164.41888</beat><beat confidence="0.616">164.92035</beat><beat confidence="0.593">165.42143</beat><beat confidence="0.622">165.92419</beat><beat confidence="0.572">166.42964</beat><beat confidence="0.547">166.93493</beat><beat confidence="0.523">167.43692</beat><beat confidence="0.536">167.93781</beat><beat confidence="0.550">168.44076</beat><beat confidence="0.581">168.94355</beat><beat confidence="0.581">169.44610</beat><beat confidence="0.613">169.94868</beat><beat confidence="0.571">170.45127</beat><beat confidence="0.542">170.95389</beat><beat confidence="0.522">171.45653</beat><beat confidence="0.510">171.96133</beat><beat confidence="0.498">172.46760</beat><beat confidence="0.562">172.97280</beat><beat confidence="0.561">173.47484</beat><beat confidence="0.608">173.97694</beat><beat confidence="0.553">174.48046</beat><beat confidence="0.490">174.98355</beat><beat confidence="0.606">175.48194</beat><beat confidence="0.164">175.97907</beat><beat confidence="0.570">176.47824</beat><beat confidence="0.292">176.98068</beat><beat confidence="0.496">177.48631</beat><beat confidence="0.339">177.99215</beat><beat confidence="0.503">178.49920</beat><beat confidence="0.502">179.00878</beat><beat confidence="0.480">179.51877</beat><beat confidence="0.488">180.02574</beat><beat confidence="0.537">180.52786</beat><beat confidence="0.515">181.02888</beat><beat confidence="0.530">181.53095</beat><beat confidence="0.532">182.03444</beat><beat confidence="0.532">182.53846</beat><beat confidence="0.562">183.04248</beat><beat confidence="0.521">183.54715</beat><beat confidence="0.541">184.05184</beat><beat confidence="0.516">184.55656</beat><beat confidence="0.543">185.06040</beat><beat confidence="0.543">185.56236</beat><beat confidence="0.520">186.06357</beat><beat confidence="0.508">186.56504</beat><beat confidence="0.542">187.06650</beat><beat confidence="0.527">187.56796</beat><beat confidence="0.512">188.06940</beat><beat confidence="0.499">188.57247</beat><beat confidence="0.519">189.07637</beat><beat confidence="0.501">189.57759</beat></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><duration>194.3493</duration></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><end_of_fade_in>0.421</end_of_fade_in></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><key confidence="1.0">5</key></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><loudness>-8.426</loudness></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><status>COMPLETE</status><id>music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</id><md5>cf23d5a124dda204f4f5d505389356fd</md5><artist>Mongo Santamaria</artist><title>Watermelon Man</title><genre>Boogaloo</genre><duration>194.3493</duration><samplerate>44100</samplerate><bitrate>128</bitrate></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><mode confidence="1.0">1</mode></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><section start="0.0" duration="7.82647" /><section start="7.82647" duration="17.43627" /><section start="25.26273" duration="9.72336" /><section start="34.9861" duration="13.13052" /><section start="48.11662" duration="9.17272" /><section start="57.28934" duration="11.28174" /><section start="68.57108" duration="7.43292" /><section start="76.004" duration="32.33554" /><section start="108.33954" duration="7.0014" /><section start="115.34095" duration="18.16208" /><section start="133.50303" duration="9.58536" /><section start="143.08838" duration="5.73471" /><section start="148.82309" duration="17.1011" /><section start="165.92419" duration="12.32135" /><section start="178.24554" duration="9.32241" /><section start="187.56796" duration="6.78134" /></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><segment start="0.0" duration="0.421"><loudness><dB time="0.0">-60.0</dB><dB type="max" time="0.0">-60.0</dB></loudness><pitches><pitch>0.542</pitch><pitch>0.58</pitch><pitch>0.644</pitch><pitch>0.782</pitch><pitch>1.0</pitch><pitch>0.718</pitch><pitch>0.666</pitch><pitch>0.53</pitch><pitch>0.569</pitch><pitch>0.476</pitch><pitch>0.61</pitch><pitch>0.742</pitch></pitches><timbre><coeff>0.0</coeff><coeff>171.13</coeff><coeff>9.469</coeff><coeff>-28.48</coeff><coeff>57.491</coeff><coeff>-50.067</coeff><coeff>14.833</coeff><coeff>5.359</coeff><coeff>-27.228</coeff><coeff>0.973</coeff><coeff>-10.64</coeff><coeff>-7.228</coeff></timbre></segment><segment start="0.421" duration="0.53469"><loudness><dB time="0.0">-60.0</dB><dB type="max" time="0.07546">-24.335</dB></loudness><pitches><pitch>1.0</pitch><pitch>0.093</pitch><pitch>0.057</pitch><pitch>0.119</pitch><pitch>0.109</pitch><pitch>0.715</pitch><pitch>0.076</pitch><pitch>0.031</pitch><pitch>0.035</pitch><pitch>0.093</pitch><pitch>0.027</pitch><pitch>0.051</pitch></pitches><timbre><coeff>25.003</coeff><coeff>-50.111</coeff><coeff>60.119</coeff><coeff>-61.178</coeff><coeff>36.791</coeff><coeff>172.395</coeff><coeff>32.814</coeff><coeff>-15.136</coeff><coeff>-30.754</coeff><coeff>78.289</coeff><coeff>22.658</coeff><coeff>29.984</coeff></timbre></segment><segment start="0.95569" duration="0.51574"><loudness><dB time="0.0">-33.89</dB><dB type="max" time="0.04644">-19.79</dB></loudness><pitches><pitch>0.343</pitch><pitch>0.032</pitch><pitch>0.026</pitch><pitch>0.088</pitch><pitch>0.06</pitch><pitch>1.0</pitch><pitch>0.11</pitch><pitch>0.037</pitch><pitch>0.019</pitch><pitch>0.039</pitch><pitch>0.023</pitch><pitch>0.153</pitch></pitches><timbre><coeff>33.569</coeff><coeff>-81.594</coeff><coeff>32.167</coeff><coeff>33.641</coeff><coeff>3.736</coeff><coeff>71.353</coeff><coeff>-24.661</coeff><coeff>-30.883</coeff><coeff>-2.779</coeff><coeff>-16.379</coeff><coeff>7.974</coeff><coeff>28.023</coeff></timbre></segment><segment start="1.47143" duration="0.27311"><loudness><dB time="0.0">-32.598</dB><dB type="max" time="0.05805">-20.795</dB></loudness><pitches><pitch>0.206</pitch><pitch>0.04</pitch><pitch>0.395</pitch><pitch>0.062</pitch><pitch>0.045</pitch><pitch>1.0</pitch><pitch>0.105</pitch><pitch>0.021</pitch><pitch>0.027</pitch><pitch>0.075</pitch><pitch>0.262</pitch><pitch>0.038</pitch></pitches><timbre><coeff>33.631</coeff><coeff>-83.835</coeff><coeff>25.815</coeff><coeff>44.913</coeff><coeff>37.23</coeff><coeff>37.191</coeff><coeff>-31.029</coeff><coeff>-19.415</coeff><coeff>6.836</coeff><coeff>-23.078</coeff><coeff>10.078</coeff><coeff>32.021</coeff></timbre></segment></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><start_of_fade_out>182.44499</start_of_fade_out></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><tatum confidence="1.0">0.45717</tatum><tatum confidence="0.816">0.71823</tatum><tatum confidence="0.983">0.97966</tatum><tatum confidence="0.709">1.24094</tatum><tatum confidence="1.0">1.50139</tatum><tatum confidence="0.99">1.76065</tatum><tatum confidence="0.769">2.01873</tatum><tatum confidence="0.899">2.27497</tatum><tatum confidence="0.984">2.53058</tatum><tatum confidence="0.868">2.78299</tatum><tatum confidence="1.0">3.03556</tatum><tatum confidence="0.821">3.28802</tatum><tatum confidence="0.974">3.54101</tatum><tatum confidence="0.905">3.79426</tatum><tatum confidence="0.904">4.04815</tatum><tatum confidence="0.81">4.30113</tatum><tatum confidence="0.907">4.55475</tatum><tatum confidence="0.95">4.80874</tatum><tatum confidence="0.979">5.06246</tatum><tatum confidence="0.796">5.31592</tatum><tatum confidence="1.0">5.56885</tatum><tatum confidence="1.0">5.82026</tatum><tatum confidence="0.946">6.07103</tatum><tatum confidence="1.0">6.32181</tatum><tatum confidence="1.0">6.57259</tatum><tatum confidence="1.0">6.82336</tatum><tatum confidence="1.0">7.07414</tatum><tatum confidence="1.0">7.32491</tatum><tatum confidence="1.0">7.57569</tatum><tatum confidence="1.0">7.82647</tatum><tatum confidence="1.0">8.07724</tatum><tatum confidence="1.0">8.32802</tatum><tatum confidence="1.0">8.57879</tatum><tatum confidence="0.799">8.82957</tatum><tatum confidence="0.934">9.08123</tatum><tatum confidence="0.896">9.33353</tatum><tatum confidence="0.903">9.58645</tatum><tatum confidence="0.904">9.83911</tatum><tatum confidence="0.895">10.0924</tatum><tatum confidence="0.849">10.34543</tatum><tatum confidence="0.909">10.59756</tatum><tatum confidence="0.925">10.84969</tatum><tatum confidence="1.0">11.10182</tatum><tatum confidence="0.881">11.35369</tatum><tatum confidence="0.89">11.6053</tatum><tatum confidence="0.866">11.85664</tatum><tatum confidence="0.951">12.10736</tatum><tatum confidence="0.885">12.35619</tatum><tatum confidence="0.784">12.6043</tatum><tatum confidence="0.882">12.85355</tatum><tatum confidence="1.0">13.10368</tatum><tatum confidence="0.856">13.35444</tatum><tatum confidence="0.949">13.60556</tatum><tatum confidence="0.841">13.85642</tatum><tatum confidence="0.847">14.10701</tatum><tatum confidence="0.92">14.35673</tatum><tatum confidence="0.888">14.60555</tatum><tatum confidence="0.929">14.85376</tatum><tatum confidence="1.0">15.10196</tatum><tatum confidence="0.94">15.35016</tatum><tatum confidence="1.0">15.59837</tatum><tatum confidence="0.974">15.84657</tatum><tatum confidence="1.0">16.09477</tatum><tatum confidence="0.97">16.34297</tatum><tatum confidence="1.0">16.59055</tatum><tatum confidence="0.895">16.83813</tatum><tatum confidence="0.953">17.08571</tatum><tatum confidence="0.868">17.3333</tatum><tatum confidence="0.906">17.58175</tatum><tatum confidence="0.882">17.83083</tatum><tatum confidence="0.871">18.07965</tatum><tatum confidence="0.92">18.32821</tatum><tatum confidence="0.925">18.57677</tatum><tatum confidence="0.94">18.82533</tatum><tatum confidence="1.0">19.07389</tatum><tatum confidence="0.911">19.32245</tatum><tatum confidence="0.956">19.57013</tatum><tatum confidence="0.818">19.8172</tatum><tatum confidence="0.897">20.0639</tatum><tatum confidence="0.932">20.31024</tatum><tatum confidence="0.882">20.55684</tatum><tatum confidence="0.898">20.80369</tatum><tatum confidence="1.0">21.05142</tatum><tatum confidence="0.884">21.29977</tatum><tatum confidence="0.992">21.54786</tatum><tatum confidence="0.863">21.79632</tatum><tatum confidence="0.884">22.04451</tatum><tatum confidence="0.984">22.29244</tatum><tatum confidence="0.895">22.54074</tatum><tatum confidence="0.954">22.78816</tatum><tatum confidence="1.0">23.03496</tatum><tatum confidence="0.965">23.28175</tatum><tatum confidence="1.0">23.52855</tatum><tatum confidence="0.99">23.77535</tatum><tatum confidence="1.0">24.02214</tatum><tatum confidence="0.943">24.26894</tatum><tatum confidence="1.0">24.51661</tatum><tatum confidence="0.915">24.76491</tatum><tatum confidence="1.0">25.01382</tatum><tatum confidence="1.0">25.26273</tatum><tatum confidence="1.0">25.51165</tatum><tatum confidence="0.928">25.76056</tatum><tatum confidence="0.948">26.00947</tatum><tatum confidence="0.901">26.25838</tatum><tatum confidence="0.915">26.50641</tatum><tatum confidence="0.862">26.75382</tatum><tatum confidence="0.873">27.00149</tatum><tatum confidence="0.942">27.24942</tatum><tatum confidence="0.929">27.49734</tatum><tatum confidence="0.888">27.74527</tatum><tatum confidence="0.969">27.99346</tatum><tatum confidence="0.926">28.24165</tatum><tatum confidence="1.0">28.49072</tatum><tatum confidence="0.907">28.73979</tatum><tatum confidence="1.0">28.98886</tatum><tatum confidence="1.0">29.23794</tatum><tatum confidence="1.0">29.48701</tatum><tatum confidence="0.916">29.73609</tatum><tatum confidence="0.955">29.98516</tatum><tatum confidence="0.85">30.23424</tatum><tatum confidence="0.863">30.48332</tatum><tatum confidence="0.764">30.73276</tatum><tatum confidence="0.834">30.98256</tatum><tatum confidence="0.821">31.23148</tatum><tatum confidence="0.847">31.47952</tatum><tatum confidence="0.84">31.72756</tatum><tatum confidence="0.888">31.97559</tatum><tatum confidence="0.901">32.22363</tatum><tatum confidence="0.992">32.47166</tatum><tatum confidence="0.837">32.7197</tatum><tatum confidence="0.852">32.96773</tatum><tatum confidence="0.997">33.21841</tatum><tatum confidence="0.903">33.47095</tatum><tatum confidence="0.74">33.7245</tatum><tatum confidence="0.794">33.97816</tatum><tatum confidence="0.785">34.23129</tatum><tatum confidence="0.959">34.48352</tatum><tatum confidence="0.718">34.73512</tatum><tatum confidence="0.69">34.9861</tatum><tatum confidence="0.319">35.23707</tatum><tatum confidence="0.043">35.48715</tatum><tatum confidence="0.579">35.73812</tatum><tatum confidence="0.228">35.98971</tatum><tatum confidence="0.421">36.23752</tatum><tatum confidence="0.974">36.48018</tatum><tatum confidence="0.768">36.7199</tatum><tatum confidence="0.617">36.95713</tatum><tatum confidence="0.662">37.19297</tatum><tatum confidence="0.581">37.43053</tatum><tatum confidence="0.667">37.67017</tatum><tatum confidence="0.715">37.91155</tatum><tatum confidence="0.817">38.15541</tatum><tatum confidence="0.847">38.40246</tatum><tatum confidence="0.877">38.65162</tatum><tatum confidence="0.816">38.90151</tatum><tatum confidence="0.871">39.15213</tatum><tatum confidence="0.804">39.40259</tatum><tatum confidence="0.915">39.6519</tatum><tatum confidence="0.928">39.89971</tatum><tatum confidence="0.937">40.1469</tatum><tatum confidence="0.905">40.39373</tatum><tatum confidence="0.926">40.6402</tatum><tatum confidence="0.779">40.8878</tatum><tatum confidence="0.911">41.13628</tatum><tatum confidence="0.814">41.38601</tatum><tatum confidence="0.844">41.63547</tatum><tatum confidence="0.881">41.88467</tatum><tatum confidence="0.886">42.13388</tatum><tatum confidence="0.851">42.38308</tatum><tatum confidence="0.832">42.63228</tatum><tatum confidence="0.874">42.88237</tatum><tatum confidence="1.0">43.13307</tatum><tatum confidence="0.838">43.38441</tatum><tatum confidence="0.917">43.63548</tatum><tatum confidence="0.801">43.88655</tatum><tatum confidence="0.877">44.13762</tatum><tatum confidence="0.914">44.3887</tatum><tatum confidence="0.873">44.63888</tatum><tatum confidence="0.878">44.88844</tatum><tatum confidence="0.944">45.13676</tatum><tatum confidence="0.814">45.38497</tatum><tatum confidence="0.926">45.63281</tatum><tatum confidence="0.827">45.88092</tatum><tatum confidence="0.903">46.1299</tatum><tatum confidence="0.9">46.3795</tatum><tatum confidence="0.816">46.62947</tatum><tatum confidence="0.83">46.87954</tatum><tatum confidence="0.959">47.1291</tatum><tatum confidence="0.846">47.37688</tatum><tatum confidence="0.964">47.62379</tatum><tatum confidence="0.897">47.87008</tatum><tatum confidence="0.958">48.11662</tatum><tatum confidence="0.86">48.36255</tatum><tatum confidence="0.935">48.60873</tatum><tatum confidence="0.793">48.85578</tatum><tatum confidence="0.909">49.10371</tatum><tatum confidence="0.853">49.35226</tatum><tatum confidence="0.813">49.60205</tatum><tatum confidence="0.826">49.85158</tatum><tatum confidence="0.879">50.10147</tatum><tatum confidence="0.893">50.3511</tatum><tatum confidence="0.933">50.59985</tatum><tatum confidence="0.907">50.84797</tatum><tatum confidence="1.0">51.09574</tatum><tatum confidence="0.933">51.34376</tatum><tatum confidence="0.962">51.59205</tatum><tatum confidence="0.836">51.84095</tatum><tatum confidence="0.953">52.0896</tatum><tatum confidence="1.0">52.33825</tatum><tatum confidence="0.899">52.5869</tatum><tatum confidence="0.869">52.83591</tatum><tatum confidence="1.0">53.08405</tatum><tatum confidence="0.935">53.33219</tatum><tatum confidence="1.0">53.58032</tatum><tatum confidence="0.896">53.82846</tatum><tatum confidence="0.902">54.07635</tatum><tatum confidence="0.982">54.32398</tatum><tatum confidence="0.97">54.57072</tatum><tatum confidence="0.914">54.81685</tatum><tatum confidence="1.0">55.06324</tatum><tatum confidence="0.908">55.30901</tatum><tatum confidence="0.976">55.55504</tatum><tatum confidence="0.974">55.80132</tatum><tatum confidence="1.0">56.04822</tatum><tatum confidence="0.963">56.29512</tatum><tatum confidence="1.0">56.54202</tatum><tatum confidence="0.887">56.79042</tatum><tatum confidence="1.0">57.0397</tatum><tatum confidence="1.0">57.28934</tatum><tatum confidence="1.0">57.53872</tatum><tatum confidence="0.878">57.78873</tatum><tatum confidence="0.95">58.03785</tatum><tatum confidence="0.928">58.28696</tatum><tatum confidence="0.958">58.53608</tatum><tatum confidence="0.899">58.78519</tatum><tatum confidence="0.952">59.03429</tatum><tatum confidence="0.933">59.28339</tatum><tatum confidence="0.946">59.53249</tatum><tatum confidence="0.933">59.78159</tatum><tatum confidence="0.908">60.03069</tatum><tatum confidence="0.938">60.27978</tatum><tatum confidence="1.0">60.52887</tatum><tatum confidence="0.858">60.77795</tatum><tatum confidence="1.0">61.02703</tatum><tatum confidence="0.994">61.27611</tatum><tatum confidence="0.943">61.52607</tatum><tatum confidence="0.879">61.77629</tatum><tatum confidence="0.866">62.02714</tatum><tatum confidence="0.9">62.27709</tatum><tatum confidence="0.92">62.52642</tatum><tatum confidence="0.802">62.77512</tatum><tatum confidence="0.903">63.02409</tatum><tatum confidence="0.843">63.27305</tatum><tatum confidence="0.884">63.52227</tatum><tatum confidence="0.83">63.77274</tatum><tatum confidence="0.892">64.02358</tatum><tatum confidence="0.909">64.27415</tatum><tatum confidence="1.0">64.52383</tatum><tatum confidence="0.822">64.77289</tatum><tatum confidence="1.0">65.0222</tatum><tatum confidence="0.98">65.27152</tatum><tatum confidence="0.798">65.52047</tatum><tatum confidence="0.658">65.77295</tatum><tatum confidence="0.631">66.02096</tatum><tatum confidence="0.822">66.27422</tatum><tatum confidence="0.801">66.53093</tatum><tatum confidence="0.414">66.79031</tatum><tatum confidence="0.362">67.05185</tatum><tatum confidence="0.0">67.31503</tatum><tatum confidence="0.0">67.57536</tatum><tatum confidence="0.472">67.82972</tatum><tatum confidence="0.42">68.08053</tatum><tatum confidence="0.584">68.328</tatum><tatum confidence="1.0">68.57108</tatum><tatum confidence="0.753">68.81112</tatum><tatum confidence="0.586">69.05012</tatum><tatum confidence="0.773">69.28821</tatum><tatum confidence="0.638">69.52839</tatum><tatum confidence="0.687">69.77068</tatum><tatum confidence="0.685">70.01377</tatum><tatum confidence="0.811">70.25863</tatum><tatum confidence="0.877">70.50599</tatum><tatum confidence="0.982">70.75634</tatum><tatum confidence="0.85">71.00831</tatum><tatum confidence="0.955">71.26075</tatum><tatum confidence="0.803">71.51303</tatum><tatum confidence="0.958">71.76452</tatum><tatum confidence="0.92">72.01485</tatum><tatum confidence="1.0">72.26431</tatum><tatum confidence="0.926">72.51314</tatum><tatum confidence="0.992">72.76161</tatum><tatum confidence="0.936">73.00971</tatum><tatum confidence="1.0">73.25808</tatum><tatum confidence="0.953">73.50732</tatum><tatum confidence="1.0">73.75719</tatum><tatum confidence="0.965">74.00769</tatum><tatum confidence="0.994">74.25792</tatum><tatum confidence="0.961">74.5079</tatum><tatum confidence="1.0">74.75724</tatum><tatum confidence="0.957">75.00659</tatum><tatum confidence="1.0">75.25594</tatum><tatum confidence="0.992">75.50529</tatum><tatum confidence="1.0">75.75464</tatum><tatum confidence="1.0">76.004</tatum><tatum confidence="1.0">76.25335</tatum><tatum confidence="0.931">76.50182</tatum><tatum confidence="0.98">76.74967</tatum><tatum confidence="0.789">76.99654</tatum><tatum confidence="0.925">77.24304</tatum><tatum confidence="0.907">77.49068</tatum><tatum confidence="0.932">77.73832</tatum><tatum confidence="0.931">77.98683</tatum><tatum confidence="1.0">78.23597</tatum><tatum confidence="0.967">78.48484</tatum><tatum confidence="0.87">78.73407</tatum><tatum confidence="0.917">78.98305</tatum><tatum confidence="1.0">79.23176</tatum><tatum confidence="0.906">79.47986</tatum><tatum confidence="0.944">79.72734</tatum><tatum confidence="0.989">79.97508</tatum><tatum confidence="1.0">80.22343</tatum><tatum confidence="1.0">80.47091</tatum><tatum confidence="0.879">80.71777</tatum><tatum confidence="0.939">80.9655</tatum><tatum confidence="1.0">81.21262</tatum><tatum confidence="0.863">81.45973</tatum><tatum confidence="0.983">81.70772</tatum><tatum confidence="1.0">81.95545</tatum><tatum confidence="1.0">82.20256</tatum><tatum confidence="0.91">82.44905</tatum><tatum confidence="1.0">82.69579</tatum><tatum confidence="0.865">82.94192</tatum><tatum confidence="1.0">83.18892</tatum><tatum confidence="0.892">83.43654</tatum><tatum confidence="0.965">83.68479</tatum><tatum confidence="1.0">83.93277</tatum><tatum confidence="1.0">84.18075</tatum><tatum confidence="1.0">84.42872</tatum><tatum confidence="0.965">84.6767</tatum><tatum confidence="0.919">84.92467</tatum><tatum confidence="1.0">85.17264</tatum><tatum confidence="0.931">85.42061</tatum><tatum confidence="0.97">85.66857</tatum><tatum confidence="0.984">85.91653</tatum><tatum confidence="0.986">86.16511</tatum><tatum confidence="1.0">86.41342</tatum><tatum confidence="0.95">86.66112</tatum><tatum confidence="0.954">86.90819</tatum><tatum confidence="1.0">87.15615</tatum><tatum confidence="0.905">87.40471</tatum><tatum confidence="0.93">87.65328</tatum><tatum confidence="0.982">87.9022</tatum><tatum confidence="1.0">88.15175</tatum><tatum confidence="1.0">88.40103</tatum><tatum confidence="0.953">88.65031</tatum><tatum confidence="0.931">88.8996</tatum><tatum confidence="1.0">89.14889</tatum><tatum confidence="0.914">89.39818</tatum><tatum confidence="1.0">89.64747</tatum><tatum confidence="1.0">89.89676</tatum><tatum confidence="1.0">90.14606</tatum><tatum confidence="0.885">90.39535</tatum><tatum confidence="0.893">90.64465</tatum><tatum confidence="0.918">90.89395</tatum><tatum confidence="1.0">91.14326</tatum><tatum confidence="0.839">91.39256</tatum><tatum confidence="0.918">91.6415</tatum><tatum confidence="1.0">91.89133</tatum><tatum confidence="1.0">92.14115</tatum><tatum confidence="1.0">92.39161</tatum><tatum confidence="0.939">92.64206</tatum><tatum confidence="0.896">92.89252</tatum><tatum confidence="1.0">93.14297</tatum><tatum confidence="0.891">93.39343</tatum><tatum confidence="0.922">93.64389</tatum><tatum confidence="0.955">93.89435</tatum><tatum confidence="0.986">94.14481</tatum><tatum confidence="0.89">94.39527</tatum><tatum confidence="0.923">94.64574</tatum><tatum confidence="0.94">94.8962</tatum><tatum confidence="1.0">95.14667</tatum><tatum confidence="0.884">95.39714</tatum><tatum confidence="0.93">95.6476</tatum><tatum confidence="0.977">95.89932</tatum><tatum confidence="1.0">96.15141</tatum><tatum confidence="0.905">96.40386</tatum><tatum confidence="0.873">96.65579</tatum><tatum confidence="0.89">96.9062</tatum><tatum confidence="1.0">97.15598</tatum><tatum confidence="0.859">97.4054</tatum><tatum confidence="0.824">97.65383</tatum><tatum confidence="0.896">97.90339</tatum><tatum confidence="0.91">98.1526</tatum><tatum confidence="0.866">98.40206</tatum><tatum confidence="0.898">98.65178</tatum><tatum confidence="0.845">98.90239</tatum><tatum confidence="1.0">99.15361</tatum><tatum confidence="0.854">99.40548</tatum><tatum confidence="0.862">99.65707</tatum><tatum confidence="1.0">99.90841</tatum><tatum confidence="1.0">100.15949</tatum><tatum confidence="0.914">100.41057</tatum><tatum confidence="1.0">100.66164</tatum><tatum confidence="0.836">100.9127</tatum><tatum confidence="0.961">101.16376</tatum><tatum confidence="0.789">101.41507</tatum><tatum confidence="0.856">101.66818</tatum><tatum confidence="0.912">101.92101</tatum><tatum confidence="0.968">102.17512</tatum><tatum confidence="0.762">102.43112</tatum><tatum confidence="0.708">102.68814</tatum><tatum confidence="0.259">102.94618</tatum><tatum confidence="0.0">103.20682</tatum><tatum confidence="0.0">103.47397</tatum><tatum confidence="0.383">103.74641</tatum><tatum confidence="0.364">104.02266</tatum><tatum confidence="0.261">104.30121</tatum><tatum confidence="0.382">104.58036</tatum><tatum confidence="0.396">104.86049</tatum><tatum confidence="0.3">105.14131</tatum><tatum confidence="0.516">105.42074</tatum><tatum confidence="0.566">105.69318</tatum><tatum confidence="0.892">105.96022</tatum><tatum confidence="0.792">106.22338</tatum><tatum confidence="0.497">106.48434</tatum><tatum confidence="0.353">106.74339</tatum><tatum confidence="0.265">107.00433</tatum><tatum confidence="0.279">107.26755</tatum><tatum confidence="0.301">107.53317</tatum><tatum confidence="0.335">107.80068</tatum><tatum confidence="0.153">108.07019</tatum><tatum confidence="0.035">108.33954</tatum><tatum confidence="0.363">108.6089</tatum><tatum confidence="0.438">108.87828</tatum><tatum confidence="0.361">109.14564</tatum><tatum confidence="0.568">109.40632</tatum><tatum confidence="0.617">109.66075</tatum><tatum confidence="0.929">109.91041</tatum><tatum confidence="0.948">110.15669</tatum><tatum confidence="0.822">110.40041</tatum><tatum confidence="0.671">110.64235</tatum><tatum confidence="0.684">110.88303</tatum><tatum confidence="0.699">111.1245</tatum><tatum confidence="0.888">111.36835</tatum><tatum confidence="0.927">111.6165</tatum><tatum confidence="0.94">111.86652</tatum><tatum confidence="0.878">112.11791</tatum><tatum confidence="0.914">112.36914</tatum><tatum confidence="0.901">112.61959</tatum><tatum confidence="0.989">112.8689</tatum><tatum confidence="0.904">113.11732</tatum><tatum confidence="1.0">113.36425</tatum><tatum confidence="0.887">113.61081</tatum><tatum confidence="0.961">113.85763</tatum><tatum confidence="0.95">114.10409</tatum><tatum confidence="1.0">114.35141</tatum><tatum confidence="1.0">114.59873</tatum><tatum confidence="0.987">114.84605</tatum><tatum confidence="0.984">115.09337</tatum><tatum confidence="1.0">115.34095</tatum><tatum confidence="1.0">115.58939</tatum><tatum confidence="1.0">115.83871</tatum><tatum confidence="1.0">116.08865</tatum><tatum confidence="1.0">116.33922</tatum><tatum confidence="1.0">116.58978</tatum><tatum confidence="1.0">116.84035</tatum><tatum confidence="0.868">117.09242</tatum><tatum confidence="0.979">117.34513</tatum><tatum confidence="0.868">117.59909</tatum><tatum confidence="0.918">117.85343</tatum><tatum confidence="0.848">118.10813</tatum><tatum confidence="0.921">118.36166</tatum><tatum confidence="0.936">118.6152</tatum><tatum confidence="0.945">118.86875</tatum><tatum confidence="0.925">119.1223</tatum><tatum confidence="1.0">119.37586</tatum><tatum confidence="0.915">119.62942</tatum><tatum confidence="0.891">119.88208</tatum><tatum confidence="0.782">120.13375</tatum><tatum confidence="0.959">120.38657</tatum><tatum confidence="0.964">120.64066</tatum><tatum confidence="0.899">120.89512</tatum><tatum confidence="0.873">121.14867</tatum><tatum confidence="1.0">121.40196</tatum><tatum confidence="0.896">121.65435</tatum><tatum confidence="1.0">121.90675</tatum><tatum confidence="0.929">122.15915</tatum><tatum confidence="0.88">122.41156</tatum><tatum confidence="0.99">122.66371</tatum><tatum confidence="0.93">122.91559</tatum><tatum confidence="0.951">123.16684</tatum><tatum confidence="1.0">123.41747</tatum><tatum confidence="0.917">123.66773</tatum><tatum confidence="0.982">123.91825</tatum><tatum confidence="0.981">124.16904</tatum><tatum confidence="0.989">124.42008</tatum><tatum confidence="0.943">124.67201</tatum><tatum confidence="1.0">124.92457</tatum><tatum confidence="0.885">125.17713</tatum><tatum confidence="0.99">125.42969</tatum><tatum confidence="0.925">125.68225</tatum><tatum confidence="0.942">125.93482</tatum><tatum confidence="0.935">126.18739</tatum><tatum confidence="0.941">126.43996</tatum><tatum confidence="0.917">126.69254</tatum><tatum confidence="0.952">126.94511</tatum><tatum confidence="0.949">127.19769</tatum><tatum confidence="1.0">127.45028</tatum><tatum confidence="0.96">127.70286</tatum><tatum confidence="0.929">127.95545</tatum><tatum confidence="0.838">128.20804</tatum><tatum confidence="0.945">128.46064</tatum><tatum confidence="0.966">128.71324</tatum><tatum confidence="0.903">128.96584</tatum><tatum confidence="0.94">129.21844</tatum><tatum confidence="1.0">129.47105</tatum><tatum confidence="0.895">129.72366</tatum><tatum confidence="1.0">129.97627</tatum><tatum confidence="0.91">130.22736</tatum><tatum confidence="0.884">130.47906</tatum><tatum confidence="0.973">130.73014</tatum><tatum confidence="0.888">130.98184</tatum><tatum confidence="0.886">131.23291</tatum><tatum confidence="1.0">131.48424</tatum><tatum confidence="0.898">131.73583</tatum><tatum confidence="0.98">131.98805</tatum><tatum confidence="0.91">132.24089</tatum><tatum confidence="0.999">132.49284</tatum><tatum confidence="0.926">132.74478</tatum><tatum confidence="0.965">132.99673</tatum><tatum confidence="0.882">133.24956</tatum><tatum confidence="1.0">133.50303</tatum><tatum confidence="0.973">133.75496</tatum><tatum confidence="0.939">134.00779</tatum><tatum confidence="0.878">134.25972</tatum><tatum confidence="0.856">134.51039</tatum><tatum confidence="0.821">134.76069</tatum><tatum confidence="0.879">135.01125</tatum><tatum confidence="0.812">135.26208</tatum><tatum confidence="0.909">135.51316</tatum><tatum confidence="0.871">135.76424</tatum><tatum confidence="0.89">136.01532</tatum><tatum confidence="0.881">136.26638</tatum><tatum confidence="0.915">136.51744</tatum><tatum confidence="0.876">136.76849</tatum><tatum confidence="0.951">137.02043</tatum><tatum confidence="0.857">137.2721</tatum><tatum confidence="0.968">137.52503</tatum><tatum confidence="0.994">137.77679</tatum><tatum confidence="0.964">138.02793</tatum><tatum confidence="0.848">138.27844</tatum><tatum confidence="0.886">138.52921</tatum><tatum confidence="0.881">138.78061</tatum><tatum confidence="0.859">139.03263</tatum><tatum confidence="0.845">139.28377</tatum><tatum confidence="0.868">139.53552</tatum><tatum confidence="0.835">139.78701</tatum><tatum confidence="0.873">140.0376</tatum><tatum confidence="0.849">140.2882</tatum><tatum confidence="0.844">140.5388</tatum><tatum confidence="0.903">140.78966</tatum><tatum confidence="0.984">141.04052</tatum><tatum confidence="0.804">141.29163</tatum><tatum confidence="0.958">141.543</tatum><tatum confidence="0.907">141.79527</tatum><tatum confidence="0.882">142.0502</tatum><tatum confidence="0.789">142.30796</tatum><tatum confidence="0.685">142.56801</tatum><tatum confidence="0.689">142.82828</tatum><tatum confidence="0.836">143.08838</tatum><tatum confidence="0.59">143.34768</tatum><tatum confidence="0.629">143.60578</tatum><tatum confidence="0.262">143.86298</tatum><tatum confidence="0.0">144.11862</tatum><tatum confidence="0.375">144.37361</tatum><tatum confidence="0.302">144.62477</tatum><tatum confidence="0.622">144.87134</tatum><tatum confidence="1.0">145.11466</tatum><tatum confidence="0.694">145.35555</tatum><tatum confidence="0.491">145.59419</tatum><tatum confidence="0.64">145.83217</tatum><tatum confidence="0.53">146.07095</tatum><tatum confidence="0.509">146.31291</tatum><tatum confidence="0.514">146.55524</tatum><tatum confidence="0.725">146.80069</tatum><tatum confidence="0.811">147.04951</tatum><tatum confidence="0.938">147.30194</tatum><tatum confidence="0.762">147.55665</tatum><tatum confidence="0.809">147.81248</tatum><tatum confidence="0.714">148.06762</tatum><tatum confidence="0.887">148.32106</tatum><tatum confidence="0.964">148.5727</tatum><tatum confidence="0.917">148.82309</tatum><tatum confidence="0.884">149.07311</tatum><tatum confidence="0.891">149.32278</tatum><tatum confidence="0.765">149.57296</tatum><tatum confidence="0.888">149.8243</tatum><tatum confidence="0.929">150.07653</tatum><tatum confidence="0.928">150.32938</tatum><tatum confidence="0.916">150.58261</tatum><tatum confidence="0.928">150.83556</tatum><tatum confidence="0.923">151.08762</tatum><tatum confidence="0.955">151.33967</tatum><tatum confidence="0.945">151.59172</tatum><tatum confidence="1.0">151.84376</tatum><tatum confidence="0.933">152.09643</tatum><tatum confidence="1.0">152.34847</tatum><tatum confidence="0.872">152.6005</tatum><tatum confidence="0.961">152.85253</tatum><tatum confidence="1.0">153.10455</tatum><tatum confidence="0.937">153.35657</tatum><tatum confidence="0.951">153.60859</tatum><tatum confidence="1.0">153.86061</tatum><tatum confidence="0.952">154.11262</tatum><tatum confidence="1.0">154.36462</tatum><tatum confidence="0.925">154.61663</tatum><tatum confidence="0.94">154.86863</tatum><tatum confidence="1.0">155.12062</tatum><tatum confidence="0.957">155.37261</tatum><tatum confidence="0.983">155.6246</tatum><tatum confidence="1.0">155.87659</tatum><tatum confidence="0.917">156.12857</tatum><tatum confidence="1.0">156.38028</tatum><tatum confidence="1.0">156.63199</tatum><tatum confidence="1.0">156.88307</tatum><tatum confidence="0.994">157.13415</tatum><tatum confidence="1.0">157.38522</tatum><tatum confidence="0.917">157.63628</tatum><tatum confidence="0.993">157.88734</tatum><tatum confidence="0.933">158.13839</tatum><tatum confidence="0.942">158.38943</tatum><tatum confidence="0.953">158.64047</tatum><tatum confidence="0.952">158.8915</tatum><tatum confidence="0.923">159.14252</tatum><tatum confidence="0.963">159.39417</tatum><tatum confidence="0.998">159.64581</tatum><tatum confidence="1.0">159.89746</tatum><tatum confidence="0.996">160.14911</tatum><tatum confidence="0.999">160.40076</tatum><tatum confidence="0.89">160.6524</tatum><tatum confidence="0.918">160.90405</tatum><tatum confidence="1.0">161.15596</tatum><tatum confidence="0.957">161.40787</tatum><tatum confidence="0.969">161.65977</tatum><tatum confidence="1.0">161.91168</tatum><tatum confidence="0.939">162.16269</tatum><tatum confidence="1.0">162.41307</tatum><tatum confidence="0.961">162.66345</tatum><tatum confidence="0.918">162.91446</tatum><tatum confidence="1.0">163.1652</tatum><tatum confidence="0.975">163.41594</tatum><tatum confidence="0.975">163.66668</tatum><tatum confidence="1.0">163.91742</tatum><tatum confidence="0.944">164.16815</tatum><tatum confidence="1.0">164.41888</tatum><tatum confidence="0.999">164.66962</tatum><tatum confidence="1.0">164.92035</tatum><tatum confidence="0.943">165.17107</tatum><tatum confidence="1.0">165.42143</tatum><tatum confidence="0.901">165.67268</tatum><tatum confidence="1.0">165.92419</tatum><tatum confidence="1.0">166.1766</tatum><tatum confidence="0.972">166.42964</tatum><tatum confidence="0.884">166.68242</tatum><tatum confidence="0.914">166.93493</tatum><tatum confidence="0.939">167.18655</tatum><tatum confidence="0.884">167.43692</tatum><tatum confidence="0.874">167.68755</tatum><tatum confidence="0.899">167.93781</tatum><tatum confidence="0.967">168.18897</tatum><tatum confidence="0.919">168.44076</tatum><tatum confidence="0.885">168.69228</tatum><tatum confidence="0.957">168.94355</tatum><tatum confidence="0.988">169.19482</tatum><tatum confidence="1.0">169.4461</tatum><tatum confidence="0.93">169.69739</tatum><tatum confidence="1.0">169.94868</tatum><tatum confidence="1.0">170.19997</tatum><tatum confidence="0.948">170.45127</tatum><tatum confidence="0.877">170.70258</tatum><tatum confidence="0.9">170.95389</tatum><tatum confidence="0.872">171.20521</tatum><tatum confidence="0.872">171.45653</tatum><tatum confidence="0.806">171.70875</tatum><tatum confidence="0.846">171.96133</tatum><tatum confidence="0.857">172.21428</tatum><tatum confidence="0.841">172.4676</tatum><tatum confidence="0.823">172.72065</tatum><tatum confidence="0.929">172.9728</tatum><tatum confidence="0.872">173.22369</tatum><tatum confidence="0.949">173.47484</tatum><tatum confidence="0.796">173.72563</tatum><tatum confidence="1.0">173.97694</tatum><tatum confidence="1.0">174.22851</tatum><tatum confidence="0.918">174.48046</tatum><tatum confidence="0.833">174.73213</tatum><tatum confidence="0.809">174.98355</tatum><tatum confidence="0.835">175.23319</tatum><tatum confidence="0.919">175.48194</tatum><tatum confidence="0.563">175.73007</tatum><tatum confidence="0.545">175.97907</tatum><tatum confidence="0.399">176.22835</tatum><tatum confidence="0.747">176.47824</tatum><tatum confidence="0.491">176.72902</tatum><tatum confidence="0.435">176.98068</tatum><tatum confidence="0.913">177.23387</tatum><tatum confidence="0.781">177.48631</tatum><tatum confidence="0.832">177.73928</tatum><tatum confidence="0.73">177.99215</tatum><tatum confidence="0.967">178.24554</tatum><tatum confidence="0.874">178.4992</tatum><tatum confidence="0.934">178.75349</tatum><tatum confidence="0.885">179.00878</tatum><tatum confidence="0.846">179.26417</tatum><tatum confidence="0.831">179.51877</tatum><tatum confidence="0.914">179.77283</tatum><tatum confidence="0.861">180.02574</tatum><tatum confidence="1.0">180.27711</tatum><tatum confidence="0.905">180.52786</tatum><tatum confidence="0.978">180.77824</tatum><tatum confidence="0.931">181.02888</tatum><tatum confidence="1.0">181.27979</tatum><tatum confidence="0.91">181.53095</tatum><tatum confidence="1.0">181.78301</tatum><tatum confidence="0.928">182.03444</tatum><tatum confidence="1.0">182.28676</tatum><tatum confidence="0.928">182.53846</tatum><tatum confidence="1.0">182.79015</tatum><tatum confidence="0.999">183.04248</tatum><tatum confidence="1.0">183.29481</tatum><tatum confidence="0.931">183.54715</tatum><tatum confidence="1.0">183.79949</tatum><tatum confidence="0.969">184.05184</tatum><tatum confidence="1.0">184.3042</tatum><tatum confidence="0.919">184.55656</tatum><tatum confidence="1.0">184.80893</tatum><tatum confidence="0.987">185.0604</tatum><tatum confidence="1.0">185.31125</tatum><tatum confidence="0.962">185.56236</tatum><tatum confidence="1.0">185.81283</tatum><tatum confidence="0.947">186.06357</tatum><tatum confidence="1.0">186.31431</tatum><tatum confidence="0.923">186.56504</tatum><tatum confidence="1.0">186.81577</tatum><tatum confidence="1.0">187.0665</tatum><tatum confidence="1.0">187.31723</tatum><tatum confidence="0.968">187.56796</tatum><tatum confidence="1.0">187.81868</tatum><tatum confidence="0.953">188.0694</tatum><tatum confidence="1.0">188.32075</tatum><tatum confidence="0.914">188.57247</tatum><tatum confidence="0.99">188.82455</tatum><tatum confidence="0.968">189.07637</tatum><tatum confidence="1.0">189.32729</tatum><tatum confidence="0.977">189.57759</tatum><tatum confidence="0.99">189.82726</tatum><tatum confidence="0.859">190.07719</tatum></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">ACUHDSIWZSTDVWVHP</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><tempo confidence="0.723">120.163</tempo></analysis></response>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3"><status><code>0</code><message>Success</message></status><query><parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter><parameter name="id">music://id.echonest.com/~/TR/TRLFPPE11C3F10749F</parameter></query><analysis><time_signature confidence="0.064">4</time_signature></analysis></response>
Binary file
@@ -0,0 +1,60 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
3
+ require 'spec_helper'
4
+ require "echonest"
5
+
6
+ include SpecHelper
7
+
8
+ describe Echonest::Response do
9
+ before do
10
+ @success = Echonest::Response.new(<<EOM)
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <response version="3">
13
+ <status>
14
+ <code>0</code>
15
+ <message>Success</message>
16
+ </status>
17
+ <query>
18
+ <parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter>
19
+ <parameter name="id">music://id.echonest.com/~/AR/ARH6W4X1187B99274F</parameter>
20
+ </query>
21
+ <artist>
22
+ <name>Radiohead</name>
23
+ <id>music://id.echonest.com/~/AR/ARH6W4X1187B99274F</id>
24
+ <foreign_id>music://id.echonest.com/5ZAOMB3BUR8QUN4PE/AR/1</foreign_id>
25
+ <familiarity>0.96974159665</familiarity>
26
+ </artist>
27
+ </response>
28
+ EOM
29
+
30
+ @failure = Echonest::Response.new(<<EOM)
31
+ <?xml version="1.0" encoding="UTF-8"?>
32
+ <response version="3">
33
+ <status>
34
+ <code>1</code>
35
+ <message>Invalid API key</message>
36
+ </status>
37
+ <query>
38
+ <parameter name="api_key">XXXXXX</parameter>
39
+ <parameter name="id">music://id.echonest.com/~/AR/ARH6W4X1187B99274F</parameter>
40
+ </query>
41
+ </response>
42
+ EOM
43
+ end
44
+
45
+ it "should return status" do
46
+ @success.status.code.should eql(0)
47
+ @success.status.message.should eql('Success')
48
+ @success.success?.should be_true
49
+ @success.xml.find('/response/artist/name').first.content.should eql('Radiohead')
50
+
51
+ @failure.status.code.should eql(1)
52
+ @failure.status.message.should eql('Invalid API key')
53
+ @failure.success?.should be_false
54
+ end
55
+
56
+ it "should return query" do
57
+ @success.query[:id].should eql('music://id.echonest.com/~/AR/ARH6W4X1187B99274F')
58
+ @success.query[:api_key].should eql('5ZAOMB3BUR8QUN4PE')
59
+ end
60
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,2 @@
1
+ -c
2
+ -fs
@@ -0,0 +1,11 @@
1
+ $:.unshift File.dirname(__FILE__) + '/../lib/'
2
+
3
+ require 'echonest'
4
+
5
+ module SpecHelper
6
+ def fixture(filename)
7
+ File.dirname(__FILE__) + '/fixtures/' + filename
8
+ end
9
+ end
10
+
11
+
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-echonest
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ platform: ruby
6
+ authors:
7
+ - youpy
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-11 00:00:00 +09:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: libxml-ruby
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: httpclient
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: An Ruby interface for Echo Nest Developer API
36
+ email: youpy@buycheapviagraonlinenow.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README.rdoc
43
+ - ChangeLog
44
+ files:
45
+ - README.rdoc
46
+ - ChangeLog
47
+ - Rakefile
48
+ - spec/api_spec.rb
49
+ - spec/echonest_spec.rb
50
+ - spec/fixtures/get_bars.xml
51
+ - spec/fixtures/get_beats.xml
52
+ - spec/fixtures/get_duration.xml
53
+ - spec/fixtures/get_end_of_fade_in.xml
54
+ - spec/fixtures/get_key.xml
55
+ - spec/fixtures/get_loudness.xml
56
+ - spec/fixtures/get_metadata.xml
57
+ - spec/fixtures/get_mode.xml
58
+ - spec/fixtures/get_sections.xml
59
+ - spec/fixtures/get_segments.xml
60
+ - spec/fixtures/get_start_of_fade_out.xml
61
+ - spec/fixtures/get_tatums.xml
62
+ - spec/fixtures/get_tempo.xml
63
+ - spec/fixtures/get_time_signature.xml
64
+ - spec/fixtures/sample.mp3
65
+ - spec/response_spec.rb
66
+ - spec/spec.opts
67
+ - spec/spec_helper.rb
68
+ - lib/echonest/api.rb
69
+ - lib/echonest/element/bar.rb
70
+ - lib/echonest/element/beat.rb
71
+ - lib/echonest/element/loudness.rb
72
+ - lib/echonest/element/section.rb
73
+ - lib/echonest/element/segment.rb
74
+ - lib/echonest/element/tatum.rb
75
+ - lib/echonest/element/value_with_confidence.rb
76
+ - lib/echonest/response.rb
77
+ - lib/echonest/version.rb
78
+ - lib/echonest.rb
79
+ has_rdoc: true
80
+ homepage: http://github.com/youpy/ruby-echonest
81
+ licenses: []
82
+
83
+ post_install_message:
84
+ rdoc_options:
85
+ - --title
86
+ - ruby-echonest documentation
87
+ - --charset
88
+ - utf-8
89
+ - --opname
90
+ - index.html
91
+ - --line-numbers
92
+ - --main
93
+ - README.rdoc
94
+ - --inline-source
95
+ - --exclude
96
+ - ^(examples|extras)/
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ version:
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: "0"
110
+ version:
111
+ requirements: []
112
+
113
+ rubyforge_project: ruby-echonest
114
+ rubygems_version: 1.3.5
115
+ signing_key:
116
+ specification_version: 3
117
+ summary: An Ruby interface for Echo Nest Developer API
118
+ test_files: []
119
+