tweet_to_sounds 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "freesound-ruby", git: "git@github.com:rf-/freesound-ruby"
4
+
5
+ # Specify your gem's dependencies in tweet_to_sounds.gemspec
6
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Ryan Fitzgerald
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # TweetToSounds
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'tweet_to_sounds'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install tweet_to_sounds
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.libs << "spec"
8
+ t.pattern = "spec/**/*_spec.rb"
9
+ end
10
+
11
+ task :default => [:test]
@@ -0,0 +1,42 @@
1
+ require "freesound"
2
+ require "tweet_to_sounds/freesound_ext"
3
+
4
+ require "tweet_to_sounds/version"
5
+ require "tweet_to_sounds/keyword_extractor"
6
+ require "tweet_to_sounds/sound_finder"
7
+ require "tweet_to_sounds/volume_getter"
8
+
9
+ module TweetToSounds
10
+ class << self
11
+ def sounds_for_tweet(tweet)
12
+ keywords = KeywordExtractor.new(tweet).keywords
13
+ sounds = SoundFinder.new(keywords).sounds
14
+ urls = sounds.map(&:preview_hq_mp3)
15
+
16
+ urls
17
+ end
18
+
19
+ def sounds_for_tweet_with_volumes(tweet)
20
+ keywords = KeywordExtractor.new(tweet).keywords
21
+ sounds = SoundFinder.new(keywords).sounds
22
+ urls = sounds.map(&:preview_hq_mp3)
23
+ volumes = VolumeGetter.new(sounds).get_volumes
24
+
25
+ urls.zip(volumes)
26
+ end
27
+
28
+ def freesound
29
+ @freesound ||= Freesound::Client.new(freesound_api_key)
30
+ end
31
+
32
+ def freesound_api_key
33
+ "f21ede7f1694428ab829e72f52e3d2df"
34
+ end
35
+
36
+ attr_writer :number_of_sounds
37
+
38
+ def number_of_sounds
39
+ @number_of_sounds ||= 5
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,33 @@
1
+ module Freesound
2
+ class Client
3
+ def advanced_search(query)
4
+ request = Request.new(
5
+ @api_key,
6
+ search: {
7
+ q: query,
8
+ sounds_per_page: 10,
9
+ f: "duration:[0%20TO%2010]"
10
+ #s: "rating_desc"
11
+ }
12
+ )
13
+ response = request.get!
14
+
15
+ @requests << request
16
+ @responses << response
17
+
18
+ response.sounds
19
+ end
20
+ end
21
+
22
+ class Response
23
+ def sounds
24
+ return [] if errors[:error]
25
+
26
+ @sounds ||= data.map do |sound|
27
+ result = Sound.new
28
+ sound.each { |k, v| result.send("#{k}=", v) }
29
+ result
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ module TweetToSounds
2
+ class KeywordExtractor
3
+ STOPWORDS = %w(
4
+ a an and are as at be but by for if in into is it no not of on or such
5
+ that the their then there these they this to was will with
6
+ )
7
+
8
+ TWO_LETTERS = %w(
9
+ ab ad ah am aw ax ay bi by do ed eh el er es et ex fa go ha he hi hm ho
10
+ id jo la lo ma me mi mm my no oh om ow ox oy pa pe pi re sh si so ta ti
11
+ uh um un up us we wo ya ye yo
12
+ )
13
+
14
+ attr_reader :keywords
15
+
16
+ def initialize(tweet)
17
+ @tweet = tweet
18
+ @keywords = extract_keywords
19
+ end
20
+
21
+ private
22
+
23
+ def extract_keywords
24
+ words = @tweet.downcase.gsub(/[^\s\w\-']/, '').split
25
+ words = words.uniq - STOPWORDS
26
+ words.select { |w| w.length > 2 || TWO_LETTERS.include?(w) }
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,52 @@
1
+ module TweetToSounds
2
+ class SoundFinder
3
+ def initialize(keywords)
4
+ @keywords = keywords
5
+ end
6
+
7
+ def urls
8
+ sounds.map &:preview_hq_mp3
9
+ end
10
+
11
+ def sounds
12
+ @sounds ||= begin
13
+ keywords = pick_keywords(@keywords)
14
+ threads = keywords.map do |keyword|
15
+ Thread.new(keyword) do |kw|
16
+ Thread.current[:results] = \
17
+ pick_results TweetToSounds.freesound.advanced_search(kw)
18
+ end
19
+ end
20
+ results = threads.flat_map { |t| t.join; t[:results] }
21
+ stable_sample results, TweetToSounds.number_of_sounds
22
+ end
23
+ end
24
+
25
+ protected
26
+
27
+ def pick_keywords(keywords)
28
+ stable_sample keywords, 5
29
+ end
30
+
31
+ # TODO: be smarter
32
+ def pick_results(sounds)
33
+ stable_sample sounds, 3
34
+ end
35
+
36
+ def stable_sample(array, num_elements)
37
+ result = []
38
+ num_left = num_elements
39
+ length = array.length
40
+
41
+ array.each_with_index do |el, index|
42
+ threshold = [1.0, (num_left.to_f / (length - index))].min
43
+ if Kernel.rand <= threshold
44
+ result << el
45
+ num_left -= 1
46
+ end
47
+ end
48
+
49
+ result
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,3 @@
1
+ module TweetToSounds
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,19 @@
1
+ module TweetToSounds
2
+ class VolumeGetter
3
+ def initialize(sounds)
4
+ @sounds = sounds
5
+ end
6
+
7
+ def get_volumes
8
+ volumes = []
9
+ key = TweetToSounds.freesound_api_key
10
+ threads = @sounds.map do |sound|
11
+ Thread.new(sound) do |s|
12
+ Thread.current[:results] = \
13
+ Net::HTTP.get(URI("http://www.freesound.org/api/sounds/#{sound.id}/analysis/lowlevel/average_loudness/?api_key=#{key}")).to_f.round(2)
14
+ end
15
+ end
16
+ volumes = threads.flat_map { |t| t.join; t[:results] }
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ require "minitest/autorun"
2
+ require "minitest/pride"
3
+ require "mocha/setup"
4
+
5
+ require "pry"
6
+
7
+ require "vcr"
8
+ require "webmock"
9
+
10
+ require "tweet_to_sounds"
11
+
12
+ VCR.configure do |c|
13
+ c.cassette_library_dir = "spec/vcr_cassettes"
14
+ c.hook_into :webmock
15
+ end
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ module TweetToSounds
4
+ EXAMPLES = {
5
+ "Old technology, old procedures, old policies, old methods, or; Often produces" =>
6
+ ["old", "technology", "procedures", "policies", "methods", "often", "produces"],
7
+ "O N OLD B L A Z N G B L AZ N G B L A Z N G B L A Z N G B L A Z N G B L A Z N G B L A Z N G B L A Z N G B L A Z N G THE THE THE THE THE THE" =>
8
+ ["old"],
9
+ "My 3-second whisper to make" =>
10
+ ["my", "3-second", "whisper", "make"]
11
+ }
12
+
13
+ describe KeywordExtractor do
14
+ EXAMPLES.each do |tweet, result|
15
+ it "for tweet: #{tweet}" do
16
+ KeywordExtractor.new(tweet).keywords.must_equal result
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,36 @@
1
+ require "spec_helper"
2
+
3
+ module TweetToSounds
4
+ describe SoundFinder do
5
+ it "should return some urls given some keywords" do
6
+ results = VCR.use_cassette("hello world") do
7
+ SoundFinder.new(["hello", "world"]).urls
8
+ end
9
+ results.length.must_be :>, 0
10
+ results.each do |result|
11
+ result.must_match /http/
12
+ end
13
+ end
14
+
15
+ describe "#stable_sample" do
16
+ it "should sample evenly and stably" do
17
+ finder = SoundFinder.new(nil)
18
+ input = (1..100).to_a
19
+ results = []
20
+
21
+ 1000.times do
22
+ result = finder.send(:stable_sample, input, 3)
23
+ result.count.must_equal 3
24
+ result.sort.must_equal result
25
+ results.concat result
26
+ end
27
+
28
+ results.sort!
29
+ results.group_by { |r| r }.each do |number, occurrences|
30
+ occurrences.length.must_be :>=, 15
31
+ occurrences.length.must_be :<=, 50
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,7 @@
1
+ require "spec_helper"
2
+
3
+ describe TweetToSounds::VERSION do
4
+ it "should be defined" do
5
+ TweetToSounds::VERSION.wont_equal nil
6
+ end
7
+ end
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ describe TweetToSounds do
4
+ describe ".sounds_for_tweet" do
5
+ it "should return sound urls for a tweet" do
6
+ tweet = "Old technology, old procedures, old policies, old methods, " \
7
+ "or; Often produces"
8
+
9
+ sounds = VCR.use_cassette("integration", record: :new_episodes) do
10
+ TweetToSounds.sounds_for_tweet(tweet)
11
+ end
12
+
13
+ sounds.length.must_equal TweetToSounds.number_of_sounds
14
+
15
+ sounds.each do |sound|
16
+ sound.must_match /http/
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,801 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.freesound.org/api/sounds/search/?api_key=f21ede7f1694428ab829e72f52e3d2df&f=duration:%5B0%20TO%2010%5D&format=json&q=hello&sounds_per_page=10
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx/1.0.15
21
+ Date:
22
+ - Sun, 17 Feb 2013 03:39:58 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ Vary:
30
+ - Authorization, Cookie
31
+ Access-Control-Allow-Origin:
32
+ - "*"
33
+ X-Freesound-Host:
34
+ - fs-appserver1
35
+ body:
36
+ encoding: US-ASCII
37
+ string: |-
38
+ {
39
+ "num_results": 120,
40
+ "sounds": [
41
+ {
42
+ "analysis_stats": "http://www.freesound.org/api/sounds/123346/analysis/",
43
+ "analysis_frames": "http://www.freesound.org/data/analysis/123/123346_495253_frames.json",
44
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/123/123346_495253-hq.mp3",
45
+ "original_filename": "hello.wav",
46
+ "tags": [
47
+ "english",
48
+ "female",
49
+ "hello",
50
+ "latin",
51
+ "voice",
52
+ "woman"
53
+ ],
54
+ "url": "http://www.freesound.org/people/MatteusNova/sounds/123346/",
55
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/123/123346_495253-hq.ogg",
56
+ "similarity": "http://www.freesound.org/api/sounds/123346/similar/",
57
+ "serve": "http://www.freesound.org/api/sounds/123346/serve/",
58
+ "spectral_m": "http://www.freesound.org/data/displays/123/123346_495253_spec_M.jpg",
59
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/123/123346_495253-lq.mp3",
60
+ "user": {
61
+ "username": "MatteusNova",
62
+ "url": "http://www.freesound.org/people/MatteusNova/",
63
+ "ref": "http://www.freesound.org/api/people/MatteusNova/"
64
+ },
65
+ "spectral_l": "http://www.freesound.org/data/displays/123/123346_495253_spec_L.jpg",
66
+ "type": "wav",
67
+ "duration": 1.6739999999999999,
68
+ "waveform_l": "http://www.freesound.org/data/displays/123/123346_495253_wave_L.png",
69
+ "waveform_m": "http://www.freesound.org/data/displays/123/123346_495253_wave_M.png",
70
+ "ref": "http://www.freesound.org/api/sounds/123346/",
71
+ "id": 123346,
72
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/123/123346_495253-lq.ogg"
73
+ },
74
+ {
75
+ "analysis_stats": "http://www.freesound.org/api/sounds/107932/analysis/",
76
+ "analysis_frames": "http://www.freesound.org/data/analysis/107/107932_1838023_frames.json",
77
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/107/107932_1838023-hq.mp3",
78
+ "original_filename": "hello_hello.wav",
79
+ "tags": [
80
+ "female",
81
+ "hello",
82
+ "male",
83
+ "speech",
84
+ "talk",
85
+ "voice"
86
+ ],
87
+ "url": "http://www.freesound.org/people/golosiy/sounds/107932/",
88
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/107/107932_1838023-hq.ogg",
89
+ "similarity": "http://www.freesound.org/api/sounds/107932/similar/",
90
+ "serve": "http://www.freesound.org/api/sounds/107932/serve/",
91
+ "spectral_m": "http://www.freesound.org/data/displays/107/107932_1838023_spec_M.jpg",
92
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/107/107932_1838023-lq.mp3",
93
+ "user": {
94
+ "username": "golosiy",
95
+ "url": "http://www.freesound.org/people/golosiy/",
96
+ "ref": "http://www.freesound.org/api/people/golosiy/"
97
+ },
98
+ "spectral_l": "http://www.freesound.org/data/displays/107/107932_1838023_spec_L.jpg",
99
+ "type": "wav",
100
+ "duration": 1.16099773243,
101
+ "waveform_l": "http://www.freesound.org/data/displays/107/107932_1838023_wave_L.png",
102
+ "waveform_m": "http://www.freesound.org/data/displays/107/107932_1838023_wave_M.png",
103
+ "ref": "http://www.freesound.org/api/sounds/107932/",
104
+ "id": 107932,
105
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/107/107932_1838023-lq.ogg"
106
+ },
107
+ {
108
+ "analysis_stats": "http://www.freesound.org/api/sounds/164612/analysis/",
109
+ "analysis_frames": "http://www.freesound.org/data/analysis/164/164612_2982740_frames.json",
110
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/164/164612_2982740-hq.mp3",
111
+ "original_filename": "hello.wav",
112
+ "tags": [
113
+ "Hello",
114
+ "Voice",
115
+ "saying"
116
+ ],
117
+ "url": "http://www.freesound.org/people/steveukguy/sounds/164612/",
118
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/164/164612_2982740-hq.ogg",
119
+ "similarity": "http://www.freesound.org/api/sounds/164612/similar/",
120
+ "serve": "http://www.freesound.org/api/sounds/164612/serve/",
121
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/164/164612_2982740-lq.ogg",
122
+ "spectral_m": "http://www.freesound.org/data/displays/164/164612_2982740_spec_M.jpg",
123
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/164/164612_2982740-lq.mp3",
124
+ "user": {
125
+ "username": "steveukguy",
126
+ "url": "http://www.freesound.org/people/steveukguy/",
127
+ "ref": "http://www.freesound.org/api/people/steveukguy/"
128
+ },
129
+ "spectral_l": "http://www.freesound.org/data/displays/164/164612_2982740_spec_L.jpg",
130
+ "type": "wav",
131
+ "duration": 0.50376399999999999,
132
+ "waveform_l": "http://www.freesound.org/data/displays/164/164612_2982740_wave_L.png",
133
+ "waveform_m": "http://www.freesound.org/data/displays/164/164612_2982740_wave_M.png",
134
+ "ref": "http://www.freesound.org/api/sounds/164612/",
135
+ "id": 164612,
136
+ "pack": "http://www.freesound.org/api/packs/10190/"
137
+ },
138
+ {
139
+ "analysis_stats": "http://www.freesound.org/api/sounds/87410/analysis/",
140
+ "analysis_frames": "http://www.freesound.org/data/analysis/87/87410_1369331_frames.json",
141
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/87/87410_1369331-hq.mp3",
142
+ "original_filename": "hello.wav",
143
+ "tags": [
144
+ "cave",
145
+ "echo",
146
+ "hello",
147
+ "people",
148
+ "sounds"
149
+ ],
150
+ "url": "http://www.freesound.org/people/Mattlm/sounds/87410/",
151
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/87/87410_1369331-hq.ogg",
152
+ "similarity": "http://www.freesound.org/api/sounds/87410/similar/",
153
+ "serve": "http://www.freesound.org/api/sounds/87410/serve/",
154
+ "spectral_m": "http://www.freesound.org/data/displays/87/87410_1369331_spec_M.jpg",
155
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/87/87410_1369331-lq.mp3",
156
+ "user": {
157
+ "username": "Mattlm",
158
+ "url": "http://www.freesound.org/people/Mattlm/",
159
+ "ref": "http://www.freesound.org/api/people/Mattlm/"
160
+ },
161
+ "spectral_l": "http://www.freesound.org/data/displays/87/87410_1369331_spec_L.jpg",
162
+ "type": "wav",
163
+ "duration": 6.7000000000000002,
164
+ "waveform_l": "http://www.freesound.org/data/displays/87/87410_1369331_wave_L.png",
165
+ "waveform_m": "http://www.freesound.org/data/displays/87/87410_1369331_wave_M.png",
166
+ "ref": "http://www.freesound.org/api/sounds/87410/",
167
+ "id": 87410,
168
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/87/87410_1369331-lq.ogg"
169
+ },
170
+ {
171
+ "analysis_stats": "http://www.freesound.org/api/sounds/154600/analysis/",
172
+ "analysis_frames": "http://www.freesound.org/data/analysis/154/154600_2337290_frames.json",
173
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/154/154600_2337290-hq.mp3",
174
+ "original_filename": "Hello, Man! 1.wav",
175
+ "tags": [
176
+ "cool",
177
+ "hello",
178
+ "goofy-boy",
179
+ "man",
180
+ "cool-boy",
181
+ "goofy",
182
+ "hello-man",
183
+ "dudes",
184
+ "cool-dude",
185
+ "dude",
186
+ "goofy-dude",
187
+ "boy"
188
+ ],
189
+ "url": "http://www.freesound.org/people/ecfike/sounds/154600/",
190
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/154/154600_2337290-hq.ogg",
191
+ "similarity": "http://www.freesound.org/api/sounds/154600/similar/",
192
+ "serve": "http://www.freesound.org/api/sounds/154600/serve/",
193
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/154/154600_2337290-lq.ogg",
194
+ "spectral_m": "http://www.freesound.org/data/displays/154/154600_2337290_spec_M.jpg",
195
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/154/154600_2337290-lq.mp3",
196
+ "user": {
197
+ "username": "ecfike",
198
+ "url": "http://www.freesound.org/people/ecfike/",
199
+ "ref": "http://www.freesound.org/api/people/ecfike/"
200
+ },
201
+ "spectral_l": "http://www.freesound.org/data/displays/154/154600_2337290_spec_L.jpg",
202
+ "type": "wav",
203
+ "duration": 1.0162800000000001,
204
+ "waveform_l": "http://www.freesound.org/data/displays/154/154600_2337290_wave_L.png",
205
+ "waveform_m": "http://www.freesound.org/data/displays/154/154600_2337290_wave_M.png",
206
+ "ref": "http://www.freesound.org/api/sounds/154600/",
207
+ "id": 154600,
208
+ "pack": "http://www.freesound.org/api/packs/9550/"
209
+ },
210
+ {
211
+ "analysis_stats": "http://www.freesound.org/api/sounds/154599/analysis/",
212
+ "analysis_frames": "http://www.freesound.org/data/analysis/154/154599_2337290_frames.json",
213
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/154/154599_2337290-hq.mp3",
214
+ "original_filename": "Hello, Dude! 1.wav",
215
+ "tags": [
216
+ "cool",
217
+ "hello",
218
+ "goofy-boy",
219
+ "cool-boy",
220
+ "goofy",
221
+ "dudes",
222
+ "cool-dude",
223
+ "dude",
224
+ "hello-dude",
225
+ "goofy-dude",
226
+ "boy"
227
+ ],
228
+ "url": "http://www.freesound.org/people/ecfike/sounds/154599/",
229
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/154/154599_2337290-hq.ogg",
230
+ "similarity": "http://www.freesound.org/api/sounds/154599/similar/",
231
+ "serve": "http://www.freesound.org/api/sounds/154599/serve/",
232
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/154/154599_2337290-lq.ogg",
233
+ "spectral_m": "http://www.freesound.org/data/displays/154/154599_2337290_spec_M.jpg",
234
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/154/154599_2337290-lq.mp3",
235
+ "user": {
236
+ "username": "ecfike",
237
+ "url": "http://www.freesound.org/people/ecfike/",
238
+ "ref": "http://www.freesound.org/api/people/ecfike/"
239
+ },
240
+ "spectral_l": "http://www.freesound.org/data/displays/154/154599_2337290_spec_L.jpg",
241
+ "type": "wav",
242
+ "duration": 1.2703599999999999,
243
+ "waveform_l": "http://www.freesound.org/data/displays/154/154599_2337290_wave_L.png",
244
+ "waveform_m": "http://www.freesound.org/data/displays/154/154599_2337290_wave_M.png",
245
+ "ref": "http://www.freesound.org/api/sounds/154599/",
246
+ "id": 154599,
247
+ "pack": "http://www.freesound.org/api/packs/9550/"
248
+ },
249
+ {
250
+ "analysis_stats": "http://www.freesound.org/api/sounds/154598/analysis/",
251
+ "analysis_frames": "http://www.freesound.org/data/analysis/154/154598_2337290_frames.json",
252
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/154/154598_2337290-hq.mp3",
253
+ "original_filename": "Hello! 1.wav",
254
+ "tags": [
255
+ "cool",
256
+ "hello",
257
+ "goofy-boy",
258
+ "cool-boy",
259
+ "goofy",
260
+ "dudes",
261
+ "cool-dude",
262
+ "dude",
263
+ "goofy-dude",
264
+ "boy"
265
+ ],
266
+ "url": "http://www.freesound.org/people/ecfike/sounds/154598/",
267
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/154/154598_2337290-hq.ogg",
268
+ "similarity": "http://www.freesound.org/api/sounds/154598/similar/",
269
+ "serve": "http://www.freesound.org/api/sounds/154598/serve/",
270
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/154/154598_2337290-lq.ogg",
271
+ "spectral_m": "http://www.freesound.org/data/displays/154/154598_2337290_spec_M.jpg",
272
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/154/154598_2337290-lq.mp3",
273
+ "user": {
274
+ "username": "ecfike",
275
+ "url": "http://www.freesound.org/people/ecfike/",
276
+ "ref": "http://www.freesound.org/api/people/ecfike/"
277
+ },
278
+ "spectral_l": "http://www.freesound.org/data/displays/154/154598_2337290_spec_L.jpg",
279
+ "type": "wav",
280
+ "duration": 1.33388,
281
+ "waveform_l": "http://www.freesound.org/data/displays/154/154598_2337290_wave_L.png",
282
+ "waveform_m": "http://www.freesound.org/data/displays/154/154598_2337290_wave_M.png",
283
+ "ref": "http://www.freesound.org/api/sounds/154598/",
284
+ "id": 154598,
285
+ "pack": "http://www.freesound.org/api/packs/9550/"
286
+ },
287
+ {
288
+ "analysis_stats": "http://www.freesound.org/api/sounds/131062/analysis/",
289
+ "analysis_frames": "http://www.freesound.org/data/analysis/131/131062_2337290_frames.json",
290
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/131/131062_2337290-hq.mp3",
291
+ "original_filename": "Hello 3.wav",
292
+ "tags": [
293
+ "man",
294
+ "hello",
295
+ "male",
296
+ "words",
297
+ "nerd",
298
+ "word",
299
+ "voice",
300
+ "boy"
301
+ ],
302
+ "url": "http://www.freesound.org/people/ecfike/sounds/131062/",
303
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/131/131062_2337290-hq.ogg",
304
+ "similarity": "http://www.freesound.org/api/sounds/131062/similar/",
305
+ "serve": "http://www.freesound.org/api/sounds/131062/serve/",
306
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/131/131062_2337290-lq.ogg",
307
+ "spectral_m": "http://www.freesound.org/data/displays/131/131062_2337290_spec_M.jpg",
308
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/131/131062_2337290-lq.mp3",
309
+ "user": {
310
+ "username": "ecfike",
311
+ "url": "http://www.freesound.org/people/ecfike/",
312
+ "ref": "http://www.freesound.org/api/people/ecfike/"
313
+ },
314
+ "spectral_l": "http://www.freesound.org/data/displays/131/131062_2337290_spec_L.jpg",
315
+ "type": "wav",
316
+ "duration": 1.16503,
317
+ "waveform_l": "http://www.freesound.org/data/displays/131/131062_2337290_wave_L.png",
318
+ "waveform_m": "http://www.freesound.org/data/displays/131/131062_2337290_wave_M.png",
319
+ "ref": "http://www.freesound.org/api/sounds/131062/",
320
+ "id": 131062,
321
+ "pack": "http://www.freesound.org/api/packs/8210/"
322
+ },
323
+ {
324
+ "analysis_stats": "http://www.freesound.org/api/sounds/131061/analysis/",
325
+ "analysis_frames": "http://www.freesound.org/data/analysis/131/131061_2337290_frames.json",
326
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/131/131061_2337290-hq.mp3",
327
+ "original_filename": "Hello 1.wav",
328
+ "tags": [
329
+ "man",
330
+ "hello",
331
+ "male",
332
+ "words",
333
+ "word",
334
+ "voice",
335
+ "boy"
336
+ ],
337
+ "url": "http://www.freesound.org/people/ecfike/sounds/131061/",
338
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/131/131061_2337290-hq.ogg",
339
+ "similarity": "http://www.freesound.org/api/sounds/131061/similar/",
340
+ "serve": "http://www.freesound.org/api/sounds/131061/serve/",
341
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/131/131061_2337290-lq.ogg",
342
+ "spectral_m": "http://www.freesound.org/data/displays/131/131061_2337290_spec_M.jpg",
343
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/131/131061_2337290-lq.mp3",
344
+ "user": {
345
+ "username": "ecfike",
346
+ "url": "http://www.freesound.org/people/ecfike/",
347
+ "ref": "http://www.freesound.org/api/people/ecfike/"
348
+ },
349
+ "spectral_l": "http://www.freesound.org/data/displays/131/131061_2337290_spec_L.jpg",
350
+ "type": "wav",
351
+ "duration": 0.82238100000000003,
352
+ "waveform_l": "http://www.freesound.org/data/displays/131/131061_2337290_wave_L.png",
353
+ "waveform_m": "http://www.freesound.org/data/displays/131/131061_2337290_wave_M.png",
354
+ "ref": "http://www.freesound.org/api/sounds/131061/",
355
+ "id": 131061,
356
+ "pack": "http://www.freesound.org/api/packs/8210/"
357
+ },
358
+ {
359
+ "analysis_stats": "http://www.freesound.org/api/sounds/50780/analysis/",
360
+ "analysis_frames": "http://www.freesound.org/data/analysis/50/50780_322568_frames.json",
361
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/50/50780_322568-hq.mp3",
362
+ "original_filename": "hello.ogg",
363
+ "tags": [
364
+ "hello"
365
+ ],
366
+ "url": "http://www.freesound.org/people/smcameron/sounds/50780/",
367
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/50/50780_322568-hq.ogg",
368
+ "similarity": "http://www.freesound.org/api/sounds/50780/similar/",
369
+ "serve": "http://www.freesound.org/api/sounds/50780/serve/",
370
+ "spectral_m": "http://www.freesound.org/data/displays/50/50780_322568_spec_M.jpg",
371
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/50/50780_322568-lq.mp3",
372
+ "user": {
373
+ "username": "smcameron",
374
+ "url": "http://www.freesound.org/people/smcameron/",
375
+ "ref": "http://www.freesound.org/api/people/smcameron/"
376
+ },
377
+ "spectral_l": "http://www.freesound.org/data/displays/50/50780_322568_spec_L.jpg",
378
+ "type": "ogg",
379
+ "duration": 5.5631746031700002,
380
+ "waveform_l": "http://www.freesound.org/data/displays/50/50780_322568_wave_L.png",
381
+ "waveform_m": "http://www.freesound.org/data/displays/50/50780_322568_wave_M.png",
382
+ "ref": "http://www.freesound.org/api/sounds/50780/",
383
+ "id": 50780,
384
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/50/50780_322568-lq.ogg"
385
+ }
386
+ ],
387
+ "num_pages": 12,
388
+ "next": "http://www.freesound.org/api/sounds/search/?q=hello&p=2&f=duration:[0%20TO%2010]&s=score&g=&sounds_per_page=10"
389
+ }
390
+ http_version:
391
+ recorded_at: Sun, 17 Feb 2013 03:39:59 GMT
392
+ - request:
393
+ method: get
394
+ uri: http://www.freesound.org/api/sounds/search/?api_key=f21ede7f1694428ab829e72f52e3d2df&f=duration:%5B0%20TO%2010%5D&format=json&q=world&sounds_per_page=10
395
+ body:
396
+ encoding: US-ASCII
397
+ string: ""
398
+ headers:
399
+ Accept:
400
+ - "*/*"
401
+ User-Agent:
402
+ - Ruby
403
+ response:
404
+ status:
405
+ code: 200
406
+ message: OK
407
+ headers:
408
+ Server:
409
+ - nginx/1.0.15
410
+ Date:
411
+ - Sun, 17 Feb 2013 03:39:58 GMT
412
+ Content-Type:
413
+ - application/json; charset=utf-8
414
+ Transfer-Encoding:
415
+ - chunked
416
+ Connection:
417
+ - keep-alive
418
+ Vary:
419
+ - Authorization, Cookie
420
+ Access-Control-Allow-Origin:
421
+ - "*"
422
+ X-Freesound-Host:
423
+ - fs-appserver2
424
+ body:
425
+ encoding: US-ASCII
426
+ string: |-
427
+ {
428
+ "num_results": 428,
429
+ "sounds": [
430
+ {
431
+ "analysis_stats": "http://www.freesound.org/api/sounds/170719/analysis/",
432
+ "analysis_frames": "http://www.freesound.org/data/analysis/170/170719_2962530_frames.json",
433
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/170/170719_2962530-hq.mp3",
434
+ "original_filename": "End of the world (voice)",
435
+ "tags": [
436
+ "voice",
437
+ "world",
438
+ "deep",
439
+ "end",
440
+ "male",
441
+ "voiceover"
442
+ ],
443
+ "url": "http://www.freesound.org/people/Speedenza/sounds/170719/",
444
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/170/170719_2962530-hq.ogg",
445
+ "similarity": "http://www.freesound.org/api/sounds/170719/similar/",
446
+ "serve": "http://www.freesound.org/api/sounds/170719/serve/",
447
+ "spectral_m": "http://www.freesound.org/data/displays/170/170719_2962530_spec_M.jpg",
448
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/170/170719_2962530-lq.mp3",
449
+ "user": {
450
+ "username": "Speedenza",
451
+ "url": "http://www.freesound.org/people/Speedenza/",
452
+ "ref": "http://www.freesound.org/api/people/Speedenza/"
453
+ },
454
+ "spectral_l": "http://www.freesound.org/data/displays/170/170719_2962530_spec_L.jpg",
455
+ "type": "wav",
456
+ "duration": 3.4365800000000002,
457
+ "waveform_l": "http://www.freesound.org/data/displays/170/170719_2962530_wave_L.png",
458
+ "waveform_m": "http://www.freesound.org/data/displays/170/170719_2962530_wave_M.png",
459
+ "ref": "http://www.freesound.org/api/sounds/170719/",
460
+ "id": 170719,
461
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/170/170719_2962530-lq.ogg"
462
+ },
463
+ {
464
+ "analysis_stats": "http://www.freesound.org/api/sounds/173237/analysis/",
465
+ "analysis_frames": "http://www.freesound.org/data/analysis/173/173237_1904290_frames.json",
466
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/173/173237_1904290-hq.mp3",
467
+ "original_filename": "hello-world-by-ZX80.flac",
468
+ "tags": [
469
+ "collab-2",
470
+ "hello",
471
+ "data",
472
+ "ZX80",
473
+ "world",
474
+ "tape",
475
+ "recording",
476
+ "stream",
477
+ "Sinclair",
478
+ "hello-world"
479
+ ],
480
+ "url": "http://www.freesound.org/people/copyc4t/sounds/173237/",
481
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/173/173237_1904290-hq.ogg",
482
+ "similarity": "http://www.freesound.org/api/sounds/173237/similar/",
483
+ "serve": "http://www.freesound.org/api/sounds/173237/serve/",
484
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/173/173237_1904290-lq.ogg",
485
+ "spectral_m": "http://www.freesound.org/data/displays/173/173237_1904290_spec_M.jpg",
486
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/173/173237_1904290-lq.mp3",
487
+ "user": {
488
+ "username": "copyc4t",
489
+ "url": "http://www.freesound.org/people/copyc4t/",
490
+ "ref": "http://www.freesound.org/api/people/copyc4t/"
491
+ },
492
+ "spectral_l": "http://www.freesound.org/data/displays/173/173237_1904290_spec_L.jpg",
493
+ "type": "flac",
494
+ "duration": 6.9659899999999997,
495
+ "waveform_l": "http://www.freesound.org/data/displays/173/173237_1904290_wave_L.png",
496
+ "waveform_m": "http://www.freesound.org/data/displays/173/173237_1904290_wave_M.png",
497
+ "ref": "http://www.freesound.org/api/sounds/173237/",
498
+ "id": 173237,
499
+ "pack": "http://www.freesound.org/api/packs/10813/"
500
+ },
501
+ {
502
+ "analysis_stats": "http://www.freesound.org/api/sounds/129361/analysis/",
503
+ "analysis_frames": "http://www.freesound.org/data/analysis/129/129361_1928537_frames.json",
504
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/129/129361_1928537-hq.mp3",
505
+ "original_filename": "Discover the World and Change your mind",
506
+ "tags": [
507
+ "your",
508
+ "change",
509
+ "Discover",
510
+ "mind",
511
+ "world"
512
+ ],
513
+ "url": "http://www.freesound.org/people/leonschi13/sounds/129361/",
514
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/129/129361_1928537-hq.ogg",
515
+ "similarity": "http://www.freesound.org/api/sounds/129361/similar/",
516
+ "serve": "http://www.freesound.org/api/sounds/129361/serve/",
517
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/129/129361_1928537-lq.ogg",
518
+ "spectral_m": "http://www.freesound.org/data/displays/129/129361_1928537_spec_M.jpg",
519
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/129/129361_1928537-lq.mp3",
520
+ "user": {
521
+ "username": "leonschi13",
522
+ "url": "http://www.freesound.org/people/leonschi13/",
523
+ "ref": "http://www.freesound.org/api/people/leonschi13/"
524
+ },
525
+ "spectral_l": "http://www.freesound.org/data/displays/129/129361_1928537_spec_L.jpg",
526
+ "type": "mp3",
527
+ "duration": 4.2851499999999998,
528
+ "waveform_l": "http://www.freesound.org/data/displays/129/129361_1928537_wave_L.png",
529
+ "waveform_m": "http://www.freesound.org/data/displays/129/129361_1928537_wave_M.png",
530
+ "ref": "http://www.freesound.org/api/sounds/129361/",
531
+ "id": 129361,
532
+ "pack": "http://www.freesound.org/api/packs/8101/"
533
+ },
534
+ {
535
+ "analysis_stats": "http://www.freesound.org/api/sounds/151643/analysis/",
536
+ "analysis_frames": "http://www.freesound.org/data/analysis/151/151643_2747016_frames.json",
537
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/151/151643_2747016-hq.mp3",
538
+ "original_filename": "WWIII.wav",
539
+ "tags": [
540
+ "music",
541
+ "fictional",
542
+ "war",
543
+ "iii",
544
+ "world"
545
+ ],
546
+ "url": "http://www.freesound.org/people/hawkfoundation/sounds/151643/",
547
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/151/151643_2747016-hq.ogg",
548
+ "similarity": "http://www.freesound.org/api/sounds/151643/similar/",
549
+ "serve": "http://www.freesound.org/api/sounds/151643/serve/",
550
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/151/151643_2747016-lq.ogg",
551
+ "spectral_m": "http://www.freesound.org/data/displays/151/151643_2747016_spec_M.jpg",
552
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/151/151643_2747016-lq.mp3",
553
+ "user": {
554
+ "username": "hawkfoundation",
555
+ "url": "http://www.freesound.org/people/hawkfoundation/",
556
+ "ref": "http://www.freesound.org/api/people/hawkfoundation/"
557
+ },
558
+ "spectral_l": "http://www.freesound.org/data/displays/151/151643_2747016_spec_L.jpg",
559
+ "type": "wav",
560
+ "duration": 7.6250099999999996,
561
+ "waveform_l": "http://www.freesound.org/data/displays/151/151643_2747016_wave_L.png",
562
+ "waveform_m": "http://www.freesound.org/data/displays/151/151643_2747016_wave_M.png",
563
+ "ref": "http://www.freesound.org/api/sounds/151643/",
564
+ "id": 151643,
565
+ "pack": "http://www.freesound.org/api/packs/9375/"
566
+ },
567
+ {
568
+ "analysis_stats": "http://www.freesound.org/api/sounds/171104/analysis/",
569
+ "analysis_frames": "http://www.freesound.org/data/analysis/171/171104_2394245_frames.json",
570
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/171/171104_2394245-hq.mp3",
571
+ "original_filename": "kick_gettinglaid.wav",
572
+ "tags": [
573
+ "kick",
574
+ "layered",
575
+ "Wray",
576
+ "Deep",
577
+ "House",
578
+ "Bassdrum",
579
+ "drum",
580
+ "60",
581
+ "by",
582
+ "world",
583
+ "phase",
584
+ "Round",
585
+ "tr909",
586
+ "mpc",
587
+ "2012",
588
+ "2013",
589
+ "Kick",
590
+ "808",
591
+ "boomy",
592
+ "Dan",
593
+ "4000",
594
+ "best",
595
+ "Roland",
596
+ "kicks",
597
+ "brought",
598
+ "one",
599
+ "DWSD",
600
+ "rounded"
601
+ ],
602
+ "url": "http://www.freesound.org/people/DWSD/sounds/171104/",
603
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/171/171104_2394245-hq.ogg",
604
+ "similarity": "http://www.freesound.org/api/sounds/171104/similar/",
605
+ "serve": "http://www.freesound.org/api/sounds/171104/serve/",
606
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/171/171104_2394245-lq.ogg",
607
+ "spectral_m": "http://www.freesound.org/data/displays/171/171104_2394245_spec_M.jpg",
608
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/171/171104_2394245-lq.mp3",
609
+ "user": {
610
+ "username": "DWSD",
611
+ "url": "http://www.freesound.org/people/DWSD/",
612
+ "ref": "http://www.freesound.org/api/people/DWSD/"
613
+ },
614
+ "spectral_l": "http://www.freesound.org/data/displays/171/171104_2394245_spec_L.jpg",
615
+ "type": "wav",
616
+ "duration": 0.4839,
617
+ "waveform_l": "http://www.freesound.org/data/displays/171/171104_2394245_wave_L.png",
618
+ "waveform_m": "http://www.freesound.org/data/displays/171/171104_2394245_wave_M.png",
619
+ "ref": "http://www.freesound.org/api/sounds/171104/",
620
+ "id": 171104,
621
+ "pack": "http://www.freesound.org/api/packs/10679/"
622
+ },
623
+ {
624
+ "analysis_stats": "http://www.freesound.org/api/sounds/169428/analysis/",
625
+ "analysis_frames": "http://www.freesound.org/data/analysis/169/169428_2767799_frames.json",
626
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/169/169428_2767799-hq.mp3",
627
+ "original_filename": "deep effect 3.wav",
628
+ "tags": [
629
+ "out",
630
+ "world",
631
+ "underground",
632
+ "strange",
633
+ "alien",
634
+ "sweep",
635
+ "this",
636
+ "space",
637
+ "atmosphere"
638
+ ],
639
+ "url": "http://www.freesound.org/people/lamburg/sounds/169428/",
640
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/169/169428_2767799-hq.ogg",
641
+ "similarity": "http://www.freesound.org/api/sounds/169428/similar/",
642
+ "serve": "http://www.freesound.org/api/sounds/169428/serve/",
643
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/169/169428_2767799-lq.ogg",
644
+ "spectral_m": "http://www.freesound.org/data/displays/169/169428_2767799_spec_M.jpg",
645
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/169/169428_2767799-lq.mp3",
646
+ "user": {
647
+ "username": "lamburg",
648
+ "url": "http://www.freesound.org/people/lamburg/",
649
+ "ref": "http://www.freesound.org/api/people/lamburg/"
650
+ },
651
+ "spectral_l": "http://www.freesound.org/data/displays/169/169428_2767799_spec_L.jpg",
652
+ "type": "wav",
653
+ "duration": 8.3604800000000008,
654
+ "waveform_l": "http://www.freesound.org/data/displays/169/169428_2767799_wave_L.png",
655
+ "waveform_m": "http://www.freesound.org/data/displays/169/169428_2767799_wave_M.png",
656
+ "ref": "http://www.freesound.org/api/sounds/169428/",
657
+ "id": 169428,
658
+ "pack": "http://www.freesound.org/api/packs/10539/"
659
+ },
660
+ {
661
+ "analysis_stats": "http://www.freesound.org/api/sounds/167088/analysis/",
662
+ "analysis_frames": "http://www.freesound.org/data/analysis/167/167088_2790050_frames.json",
663
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/167/167088_2790050-hq.mp3",
664
+ "original_filename": "Sarangi -G3.wav",
665
+ "tags": [
666
+ "Strings",
667
+ "Violin",
668
+ "Ethnic",
669
+ "Indian",
670
+ "Erhu",
671
+ "Lyra",
672
+ "Kemanche",
673
+ "World",
674
+ "Sarangi"
675
+ ],
676
+ "url": "http://www.freesound.org/people/Fantom57/sounds/167088/",
677
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/167/167088_2790050-hq.ogg",
678
+ "similarity": "http://www.freesound.org/api/sounds/167088/similar/",
679
+ "serve": "http://www.freesound.org/api/sounds/167088/serve/",
680
+ "spectral_m": "http://www.freesound.org/data/displays/167/167088_2790050_spec_M.jpg",
681
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/167/167088_2790050-lq.mp3",
682
+ "user": {
683
+ "username": "Fantom57",
684
+ "url": "http://www.freesound.org/people/Fantom57/",
685
+ "ref": "http://www.freesound.org/api/people/Fantom57/"
686
+ },
687
+ "spectral_l": "http://www.freesound.org/data/displays/167/167088_2790050_spec_L.jpg",
688
+ "type": "wav",
689
+ "duration": 4.2761699999999996,
690
+ "waveform_l": "http://www.freesound.org/data/displays/167/167088_2790050_wave_L.png",
691
+ "waveform_m": "http://www.freesound.org/data/displays/167/167088_2790050_wave_M.png",
692
+ "ref": "http://www.freesound.org/api/sounds/167088/",
693
+ "id": 167088,
694
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/167/167088_2790050-lq.ogg"
695
+ },
696
+ {
697
+ "analysis_stats": "http://www.freesound.org/api/sounds/160895/analysis/",
698
+ "analysis_frames": "http://www.freesound.org/data/analysis/160/160895_2790050_frames.json",
699
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/160/160895_2790050-hq.mp3",
700
+ "original_filename": "Shakuhachi-breathy.WAV",
701
+ "tags": [
702
+ "World",
703
+ "Flute-Shakuhachi",
704
+ "Music",
705
+ "Japanese",
706
+ "Flute",
707
+ "Flute-Ethnic"
708
+ ],
709
+ "url": "http://www.freesound.org/people/Fantom57/sounds/160895/",
710
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/160/160895_2790050-hq.ogg",
711
+ "similarity": "http://www.freesound.org/api/sounds/160895/similar/",
712
+ "serve": "http://www.freesound.org/api/sounds/160895/serve/",
713
+ "spectral_m": "http://www.freesound.org/data/displays/160/160895_2790050_spec_M.jpg",
714
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/160/160895_2790050-lq.mp3",
715
+ "user": {
716
+ "username": "Fantom57",
717
+ "url": "http://www.freesound.org/people/Fantom57/",
718
+ "ref": "http://www.freesound.org/api/people/Fantom57/"
719
+ },
720
+ "spectral_l": "http://www.freesound.org/data/displays/160/160895_2790050_spec_L.jpg",
721
+ "type": "wav",
722
+ "duration": 6.9764600000000003,
723
+ "waveform_l": "http://www.freesound.org/data/displays/160/160895_2790050_wave_L.png",
724
+ "waveform_m": "http://www.freesound.org/data/displays/160/160895_2790050_wave_M.png",
725
+ "ref": "http://www.freesound.org/api/sounds/160895/",
726
+ "id": 160895,
727
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/160/160895_2790050-lq.ogg"
728
+ },
729
+ {
730
+ "analysis_stats": "http://www.freesound.org/api/sounds/160670/analysis/",
731
+ "analysis_frames": "http://www.freesound.org/data/analysis/160/160670_2790050_frames.json",
732
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/160/160670_2790050-hq.mp3",
733
+ "original_filename": "5-Dis 4.wav",
734
+ "tags": [
735
+ "Instruments",
736
+ "Sitar-Multisample",
737
+ "Oriental",
738
+ "India-Ethnic",
739
+ "World"
740
+ ],
741
+ "url": "http://www.freesound.org/people/Fantom57/sounds/160670/",
742
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/160/160670_2790050-hq.ogg",
743
+ "similarity": "http://www.freesound.org/api/sounds/160670/similar/",
744
+ "serve": "http://www.freesound.org/api/sounds/160670/serve/",
745
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/160/160670_2790050-lq.ogg",
746
+ "spectral_m": "http://www.freesound.org/data/displays/160/160670_2790050_spec_M.jpg",
747
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/160/160670_2790050-lq.mp3",
748
+ "user": {
749
+ "username": "Fantom57",
750
+ "url": "http://www.freesound.org/people/Fantom57/",
751
+ "ref": "http://www.freesound.org/api/people/Fantom57/"
752
+ },
753
+ "spectral_l": "http://www.freesound.org/data/displays/160/160670_2790050_spec_L.jpg",
754
+ "type": "wav",
755
+ "duration": 2.8980299999999999,
756
+ "waveform_l": "http://www.freesound.org/data/displays/160/160670_2790050_wave_L.png",
757
+ "waveform_m": "http://www.freesound.org/data/displays/160/160670_2790050_wave_M.png",
758
+ "ref": "http://www.freesound.org/api/sounds/160670/",
759
+ "id": 160670,
760
+ "pack": "http://www.freesound.org/api/packs/9930/"
761
+ },
762
+ {
763
+ "analysis_stats": "http://www.freesound.org/api/sounds/160669/analysis/",
764
+ "analysis_frames": "http://www.freesound.org/data/analysis/160/160669_2790050_frames.json",
765
+ "preview-hq-mp3": "http://www.freesound.org/data/previews/160/160669_2790050-hq.mp3",
766
+ "original_filename": "6-Gis4.wav",
767
+ "tags": [
768
+ "Instruments",
769
+ "Sitar-Multisample",
770
+ "Oriental",
771
+ "India-Ethnic",
772
+ "World"
773
+ ],
774
+ "url": "http://www.freesound.org/people/Fantom57/sounds/160669/",
775
+ "preview-hq-ogg": "http://www.freesound.org/data/previews/160/160669_2790050-hq.ogg",
776
+ "similarity": "http://www.freesound.org/api/sounds/160669/similar/",
777
+ "serve": "http://www.freesound.org/api/sounds/160669/serve/",
778
+ "preview-lq-ogg": "http://www.freesound.org/data/previews/160/160669_2790050-lq.ogg",
779
+ "spectral_m": "http://www.freesound.org/data/displays/160/160669_2790050_spec_M.jpg",
780
+ "preview-lq-mp3": "http://www.freesound.org/data/previews/160/160669_2790050-lq.mp3",
781
+ "user": {
782
+ "username": "Fantom57",
783
+ "url": "http://www.freesound.org/people/Fantom57/",
784
+ "ref": "http://www.freesound.org/api/people/Fantom57/"
785
+ },
786
+ "spectral_l": "http://www.freesound.org/data/displays/160/160669_2790050_spec_L.jpg",
787
+ "type": "wav",
788
+ "duration": 2.7038500000000001,
789
+ "waveform_l": "http://www.freesound.org/data/displays/160/160669_2790050_wave_L.png",
790
+ "waveform_m": "http://www.freesound.org/data/displays/160/160669_2790050_wave_M.png",
791
+ "ref": "http://www.freesound.org/api/sounds/160669/",
792
+ "id": 160669,
793
+ "pack": "http://www.freesound.org/api/packs/9930/"
794
+ }
795
+ ],
796
+ "num_pages": 43,
797
+ "next": "http://www.freesound.org/api/sounds/search/?q=world&p=2&f=duration:[0%20TO%2010]&s=score&g=&sounds_per_page=10"
798
+ }
799
+ http_version:
800
+ recorded_at: Sun, 17 Feb 2013 03:39:59 GMT
801
+ recorded_with: VCR 2.4.0