youpy-scissor-echonest 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  = scissor-echonest
2
2
 
3
- Scissor extension to use Echo Nest Developers API
3
+ {Scissor}[http://github.com/youpy/scissor/tree/master] extension to use Echo Nest Developers API
4
4
 
5
5
  == Description
6
6
 
data/Rakefile CHANGED
@@ -21,7 +21,7 @@ DESCRIPTION = "Scissor extension to use Echo Nest Developers API"
21
21
  RUBYFORGE_PROJECT = "scissorechonest"
22
22
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
23
23
  BIN_FILES = %w( )
24
- VERS = "0.0.3"
24
+ VERS = "0.0.4"
25
25
 
26
26
  REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
27
27
  CLEAN.include ['**/.*.sw?', '*.gem', '.config']
@@ -1,6 +1,6 @@
1
1
  require 'scissor'
2
2
  require 'echonest'
3
- require 'scissor/echonest/meta'
3
+ require 'scissor/echonest/chunk_ext.rb'
4
4
 
5
5
  module Scissor
6
6
  def self.echonest_api_key=(echonest_api_key)
@@ -22,9 +22,17 @@ module Scissor
22
22
  scissor = to_file(tmpfile)
23
23
 
24
24
  beats = echonest.get_beats(tmpfile)
25
+
26
+ if beats.size != 0
27
+ chunk = self[0, beats.first.start]
28
+ beat = Beat.new(beats.first.start, 1.0)
29
+ chunk.set_delegate(beat)
30
+ chunks << chunk
31
+ end
32
+
25
33
  beats.inject do |m, beat|
26
34
  chunk = self[m.start, beat.start - m.start]
27
- Echonest::Meta::Beat.init(chunk, m)
35
+ chunk.set_delegate(m)
28
36
  chunks << chunk
29
37
  beat
30
38
  end
@@ -40,7 +48,7 @@ module Scissor
40
48
  segments = echonest.get_segments(tmpfile)
41
49
  segments.inject([]) do |chunks, segment|
42
50
  chunk = self[segment.start, segment.duration]
43
- Echonest::Meta::Segment.init(chunk, segment)
51
+ chunk.set_delegate(segment)
44
52
  chunks << chunk
45
53
  chunks
46
54
  end
@@ -0,0 +1,11 @@
1
+ module Scissor
2
+ class Chunk
3
+ def set_delegate(delegate)
4
+ @delegate = delegate
5
+ end
6
+
7
+ def method_missing(name, *args, &block)
8
+ @delegate.send(name, *args, &block)
9
+ end
10
+ end
11
+ end
@@ -21,11 +21,15 @@ describe Scissor do
21
21
  scissor.stub!(:echonest).and_return(api)
22
22
 
23
23
  beats = scissor.beats
24
- beats.size.should eql(384)
24
+ beats.size.should eql(385)
25
25
  beats[0].should be_an_instance_of(Scissor::Chunk)
26
- beats[0].duration.should eql(0.47604)
26
+ beats[0].duration.should eql(0.35812)
27
27
  beats[0].fragments.first.filename.should eql(fixture('sample.mp3'))
28
- beats[0].confidence.should eql(0.296)
28
+ beats[0].confidence.should eql(1.0)
29
+ beats[1].should be_an_instance_of(Scissor::Chunk)
30
+ beats[1].duration.should eql(0.47604)
31
+ beats[1].fragments.first.filename.should eql(fixture('sample.mp3'))
32
+ beats[1].confidence.should eql(0.296)
29
33
  end
30
34
 
31
35
  it 'should get segments' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: youpy-scissor-echonest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - youpy
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-23 00:00:00 -07:00
12
+ date: 2009-08-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -54,10 +54,11 @@ files:
54
54
  - spec/spec_helper.rb
55
55
  - lib/scissor
56
56
  - lib/scissor/echonest
57
- - lib/scissor/echonest/meta.rb
57
+ - lib/scissor/echonest/chunk_ext.rb
58
58
  - lib/scissor/echonest.rb
59
59
  has_rdoc: true
60
60
  homepage: http://scissorechonest.rubyforge.org
61
+ licenses:
61
62
  post_install_message:
62
63
  rdoc_options:
63
64
  - --title
@@ -89,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
90
  requirements: []
90
91
 
91
92
  rubyforge_project: scissorechonest
92
- rubygems_version: 1.2.0
93
+ rubygems_version: 1.3.5
93
94
  signing_key:
94
95
  specification_version: 2
95
96
  summary: Scissor extension to use Echo Nest Developers API
@@ -1,32 +0,0 @@
1
- module Scissor
2
- module Echonest
3
- module Meta
4
- module Beat
5
- def self.init(obj, beat)
6
- obj.extend self
7
- obj.instance_eval {
8
- @confidence = beat.confidence
9
- @start = beat.start
10
- }
11
- end
12
-
13
- attr_reader :confidence, :start
14
- end
15
-
16
- module Segment
17
- def self.init(obj, segment)
18
- obj.extend self
19
- obj.instance_eval {
20
- @start = segment.start
21
- @loudness = segment.loudness
22
- @max_loudness = segment.max_loudness
23
- @pitches = segment.pitches
24
- @timbre = segment.timbre
25
- }
26
- end
27
-
28
- attr_reader :start, :loudness, :max_loudness, :pitches, :timbre
29
- end
30
- end
31
- end
32
- end