nu_wav 0.4.2 → 0.4.3
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.
- checksums.yaml +6 -14
- data/README.rdoc +27 -3
- data/lib/nu_wav.rb +10 -0
- data/lib/nu_wav/chunk.rb +2 -3
- data/lib/nu_wav/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MmNkYTA1YTdjOTgwZmMzODA3ZWQyOTYxZWJhNzAzZTNjOWMzMzRiYmYyN2Mw
|
10
|
-
Zjg1MzdiODUzZDE5MmQyZmY1YWM4NjRiZTdiNTY1ZDRlMDZiMDA1MmE4OTAw
|
11
|
-
NDZhODE0OTAyYWVmYjJlMzJkYTkxZjI5MjljYzQ0NDkzNzJiZTk=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzU4YTYxN2YxZDY3NGE2ODdkOTExOTU3YjRlYTQ4NTYwMDNkZmRhNmY4N2Q1
|
14
|
-
ZDdiY2NkZGExMzlkY2YxYzA2OTU1NzUxZmIxYzAyNWFhMmNiMmQ1ZGY0YjJk
|
15
|
-
YzBiNzAyYWViNzRiM2VmY2Q5ZTU4MDEwOGViZWIyMTdjYTk2NjU=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2a98052f77005eea3169e6dcad060615a4c538ce
|
4
|
+
data.tar.gz: 3008e293f4a03291e3a13b8666ea15ac14d52e34
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7a376f0947dcefd56e0c1bafaef0021057a5b2c6574831bdb09c8be8b92d3f1e169dd64f1dd680b02648cac111a510164519636b934dd5c4874952e702a3e97a
|
7
|
+
data.tar.gz: 48ab57391f54d3ed2b6a4657dd6a60220f8aabaa6ff7112cab6d02cb9e2daccb0c14929b70c9f4fd688622df77b26e9a8b3f5025ea55aaf4e443e97a85c06ceb
|
data/README.rdoc
CHANGED
@@ -1,10 +1,34 @@
|
|
1
|
-
= nu_wav
|
1
|
+
= NuWav Ruby Gem (nu_wav)
|
2
|
+
|
3
|
+
[](https://travis-ci.org/kookster/nu_wav)
|
2
4
|
|
3
5
|
NuWav is a pure Ruby audio WAVE file parser and writer.
|
4
6
|
|
5
|
-
It currently has support for basic WAVE files, Broadcast Wave Format (bext and mext chunks), and cart chunk.
|
7
|
+
It currently has support for basic WAVE files, Broadcast Wave Format (bext and mext chunks), and the cart chunk.
|
8
|
+
It will parse other chunks, but doesn't necessarily provide specific parsing for them.
|
9
|
+
|
10
|
+
It will look for a class based on the chunk name, so if you want to add 'fact' chunk parsing, you need to define a class like this (n.b. 'fact' chunks are already supported, this is an example from the code):
|
11
|
+
|
12
|
+
```
|
13
|
+
module NuWav
|
14
|
+
class FactChunk < NuWav::Chunk
|
15
|
+
attr_accessor :samples_number
|
16
|
+
|
17
|
+
def parse
|
18
|
+
@samples_number = read_dword(0)
|
19
|
+
end
|
6
20
|
|
7
|
-
|
21
|
+
def to_s
|
22
|
+
"<chunk type:fact samples_number:#{@samples_number} />"
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_binary
|
26
|
+
"fact" + write_dword(4) + write_dword(@samples_number)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
```
|
8
32
|
|
9
33
|
== Note on Patches/Pull Requests
|
10
34
|
|
data/lib/nu_wav.rb
CHANGED
@@ -18,6 +18,8 @@ module NuWav
|
|
18
18
|
|
19
19
|
DEBUG = ENV['NU_WAV_DEBUG']
|
20
20
|
|
21
|
+
TMP_FILE_DIR = ENV['NU_WAV_TMP_DIR'] || '/tmp/'
|
22
|
+
|
21
23
|
# 1 is standard integer based, 3 is the floating point PCM
|
22
24
|
PCM_INTEGER_COMPRESSION = 1
|
23
25
|
PCM_FLOATING_COMPRESSION = 3
|
@@ -43,4 +45,12 @@ module NuWav
|
|
43
45
|
class NotRIFFFormat < StandardError; end
|
44
46
|
class NotWAVEFormat < StandardError; end
|
45
47
|
|
48
|
+
def self.temp_file(base_file_name=nil, keep_open=false, keep_textmode=false)
|
49
|
+
FileUtils.mkdir_p(NuWav::TMP_FILE_DIR) unless File.exists?(NuWav::TMP_FILE_DIR)
|
50
|
+
Tempfile.new(base_file_name, NuWav::TMP_FILE_DIR).tap do |tmp|
|
51
|
+
tmp.binmode unless keep_textmode
|
52
|
+
tmp.close unless keep_open
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
46
56
|
end
|
data/lib/nu_wav/chunk.rb
CHANGED
@@ -275,7 +275,7 @@ module NuWav
|
|
275
275
|
def self.parse(id, size, file)
|
276
276
|
|
277
277
|
# tmp_data = File.open('./data_chunk.mp2', 'wb')
|
278
|
-
tmp_data =
|
278
|
+
tmp_data = NuWav.temp_file('data_chunk', true)
|
279
279
|
tmp_data.binmode
|
280
280
|
|
281
281
|
remaining = size
|
@@ -291,7 +291,7 @@ module NuWav
|
|
291
291
|
end
|
292
292
|
|
293
293
|
def self.new_from_file(file)
|
294
|
-
tmp_data =
|
294
|
+
tmp_data = NuWav.temp_file('data_chunk', true)
|
295
295
|
tmp_data.binmode
|
296
296
|
FileUtils.cp(file.path, tmp_data.path)
|
297
297
|
tmp_data.rewind
|
@@ -326,6 +326,5 @@ module NuWav
|
|
326
326
|
out = "data" + write_dword(d.size) + d
|
327
327
|
out
|
328
328
|
end
|
329
|
-
|
330
329
|
end
|
331
330
|
end
|
data/lib/nu_wav/version.rb
CHANGED
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nu_wav
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kuklewicz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-mp3info
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.6.13
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.6.13
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -42,14 +42,14 @@ dependencies:
|
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description: NuWav is a pure ruby audio WAV file parser and writer. It supports Broadcast
|
@@ -86,17 +86,17 @@ require_paths:
|
|
86
86
|
- lib
|
87
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- -
|
89
|
+
- - '>='
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '0'
|
92
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
requirements: []
|
98
98
|
rubyforge_project:
|
99
|
-
rubygems_version: 2.
|
99
|
+
rubygems_version: 2.1.11
|
100
100
|
signing_key:
|
101
101
|
specification_version: 4
|
102
102
|
summary: NuWav is a pure ruby audio WAV file parser and writer.
|