sndfile 0.2.0 → 1.0.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.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.travis.yml +1 -1
- data/README.md +16 -4
- data/lib/sndfile.rb +1 -0
- data/lib/sndfile/file.rb +23 -89
- data/lib/sndfile/info.rb +104 -0
- data/lib/sndfile/version.rb +1 -1
- data/sndfile.gemspec +2 -0
- data/spec/file_spec.rb +22 -3
- data/spec/integration_spec.rb +6 -6
- metadata +40 -42
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c232895c9482256a13565c57f1b26856ac2ccd9c
|
4
|
+
data.tar.gz: bb4388474d9bfbab60c29f1eb8e42881bd96d44a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ea60311ff4bbe116e07ffb3f4ea6f29e8d72e9429090223594a0ce8773b9222645815433bd25b1c1a897b9bcbef49f70a1e16d736de9516d70b5a729524a79b0
|
7
|
+
data.tar.gz: 7c173364cdf387773e3896c8a1cc6b526af6751e67f90510561cd0d251c7867b93587b1017dda8c1e6cbdccc579997c78651075217a1e2c7382488c9e0645ef8
|
data/.rspec
ADDED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -31,21 +31,32 @@ or, in a Gemfile
|
|
31
31
|
|
32
32
|
Usage
|
33
33
|
=====
|
34
|
+
|
34
35
|
Here's a simple example, that reads an arbitrary source file and produces a WAV file at half the volume:
|
35
36
|
|
36
37
|
fin = Sndfile::File.new(inpath)
|
37
|
-
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => fin.channels, :samplerate => fin.samplerate) do |fout|
|
38
|
+
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => fin.info.channels, :samplerate => fin.info.samplerate) do |fout|
|
38
39
|
while data = fin.read(10000)
|
39
40
|
fout.write(data * 0.5)
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
43
|
-
|
44
|
+
The audio file info, available as `Sndfile::File#info` as per the above example, is an instance of `Sndfile::Info`. You can also query it directly for a file:
|
45
|
+
|
46
|
+
info = Sndfile::File.info(filepath) #=> an instance of Sndfile::Info
|
47
|
+
# => info.format
|
48
|
+
# => info.encoding
|
49
|
+
# => info.endian
|
50
|
+
# => info.frames
|
51
|
+
# => info.samplerate
|
52
|
+
# => info.channels
|
53
|
+
|
54
|
+
See the [RDOC](http://rubydoc.info/gems/sndfile) for complete details
|
44
55
|
|
45
56
|
Compatibility
|
46
57
|
=============
|
47
58
|
|
48
|
-
|
59
|
+
Known to work with MRI ruby 1.9.3, and 2.0.0
|
49
60
|
|
50
61
|
|
51
62
|
History
|
@@ -53,7 +64,8 @@ History
|
|
53
64
|
|
54
65
|
Release notes:
|
55
66
|
|
56
|
-
* 0.
|
67
|
+
* 1.0.0 - Add Sndfile::Info. Deprecate individual accessors. No longer support ruby 1.8.7
|
68
|
+
* 0.2.0 - Support ruby 1.8.7. Thanks to [youpy](https://github.com/youpy)
|
57
69
|
* 0.1.3 - Back to ruby-gsl-ng: memory leaks fixed
|
58
70
|
* 0.1.2 - Use ruby-gsl-ngx to avoid memory leaks
|
59
71
|
* 0.1.1 - Clean up vestigial includes in integration test
|
data/lib/sndfile.rb
CHANGED
data/lib/sndfile/file.rb
CHANGED
@@ -3,6 +3,8 @@ module Sndfile
|
|
3
3
|
class File
|
4
4
|
include SndfileApi
|
5
5
|
|
6
|
+
attr_reader :info
|
7
|
+
|
6
8
|
#
|
7
9
|
# Without a block, this is the same as File.new(path, opts).
|
8
10
|
# With a block, yields the File object to the block and ensures that
|
@@ -21,6 +23,13 @@ module Sndfile
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
26
|
+
# Returns the `Info` for a file.
|
27
|
+
#
|
28
|
+
# Equivalent to File.open(path) { |f| f.info }
|
29
|
+
def self.info(path)
|
30
|
+
open(path) { |f| f.info }
|
31
|
+
end
|
32
|
+
|
24
33
|
#
|
25
34
|
# Create a File instance. Options are:
|
26
35
|
#
|
@@ -46,13 +55,15 @@ module Sndfile
|
|
46
55
|
)
|
47
56
|
|
48
57
|
@path = path
|
49
|
-
|
58
|
+
sfinfo = SfInfo.new
|
50
59
|
if opts.mode == :WRITE or opts.format == :RAW
|
51
|
-
|
52
|
-
|
53
|
-
|
60
|
+
sfinfo[:format] = Enums::Format[opts.format]|Enums::Encoding[opts.encoding]|Enums::Endian[opts.endian]
|
61
|
+
sfinfo[:channels] = opts.channels
|
62
|
+
sfinfo[:samplerate] = opts.samplerate
|
54
63
|
end
|
55
|
-
@sfpointer = sf_open(path.to_s, opts.mode,
|
64
|
+
@sfpointer = sf_open(path.to_s, opts.mode, sfinfo)
|
65
|
+
@info = Info.from_sfinfo(sfinfo)
|
66
|
+
|
56
67
|
check_error
|
57
68
|
sf_command @sfpointer, :SFC_SET_CLIPPING, nil, 1
|
58
69
|
check_error
|
@@ -65,90 +76,13 @@ module Sndfile
|
|
65
76
|
check_error sf_close(@sfpointer)
|
66
77
|
end
|
67
78
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
# :RAW - RAW PCM data.
|
74
|
-
# :PAF - Ensoniq PARIS file format.
|
75
|
-
# :SVX - Amiga IFF / SVX8 / SV16 format.
|
76
|
-
# :NIST - Sphere NIST format.
|
77
|
-
# :VOC - VOC files.
|
78
|
-
# :IRCAM - Berkeley/IRCAM/CARL
|
79
|
-
# :W64 - Sonic Foundry's 64 bit RIFF/WAV
|
80
|
-
# :MAT4 - Matlab (tm) V4.2 / GNU Octave 2.0
|
81
|
-
# :MAT5 - Matlab (tm) V5.0 / GNU Octave 2.1
|
82
|
-
# :PVF - Portable Voice Format
|
83
|
-
# :XI - Fasttracker 2 Extended Instrument
|
84
|
-
# :HTK - HMM Tool Kit format
|
85
|
-
# :SDS - Midi Sample Dump Standard
|
86
|
-
# :AVR - Audio Visual Research
|
87
|
-
# :WAVEX - MS WAVE with WAVEFORMATEX
|
88
|
-
# :SD2 - Sound Designer 2
|
89
|
-
# :FLAC - FLAC lossless file format
|
90
|
-
# :CAF - Core Audio File format
|
91
|
-
# :WVE - Psion WVE format
|
92
|
-
# :OGG - Xiph OGG container
|
93
|
-
# :MPC2K - Akai MPC 2000 sampler
|
94
|
-
# :RF64 - RF64 WAV file
|
95
|
-
def format
|
96
|
-
Format[@sfinfo[:format] & FORMAT_MASK]
|
97
|
-
end
|
98
|
-
|
99
|
-
# Returns the encoding of the file data, which is one of:
|
100
|
-
#
|
101
|
-
# :PCM_S8 - Signed 8 bit data
|
102
|
-
# :PCM_16 - Signed 16 bit data
|
103
|
-
# :PCM_24 - Signed 24 bit data
|
104
|
-
# :PCM_32 - Signed 32 bit data
|
105
|
-
# :PCM_U8 - Unsigned 8 bit data (WAV and RAW only)
|
106
|
-
# :FLOAT - 32 bit float data
|
107
|
-
# :DOUBLE - 64 bit float data
|
108
|
-
# :ULAW - U-Law encoded.
|
109
|
-
# :ALAW - A-Law encoded.
|
110
|
-
# :IMA_ADPCM - IMA ADPCM.
|
111
|
-
# :MS_ADPCM - Microsoft ADPCM.
|
112
|
-
# :GSM610 - GSM 6.10 encoding.
|
113
|
-
# :VOX_ADPCM - Oki Dialogic ADPCM encoding.
|
114
|
-
# :G721_32 - 32kbs G721 ADPCM encoding.
|
115
|
-
# :G723_24 - 24kbs G723 ADPCM encoding.
|
116
|
-
# :G723_40 - 40kbs G723 ADPCM encoding.
|
117
|
-
# :DWVW_12 - 12 bit Delta Width Variable Word encoding.
|
118
|
-
# :DWVW_16 - 16 bit Delta Width Variable Word encoding.
|
119
|
-
# :DWVW_24 - 24 bit Delta Width Variable Word encoding.
|
120
|
-
# :DWVW_N - N bit Delta Width Variable Word encoding.
|
121
|
-
# :DPCM_8 - 8 bit differential PCM (XI only)
|
122
|
-
# :DPCM_16 - 16 bit differential PCM (XI only)
|
123
|
-
# :VORBIS - Xiph Vorbis encoding.
|
124
|
-
def encoding
|
125
|
-
Encoding[@sfinfo[:format] & ENCODING_MASK]
|
126
|
-
end
|
127
|
-
|
128
|
-
# Returns the endian-ness of the data, one of:
|
129
|
-
#
|
130
|
-
# :FILE - Default file endian-ness.
|
131
|
-
# :LITTLE - Force little endian-ness.
|
132
|
-
# :BIG - Force big endian-ness.
|
133
|
-
# :CPU - Force CPU endian-ness.
|
134
|
-
def endian
|
135
|
-
Endian[@sfinfo[:format] & ENDIAN_MASK]
|
136
|
-
end
|
137
|
-
|
138
|
-
# Returns the number of frames (samples) in the file
|
139
|
-
def frames
|
140
|
-
@sfinfo[:frames]
|
141
|
-
end
|
142
|
-
|
143
|
-
# Returns the sample rate, frames per second
|
144
|
-
def samplerate
|
145
|
-
@sfinfo[:samplerate]
|
79
|
+
Info.keys.each do |method|
|
80
|
+
define_method method do
|
81
|
+
warn "[DEPRECATION]: Sndfile::File: `#{method}` is deprecated. Use `info.#{method}` instead"
|
82
|
+
info.send method
|
83
|
+
end
|
146
84
|
end
|
147
85
|
|
148
|
-
# Returns the number of channels of data
|
149
|
-
def channels
|
150
|
-
@sfinfo[:channels]
|
151
|
-
end
|
152
86
|
|
153
87
|
# Reads frames from the file, returning the data in a GSLng::Matrix of
|
154
88
|
# dimensions frames x channels. (For convenience, the height and width
|
@@ -162,14 +96,14 @@ module Sndfile
|
|
162
96
|
# May raise Sndfile::Error in case of error.
|
163
97
|
def read(nframes)
|
164
98
|
|
165
|
-
buf = GSLng::Matrix.new(nframes, channels)
|
99
|
+
buf = GSLng::Matrix.new(nframes, info.channels)
|
166
100
|
|
167
101
|
count = sf_readf_double @sfpointer, buf.data_ptr, nframes
|
168
102
|
check_error
|
169
103
|
case count
|
170
104
|
when 0 then nil
|
171
105
|
when nframes then buf
|
172
|
-
else buf.view(0, 0, count, channels)
|
106
|
+
else buf.view(0, 0, count, info.channels)
|
173
107
|
end
|
174
108
|
end
|
175
109
|
|
data/lib/sndfile/info.rb
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'key_struct'
|
2
|
+
|
3
|
+
module Sndfile
|
4
|
+
|
5
|
+
# The Info class encapsulates the metdata about the audio contents.
|
6
|
+
|
7
|
+
class Info < KeyStruct[:format, :encoding, :endian, :frames, :samplerate, :channels]
|
8
|
+
include Enums
|
9
|
+
|
10
|
+
# :nodoc:
|
11
|
+
def self.from_sfinfo(sfinfo)
|
12
|
+
new(
|
13
|
+
:format => Format[sfinfo[:format] & FORMAT_MASK],
|
14
|
+
:encoding => Encoding[sfinfo[:format] & ENCODING_MASK],
|
15
|
+
:endian => Endian[sfinfo[:format] & ENDIAN_MASK],
|
16
|
+
:frames => sfinfo[:frames],
|
17
|
+
:samplerate => sfinfo[:samplerate],
|
18
|
+
:channels => sfinfo[:channels]
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
##
|
23
|
+
# :attr_accessor: format
|
24
|
+
# The file format, expressed as one of the following symbols:
|
25
|
+
#
|
26
|
+
# :WAV - Microsoft WAV format (little endian).
|
27
|
+
# :AIFF - Apple/SGI AIFF format (big endian).
|
28
|
+
# :AU - Sun/NeXT AU format (big endian).
|
29
|
+
# :RAW - RAW PCM data.
|
30
|
+
# :PAF - Ensoniq PARIS file format.
|
31
|
+
# :SVX - Amiga IFF / SVX8 / SV16 format.
|
32
|
+
# :NIST - Sphere NIST format.
|
33
|
+
# :VOC - VOC files.
|
34
|
+
# :IRCAM - Berkeley/IRCAM/CARL
|
35
|
+
# :W64 - Sonic Foundry's 64 bit RIFF/WAV
|
36
|
+
# :MAT4 - Matlab (tm) V4.2 / GNU Octave 2.0
|
37
|
+
# :MAT5 - Matlab (tm) V5.0 / GNU Octave 2.1
|
38
|
+
# :PVF - Portable Voice Format
|
39
|
+
# :XI - Fasttracker 2 Extended Instrument
|
40
|
+
# :HTK - HMM Tool Kit format
|
41
|
+
# :SDS - Midi Sample Dump Standard
|
42
|
+
# :AVR - Audio Visual Research
|
43
|
+
# :WAVEX - MS WAVE with WAVEFORMATEX
|
44
|
+
# :SD2 - Sound Designer 2
|
45
|
+
# :FLAC - FLAC lossless file format
|
46
|
+
# :CAF - Core Audio File format
|
47
|
+
# :WVE - Psion WVE format
|
48
|
+
# :OGG - Xiph OGG container
|
49
|
+
# :MPC2K - Akai MPC 2000 sampler
|
50
|
+
# :RF64 - RF64 WAV file
|
51
|
+
#
|
52
|
+
|
53
|
+
##
|
54
|
+
# :attr_accessor: encoding
|
55
|
+
# The file encoding, expressed as one of the following symbols:
|
56
|
+
#
|
57
|
+
# :PCM_S8 - Signed 8 bit data
|
58
|
+
# :PCM_16 - Signed 16 bit data
|
59
|
+
# :PCM_24 - Signed 24 bit data
|
60
|
+
# :PCM_32 - Signed 32 bit data
|
61
|
+
# :PCM_U8 - Unsigned 8 bit data (WAV and RAW only)
|
62
|
+
# :FLOAT - 32 bit float data
|
63
|
+
# :DOUBLE - 64 bit float data
|
64
|
+
# :ULAW - U-Law encoded.
|
65
|
+
# :ALAW - A-Law encoded.
|
66
|
+
# :IMA_ADPCM - IMA ADPCM.
|
67
|
+
# :MS_ADPCM - Microsoft ADPCM.
|
68
|
+
# :GSM610 - GSM 6.10 encoding.
|
69
|
+
# :VOX_ADPCM - Oki Dialogic ADPCM encoding.
|
70
|
+
# :G721_32 - 32kbs G721 ADPCM encoding.
|
71
|
+
# :G723_24 - 24kbs G723 ADPCM encoding.
|
72
|
+
# :G723_40 - 40kbs G723 ADPCM encoding.
|
73
|
+
# :DWVW_12 - 12 bit Delta Width Variable Word encoding.
|
74
|
+
# :DWVW_16 - 16 bit Delta Width Variable Word encoding.
|
75
|
+
# :DWVW_24 - 24 bit Delta Width Variable Word encoding.
|
76
|
+
# :DWVW_N - N bit Delta Width Variable Word encoding.
|
77
|
+
# :DPCM_8 - 8 bit differential PCM (XI only)
|
78
|
+
# :DPCM_16 - 16 bit differential PCM (XI only)
|
79
|
+
# :VORBIS - Xiph Vorbis encoding.
|
80
|
+
|
81
|
+
##
|
82
|
+
# :attr_accessor: endian
|
83
|
+
# The endian-ness of the data, expressed as one of the following symbols:
|
84
|
+
#
|
85
|
+
# :FILE - Default file endian-ness.
|
86
|
+
# :LITTLE - Force little endian-ness.
|
87
|
+
# :BIG - Force big endian-ness.
|
88
|
+
# :CPU - Force CPU endian-ness.
|
89
|
+
|
90
|
+
##
|
91
|
+
# :attr_accessor: frames
|
92
|
+
# The number of frames (samples) in the file
|
93
|
+
|
94
|
+
##
|
95
|
+
# :attr_accessor: samplerate
|
96
|
+
# The sample rate, frames per second
|
97
|
+
|
98
|
+
##
|
99
|
+
# :attr_accessor: channels
|
100
|
+
# Returns the number of channels of data, e.g. 1 for mono and 2 for
|
101
|
+
# stereo
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
data/lib/sndfile/version.rb
CHANGED
data/sndfile.gemspec
CHANGED
@@ -15,9 +15,11 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
gem.version = Sndfile::VERSION
|
17
17
|
|
18
|
+
gem.required_ruby_version = ">= 1.9.2"
|
18
19
|
gem.add_dependency("ffi")
|
19
20
|
gem.add_dependency("ruby-gsl-ng")
|
20
21
|
gem.add_dependency("hash_keyword_args")
|
22
|
+
gem.add_dependency("key_struct")
|
21
23
|
|
22
24
|
gem.add_development_dependency 'rake'
|
23
25
|
gem.add_development_dependency 'rdoc'
|
data/spec/file_spec.rb
CHANGED
@@ -1,8 +1,27 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Sndfile do
|
3
|
+
describe Sndfile::File do
|
4
4
|
|
5
|
-
it "
|
5
|
+
it "File.info returns correct file info" do
|
6
|
+
info = Sndfile::File.info(INPUTS_DIR + "ComputerMagic.wav")
|
7
|
+
info.format.should == :WAV
|
8
|
+
info.encoding.should == :PCM_16
|
9
|
+
info.endian.should == :FILE
|
10
|
+
info.frames.should == 223451
|
11
|
+
info.samplerate.should == 44100
|
12
|
+
info.channels.should == 2
|
13
|
+
end
|
14
|
+
|
15
|
+
it "File#info returns correct info structure" do
|
16
|
+
file = INPUTS_DIR + "ComputerMagic.wav"
|
17
|
+
info = Sndfile::File.info(file)
|
18
|
+
Sndfile::File.open(file) do |f|
|
19
|
+
f.info.should == info
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "deprecates info methods" do
|
24
|
+
Sndfile::File.any_instance.should_receive(:warn).with(/DEPRECATION/).exactly(6).times
|
6
25
|
Sndfile::File.open(INPUTS_DIR + "ComputerMagic.wav") do |f|
|
7
26
|
f.format.should == :WAV
|
8
27
|
f.encoding.should == :PCM_16
|
@@ -13,7 +32,7 @@ describe Sndfile do
|
|
13
32
|
end
|
14
33
|
end
|
15
34
|
|
16
|
-
it "
|
35
|
+
it "raises an error when it can't open the file" do
|
17
36
|
expect { Sndfile::File.open("/no/such/file") }.to raise_error Sndfile::Error
|
18
37
|
end
|
19
38
|
|
data/spec/integration_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe "Integration" do
|
|
7
7
|
outpath, refpath = out_ref_paths("copy.wav")
|
8
8
|
|
9
9
|
fin = Sndfile::File.open(inpath)
|
10
|
-
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.samplerate) do |fout|
|
10
|
+
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.info.samplerate) do |fout|
|
11
11
|
while data = fin.read(12345)
|
12
12
|
fout.write(data)
|
13
13
|
end
|
@@ -21,13 +21,13 @@ describe "Integration" do
|
|
21
21
|
outpath, refpath = out_ref_paths("mix.wav")
|
22
22
|
|
23
23
|
fin1 = Sndfile::File.open(inpath1)
|
24
|
-
fin1.channels.should == 2
|
24
|
+
fin1.info.channels.should == 2
|
25
25
|
|
26
26
|
fin2 = Sndfile::File.open(inpath2)
|
27
|
-
fin2.channels.should == 1
|
28
|
-
fin1.samplerate.should == fin2.samplerate
|
27
|
+
fin2.info.channels.should == 1
|
28
|
+
fin1.info.samplerate.should == fin2.info.samplerate
|
29
29
|
|
30
|
-
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin1.samplerate) do |fout|
|
30
|
+
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin1.info.samplerate) do |fout|
|
31
31
|
while true
|
32
32
|
a = fin1.read(10000)
|
33
33
|
b = fin2.read(10000)
|
@@ -60,7 +60,7 @@ describe "Integration" do
|
|
60
60
|
outpath, refpath = out_ref_paths("half.wav")
|
61
61
|
|
62
62
|
fin = Sndfile::File.open(inpath)
|
63
|
-
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.samplerate) do |fout|
|
63
|
+
Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.info.samplerate) do |fout|
|
64
64
|
while data = fin.read(10000)
|
65
65
|
fout.write(data * 0.5)
|
66
66
|
end
|
metadata
CHANGED
@@ -1,142 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sndfile
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- ronen barzel
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: ffi
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: ruby-gsl-ng
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: hash_keyword_args
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: key_struct
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: rake
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- -
|
73
|
+
- - '>='
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '0'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - '>='
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '0'
|
78
83
|
- !ruby/object:Gem::Dependency
|
79
84
|
name: rdoc
|
80
85
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
86
|
requirements:
|
83
|
-
- -
|
87
|
+
- - '>='
|
84
88
|
- !ruby/object:Gem::Version
|
85
89
|
version: '0'
|
86
90
|
type: :development
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
93
|
requirements:
|
91
|
-
- -
|
94
|
+
- - '>='
|
92
95
|
- !ruby/object:Gem::Version
|
93
96
|
version: '0'
|
94
97
|
- !ruby/object:Gem::Dependency
|
95
98
|
name: rspec
|
96
99
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
100
|
requirements:
|
99
|
-
- -
|
101
|
+
- - '>='
|
100
102
|
- !ruby/object:Gem::Version
|
101
103
|
version: '0'
|
102
104
|
type: :development
|
103
105
|
prerelease: false
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
107
|
requirements:
|
107
|
-
- -
|
108
|
+
- - '>='
|
108
109
|
- !ruby/object:Gem::Version
|
109
110
|
version: '0'
|
110
111
|
- !ruby/object:Gem::Dependency
|
111
112
|
name: simplecov
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
121
|
requirements:
|
123
|
-
- -
|
122
|
+
- - '>='
|
124
123
|
- !ruby/object:Gem::Version
|
125
124
|
version: '0'
|
126
125
|
- !ruby/object:Gem::Dependency
|
127
126
|
name: simplecov-gem-adapter
|
128
127
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
128
|
requirements:
|
131
|
-
- -
|
129
|
+
- - '>='
|
132
130
|
- !ruby/object:Gem::Version
|
133
131
|
version: '0'
|
134
132
|
type: :development
|
135
133
|
prerelease: false
|
136
134
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
135
|
requirements:
|
139
|
-
- -
|
136
|
+
- - '>='
|
140
137
|
- !ruby/object:Gem::Version
|
141
138
|
version: '0'
|
142
139
|
description: Ruby wrapper for libsndfile. Reads/writes data as GSL matrices, to allow
|
@@ -148,6 +145,7 @@ extensions: []
|
|
148
145
|
extra_rdoc_files: []
|
149
146
|
files:
|
150
147
|
- .gitignore
|
148
|
+
- .rspec
|
151
149
|
- .travis.yml
|
152
150
|
- Gemfile
|
153
151
|
- README.md
|
@@ -157,6 +155,7 @@ files:
|
|
157
155
|
- lib/sndfile/enums.rb
|
158
156
|
- lib/sndfile/error.rb
|
159
157
|
- lib/sndfile/file.rb
|
158
|
+
- lib/sndfile/info.rb
|
160
159
|
- lib/sndfile/sndfile_api.rb
|
161
160
|
- lib/sndfile/version.rb
|
162
161
|
- sndfile.gemspec
|
@@ -170,27 +169,26 @@ files:
|
|
170
169
|
- spec/spec_helper.rb
|
171
170
|
homepage: https://github.com/ronen/sndfile
|
172
171
|
licenses: []
|
172
|
+
metadata: {}
|
173
173
|
post_install_message:
|
174
174
|
rdoc_options: []
|
175
175
|
require_paths:
|
176
176
|
- lib
|
177
177
|
required_ruby_version: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
178
|
requirements:
|
180
|
-
- -
|
179
|
+
- - '>='
|
181
180
|
- !ruby/object:Gem::Version
|
182
|
-
version:
|
181
|
+
version: 1.9.2
|
183
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
183
|
requirements:
|
186
|
-
- -
|
184
|
+
- - '>='
|
187
185
|
- !ruby/object:Gem::Version
|
188
186
|
version: '0'
|
189
187
|
requirements: []
|
190
188
|
rubyforge_project:
|
191
|
-
rubygems_version:
|
189
|
+
rubygems_version: 2.0.3
|
192
190
|
signing_key:
|
193
|
-
specification_version:
|
191
|
+
specification_version: 4
|
194
192
|
summary: Ruby wrapper for libsndfile. Reads/writes data as GSL matrices, to allow
|
195
193
|
fast processing.
|
196
194
|
test_files:
|