nu_wav 0.3.4 → 0.4.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/nu_wav.gemspec CHANGED
@@ -1,50 +1,25 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'nu_wav/version'
5
5
 
6
- Gem::Specification.new do |s|
7
- s.name = %q{nu_wav}
8
- s.version = "0.3.4"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "nu_wav"
8
+ spec.version = NuWav::VERSION
9
+ spec.authors = ["Andrew Kuklewicz"]
10
+ spec.email = ["andrew@beginsinwonder.com"]
11
+ spec.description = %q{NuWav is a pure ruby audio WAV file parser and writer. It supports Broadcast Wave Format (BWF), inclluding MPEG audio data, and the public radio standard cart chunk.}
12
+ spec.summary = %q{NuWav is a pure ruby audio WAV file parser and writer.}
13
+ spec.homepage = %q{http://github.com/kookster/nu_wav}
14
+ spec.license = "MIT"
9
15
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["kookster"]
12
- s.date = %q{2012-07-19}
13
- s.description = %q{NuWav is a pure ruby audio WAV file parser and writer. It supports Broadcast Wave Format (BWF), inclluding MPEG audio data, and the public radio standard cart chunk.}
14
- s.email = %q{andrew@beginsinwonder.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- "LICENSE",
21
- "README.rdoc",
22
- "Rakefile",
23
- "VERSION",
24
- "lib/nu_wav.rb",
25
- "nu_wav.gemspec",
26
- "test/helper.rb",
27
- "test/test_nu_wav.rb"
28
- ]
29
- s.homepage = %q{http://github.com/kookster/nu_wav}
30
- s.require_paths = ["lib"]
31
- s.rubygems_version = %q{1.4.2}
32
- s.summary = %q{NuWav is a pure ruby audio WAV file parser and writer.}
33
- s.test_files = [
34
- "test/helper.rb",
35
- "test/test_nu_wav.rb"
36
- ]
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
37
20
 
38
- if s.respond_to? :specification_version then
39
- s.specification_version = 3
21
+ spec.add_runtime_dependency "ruby-mp3info", ">= 0.6.13"
40
22
 
41
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
- s.add_runtime_dependency(%q<ruby-mp3info>, [">= 0.6.13"])
43
- else
44
- s.add_dependency(%q<ruby-mp3info>, [">= 0.6.13"])
45
- end
46
- else
47
- s.add_dependency(%q<ruby-mp3info>, [">= 0.6.13"])
48
- end
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "rake"
49
25
  end
50
-
Binary file
Binary file
Binary file
data/test/test_nu_wav.rb CHANGED
@@ -1,16 +1,15 @@
1
1
  require 'helper'
2
2
  require 'nu_wav'
3
3
  require 'tempfile'
4
- require 'ftools'
5
4
 
6
5
  class TestNuWav < Test::Unit::TestCase
7
6
  include NuWav
8
7
 
9
8
  def test_parse_wav
10
9
  memory_usage = `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes
11
- puts "begin test: #{memory_usage/1024} mb"
10
+ # puts "begin test: #{memory_usage/1024} mb"
12
11
  w = WaveFile.parse(File.expand_path(File.dirname(__FILE__) + '/files/test_basic.wav'))
13
- puts w
12
+ # puts w
14
13
  assert_equal 4260240, w.header.size
15
14
 
16
15
  assert_equal 2, w.chunks.size
@@ -25,24 +24,29 @@ class TestNuWav < Test::Unit::TestCase
25
24
 
26
25
  data = w.chunks[:data]
27
26
  assert_equal 4260204, data.size
28
-
27
+
28
+ File.delete('test_out.wav') rescue nil
29
29
  w.to_file('test_out.wav')
30
+ assert File.exists?('test_out.wav')
31
+ assert_equal File.size('test_out.wav'), 4260250
32
+
30
33
  memory_usage = `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes
31
- puts "end of test: #{memory_usage/1024} mb"
34
+ # puts "end of test: #{memory_usage/1024} mb"
35
+ File.delete('test_out.wav')
32
36
  end
33
37
 
34
38
  def test_parse_wav_with_bwf_and_cart_chunk
35
39
  memory_usage = `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes
36
- puts "begin test: #{memory_usage/1024} mb"
40
+ # puts "begin test: #{memory_usage/1024} mb"
37
41
 
38
- w = WaveFile.parse(File.expand_path(File.dirname(__FILE__) + '/files/AfropopW_040_SGMT01.wav'))
42
+ w = WaveFile.parse(File.expand_path(File.dirname(__FILE__) + '/files/test_bwf.wav'))
39
43
  memory_usage = `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes
40
- puts "after parse: #{memory_usage/1024} mb"
44
+ # puts "after parse: #{memory_usage/1024} mb"
41
45
 
42
46
  assert_equal 6, w.chunks.size
43
47
 
44
48
  # duration is calculated differently for mpeg and pcm
45
- assert_equal 1784, w.duration
49
+ assert_equal 60, w.duration
46
50
 
47
51
  # fmt
48
52
  assert_equal 2, w.chunks[:fmt].number_of_channels
@@ -54,42 +58,53 @@ class TestNuWav < Test::Unit::TestCase
54
58
  assert_equal 2, w.chunks[:fmt].head_layer
55
59
  assert_equal 256000, w.chunks[:fmt].head_bit_rate
56
60
  assert_equal 1, w.chunks[:fmt].head_mode
57
- assert_equal 1, w.chunks[:fmt].head_mode_ext
58
- assert_equal 0, w.chunks[:fmt].head_emphasis
59
- assert_equal 28, w.chunks[:fmt].head_flags
61
+ assert_equal 0, w.chunks[:fmt].head_mode_ext
62
+ assert_equal 1, w.chunks[:fmt].head_emphasis
63
+ assert_equal 30, w.chunks[:fmt].head_flags
60
64
 
61
65
  # fact
62
- assert_equal 78695424, w.chunks[:fact].samples_number
66
+ assert_equal 2646144, w.chunks[:fact].samples_number
63
67
 
64
68
  # mext
65
- assert_equal 7, w.chunks[:mext].sound_information
69
+ assert_equal 5, w.chunks[:mext].sound_information
66
70
  assert_equal 835, w.chunks[:mext].frame_size
67
71
 
68
72
  # bext
69
- assert_equal "A=MPEG1L2,F=44100,B=256,M=STEREO,T=CV_PcxTl2NP\r\n", unpad(w.chunks[:bext].coding_history)
73
+ assert_equal "A=MPEG1L2,F=44100,B=256,M=stereo,T=PRX", unpad(w.chunks[:bext].coding_history)
70
74
 
71
75
  # cart
72
76
  assert_equal '0101', w.chunks[:cart].version
73
- assert_equal 'Afropop 070524_Episode on 05/24/2007_sgmt 1', unpad(w.chunks[:cart].title)
74
- assert_equal 'Georges Collinet', unpad(w.chunks[:cart].artist)
75
- assert_equal '60314', unpad(w.chunks[:cart].cut_id)
76
- assert_equal '2007/05/24', unpad(w.chunks[:cart].start_date)
77
- assert_equal '16:00:00', unpad(w.chunks[:cart].start_time)
78
- assert_equal '2007/06/24', unpad(w.chunks[:cart].end_date)
79
- assert_equal '16:00:00', unpad(w.chunks[:cart].end_time)
80
- assert_equal 'ContentDepot', unpad(w.chunks[:cart].producer_app_id)
77
+ assert_equal "5: 415: Sound Opinions Show, 11/8/2013", unpad(w.chunks[:cart].title)
78
+ assert_equal "Sound Opinions", unpad(w.chunks[:cart].artist)
79
+ assert_equal '30014', unpad(w.chunks[:cart].cut_id)
80
+ assert_equal '2013/11/08', unpad(w.chunks[:cart].start_date)
81
+ assert_equal '00:00:00', unpad(w.chunks[:cart].start_time)
82
+ assert_equal '2013/11/14', unpad(w.chunks[:cart].end_date)
83
+ assert_equal '23:59:59', unpad(w.chunks[:cart].end_time)
84
+ assert_equal 'PRX', unpad(w.chunks[:cart].producer_app_id)
81
85
  assert_equal '1.0', unpad(w.chunks[:cart].producer_app_version)
82
86
 
83
87
  # data
84
- assert_equal 57040521, w.chunks[:data].size
88
+ assert_equal 1917995, w.chunks[:data].size
85
89
  memory_usage = `ps -o rss= -p #{Process.pid}`.to_i # in kilobytes
86
- puts "end of test: #{memory_usage/1024} mb"
90
+ # puts "end of test: #{memory_usage/1024} mb"
87
91
  end
88
92
 
89
93
  def test_from_mpeg
90
94
  w = WaveFile.from_mpeg(File.expand_path(File.dirname(__FILE__) + '/files/test.mp2'))
95
+
96
+ File.delete('test_from_mpeg.wav') rescue nil
91
97
  w.to_file('test_from_mpeg.wav')
98
+ assert File.exists?('test_from_mpeg.wav')
99
+ assert_equal File.size('test_from_mpeg.wav'), 182522
100
+ File.delete('test_from_mpeg.wav')
101
+
102
+
103
+ File.delete('test_from_mpeg.mp2') rescue nil
92
104
  w.write_data_file('test_from_mpeg.mp2')
105
+ assert File.exists?('test_from_mpeg.mp2')
106
+ assert_equal File.size('test_from_mpeg.mp2'), 179712
107
+ File.delete('test_from_mpeg.mp2')
93
108
  end
94
109
 
95
110
  def unpad(str)
metadata CHANGED
@@ -1,91 +1,108 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: nu_wav
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 4
10
- version: 0.3.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.2
11
5
  platform: ruby
12
- authors:
13
- - kookster
6
+ authors:
7
+ - Andrew Kuklewicz
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-07-19 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2013-11-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: ruby-mp3info
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 29
30
- segments:
31
- - 0
32
- - 6
33
- - 13
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
34
19
  version: 0.6.13
35
20
  type: :runtime
36
- version_requirements: *id001
37
- description: NuWav is a pure ruby audio WAV file parser and writer. It supports Broadcast Wave Format (BWF), inclluding MPEG audio data, and the public radio standard cart chunk.
38
- email: andrew@beginsinwonder.com
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.6.13
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: NuWav is a pure ruby audio WAV file parser and writer. It supports Broadcast
56
+ Wave Format (BWF), inclluding MPEG audio data, and the public radio standard cart
57
+ chunk.
58
+ email:
59
+ - andrew@beginsinwonder.com
39
60
  executables: []
40
-
41
61
  extensions: []
42
-
43
- extra_rdoc_files:
44
- - LICENSE
45
- - README.rdoc
46
- files:
62
+ extra_rdoc_files: []
63
+ files:
64
+ - .gitignore
65
+ - Gemfile
47
66
  - LICENSE
48
67
  - README.rdoc
49
68
  - Rakefile
50
- - VERSION
51
69
  - lib/nu_wav.rb
70
+ - lib/nu_wav/chunk.rb
71
+ - lib/nu_wav/version.rb
72
+ - lib/nu_wav/wave_file.rb
52
73
  - nu_wav.gemspec
74
+ - test/files/test.mp2
75
+ - test/files/test_basic.wav
76
+ - test/files/test_bwf.wav
53
77
  - test/helper.rb
54
78
  - test/test_nu_wav.rb
55
- has_rdoc: true
56
79
  homepage: http://github.com/kookster/nu_wav
57
- licenses: []
58
-
80
+ licenses:
81
+ - MIT
82
+ metadata: {}
59
83
  post_install_message:
60
84
  rdoc_options: []
61
-
62
- require_paths:
85
+ require_paths:
63
86
  - lib
64
- required_ruby_version: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- hash: 3
70
- segments:
71
- - 0
72
- version: "0"
73
- required_rubygems_version: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- hash: 3
79
- segments:
80
- - 0
81
- version: "0"
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
82
97
  requirements: []
83
-
84
98
  rubyforge_project:
85
- rubygems_version: 1.4.2
99
+ rubygems_version: 2.0.6
86
100
  signing_key:
87
- specification_version: 3
101
+ specification_version: 4
88
102
  summary: NuWav is a pure ruby audio WAV file parser and writer.
89
- test_files:
103
+ test_files:
104
+ - test/files/test.mp2
105
+ - test/files/test_basic.wav
106
+ - test/files/test_bwf.wav
90
107
  - test/helper.rb
91
108
  - test/test_nu_wav.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.3.4