tsunami 0.1.1 → 0.2.0

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/Rakefile CHANGED
@@ -11,7 +11,7 @@ begin
11
11
  gem.homepage = "http://github.com/zmack/tsunami"
12
12
  gem.authors = ["Andrei Bocan"]
13
13
  gem.add_dependency "rmagick", ">= 0"
14
- gem.add_dependency "ruby-audio", ">= 0"
14
+ gem.add_dependency "ruby-audio", ">= 1.0.0"
15
15
  gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
16
16
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
17
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
data/lib/buffer_ext.rb ADDED
@@ -0,0 +1,15 @@
1
+ unless RubyAudio::Buffer.included_modules.include? Enumerable
2
+
3
+ module RubyAudio
4
+ class Buffer
5
+ include Enumerable
6
+
7
+ def each
8
+ self.size.times do |i|
9
+ yield self[i]
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ end
data/lib/tsunami.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  #this class was inspired by rjp's awesome http://github.com/rjp/cdcover
2
2
  require 'rubygems'
3
3
  require 'RMagick'
4
- require 'audio/sndfile'
4
+ require 'ruby-audio'
5
+ require 'buffer_ext.rb'
5
6
 
6
7
  class Tsunami
7
8
 
8
9
  def initialize audio_file
9
- @audio_file = Audio::Soundfile.new audio_file
10
+ @audio_file = RubyAudio::Sound.new audio_file
10
11
  end
11
12
 
12
13
  def create_waveform(image_file, options = {})
@@ -26,12 +27,18 @@ class Tsunami
26
27
 
27
28
  def fill_buckets
28
29
  @audio_file.seek(0,0)
29
- frames = @audio_file.read_float(@audio_file.frames).channel(0)
30
+ frames = @audio_file.read("float", @audio_file.info.frames)
30
31
  buckets = []
31
32
  frame_index = 0
32
- frames_per_pixel = frames.length / @width
33
+ frames_per_pixel = frames.size / @width
34
+
35
+ frames.each do |channel_frames|
36
+ if @audio_file.info.channels > 1
37
+ frame = channel_frames[0]
38
+ else
39
+ frame = channel_frames
40
+ end
33
41
 
34
- frames.each do |frame|
35
42
  index = frame_index / frames_per_pixel
36
43
  buckets[index] ||= { :max => -1, :min => 1 }
37
44
 
data/tsunami.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tsunami}
8
- s.version = "0.1.1"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andrei Bocan"]
12
- s.date = %q{2010-03-24}
12
+ s.date = %q{2010-03-25}
13
13
  s.description = %q{For reals, it draws waveforms, man}
14
14
  s.email = %q{zmaxor@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "README.rdoc",
24
24
  "Rakefile",
25
25
  "VERSION",
26
+ "lib/buffer_ext.rb",
26
27
  "lib/tsunami.rb",
27
28
  "test/helper.rb",
28
29
  "test/test_tsunami.rb",
@@ -44,16 +45,16 @@ Gem::Specification.new do |s|
44
45
 
45
46
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
46
47
  s.add_runtime_dependency(%q<rmagick>, [">= 0"])
47
- s.add_runtime_dependency(%q<ruby-audio>, [">= 0"])
48
+ s.add_runtime_dependency(%q<ruby-audio>, [">= 1.0.0"])
48
49
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
49
50
  else
50
51
  s.add_dependency(%q<rmagick>, [">= 0"])
51
- s.add_dependency(%q<ruby-audio>, [">= 0"])
52
+ s.add_dependency(%q<ruby-audio>, [">= 1.0.0"])
52
53
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
53
54
  end
54
55
  else
55
56
  s.add_dependency(%q<rmagick>, [">= 0"])
56
- s.add_dependency(%q<ruby-audio>, [">= 0"])
57
+ s.add_dependency(%q<ruby-audio>, [">= 1.0.0"])
57
58
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
58
59
  end
59
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tsunami
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Bocan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-24 00:00:00 +02:00
12
+ date: 2010-03-25 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: "0"
33
+ version: 1.0.0
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: thoughtbot-shoulda
@@ -58,6 +58,7 @@ files:
58
58
  - README.rdoc
59
59
  - Rakefile
60
60
  - VERSION
61
+ - lib/buffer_ext.rb
61
62
  - lib/tsunami.rb
62
63
  - test/helper.rb
63
64
  - test/test_tsunami.rb