youpy-scissor-echonest 0.0.1 → 0.0.2

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.
data/README.rdoc CHANGED
@@ -21,15 +21,17 @@ Scissor extension to use Echo Nest Developers API
21
21
 
22
22
  == Synopsis
23
23
 
24
+ require 'rubygems'
24
25
  require 'scissor/echonest'
25
26
 
26
27
  Scissor.echonest_api_key = 'YOUR_API_KEY'
27
- beats = Scissor('trans_europe_express.mp3').beats
28
28
 
29
- # sort beats by duration and write into file
30
- beats.
31
- sort_by {|beat| beat.duration }.
32
- inject(Scissor()) {|m, beat| m + beat } > 'sorted.mp3'
29
+ # sort beats by duration
30
+ beats = Scissor('trans_europe_express.mp3').beats.
31
+ sort_by {|beat| beat.duration }
32
+
33
+ # join beats and write into file
34
+ Scissor.join(beats) > 'sorted.mp3'
33
35
 
34
36
  == Copyright
35
37
 
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.1"
24
+ VERS = "0.0.2"
25
25
 
26
26
  REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
27
27
  CLEAN.include ['**/.*.sw?', '*.gem', '.config']
@@ -61,7 +61,8 @@ spec = Gem::Specification.new do |s|
61
61
  s.require_path = "lib"
62
62
  s.test_files = Dir["test/test_*.rb"]
63
63
 
64
- #s.add_dependency('activesupport', '>=1.3.1')
64
+ s.add_dependency('scissor', '>=0.0.19')
65
+ s.add_dependency('ruby-echonest', '>=0.0.3')
65
66
  #s.required_ruby_version = '>= 1.8.2'
66
67
 
67
68
  s.files = %w(README.rdoc ChangeLog Rakefile) +
@@ -16,18 +16,37 @@ module Scissor
16
16
  end
17
17
 
18
18
  def beats
19
- chunks = []
20
- tmpfile = Pathname.new('/tmp/scissor_echonest_temp_' + $$.to_s + '.mp3')
19
+ tempfile_for_echonest do |tmpfile|
20
+ chunks = []
21
+ scissor = to_file(tmpfile)
22
+
23
+ beats = echonest.get_beats(tmpfile)
24
+ beats.inject do |m, beat|
25
+ chunks << self[m.start, beat.start - m.start]
26
+ beat
27
+ end
28
+
29
+ chunks
30
+ end
31
+ end
21
32
 
22
- scissor = to_file(tmpfile)
33
+ def segments
34
+ tempfile_for_echonest do |tmpfile|
35
+ scissor = to_file(tmpfile)
23
36
 
24
- beats = echonest.get_beats(tmpfile)
25
- beats.inject do |m, beat|
26
- chunks << self[m.start, beat.start - m.start]
27
- beat
37
+ segments = echonest.get_segments(tmpfile)
38
+ segments.inject([]) do |chunks, segment|
39
+ chunks << self[segment.start, segment.duration]
40
+ chunks
41
+ end
28
42
  end
43
+ end
29
44
 
30
- chunks
45
+ private
46
+
47
+ def tempfile_for_echonest
48
+ tmpfile = Pathname.new('/tmp/scissor_echonest_temp_' + $$.to_s + '.mp3')
49
+ yield tmpfile
31
50
  ensure
32
51
  tmpfile.unlink
33
52
  end